<?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>183449</bug_id>
          
          <creation_ts>2018-03-08 06:12:13 -0800</creation_ts>
          <short_desc>[JSC][WebCore] Extend jsDynamicCast for WebCore types in WebCore and remove jsDynamicDowncast</short_desc>
          <delta_ts>2018-04-01 12:26:12 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>183429</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>mark.lam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1404719</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-03-08 06:12:13 -0800</bug_when>
    <thetext>Now, jsDynamicCast has the same / similar mechanism to WebCore::jsDynamicDowncast to inject efficient casting.
So, let&apos;s remove jsDynamicDowncast. And inject WebCore specializations into JSC::jsDynamicCast in WebCore side.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1404753</commentid>
    <comment_count>1</comment_count>
      <attachid>335301</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-03-08 09:11:03 -0800</bug_when>
    <thetext>Created attachment 335301
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1404780</commentid>
    <comment_count>2</comment_count>
      <attachid>335310</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-03-08 09:47:07 -0800</bug_when>
    <thetext>Created attachment 335310
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1404789</commentid>
    <comment_count>3</comment_count>
      <attachid>335310</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2018-03-08 10:17:02 -0800</bug_when>
    <thetext>Comment on attachment 335310
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1404799</commentid>
    <comment_count>4</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-03-08 10:38:16 -0800</bug_when>
    <thetext>Committed r229416: &lt;https://trac.webkit.org/changeset/229416&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1404801</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-03-08 10:39:30 -0800</bug_when>
    <thetext>&lt;rdar://problem/38268343&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1410970</commentid>
    <comment_count>6</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-04-01 12:26:12 -0700</bug_when>
    <thetext>*** Bug 172685 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>335301</attachid>
            <date>2018-03-08 09:11:03 -0800</date>
            <delta_ts>2018-03-08 09:47:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-183449-20180309021101.patch</filename>
            <type>text/plain</type>
            <size>214370</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI5NDEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWNjN2QwYTA2YjgyZDY4
NGViYjMwMjg2ZGE0ODUwODk0MjA5YmQ2ZC4uNzVlNzE2MDA2YWJlZWJkMTczOGJjOGY4ZjdmNjZj
YTdmZWY2OGQ4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM5MyBAQAogMjAxOC0wMy0wOCAgWXVz
dWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KIAorICAgICAgICBbSlNDXVtXZWJD
b3JlXSBFeHRlbmQganNEeW5hbWljQ2FzdCBmb3IgV2ViQ29yZSB0eXBlcyBpbiBXZWJDb3JlIGFu
ZCByZW1vdmUganNEeW5hbWljRG93bmNhc3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE4MzQ0OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggcmVtb3ZlcyBqc0R5bmFtaWNEb3duY2FzdC4g
T3VyIEpTQzo6anNEeW5hbWljQ2FzdCBjYW4gaGF2ZSBhIHdheSB0byBpbmplY3QgYSBmYXN0Cisg
ICAgICAgIHBhdGggdGhhdCBpcyBzaW1pbGFyIHRvIGpzRHluYW1pY0Rvd25jYXN0LiBXZWJDb3Jl
IGNhbiBsZXZlcmFnZSB0aGlzIGZ1bmN0aW9uYWxpdHkgdG8gYWRkCisgICAgICAgIGEgZmFzdCBw
YXRoIGZvciBXZWJDb3JlJ3MgZXh0ZW5kZWQgSlMgb2JqZWN0IHR5cGVzIChKU0V2ZW50LCBKU0Vs
ZW1lbnQsIEpTTm9kZSwgYW5kIEpTRG9jdW1lbnQpLgorCisgICAgICAgIE5vIGJlaGF2aW9yIGNo
YW5nZS4KKworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiBiaW5kaW5ncy9qcy9Db21tb25WTS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpsZXhp
Y2FsRnJhbWVGcm9tQ29tbW9uVk0pOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NQ29udmVy
dEJ1ZmZlclNvdXJjZS5oOgorICAgICAgICAoV2ViQ29yZTo6dG9Qb3NzaWJseVNoYXJlZEFycmF5
QnVmZmVyVmlldyk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01Db252ZXJ0UHJvbWlzZS5o
OgorICAgICAgICAoV2ViQ29yZTo6Q29udmVydGVyPElETFByb21pc2U8VD4+Ojpjb252ZXJ0KToK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OnJlcG9ydEV4Y2VwdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpyZXRyaWV2
ZUVycm9yTWVzc2FnZSk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01JdGVyYXRvci5oOgor
ICAgICAgICAoV2ViQ29yZTo6SXRlcmF0b3JUcmFpdHM+OjpuZXh0KToKKyAgICAgICAgKiBiaW5k
aW5ncy9qcy9KU0RPTVdpbmRvd1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2lu
ZG93UHJveHk6OnRvV3JhcHBlZCk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XcmFwcGVy
Q2FjaGUuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RvY3VtZW50Q3VzdG9tLmg6CisgICAg
ICAgIChKU0M6OkpTQ2FzdGluZ0hlbHBlcnM6OkluaGVyaXRzVHJhaXRzPFdlYkNvcmU6OkpTRG9j
dW1lbnQ+Ojppbmhlcml0cyk6CisgICAgICAgIChXZWJDb3JlOjpqc0RvY3VtZW50Q2FzdCk6IERl
bGV0ZWQuCisgICAgICAgICogYmluZGluZ3MvanMvSlNEeW5hbWljRG93bmNhc3QuaDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0VsZW1lbnRDdXN0b20uaDoKKyAgICAgICAgKEpT
Qzo6SlNDYXN0aW5nSGVscGVyczo6SW5oZXJpdHNUcmFpdHM8V2ViQ29yZTo6SlNFbGVtZW50Pjo6
aW5oZXJpdHMpOgorICAgICAgICAoV2ViQ29yZTo6anNFbGVtZW50Q2FzdCk6IERlbGV0ZWQuCisg
ICAgICAgICogYmluZGluZ3MvanMvSlNFdmVudEN1c3RvbS5oOgorICAgICAgICAoSlNDOjpKU0Nh
c3RpbmdIZWxwZXJzOjpJbmhlcml0c1RyYWl0czxXZWJDb3JlOjpKU0V2ZW50Pjo6aW5oZXJpdHMp
OgorICAgICAgICAoV2ViQ29yZTo6anNFdmVudENhc3QpOiBEZWxldGVkLgorICAgICAgICAqIGJp
bmRpbmdzL2pzL0pTRXZlbnRUYXJnZXRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6anNF
dmVudFRhcmdldENhc3QpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTTm9kZUN1c3RvbS5oOgor
ICAgICAgICAoSlNDOjpKU0Nhc3RpbmdIZWxwZXJzOjpJbmhlcml0c1RyYWl0czxXZWJDb3JlOjpK
U05vZGU+Ojppbmhlcml0cyk6CisgICAgICAgIChXZWJDb3JlOjpqc05vZGVDYXN0KTogRGVsZXRl
ZC4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6cGx1Z2luRWxlbWVudFByb3BlcnR5R2V0dGVyKToKKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9KU1JlYWRhYmxlU3RyZWFtU291cmNlQ3VzdG9tLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkpTUmVhZGFibGVTdHJlYW1Tb3VyY2U6OnN0YXJ0KToKKyAgICAgICAgKiBiaW5k
aW5ncy9qcy9KU1dvcmtlckdsb2JhbFNjb3BlQmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0
b0pTRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUpOgorICAgICAgICAoV2ViQ29yZTo6dG9KU1dv
cmtlckdsb2JhbFNjb3BlKToKKyAgICAgICAgKFdlYkNvcmU6OnRvSlNTZXJ2aWNlV29ya2VyR2xv
YmFsU2NvcGUpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1JlYWRhYmxlU3RyZWFtLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlYWRhYmxlU3RyZWFtOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVhZGFibGVTdHJlYW06OmlzRGlzdHVyYmVkKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9S
ZWFkYWJsZVN0cmVhbS5oOgorICAgICAgICAoV2ViQ29yZTo6SlNSZWFkYWJsZVN0cmVhbVdyYXBw
ZXJDb252ZXJ0ZXI6OnRvV3JhcHBlZCk6CisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0TW9k
dWxlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdE1vZHVsZUxvYWRlcjo6ZXZh
bHVhdGUpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDbG9uZVNlcmlhbGl6ZXI6OmR1bXBJZlRlcm1pbmFsKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNsb25lU2VyaWFsaXplcjo6c2VyaWFsaXplKToKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9TdHJ1Y3R1cmVkQ2xvbmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c3RydWN0
dXJlZENsb25lQXJyYXlCdWZmZXJWaWV3KToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKEdldENhc3RpbmdIZWxwZXJGb3JUaGlzT2JqZWN0
KToKKyAgICAgICAgKEdlbmVyYXRlSW1wbGVtZW50YXRpb24pOgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU0ludGVyZmFjZU5hbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
anNJbnRlcmZhY2VOYW1lQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNJbnRl
cmZhY2VOYW1lQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6SlNJbnRlcmZhY2VOYW1l
Ojp0b1dyYXBwZWQpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU01hcExp
a2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURMQXR0cmlidXRlPEpTTWFwTGlrZT46OmNhc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6SURMT3BlcmF0aW9uPEpTTWFwTGlrZT46OmNhc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6anNNYXBMaWtlQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6
c2V0SlNNYXBMaWtlQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6SlNNYXBMaWtlOjp0
b1dyYXBwZWQpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1JlYWRPbmx5
TWFwTGlrZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJRExBdHRyaWJ1dGU8SlNSZWFkT25seU1h
cExpa2U+OjpjYXN0KToKKyAgICAgICAgKFdlYkNvcmU6OklETE9wZXJhdGlvbjxKU1JlYWRPbmx5
TWFwTGlrZT46OmNhc3QpOgorICAgICAgICAoV2ViQ29yZTo6anNSZWFkT25seU1hcExpa2VDb25z
dHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1JlYWRPbmx5TWFwTGlrZUNvbnN0cnVj
dG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkpTUmVhZE9ubHlNYXBMaWtlOjp0b1dyYXBwZWQpOgor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVET01PYmplY3Qu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SURMQXR0cmlidXRlPEpTVGVzdEFjdGl2ZURPTU9iamVj
dD46OmNhc3QpOgorICAgICAgICAoV2ViQ29yZTo6SURMT3BlcmF0aW9uPEpTVGVzdEFjdGl2ZURP
TU9iamVjdD46OmNhc3QpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0QWN0aXZlRE9NT2JqZWN0
Q29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0QWN0aXZlRE9NT2JqZWN0
Q29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0QWN0aXZlRE9NT2JqZWN0Ojp0
b1dyYXBwZWQpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDRVJl
YWN0aW9ucy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJRExBdHRyaWJ1dGU8SlNUZXN0Q0VSZWFj
dGlvbnM+OjpjYXN0KToKKyAgICAgICAgKFdlYkNvcmU6OklETE9wZXJhdGlvbjxKU1Rlc3RDRVJl
YWN0aW9ucz46OmNhc3QpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0Q0VSZWFjdGlvbnNDb25z
dHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RDRVJlYWN0aW9uc0NvbnN0cnVj
dG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdENFUmVhY3Rpb25zOjp0b1dyYXBwZWQpOgor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDRVJlYWN0aW9uc1N0cmlu
Z2lmaWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklETEF0dHJpYnV0ZTxKU1Rlc3RDRVJlYWN0
aW9uc1N0cmluZ2lmaWVyPjo6Y2FzdCk6CisgICAgICAgIChXZWJDb3JlOjpJRExPcGVyYXRpb248
SlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllcj46OmNhc3QpOgorICAgICAgICAoV2ViQ29yZTo6
anNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllckNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNv
cmU6OnNldEpTVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJDb25zdHJ1Y3Rvcik6CisgICAgICAg
IChXZWJDb3JlOjpKU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyOjp0b1dyYXBwZWQpOgorICAg
ICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDYWxsVHJhY2VyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OklETEF0dHJpYnV0ZTxKU1Rlc3RDYWxsVHJhY2VyPjo6Y2FzdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpJRExPcGVyYXRpb248SlNUZXN0Q2FsbFRyYWNlcj46OmNhc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6anNUZXN0Q2FsbFRyYWNlckNvbnN0cnVjdG9yKToKKyAgICAgICAg
KFdlYkNvcmU6OnNldEpTVGVzdENhbGxUcmFjZXJDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJD
b3JlOjpKU1Rlc3RDYWxsVHJhY2VyOjp0b1dyYXBwZWQpOgorICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3Rvci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpqc1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3RvckNvbnN0
cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdENsYXNzV2l0aEpTQnVpbHRpbkNv
bnN0cnVjdG9yQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0Q2xhc3NXaXRo
SlNCdWlsdGluQ29uc3RydWN0b3I6OnRvV3JhcHBlZCk6CisgICAgICAgICogYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdEN1c3RvbUNvbnN0cnVjdG9yV2l0aE5vSW50ZXJmYWNlT2JqZWN0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEN1c3RvbUNvbnN0cnVjdG9yV2l0aE5vSW50
ZXJmYWNlT2JqZWN0Q29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0Q3Vz
dG9tQ29uc3RydWN0b3JXaXRoTm9JbnRlcmZhY2VPYmplY3RDb25zdHJ1Y3Rvcik6CisgICAgICAg
IChXZWJDb3JlOjpKU1Rlc3RDdXN0b21Db25zdHJ1Y3RvcldpdGhOb0ludGVyZmFjZU9iamVjdDo6
dG9XcmFwcGVkKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RE9N
SklULmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklETEF0dHJpYnV0ZTxKU1Rlc3RET01KSVQ+Ojpj
YXN0KToKKyAgICAgICAgKFdlYkNvcmU6OklETE9wZXJhdGlvbjxKU1Rlc3RET01KSVQ+OjpjYXN0
KToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdERPTUpJVENvbnN0cnVjdG9yKToKKyAgICAgICAg
KFdlYkNvcmU6OnNldEpTVGVzdERPTUpJVENvbnN0cnVjdG9yKToKKyAgICAgICAgKiBiaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RW5hYmxlZEJ5U2V0dGluZy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpJRExBdHRyaWJ1dGU8SlNUZXN0RW5hYmxlZEJ5U2V0dGluZz46OmNhc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6SURMT3BlcmF0aW9uPEpTVGVzdEVuYWJsZWRCeVNldHRpbmc+OjpjYXN0
KToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEVuYWJsZWRCeVNldHRpbmdDb25zdHJ1Y3Rvcik6
CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RFbmFibGVkQnlTZXR0aW5nQ29uc3RydWN0b3Ip
OgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0RW5hYmxlZEJ5U2V0dGluZzo6dG9XcmFwcGVkKToK
KyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRDb25zdHJ1Y3Rv
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJRExBdHRyaWJ1dGU8SlNUZXN0RXZlbnRDb25zdHJ1
Y3Rvcj46OmNhc3QpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0RXZlbnRDb25zdHJ1Y3RvckNv
bnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdEV2ZW50Q29uc3RydWN0b3JD
b25zdHJ1Y3Rvcik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2
ZW50VGFyZ2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklETE9wZXJhdGlvbjxKU1Rlc3RFdmVu
dFRhcmdldD46OmNhc3QpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0RXZlbnRUYXJnZXRDb25z
dHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RFdmVudFRhcmdldENvbnN0cnVj
dG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdEV2ZW50VGFyZ2V0Ojp0b1dyYXBwZWQpOgor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFeGNlcHRpb24uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SURMQXR0cmlidXRlPEpTVGVzdEV4Y2VwdGlvbj46OmNhc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6anNUZXN0RXhjZXB0aW9uQ29uc3RydWN0b3IpOgorICAgICAgICAo
V2ViQ29yZTo6c2V0SlNUZXN0RXhjZXB0aW9uQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29y
ZTo6SlNUZXN0RXhjZXB0aW9uOjp0b1dyYXBwZWQpOgorICAgICAgICAqIGJpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OklETEF0dHJpYnV0ZTxKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlPjo6Y2FzdCk6CisgICAg
ICAgIChXZWJDb3JlOjpqc1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlQ29uc3RydWN0b3IpOgorICAg
ICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZUNvbnN0cnVjdG9yKToK
KyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGU6OnRvV3JhcHBlZCk6
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdsb2JhbE9iamVjdC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6
Y2FzdCk6CisgICAgICAgIChXZWJDb3JlOjpJRExPcGVyYXRpb248SlNUZXN0R2xvYmFsT2JqZWN0
Pjo6Y2FzdCk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RHbG9iYWxPYmplY3RDb25zdHJ1Y3Rv
cik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RHbG9iYWxPYmplY3RDb25zdHJ1Y3Rvcik6
CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RHbG9iYWxPYmplY3Q6OnRvV3JhcHBlZCk6CisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50
aWZpZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRp
ZmllckNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdEluZGV4ZWRTZXR0
ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RJbmRl
eGVkU2V0dGVyTm9JZGVudGlmaWVyOjp0b1dyYXBwZWQpOgorICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6anNUZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29u
c3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0SW5kZXhlZFNldHRlclRocm93
aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0SW5kZXhl
ZFNldHRlclRocm93aW5nRXhjZXB0aW9uOjp0b1dyYXBwZWQpOgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SURMT3BlcmF0aW9uPEpTVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRl
bnRpZmllcj46OmNhc3QpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0SW5kZXhlZFNldHRlcldp
dGhJZGVudGlmaWVyQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0SW5k
ZXhlZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6
SlNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyOjp0b1dyYXBwZWQpOgorICAgICAgICAq
IGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SURMQXR0cmlidXRlPEpTVGVzdEludGVyZmFjZT46OmNhc3QpOgorICAgICAgICAo
V2ViQ29yZTo6SURMT3BlcmF0aW9uPEpTVGVzdEludGVyZmFjZT46OmNhc3QpOgorICAgICAgICAo
V2ViQ29yZTo6anNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6
c2V0SlNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0
SW50ZXJmYWNlOjp0b1dyYXBwZWQpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJRExBdHRyaWJ1dGU8SlNUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmU+OjpjYXN0KToK
KyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlQ29uc3Ry
dWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVy
c2NvcmVDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RJbnRlcmZhY2VMZWFk
aW5nVW5kZXJzY29yZTo6dG9XcmFwcGVkKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0SXRlcmFibGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURMT3BlcmF0aW9u
PEpTVGVzdEl0ZXJhYmxlPjo6Y2FzdCk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RJdGVyYWJs
ZUNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdEl0ZXJhYmxlQ29uc3Ry
dWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0SXRlcmFibGU6OnRvV3JhcHBlZCk6Cisg
ICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEpTQnVpbHRpbkNvbnN0cnVj
dG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklETEF0dHJpYnV0ZTxKU1Rlc3RKU0J1aWx0aW5D
b25zdHJ1Y3Rvcj46OmNhc3QpOgorICAgICAgICAoV2ViQ29yZTo6SURMT3BlcmF0aW9uPEpTVGVz
dEpTQnVpbHRpbkNvbnN0cnVjdG9yPjo6Y2FzdCk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RK
U0J1aWx0aW5Db25zdHJ1Y3RvckNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpT
VGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yQ29uc3RydWN0b3IpOgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OklETE9wZXJhdGlvbjxKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyPjo6
Y2FzdCk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyQ29u
c3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0
ZW5lckNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdE1lZGlhUXVlcnlMaXN0
TGlzdGVuZXI6OnRvV3JhcHBlZCk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlck5vSWRlbnRpZmllci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpqc1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3Rv
cik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lk
ZW50aWZpZXJDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3ROYW1lZEFuZElu
ZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXI6OnRvV3JhcHBlZCk6CisgICAgICAgICogYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0
aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRo
cm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0
TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3Rvcik6CisgICAg
ICAgIChXZWJDb3JlOjpKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlv
bjo6dG9XcmFwcGVkKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SURMT3BlcmF0aW9uPEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVy
Pjo6Y2FzdCk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJX
aXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE5h
bWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IpOgorICAgICAgICAo
V2ViQ29yZTo6SlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXI6OnRvV3Jh
cHBlZCk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQ29u
c3RydWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0TmFtZWRDb25zdHJ1Y3RvckNv
bnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE5hbWVkQ29uc3RydWN0b3JD
b25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3ROYW1lZENvbnN0cnVjdG9yOjp0
b1dyYXBwZWQpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1l
ZERlbGV0ZXJOb0lkZW50aWZpZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0TmFtZWRE
ZWxldGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNU
ZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29y
ZTo6SlNUZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVyOjp0b1dyYXBwZWQpOgorICAgICAgICAq
IGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2Vw
dGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4
Y2VwdGlvbkNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE5hbWVkRGVs
ZXRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6SlNU
ZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNlcHRpb246OnRvV3JhcHBlZCk6CisgICAgICAgICog
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklETE9wZXJhdGlvbjxKU1Rlc3ROYW1lZERlbGV0ZXJX
aXRoSWRlbnRpZmllcj46OmNhc3QpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0TmFtZWREZWxl
dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rl
c3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNv
cmU6OkpTVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyOjp0b1dyYXBwZWQpOgorICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSW5kZXhl
ZEdldHRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3ROYW1lZERlbGV0ZXJXaXRoSW5k
ZXhlZEdldHRlckNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE5hbWVk
RGVsZXRlcldpdGhJbmRleGVkR2V0dGVyQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6
SlNUZXN0TmFtZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXI6OnRvV3JhcHBlZCk6CisgICAgICAg
ICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkR2V0dGVyQ2FsbFdpdGguY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aENvbnN0cnVjdG9y
KToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE5hbWVkR2V0dGVyQ2FsbFdpdGhDb25zdHJ1
Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3ROYW1lZEdldHRlckNhbGxXaXRoOjp0b1dy
YXBwZWQpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEdl
dHRlck5vSWRlbnRpZmllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3ROYW1lZEdldHRl
ck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE5h
bWVkR2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6SlNU
ZXN0TmFtZWRHZXR0ZXJOb0lkZW50aWZpZXI6OnRvV3JhcHBlZCk6CisgICAgICAgICogYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkR2V0dGVyV2l0aElkZW50aWZpZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SURMT3BlcmF0aW9uPEpTVGVzdE5hbWVkR2V0dGVyV2l0aElkZW50
aWZpZXI+OjpjYXN0KToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE5hbWVkR2V0dGVyV2l0aElk
ZW50aWZpZXJDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3ROYW1lZEdl
dHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0
TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllcjo6dG9XcmFwcGVkKToKKyAgICAgICAgKiBiaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6anNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3Rvcik6
CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllckNvbnN0
cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVy
Ojp0b1dyYXBwZWQpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RO
YW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVz
dE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJD
b3JlOjpzZXRKU1Rlc3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IpOgor
ICAgICAgICAoV2ViQ29yZTo6SlNUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbjo6dG9X
cmFwcGVkKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRT
ZXR0ZXJXaXRoSWRlbnRpZmllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJRExPcGVyYXRpb248
SlNUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllcj46OmNhc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6anNUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKToKKyAgICAgICAg
KFdlYkNvcmU6OnNldEpTVGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3Rvcik6
CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyOjp0b1dy
YXBwZWQpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNl
dHRlcldpdGhJbmRleGVkR2V0dGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklETE9wZXJhdGlv
bjxKU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyPjo6Y2FzdCk6CisgICAgICAgIChX
ZWJDb3JlOjpqc1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQ29uc3RydWN0b3IpOgor
ICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckNv
bnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4
ZWRHZXR0ZXI6OnRvV3JhcHBlZCk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SURMT3BlcmF0aW9uPEpTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0
ZXJBbmRTZXR0ZXI+OjpjYXN0KToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE5hbWVkU2V0dGVy
V2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXJDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3Jl
OjpzZXRKU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyQ29uc3RydWN0
b3IpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRl
ckFuZFNldHRlcjo6dG9XcmFwcGVkKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoT3ZlcnJpZGVCdWlsdGlucy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpqc1Rlc3ROYW1lZFNldHRlcldpdGhPdmVycmlkZUJ1aWx0aW5zQ29uc3RydWN0b3Ip
OgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0TmFtZWRTZXR0ZXJXaXRoT3ZlcnJpZGVCdWls
dGluc0NvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdE5hbWVkU2V0dGVyV2l0
aE92ZXJyaWRlQnVpbHRpbnM6OnRvV3JhcHBlZCk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVzLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OklETEF0dHJpYnV0ZTxKU1Rlc3ROYW1lZFNldHRlcldpdGhVbmZv
cmdhYmxlUHJvcGVydGllcz46OmNhc3QpOgorICAgICAgICAoV2ViQ29yZTo6SURMT3BlcmF0aW9u
PEpTVGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVzPjo6Y2FzdCk6CisgICAg
ICAgIChXZWJDb3JlOjpqc1Rlc3ROYW1lZFNldHRlcldpdGhVbmZvcmdhYmxlUHJvcGVydGllc0Nv
bnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE5hbWVkU2V0dGVyV2l0aFVu
Zm9yZ2FibGVQcm9wZXJ0aWVzQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0
TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRpZXM6OnRvV3JhcHBlZCk6CisgICAgICAg
ICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2Fi
bGVQcm9wZXJ0aWVzQW5kT3ZlcnJpZGVCdWlsdGlucy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
RExBdHRyaWJ1dGU8SlNUZXN0TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRpZXNBbmRP
dmVycmlkZUJ1aWx0aW5zPjo6Y2FzdCk6CisgICAgICAgIChXZWJDb3JlOjpJRExPcGVyYXRpb248
SlNUZXN0TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRpZXNBbmRPdmVycmlkZUJ1aWx0
aW5zPjo6Y2FzdCk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3ROYW1lZFNldHRlcldpdGhVbmZv
cmdhYmxlUHJvcGVydGllc0FuZE92ZXJyaWRlQnVpbHRpbnNDb25zdHJ1Y3Rvcik6CisgICAgICAg
IChXZWJDb3JlOjpzZXRKU1Rlc3ROYW1lZFNldHRlcldpdGhVbmZvcmdhYmxlUHJvcGVydGllc0Fu
ZE92ZXJyaWRlQnVpbHRpbnNDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RO
YW1lZFNldHRlcldpdGhVbmZvcmdhYmxlUHJvcGVydGllc0FuZE92ZXJyaWRlQnVpbHRpbnM6OnRv
V3JhcHBlZCk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vZGUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SURMQXR0cmlidXRlPEpTVGVzdE5vZGU+OjpjYXN0KToK
KyAgICAgICAgKFdlYkNvcmU6OklETE9wZXJhdGlvbjxKU1Rlc3ROb2RlPjo6Y2FzdCk6CisgICAg
ICAgIChXZWJDb3JlOjpqc1Rlc3ROb2RlQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6
c2V0SlNUZXN0Tm9kZUNvbnN0cnVjdG9yKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0T2JqLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklETEF0dHJpYnV0ZTxKU1Rl
c3RPYmo+OjpjYXN0KToKKyAgICAgICAgKFdlYkNvcmU6OklETE9wZXJhdGlvbjxKU1Rlc3RPYmo+
OjpjYXN0KToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9iakNvbnN0cnVjdG9yKToKKyAgICAg
ICAgKFdlYkNvcmU6OnNldEpTVGVzdE9iakNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6
OkpTVGVzdE9iajo6dG9XcmFwcGVkKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpq
c1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29y
ZTo6c2V0SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc0NvbnN0cnVjdG9yKToKKyAgICAgICAg
KFdlYkNvcmU6OkpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnM6OnRvV3JhcHBlZCk6CisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3Rv
cnNXaXRoU2VxdWVuY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T3ZlcmxvYWRlZENv
bnN0cnVjdG9yc1dpdGhTZXF1ZW5jZUNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNl
dEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2VDb25zdHJ1Y3Rvcik6Cisg
ICAgICAgIChXZWJDb3JlOjpKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbmNl
Ojp0b1dyYXBwZWQpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RP
dmVycmlkZUJ1aWx0aW5zLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklETE9wZXJhdGlvbjxKU1Rl
c3RPdmVycmlkZUJ1aWx0aW5zPjo6Y2FzdCk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPdmVy
cmlkZUJ1aWx0aW5zQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T3Zl
cnJpZGVCdWlsdGluc0NvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdE92ZXJy
aWRlQnVpbHRpbnM6OnRvV3JhcHBlZCk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdFBsdWdpbkludGVyZmFjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RQ
bHVnaW5JbnRlcmZhY2VDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RQ
bHVnaW5JbnRlcmZhY2VDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RQbHVn
aW5JbnRlcmZhY2U6OnRvV3JhcHBlZCk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdFByb21pc2VSZWplY3Rpb25FdmVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
RExBdHRyaWJ1dGU8SlNUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50Pjo6Y2FzdCk6CisgICAgICAg
IChXZWJDb3JlOjpqc1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnRDb25zdHJ1Y3Rvcik6CisgICAg
ICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnRDb25zdHJ1Y3Rvcik6
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6YXRpb24u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SURMQXR0cmlidXRlPEpTVGVzdFNlcmlhbGl6YXRpb24+
OjpjYXN0KToKKyAgICAgICAgKFdlYkNvcmU6OklETE9wZXJhdGlvbjxKU1Rlc3RTZXJpYWxpemF0
aW9uPjo6Y2FzdCk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RTZXJpYWxpemF0aW9uQ29uc3Ry
dWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0U2VyaWFsaXphdGlvbkNvbnN0cnVj
dG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdFNlcmlhbGl6YXRpb246OnRvV3JhcHBlZCk6
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6YXRpb25J
bmRpcmVjdEluaGVyaXRhbmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdFNlcmlhbGl6
YXRpb25JbmRpcmVjdEluaGVyaXRhbmNlQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6
c2V0SlNUZXN0U2VyaWFsaXphdGlvbkluZGlyZWN0SW5oZXJpdGFuY2VDb25zdHJ1Y3Rvcik6Cisg
ICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6YXRpb25Jbmhl
cml0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklETEF0dHJpYnV0ZTxKU1Rlc3RTZXJpYWxpemF0
aW9uSW5oZXJpdD46OmNhc3QpOgorICAgICAgICAoV2ViQ29yZTo6SURMT3BlcmF0aW9uPEpTVGVz
dFNlcmlhbGl6YXRpb25Jbmhlcml0Pjo6Y2FzdCk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RT
ZXJpYWxpemF0aW9uSW5oZXJpdENvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpT
VGVzdFNlcmlhbGl6YXRpb25Jbmhlcml0Q29uc3RydWN0b3IpOgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemF0aW9uSW5oZXJpdEZpbmFsLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OklETEF0dHJpYnV0ZTxKU1Rlc3RTZXJpYWxpemF0aW9uSW5oZXJpdEZp
bmFsPjo6Y2FzdCk6CisgICAgICAgIChXZWJDb3JlOjpJRExPcGVyYXRpb248SlNUZXN0U2VyaWFs
aXphdGlvbkluaGVyaXRGaW5hbD46OmNhc3QpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0U2Vy
aWFsaXphdGlvbkluaGVyaXRGaW5hbENvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNl
dEpTVGVzdFNlcmlhbGl6YXRpb25Jbmhlcml0RmluYWxDb25zdHJ1Y3Rvcik6CisgICAgICAgICog
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVy
ZmFjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJRExBdHRyaWJ1dGU8SlNUZXN0U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlSW50ZXJmYWNlPjo6Y2FzdCk6CisgICAgICAgIChXZWJDb3JlOjpJRExPcGVy
YXRpb248SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlPjo6Y2FzdCk6CisgICAg
ICAgIChXZWJDb3JlOjpqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDb25zdHJ1
Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJ
bnRlcmZhY2VDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RTZXJpYWxpemVk
U2NyaXB0VmFsdWVJbnRlcmZhY2U6OnRvV3JhcHBlZCk6CisgICAgICAgICogYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklE
TE9wZXJhdGlvbjxKU1Rlc3RTdHJpbmdpZmllcj46OmNhc3QpOgorICAgICAgICAoV2ViQ29yZTo6
anNUZXN0U3RyaW5naWZpZXJDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rl
c3RTdHJpbmdpZmllckNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdFN0cmlu
Z2lmaWVyOjp0b1dyYXBwZWQpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RTdHJpbmdpZmllckFub255bW91c09wZXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJRExPcGVyYXRpb248SlNUZXN0U3RyaW5naWZpZXJBbm9ueW1vdXNPcGVyYXRpb24+OjpjYXN0
KToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9u
Q29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0U3RyaW5naWZpZXJBbm9u
eW1vdXNPcGVyYXRpb25Db25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RTdHJp
bmdpZmllckFub255bW91c09wZXJhdGlvbjo6dG9XcmFwcGVkKToKKyAgICAgICAgKiBiaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvbi5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpJRExPcGVyYXRpb248SlNUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJh
dGlvbj46OmNhc3QpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0U3RyaW5naWZpZXJOYW1lZE9w
ZXJhdGlvbkNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdFN0cmluZ2lm
aWVyTmFtZWRPcGVyYXRpb25Db25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RT
dHJpbmdpZmllck5hbWVkT3BlcmF0aW9uOjp0b1dyYXBwZWQpOgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVudGVkQXMu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SURMT3BlcmF0aW9uPEpTVGVzdFN0cmluZ2lmaWVyT3Bl
cmF0aW9uSW1wbGVtZW50ZWRBcz46OmNhc3QpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0U3Ry
aW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzQ29uc3RydWN0b3IpOgorICAgICAgICAoV2Vi
Q29yZTo6c2V0SlNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzQ29uc3RydWN0
b3IpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1l
bnRlZEFzOjp0b1dyYXBwZWQpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmcuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SURMT3BlcmF0aW9uPEpTVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0cmlu
Zz46OmNhc3QpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25O
YW1lZFRvU3RyaW5nQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0U3Ry
aW5naWZpZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5nQ29uc3RydWN0b3IpOgorICAgICAgICAoV2Vi
Q29yZTo6SlNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5nOjp0b1dyYXBwZWQp
OgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllclJl
YWRPbmx5QXR0cmlidXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklETEF0dHJpYnV0ZTxKU1Rl
c3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRlPjo6Y2FzdCk6CisgICAgICAgIChXZWJDb3Jl
OjpJRExPcGVyYXRpb248SlNUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZT46OmNhc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZUNv
bnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdFN0cmluZ2lmaWVyUmVhZE9u
bHlBdHRyaWJ1dGVDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RTdHJpbmdp
ZmllclJlYWRPbmx5QXR0cmlidXRlOjp0b1dyYXBwZWQpOgorICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpJRExBdHRyaWJ1dGU8SlNUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVB
dHRyaWJ1dGU+OjpjYXN0KToKKyAgICAgICAgKFdlYkNvcmU6OklETE9wZXJhdGlvbjxKU1Rlc3RT
dHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZT46OmNhc3QpOgorICAgICAgICAoV2ViQ29yZTo6
anNUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGVDb25zdHJ1Y3Rvcik6CisgICAgICAg
IChXZWJDb3JlOjpzZXRKU1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZUNvbnN0cnVj
dG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmli
dXRlOjp0b1dyYXBwZWQpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RUeXBlZGVmcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJRExBdHRyaWJ1dGU8SlNUZXN0VHlw
ZWRlZnM+OjpjYXN0KToKKyAgICAgICAgKFdlYkNvcmU6OklETE9wZXJhdGlvbjxKU1Rlc3RUeXBl
ZGVmcz46OmNhc3QpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0VHlwZWRlZnNDb25zdHJ1Y3Rv
cik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RUeXBlZGVmc0NvbnN0cnVjdG9yKToKKyAg
ICAgICAgKFdlYkNvcmU6OkpTVGVzdFR5cGVkZWZzOjp0b1dyYXBwZWQpOgorICAgICAgICAqIGJy
aWRnZS9vYmpjL1dlYlNjcmlwdE9iamVjdC5tbToKKyAgICAgICAgKC1bV2ViU2NyaXB0T2JqZWN0
IHNldFZhbHVlOmZvcktleTpdKToKKyAgICAgICAgKiBicmlkZ2UvcnVudGltZV9hcnJheS5jcHA6
CisgICAgICAgIChKU0M6OlJ1bnRpbWVBcnJheTo6bGVuZ3RoR2V0dGVyKToKKyAgICAgICAgKiBi
cmlkZ2UvcnVudGltZV9tZXRob2QuY3BwOgorICAgICAgICAoSlNDOjpSdW50aW1lTWV0aG9kOjps
ZW5ndGhHZXR0ZXIpOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpjb250cm9sbGVySlNWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
TWVkaWFFbGVtZW50Ojp1cGRhdGVDYXB0aW9uQ29udGFpbmVyKToKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxNZWRpYUVsZW1lbnQ6OmRpZEFkZFVzZXJBZ2VudFNoYWRvd1Jvb3QpOgorICAgICAgICAq
IGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OmJ1aWxkT2JqZWN0Rm9yRXZlbnRMaXN0ZW5lcik6CisKKzIw
MTgtMDMtMDggIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKICAgICAg
ICAgW0pTQ10gQWRkIGluaGVyaXRzPFQ+KFZNJikgbGV2ZXJhZ2luZyBKU0Nhc3QgZmFzdCBwYXRo
CiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODM0MjkK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwppbmRleCA5YTIxMzEzNGRlNDc0Y2JiMGNkMGYyYjVlMTEzYWE1ODIwMGY4ZGY2Li4x
MGNkMDEzYjgxZWJhYmEzNGE5NzMwY2FmMTBiY2ZhYmNlNjA3YTk3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSw1
ICsxLDE3IEBACiAyMDE4LTAzLTA4ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwu
Y29tPgogCisgICAgICAgIFtKU0NdW1dlYkNvcmVdIEV4dGVuZCBqc0R5bmFtaWNDYXN0IGZvciBX
ZWJDb3JlIHR5cGVzIGluIFdlYkNvcmUgYW5kIHJlbW92ZSBqc0R5bmFtaWNEb3duY2FzdAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgzNDQ5CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJQcm9jZXNz
L0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OmVsZW1lbnRGb3JOb2RlSGFuZGxlKToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJGcmFtZTo6ZnJhbWVGb3JDb250ZXh0KToKKworMjAxOC0wMy0wOCAgWXVzdWtlIFN1enVr
aSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KKwogICAgICAgICBbSlNDXSBBZGQgaW5oZXJpdHM8
VD4oVk0mKSBsZXZlcmFnaW5nIEpTQ2FzdCBmYXN0IHBhdGgKICAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MzQyOQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMjEzOTA0ODc1NjRkYmM3
Nzg5YWM1MGEyYzgzYjEzOTJkZDU1ZTRkZS4uYzA5MzFhMTkwYThjYzY2YmNiYzlhYTUzN2Y2YmU0
NGQxZDBjY2EyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtNDYyMyw3ICs0NjIzLDYgQEAKIAkJRTMwN0RFRDExRDgxRTRDQjAw
MTQxQ0FGIC8qIENhY2hlZE1vZHVsZVNjcmlwdExvYWRlckNsaWVudC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTMwN0RFQzgxRDgxRTQ0ODAwMTQxQ0FG
IC8qIENhY2hlZE1vZHVsZVNjcmlwdExvYWRlckNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUzMDdERUQ1MUQ4MUU0RjIwMDE0MUNBRiAv
KiBMb2FkYWJsZU1vZHVsZVNjcmlwdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRTMwN0RFRDMxRDgxRTRFRDAwMTQxQ0FGIC8qIExvYWRhYmxlTW9kdWxl
U2NyaXB0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJRTMxNTBFQTcxREE3MjE5MzAwMTk0MDEyIC8qIERPTUpJVEhlbHBlcnMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzMTUwRUE1MURBNzIxOEQwMDE5
NDAxMiAvKiBET01KSVRIZWxwZXJzLmggKi87IH07Ci0JCUUzMTgwMzlEMURDNDAwOTkwMDk5MzJD
MiAvKiBKU0R5bmFtaWNEb3duY2FzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRTNBNTg3MkUxREMzRjUyNjAwRjYwN0E2IC8qIEpTRHluYW1pY0Rvd25j
YXN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
RTMyMDFDMUExRjhFODIxMzAwNzZBMDMyIC8qIE1vZHVsZUZldGNoUGFyYW1ldGVycy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM4RDA2MDkxRjhFODEx
OTAwNjQ5Q0YyIC8qIE1vZHVsZUZldGNoUGFyYW1ldGVycy5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUzMjNDRkZBMUU1QUY2QUYwMEYwQjRBMCAv
KiBKU0RPTUNvbnZlcnRQcm9taXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBFMzIzQ0ZGOTFFNUFGNkE1MDBGMEI0QTAgLyogSlNET01Db252ZXJ0UHJv
bWlzZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CUUzNTY1QjdCMURDMkQ2QzkwMDIxN0RCRCAvKiBKU0V2ZW50Q3VzdG9tLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzRFRTQ5RjFEQzJENTc1MDBFQUE5
RDMgLyogSlNFdmVudEN1c3RvbS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CkBAIC0xNDEyMyw3ICsxNDEyMiw2IEBACiAJCUUzOTc1Qjc3MUVDOUFGMzkw
MDg0NzcxNyAvKiBKU0VsZW1lbnRET01KSVQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSlNFbGVtZW50RE9NSklULmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRTM5NzVCNzgxRUM5QUYzOTAwODQ3NzE3IC8qIEpTRXZlbnRET01KSVQuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNFdmVudERPTUpJVC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzOThGQzIzMURDMzJBMUIwMDNDNDY4NCAvKiBET01K
SVRIZWxwZXJzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERPTUpJ
VEhlbHBlcnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlFM0E1ODcyRTFEQzNG
NTI2MDBGNjA3QTYgLyogSlNEeW5hbWljRG93bmNhc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSlNEeW5hbWljRG93bmNhc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRTNBNzc2NjUxREM4NUQyMjAwQjY5MEQ4IC8qIERPTUpJVElETENvbnZlcnQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NSklUSURMQ29udmVydC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlFM0E3NzY2NjFEQzg1RDIyMDBCNjkwRDggLyogRE9NSklU
SURMVHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01KSVRJRExUeXBl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzQUZBOTY0MURBNkU5MDgwMDI4NjFC
RCAvKiBKU05vZGVET01KSVQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSlNOb2RlRE9NSklULmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIzNjE3
LDcgKzIzNjE1LDYgQEAKIAkJCQk2NUUwRTk0MzExMzNDODlGMDBCNENCMTAgLyogSlNET01XcmFw
cGVyLmggKi8sCiAJCQkJN0M0NUM5Q0IxRTNFOEU0OTAwQUFCNTU4IC8qIEpTRE9NV3JhcHBlckNh
Y2hlLmNwcCAqLywKIAkJCQk3QzQ1QzlDODFFM0U4QjUxMDBBQUI1NTggLyogSlNET01XcmFwcGVy
Q2FjaGUuaCAqLywKLQkJCQlFM0E1ODcyRTFEQzNGNTI2MDBGNjA3QTYgLyogSlNEeW5hbWljRG93
bmNhc3QuaCAqLywKIAkJCQk4RjkzNEQ4NDExODlGMUVFMDA1MDhENUQgLyogSlNNYWluVGhyZWFk
RXhlY1N0YXRlLmNwcCAqLywKIAkJCQk4RjkzNEQ4MzExODlGMUVFMDA1MDhENUQgLyogSlNNYWlu
VGhyZWFkRXhlY1N0YXRlLmggKi8sCiAJCQkJQjU2NTc2RTQxN0RBNTk5RjAwQTU2QkRDIC8qIEpT
TWFpblRocmVhZEV4ZWNTdGF0ZUluc3RydW1lbnRhdGlvbi5oICovLApAQCAtMjgyMTIsNyArMjgy
MDksNiBAQAogCQkJCTY1RTBFOTQ0MTEzM0M4OUYwMEI0Q0IxMCAvKiBKU0RPTVdyYXBwZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCTdDNDVDOUQzMUUzRkNCRDcwMEFBQjU1OCAvKiBKU0RPTVdyYXBw
ZXJDYWNoZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNBODA2MUUxRTAzQjU4NTAwOEExRjI2IC8q
IEpTRG91YmxlUmFuZ2UuaCBpbiBIZWFkZXJzICovLAotCQkJCUUzMTgwMzlEMURDNDAwOTkwMDk5
MzJDMiAvKiBKU0R5bmFtaWNEb3duY2FzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkQ3ODY4QkEx
MzZCOTk5MjAwRDQwM0RGIC8qIEpTRHluYW1pY3NDb21wcmVzc29yTm9kZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNTc2ODE0NDExRTcwOUZBNDAwRTc3NzU0IC8qIEpTRWNkaEtleURlcml2ZVBhcmFt
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTdFRUFBNTUxRUEwMDFCMTAwNzAxMTI0IC8qIEpTRWNk
c2FQYXJhbXMuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvQ29tbW9uVk0uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQ29tbW9u
Vk0uY3BwCmluZGV4IDU4Y2IwMDc0MjdjMGI1Yzg1YjE3MWJiNDg1Zjk5YjhjNjU2NGU1MjIuLjU3
MzYwOGRmNzRhYjkzMzAxNDYzZmQ0ZTI5YmIzZTE4YjMyMzE4NGUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0NvbW1vblZNLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9Db21tb25WTS5jcHAKQEAgLTc0LDcgKzc0LDcgQEAgRnJhbWUqIGxleGljYWxG
cmFtZUZyb21Db21tb25WTSgpCiB7CiAgICAgaWYgKGF1dG8qIHRvcENhbGxGcmFtZSA9IGNvbW1v
blZNKCkudG9wQ2FsbEZyYW1lKSB7CiAgICAgICAgIGlmIChhdXRvKiBnbG9iYWxPYmplY3QgPSBK
U0M6OmpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KHRvcENhbGxGcmFtZS0+bGV4aWNhbEdsb2Jh
bE9iamVjdCgpKSkgewotICAgICAgICAgICAgaWYgKGF1dG8qIHdpbmRvdyA9IGpzRHluYW1pY0Rv
d25jYXN0PEpTRE9NV2luZG93Kj4oY29tbW9uVk0oKSwgZ2xvYmFsT2JqZWN0KSkgeworICAgICAg
ICAgICAgaWYgKGF1dG8qIHdpbmRvdyA9IEpTQzo6anNEeW5hbWljQ2FzdDxKU0RPTVdpbmRvdyo+
KGNvbW1vblZNKCksIGdsb2JhbE9iamVjdCkpIHsKICAgICAgICAgICAgICAgICBpZiAoYXV0byog
ZnJhbWUgPSB3aW5kb3ctPndyYXBwZWQoKS5mcmFtZSgpKQogICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gZnJhbWU7CiAgICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0RPTUNvbnZlcnRCdWZmZXJTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NQ29udmVydEJ1ZmZlclNvdXJjZS5oCmluZGV4IDQwNWE1ZjFkMThhZjkw
YjczMzg2YzE2MGZlMTJjMDE5MzIwZmNmMTEuLjIxZGU5N2Y0YTFiZjRiNDU1YTQwY2JiYzgxNjBi
NTMwYTU1ZjkxYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9N
Q29udmVydEJ1ZmZlclNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RE9NQ29udmVydEJ1ZmZlclNvdXJjZS5oCkBAIC0yOSw3ICsyOSw2IEBACiAjaW5jbHVkZSAiSURM
VHlwZXMuaCIKICNpbmNsdWRlICJKU0RPTUNvbnZlcnRCYXNlLmgiCiAjaW5jbHVkZSAiSlNET01X
cmFwcGVyQ2FjaGUuaCIKLSNpbmNsdWRlICJKU0R5bmFtaWNEb3duY2FzdC5oIgogI2luY2x1ZGUg
PEphdmFTY3JpcHRDb3JlL0pTVHlwZWRBcnJheXMuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpA
QCAtOTQsNyArOTMsNyBAQCBpbmxpbmUgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUq
IHN0YXRlLCBKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplYwogCiBpbmxpbmUgUmVmUHRy
PEpTQzo6QXJyYXlCdWZmZXJWaWV3PiB0b1Bvc3NpYmx5U2hhcmVkQXJyYXlCdWZmZXJWaWV3KEpT
Qzo6Vk0mIHZtLCBKU0M6OkpTVmFsdWUgdmFsdWUpCiB7Ci0gICAgYXV0byogd3JhcHBlciA9IGpz
RHluYW1pY0Rvd25jYXN0PEpTQzo6SlNBcnJheUJ1ZmZlclZpZXcqPih2bSwgdmFsdWUpOworICAg
IGF1dG8qIHdyYXBwZXIgPSBKU0M6OmpzRHluYW1pY0Nhc3Q8SlNDOjpKU0FycmF5QnVmZmVyVmll
dyo+KHZtLCB2YWx1ZSk7CiAgICAgaWYgKCF3cmFwcGVyKQogICAgICAgICByZXR1cm4gbnVsbHB0
cjsKICAgICByZXR1cm4gd3JhcHBlci0+cG9zc2libHlTaGFyZWRJbXBsKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnZlcnRQcm9taXNlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnZlcnRQcm9taXNlLmgKaW5kZXggN2QzNGRm
ODQ3M2RkOWIwZDlhOWMyNWZkNTNjNjgxMmRmMGFkY2Y2Ni4uZjYwYjAzM2RmMzUzYmMzOGQ2YTNh
N2RmN2RkZjlmNjRhNDdmMzhlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNET01Db252ZXJ0UHJvbWlzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRE9NQ29udmVydFByb21pc2UuaApAQCAtNDAsNyArNDAsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFt
ZSBUPiBzdHJ1Y3QgQ29udmVydGVyPElETFByb21pc2U8VD4+IDogRGVmYXVsdENvbnZlcnRlcjxJ
RExQcm9taQogICAgIHsKICAgICAgICAgSlNDOjpWTSYgdm0gPSBzdGF0ZS52bSgpOwogICAgICAg
ICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgICAgIGF1dG8qIGds
b2JhbE9iamVjdCA9IGpzRHluYW1pY0Rvd25jYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4odm0sIHN0
YXRlLmxleGljYWxHbG9iYWxPYmplY3QoKSk7CisgICAgICAgIGF1dG8qIGdsb2JhbE9iamVjdCA9
IEpTQzo6anNEeW5hbWljQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KHZtLCBzdGF0ZS5sZXhpY2Fs
R2xvYmFsT2JqZWN0KCkpOwogICAgICAgICBpZiAoIWdsb2JhbE9iamVjdCkKICAgICAgICAgICAg
IHJldHVybiBudWxscHRyOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRE9NRXhjZXB0aW9uSGFuZGxpbmcuY3BwCmluZGV4IDgwOGU4ZmY3YjkzZjYzYmMyOWI3ZDRj
YjkyZWVjMDU5ZGM4NTM4N2MuLjg5NWEzMDA0MmNkOWFjZDg3NzgzNGJjZGQ4Yjk3Yzk5MTA0MDc0
MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NRXhjZXB0aW9u
SGFuZGxpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NRXhjZXB0
aW9uSGFuZGxpbmcuY3BwCkBAIC0yOCw3ICsyOCw2IEBACiAjaW5jbHVkZSAiSlNET01FeGNlcHRp
b24uaCIKICNpbmNsdWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5oIgogI2luY2x1ZGUgIkpTRE9N
V2luZG93LmgiCi0jaW5jbHVkZSAiSlNEeW5hbWljRG93bmNhc3QuaCIKICNpbmNsdWRlICJTY3Jp
cHRFeGVjdXRpb25Db250ZXh0LmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvRXJyb3JIYW5k
bGluZ1Njb3BlLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvRXhjZXB0aW9uLmg+CkBAIC00
NCw3ICs0Myw3IEBAIHZvaWQgcmVwb3J0RXhjZXB0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1
ZSBleGNlcHRpb25WYWx1ZSwgQ2FjaGVkU2NyaXB0KiBjYWNoCiB7CiAgICAgVk0mIHZtID0gZXhl
Yy0+dm0oKTsKICAgICBSRUxFQVNFX0FTU0VSVCh2bS5jdXJyZW50VGhyZWFkSXNIb2xkaW5nQVBJ
TG9jaygpKTsKLSAgICBhdXRvKiBleGNlcHRpb24gPSBqc0R5bmFtaWNEb3duY2FzdDxKU0M6OkV4
Y2VwdGlvbio+KHZtLCBleGNlcHRpb25WYWx1ZSk7CisgICAgYXV0byogZXhjZXB0aW9uID0ganNE
eW5hbWljQ2FzdDxKU0M6OkV4Y2VwdGlvbio+KHZtLCBleGNlcHRpb25WYWx1ZSk7CiAgICAgaWYg
KCFleGNlcHRpb24pIHsKICAgICAgICAgZXhjZXB0aW9uID0gdm0ubGFzdEV4Y2VwdGlvbigpOwog
ICAgICAgICBpZiAoIWV4Y2VwdGlvbikKQEAgLTU5LDcgKzU4LDcgQEAgU3RyaW5nIHJldHJpZXZl
RXJyb3JNZXNzYWdlKEV4ZWNTdGF0ZSYgc3RhdGUsIFZNJiB2bSwgSlNWYWx1ZSBleGNlcHRpb24s
IENhdGNoU2MKICAgICAvLyBGSVhNRTogPGh0dHA6Ly93ZWJraXQub3JnL2IvMTE1MDg3PiBXZWIg
SW5zcGVjdG9yOiBXZWJDb3JlOjpyZXBvcnRFeGNlcHRpb24gc2hvdWxkIG5vdCBldmFsdWF0ZSBK
YXZhU2NyaXB0IGhhbmRsaW5nIGV4Y2VwdGlvbnMKICAgICAvLyBJZiB0aGlzIGlzIGEgY3VzdG9t
IGV4Y2VwdGlvbiBvYmplY3QsIGNhbGwgdG9TdHJpbmcgb24gaXQgdG8gdHJ5IGFuZCBnZXQgYSBu
aWNlIHN0cmluZyByZXByZXNlbnRhdGlvbiBmb3IgdGhlIGV4Y2VwdGlvbi4KICAgICBTdHJpbmcg
ZXJyb3JNZXNzYWdlOwotICAgIGlmIChhdXRvKiBlcnJvciA9IGpzRHluYW1pY0Rvd25jYXN0PEVy
cm9ySW5zdGFuY2UqPih2bSwgZXhjZXB0aW9uKSkKKyAgICBpZiAoYXV0byogZXJyb3IgPSBqc0R5
bmFtaWNDYXN0PEVycm9ySW5zdGFuY2UqPih2bSwgZXhjZXB0aW9uKSkKICAgICAgICAgZXJyb3JN
ZXNzYWdlID0gZXJyb3ItPnNhbml0aXplZFRvU3RyaW5nKCZzdGF0ZSk7CiAgICAgZWxzZQogICAg
ICAgICBlcnJvck1lc3NhZ2UgPSBleGNlcHRpb24udG9XVEZTdHJpbmcoJnN0YXRlKTsKQEAgLTg3
LDcgKzg2LDcgQEAgdm9pZCByZXBvcnRFeGNlcHRpb24oRXhlY1N0YXRlKiBleGVjLCBKU0M6OkV4
Y2VwdGlvbiogZXhjZXB0aW9uLCBDYWNoZWRTY3JpcHQqIGMKICAgICB2bS5jbGVhckxhc3RFeGNl
cHRpb24oKTsKIAogICAgIGF1dG8qIGdsb2JhbE9iamVjdCA9IGpzQ2FzdDxKU0RPTUdsb2JhbE9i
amVjdCo+KGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSk7Ci0gICAgaWYgKGF1dG8qIHdpbmRv
dyA9IGpzRHluYW1pY0Rvd25jYXN0PEpTRE9NV2luZG93Kj4odm0sIGdsb2JhbE9iamVjdCkpIHsK
KyAgICBpZiAoYXV0byogd2luZG93ID0ganNEeW5hbWljQ2FzdDxKU0RPTVdpbmRvdyo+KHZtLCBn
bG9iYWxPYmplY3QpKSB7CiAgICAgICAgIGlmICghd2luZG93LT53cmFwcGVkKCkuaXNDdXJyZW50
bHlEaXNwbGF5ZWRJbkZyYW1lKCkpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01JdGVyYXRvci5oIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01JdGVyYXRvci5oCmluZGV4IDUxNjE0ZGUxZDI4ZDY3
NmE0ZmEyZTU1ZDVhOGJlZGRhZWE2NDUzMWMuLmYyZWQ3MjRmZDliOGI4MzhjMDZhY2JjNjE0NDY4
MzliM2Q5ZjllZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9N
SXRlcmF0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUl0ZXJhdG9y
LmgKQEAgLTI1MSw3ICsyNTEsNyBAQCBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
SlNET01JdGVyYXRvclByb3RvdHlwZTxKU1dyYXBwZXIsIEl0ZXJhdG9yVHJhaQogICAgIEpTQzo6
Vk0mIHZtID0gc3RhdGUtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOwogCi0gICAgYXV0byBpdGVyYXRvciA9IGpzRHluYW1pY0Rvd25jYXN0PEpTRE9NSXRl
cmF0b3I8SlNXcmFwcGVyLCBJdGVyYXRvclRyYWl0cz4qPih2bSwgc3RhdGUtPnRoaXNWYWx1ZSgp
KTsKKyAgICBhdXRvIGl0ZXJhdG9yID0gSlNDOjpqc0R5bmFtaWNDYXN0PEpTRE9NSXRlcmF0b3I8
SlNXcmFwcGVyLCBJdGVyYXRvclRyYWl0cz4qPih2bSwgc3RhdGUtPnRoaXNWYWx1ZSgpKTsKICAg
ICBpZiAoIWl0ZXJhdG9yKQogICAgICAgICByZXR1cm4gSlNDOjpKU1ZhbHVlOjplbmNvZGUodGhy
b3dUeXBlRXJyb3Ioc3RhdGUsIHNjb3BlLCBBU0NJSUxpdGVyYWwoIkNhbm5vdCBjYWxsIG5leHQo
KSBvbiBhIG5vbi1JdGVyYXRvciBvYmplY3QiKSkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NV2luZG93UHJveHkuY3BwCmluZGV4IDUxZTA5ZTIzY2UzMjkyOWIzNjRm
NzJhNDQwZmM1NGViYjllY2EyZjYuLjQ4NzUxM2FhMzUxODM2NjA0MTNkM2E2N2VhODRkZjI0OWNl
YTFhNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93
UHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93UHJv
eHkuY3BwCkBAIC0xMTIsNyArMTEyLDcgQEAgRE9NV2luZG93JiBKU0RPTVdpbmRvd1Byb3h5Ojp3
cmFwcGVkKCkgY29uc3QKIAogRE9NV2luZG93KiBKU0RPTVdpbmRvd1Byb3h5Ojp0b1dyYXBwZWQo
Vk0mIHZtLCBKU09iamVjdCogdmFsdWUpCiB7Ci0gICAgYXV0byogd3JhcHBlciA9IGpzRHluYW1p
Y0Rvd25jYXN0PEpTRE9NV2luZG93UHJveHkqPih2bSwgdmFsdWUpOworICAgIGF1dG8qIHdyYXBw
ZXIgPSBqc0R5bmFtaWNDYXN0PEpTRE9NV2luZG93UHJveHkqPih2bSwgdmFsdWUpOwogICAgIHJl
dHVybiB3cmFwcGVyID8gJndyYXBwZXItPndpbmRvdygpLT53cmFwcGVkKCkgOiBudWxscHRyOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdyYXBwZXJD
YWNoZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XcmFwcGVyQ2FjaGUuaApp
bmRleCAzYmRjNjkwMTVjOWMyMmYwN2Q5OWE0YTkwMDkxYjYwYTQ5NzU0NmE0Li4wMjYwZTQ0NTZm
NzgwY2U0NTE4OThhNjBhN2ZjMjUxNDU2OTkxNDljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0RPTVdyYXBwZXJDYWNoZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NV3JhcHBlckNhY2hlLmgKQEAgLTI2LDcgKzI2LDYgQEAKICNpbmNsdWRl
ICJET01XcmFwcGVyV29ybGQuaCIKICNpbmNsdWRlICJKU0RPTUdsb2JhbE9iamVjdC5oIgogI2lu
Y2x1ZGUgIkpTRE9NV3JhcHBlci5oIgotI2luY2x1ZGUgIkpTRHluYW1pY0Rvd25jYXN0LmgiCiAj
aW5jbHVkZSAiU2NyaXB0V3JhcHBhYmxlLmgiCiAjaW5jbHVkZSAiU2NyaXB0V3JhcHBhYmxlSW5s
aW5lcy5oIgogI2luY2x1ZGUgIldlYkNvcmVUeXBlZEFycmF5Q29udHJvbGxlci5oIgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEb2N1bWVudEN1c3RvbS5oIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEb2N1bWVudEN1c3RvbS5oCmluZGV4IDViNjBmNTQ0
MmYyNmU5NzdmYzUwY2E2ZjRiZjRhODYxMTQxYTc4ZjkuLmFmNTRmM2VlZjhiMjVjM2MzMGE2Njc4
OTg5MmIwN2I5NDczMDQ2MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRG9jdW1lbnRDdXN0b20uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Rv
Y3VtZW50Q3VzdG9tLmgKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDE1
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxOCBZ
dXN1a2UgU3V6dWtpIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+LgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC0yOCwxMyArMjksMjIgQEAKICNpbmNsdWRlICJKU0RPTUJpbmRpbmcu
aCIKICNpbmNsdWRlICJKU0RvY3VtZW50LmgiCiAKLW5hbWVzcGFjZSBXZWJDb3JlIHsKK25hbWVz
cGFjZSBKU0MgeworbmFtZXNwYWNlIEpTQ2FzdGluZ0hlbHBlcnMgeworCit0ZW1wbGF0ZTw+Citz
dHJ1Y3QgSW5oZXJpdHNUcmFpdHM8V2ViQ29yZTo6SlNEb2N1bWVudD4geworICAgIHRlbXBsYXRl
PHR5cGVuYW1lIEZyb20+CisgICAgc3RhdGljIGlubGluZSBib29sIGluaGVyaXRzKFZNJiwgRnJv
bSogZnJvbSkKKyAgICB7CisgICAgICAgIHJldHVybiBmcm9tLT50eXBlKCkgPT0gV2ViQ29yZTo6
SlNEb2N1bWVudFdyYXBwZXJUeXBlOworICAgIH0KK307CiAKLXRlbXBsYXRlPHR5cGVuYW1lIEZy
b20+Ci1BTFdBWVNfSU5MSU5FIEpTRHluYW1pY0Nhc3RSZXN1bHQ8SlNEb2N1bWVudCwgRnJvbT4g
anNEb2N1bWVudENhc3QoRnJvbSogdmFsdWUpCi17Ci0gICAgcmV0dXJuIHZhbHVlLT50eXBlKCkg
PT0gSlNEb2N1bWVudFdyYXBwZXJUeXBlID8gSlNDOjpqc0Nhc3Q8SlNEeW5hbWljQ2FzdFJlc3Vs
dDxKU0RvY3VtZW50LCBGcm9tPj4odmFsdWUpIDogbnVsbHB0cjsKLX0KK30gLy8gbmFtZXNwYWNl
IEpTQ2FzdGluZ0hlbHBlcnMKK30gLy8gbmFtZXNwYWNlIEpTQworCituYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIEpTQzo6SlNPYmplY3QqIGNhY2hlZERvY3VtZW50V3JhcHBlcihKU0M6OkV4ZWNTdGF0
ZSYsIEpTRE9NR2xvYmFsT2JqZWN0JiwgRG9jdW1lbnQmKTsKIHZvaWQgcmVwb3J0TWVtb3J5Rm9y
RG9jdW1lbnRJZkZyYW1lbGVzcyhKU0M6OkV4ZWNTdGF0ZSYsIERvY3VtZW50Jik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0R5bmFtaWNEb3duY2FzdC5oIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEeW5hbWljRG93bmNhc3QuaApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggODBhOTRjM2E4OGE4Y2U5YWUzNzA1OTI4MmEzOTAzM2IwZjczMmQ4
Yi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0R5bmFtaWNEb3duY2FzdC5oCisrKyAvZGV2L251bGwKQEAg
LTEsMTEwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUg
bWV0OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5Z
Ci0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
Ci0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSA8SmF2YVNjcmlw
dENvcmUvSlNDSlNWYWx1ZUlubGluZXMuaD4KLSNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0Nl
bGxJbmxpbmVzLmg+Ci0jaW5jbHVkZSA8dHlwZV90cmFpdHM+Ci0KLW5hbWVzcGFjZSBXZWJDb3Jl
IHsKLQotdGVtcGxhdGU8dHlwZW5hbWUgVG8sIHR5cGVuYW1lIEZyb20+Ci11c2luZyBKU0R5bmFt
aWNDYXN0UmVzdWx0ID0gdHlwZW5hbWUgc3RkOjpjb25kaXRpb25hbDxzdGQ6OmlzX2NvbnN0PEZy
b20+Ojp2YWx1ZSwgY29uc3QgVG8sIFRvPjo6dHlwZSo7Ci0KLWNsYXNzIEpTTm9kZTsKLXRlbXBs
YXRlPHR5cGVuYW1lIEZyb20+Ci1KU0R5bmFtaWNDYXN0UmVzdWx0PEpTTm9kZSwgRnJvbT4ganNO
b2RlQ2FzdChGcm9tKiB2YWx1ZSk7Ci1jbGFzcyBKU0VsZW1lbnQ7Ci10ZW1wbGF0ZTx0eXBlbmFt
ZSBGcm9tPgotSlNEeW5hbWljQ2FzdFJlc3VsdDxKU0VsZW1lbnQsIEZyb20+IGpzRWxlbWVudENh
c3QoRnJvbSogdmFsdWUpOwotY2xhc3MgSlNEb2N1bWVudDsKLXRlbXBsYXRlPHR5cGVuYW1lIEZy
b20+Ci1KU0R5bmFtaWNDYXN0UmVzdWx0PEpTRG9jdW1lbnQsIEZyb20+IGpzRG9jdW1lbnRDYXN0
KEZyb20qIHZhbHVlKTsKLWNsYXNzIEpTRXZlbnQ7Ci10ZW1wbGF0ZTx0eXBlbmFtZSBGcm9tPgot
SlNEeW5hbWljQ2FzdFJlc3VsdDxKU0V2ZW50LCBGcm9tPiBqc0V2ZW50Q2FzdChGcm9tKiB2YWx1
ZSk7Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIFNlbGVjdD4KLXN0cnVjdCBKU0R5bmFtaWNDYXN0VHJh
aXQgewotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFRvLCB0eXBlbmFtZSBGcm9tPgotICAgIEFMV0FZ
U19JTkxJTkUgc3RhdGljIFRvIGNhc3QoSlNDOjpWTSYgdm0sIEZyb20qIGZyb20pCi0gICAgewot
ICAgICAgICByZXR1cm4gSlNDOjpqc0R5bmFtaWNDYXN0PFRvPih2bSwgZnJvbSk7Ci0gICAgfQot
fTsKLQotdGVtcGxhdGU8Pgotc3RydWN0IEpTRHluYW1pY0Nhc3RUcmFpdDxKU05vZGU+IHsKLSAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBUbywgdHlwZW5hbWUgRnJvbT4KLSAgICBBTFdBWVNfSU5MSU5F
IHN0YXRpYyBUbyBjYXN0KEpTQzo6Vk0mLCBGcm9tKiBmcm9tKQotICAgIHsKLSAgICAgICAgcmV0
dXJuIGpzTm9kZUNhc3QoZnJvbSk7Ci0gICAgfQotfTsKLQotdGVtcGxhdGU8Pgotc3RydWN0IEpT
RHluYW1pY0Nhc3RUcmFpdDxKU0VsZW1lbnQ+IHsKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUbywg
dHlwZW5hbWUgRnJvbT4KLSAgICBBTFdBWVNfSU5MSU5FIHN0YXRpYyBUbyBjYXN0KEpTQzo6Vk0m
LCBGcm9tKiBmcm9tKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGpzRWxlbWVudENhc3QoZnJvbSk7
Ci0gICAgfQotfTsKLQotdGVtcGxhdGU8Pgotc3RydWN0IEpTRHluYW1pY0Nhc3RUcmFpdDxKU0Rv
Y3VtZW50PiB7Ci0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVG8sIHR5cGVuYW1lIEZyb20+Ci0gICAg
QUxXQVlTX0lOTElORSBzdGF0aWMgVG8gY2FzdChKU0M6OlZNJiwgRnJvbSogZnJvbSkKLSAgICB7
Ci0gICAgICAgIHJldHVybiBqc0RvY3VtZW50Q2FzdChmcm9tKTsKLSAgICB9Ci19OwotCi10ZW1w
bGF0ZTw+Ci1zdHJ1Y3QgSlNEeW5hbWljQ2FzdFRyYWl0PEpTRXZlbnQ+IHsKLSAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBUbywgdHlwZW5hbWUgRnJvbT4KLSAgICBBTFdBWVNfSU5MSU5FIHN0YXRpYyBU
byBjYXN0KEpTQzo6Vk0mLCBGcm9tKiBmcm9tKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGpzRXZl
bnRDYXN0KGZyb20pOwotICAgIH0KLX07Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIFRvLCB0eXBlbmFt
ZSBGcm9tPgotQUxXQVlTX0lOTElORSBUbyBqc0R5bmFtaWNEb3duY2FzdChKU0M6OlZNJiB2bSwg
RnJvbSogZnJvbSkKLXsKLSAgICB0eXBlZGVmIEpTRHluYW1pY0Nhc3RUcmFpdDx0eXBlbmFtZSBz
dGQ6OnJlbW92ZV9jdjx0eXBlbmFtZSBzdGQ6OnJlbW92ZV9wb2ludGVyPFRvPjo6dHlwZT46OnR5
cGU+IERpc3BhdGNoZXI7Ci0gICAgcmV0dXJuIERpc3BhdGNoZXI6OnRlbXBsYXRlIGNhc3Q8VG8+
KHZtLCBmcm9tKTsKLX0KLQotdGVtcGxhdGU8dHlwZW5hbWUgVG8+Ci1BTFdBWVNfSU5MSU5FIFRv
IGpzRHluYW1pY0Rvd25jYXN0KEpTQzo6Vk0mIHZtLCBKU0M6OkpTVmFsdWUgZnJvbSkKLXsKLSAg
ICBpZiAoVU5MSUtFTFkoIWZyb20uaXNDZWxsKCkpKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsK
LSAgICByZXR1cm4ganNEeW5hbWljRG93bmNhc3Q8VG8+KHZtLCBmcm9tLmFzQ2VsbCgpKTsKLX0K
LQotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFbGVtZW50Q3Vz
dG9tLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0VsZW1lbnRDdXN0b20uaAppbmRl
eCBiMmI2NWY1M2FiZTk0ZTQ5M2I0YTZiYjI1ZTMxMDI2ZjRiMjEwNjI5Li43OWZjOTQzMGJjNDRh
OTljMTNhMTllNWVlMWJjYzNiNGI2OTVmM2ZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0VsZW1lbnRDdXN0b20uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0VsZW1lbnRDdXN0b20uaApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQg
KEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDE4IFl1c3VrZSBTdXp1a2kgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4uCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI4LDEyICsyOSwxNyBAQAogI2luY2x1ZGUgIkpTRE9N
QmluZGluZy5oIgogI2luY2x1ZGUgIkpTRWxlbWVudC5oIgogCi1uYW1lc3BhY2UgV2ViQ29yZSB7
CituYW1lc3BhY2UgSlNDIHsKK25hbWVzcGFjZSBKU0Nhc3RpbmdIZWxwZXJzIHsKIAotdGVtcGxh
dGU8dHlwZW5hbWUgRnJvbT4KLUFMV0FZU19JTkxJTkUgSlNEeW5hbWljQ2FzdFJlc3VsdDxKU0Vs
ZW1lbnQsIEZyb20+IGpzRWxlbWVudENhc3QoRnJvbSogdmFsdWUpCi17Ci0gICAgcmV0dXJuIHZh
bHVlLT50eXBlKCkgPj0gSlNFbGVtZW50VHlwZSA/IEpTQzo6anNDYXN0PEpTRHluYW1pY0Nhc3RS
ZXN1bHQ8SlNFbGVtZW50LCBGcm9tPj4odmFsdWUpIDogbnVsbHB0cjsKLX0KK3RlbXBsYXRlPD4K
K3N0cnVjdCBJbmhlcml0c1RyYWl0czxXZWJDb3JlOjpKU0VsZW1lbnQ+IHsKKyAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBGcm9tPgorICAgIHN0YXRpYyBpbmxpbmUgYm9vbCBpbmhlcml0cyhWTSYsIEZy
b20qIGZyb20pCisgICAgeworICAgICAgICByZXR1cm4gZnJvbS0+dHlwZSgpID49IFdlYkNvcmU6
OkpTRWxlbWVudFR5cGU7CisgICAgfQorfTsKIAotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorfSAv
LyBuYW1lc3BhY2UgSlNDYXN0aW5nSGVscGVycworfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50Q3VzdG9tLmggYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50Q3VzdG9tLmgKaW5kZXggMmI4NTI5M2M0ZjIzYjRh
NzFiZDQ0YzA4YTlhYWUzZGI2NTczNDYzZC4uMmU2NWEzMTIyYWNiZDZkY2M2Y2NmMDY3MDE1MmJh
NTUzZTk0ZTY2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVu
dEN1c3RvbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRDdXN0b20u
aApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE4IFl1c3VrZSBTdXp1a2kg
PHV0YXRhbmUudGVhQGdtYWlsLmNvbT4uCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
QEAgLTI2LDEzICsyNywxOSBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJKU0RPTUJpbmRp
bmcuaCIKKyNpbmNsdWRlICJKU0V2ZW50LmgiCiAKLW5hbWVzcGFjZSBXZWJDb3JlIHsKK25hbWVz
cGFjZSBKU0MgeworbmFtZXNwYWNlIEpTQ2FzdGluZ0hlbHBlcnMgewogCi10ZW1wbGF0ZTx0eXBl
bmFtZSBGcm9tPgotQUxXQVlTX0lOTElORSBKU0R5bmFtaWNDYXN0UmVzdWx0PEpTRXZlbnQsIEZy
b20+IGpzRXZlbnRDYXN0KEZyb20qIHZhbHVlKQotewotICAgIHJldHVybiB2YWx1ZS0+dHlwZSgp
ID09IEpTRXZlbnRUeXBlID8gSlNDOjpqc0Nhc3Q8SlNEeW5hbWljQ2FzdFJlc3VsdDxKU0V2ZW50
LCBGcm9tPj4odmFsdWUpIDogbnVsbHB0cjsKLX0KK3RlbXBsYXRlPD4KK3N0cnVjdCBJbmhlcml0
c1RyYWl0czxXZWJDb3JlOjpKU0V2ZW50PiB7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRnJvbT4K
KyAgICBzdGF0aWMgaW5saW5lIGJvb2wgaW5oZXJpdHMoVk0mLCBGcm9tKiBmcm9tKQorICAgIHsK
KyAgICAgICAgcmV0dXJuIGZyb20tPnR5cGUoKSA9PSBXZWJDb3JlOjpKU0V2ZW50VHlwZTsKKyAg
ICB9Cit9OwogCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCit9IC8vIG5hbWVzcGFjZSBKU0Nhc3Rp
bmdIZWxwZXJzCit9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRXZlbnRUYXJnZXRDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNFdmVudFRhcmdldEN1c3RvbS5jcHAKaW5kZXggYjRmMGNjZWFmOTVkYTBhYTE3
ZjFkZmIwOTQ0ZTk4MDU5YTNjYWY1Ny4uODliZGYxY2JlMWQ4ZjRmNTA2NDk1YmU5NjRiMGMxOWE5
OGM2N2M1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudFRh
cmdldEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudFRh
cmdldEN1c3RvbS5jcHAKQEAgLTczLDcgKzczLDcgQEAgRXZlbnRUYXJnZXQqIEpTRXZlbnRUYXJn
ZXQ6OnRvV3JhcHBlZChWTSYgdm0sIEpTVmFsdWUgdmFsdWUpCiAKIHN0ZDo6dW5pcXVlX3B0cjxK
U0V2ZW50VGFyZ2V0V3JhcHBlcj4ganNFdmVudFRhcmdldENhc3QoVk0mIHZtLCBKU1ZhbHVlIHRo
aXNWYWx1ZSkKIHsKLSAgICBpZiAoYXV0byogdGFyZ2V0ID0ganNEeW5hbWljRG93bmNhc3Q8SlNF
dmVudFRhcmdldCo+KHZtLCB0aGlzVmFsdWUpKQorICAgIGlmIChhdXRvKiB0YXJnZXQgPSBqc0R5
bmFtaWNDYXN0PEpTRXZlbnRUYXJnZXQqPih2bSwgdGhpc1ZhbHVlKSkKICAgICAgICAgcmV0dXJu
IHN0ZDo6bWFrZV91bmlxdWU8SlNFdmVudFRhcmdldFdyYXBwZXI+KHRhcmdldC0+d3JhcHBlZCgp
LCAqdGFyZ2V0KTsKICAgICBpZiAoYXV0byogd2luZG93ID0gdG9KU0RPTVdpbmRvdyh2bSwgdGhp
c1ZhbHVlKSkKICAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8SlNFdmVudFRhcmdldFdy
YXBwZXI+KHdpbmRvdy0+d3JhcHBlZCgpLCAqd2luZG93KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUN1c3RvbS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNOb2RlQ3VzdG9tLmgKaW5kZXggMmJmYzY2NDQwNzNkNzI1ZjA4ZmI3OWJjMDY1NmI4
ZjY4Zjg4MzE5Yy4uY2I1YjI2NzE0YjY1YTBiNjRmMzAxMTQ3ZWMzNzVkMzg5YjRkYWEwOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlQ3VzdG9tLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlQ3VzdG9tLmgKQEAgLTEsNSArMSw2IEBA
CiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA3LCAyMDA5LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxOCBZdXN1a2UgU3V6dWtpIDx1dGF0
YW5lLnRlYUBnbWFpbC5jb20+LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0y
OCw2ICsyOSwyMSBAQAogI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgogI2luY2x1ZGUgIkpTTm9k
ZS5oIgogCituYW1lc3BhY2UgSlNDIHsKK25hbWVzcGFjZSBKU0Nhc3RpbmdIZWxwZXJzIHsKKwor
dGVtcGxhdGU8Pgorc3RydWN0IEluaGVyaXRzVHJhaXRzPFdlYkNvcmU6OkpTTm9kZT4geworICAg
IHRlbXBsYXRlPHR5cGVuYW1lIEZyb20+CisgICAgc3RhdGljIGlubGluZSBib29sIGluaGVyaXRz
KFZNJiwgRnJvbSogZnJvbSkKKyAgICB7CisgICAgICAgIHJldHVybiBmcm9tLT50eXBlKCkgPj0g
V2ViQ29yZTo6SlNOb2RlVHlwZTsKKyAgICB9Cit9OworCit9IC8vIG5hbWVzcGFjZSBKU0Nhc3Rp
bmdIZWxwZXJzCit9IC8vIG5hbWVzcGFjZSBKU0MKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBX
RUJDT1JFX0VYUE9SVCBKU0M6OkpTVmFsdWUgY3JlYXRlV3JhcHBlcihKU0M6OkV4ZWNTdGF0ZSos
IEpTRE9NR2xvYmFsT2JqZWN0KiwgUmVmPE5vZGU+JiYpOwpAQCAtNzIsMTIgKzg4LDYgQEAgaW5s
aW5lIHZvaWQqIHJvb3QoTm9kZSYgbm9kZSkKICAgICByZXR1cm4gcm9vdCgmbm9kZSk7CiB9CiAK
LXRlbXBsYXRlPHR5cGVuYW1lIEZyb20+Ci1BTFdBWVNfSU5MSU5FIEpTRHluYW1pY0Nhc3RSZXN1
bHQ8SlNOb2RlLCBGcm9tPiBqc05vZGVDYXN0KEZyb20qIHZhbHVlKQotewotICAgIHJldHVybiB2
YWx1ZS0+dHlwZSgpID49IEpTTm9kZVR5cGUgPyBKU0M6OmpzQ2FzdDxKU0R5bmFtaWNDYXN0UmVz
dWx0PEpTTm9kZSwgRnJvbT4+KHZhbHVlKSA6IG51bGxwdHI7Ci19Ci0KIEFMV0FZU19JTkxJTkUg
SlNDOjpKU1ZhbHVlIEpTTm9kZTo6bm9kZVR5cGUoSlNDOjpFeGVjU3RhdGUmKSBjb25zdAogewog
ICAgIHJldHVybiBKU0M6OmpzTnVtYmVyKHN0YXRpY19jYXN0PHVpbnQ4X3Q+KHR5cGUoKSkgJiBK
U05vZGVUeXBlTWFzayk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNQbHVnaW5FbGVtZW50RnVuY3Rpb25zLmNwcAppbmRleCA0MGI1MThmNTUwZTdlZWJjMmRjOTJh
MzQ0OTg5OTU5OGY5ZmMyYjEwLi40ZTEzNmMxMTBlNDliYmNiN2E5ZWJmZDYxYzBiMjc2Yjg1NWQ4
ZmQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1BsdWdpbkVsZW1l
bnRGdW5jdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUGx1Z2lu
RWxlbWVudEZ1bmN0aW9ucy5jcHAKQEAgLTk5LDcgKzk5LDcgQEAgc3RhdGljIEVuY29kZWRKU1Zh
bHVlIHBsdWdpbkVsZW1lbnRQcm9wZXJ0eUdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRK
U1ZhbHUKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJF
X1RIUk9XX1NDT1BFKHZtKTsKIAotICAgIEpTSFRNTEVsZW1lbnQqIHRoaXNPYmplY3QgPSBqc0R5
bmFtaWNEb3duY2FzdDxKU0hUTUxFbGVtZW50Kj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFs
dWUpKTsKKyAgICBKU0hUTUxFbGVtZW50KiB0aGlzT2JqZWN0ID0ganNEeW5hbWljQ2FzdDxKU0hU
TUxFbGVtZW50Kj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoIXRo
aXNPYmplY3QpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIHNjb3BlKTsK
ICAgICBKU09iamVjdCogc2NyaXB0T2JqZWN0ID0gcGx1Z2luU2NyaXB0T2JqZWN0KGV4ZWMsIHRo
aXNPYmplY3QpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNSZWFk
YWJsZVN0cmVhbVNvdXJjZUN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U1JlYWRhYmxlU3RyZWFtU291cmNlQ3VzdG9tLmNwcAppbmRleCA4NGZhNWM0Y2VkYTA1MTI1OTQz
YjhhY2RjYjA3ZjY0NzMwNTZmNWNjLi5mZTk3NWZiMGQ1NmI0YWI1NzNjMGQyY2NjY2EwNmVhZWNm
NTUxYzViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1JlYWRhYmxl
U3RyZWFtU291cmNlQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U1JlYWRhYmxlU3RyZWFtU291cmNlQ3VzdG9tLmNwcApAQCAtNDEsNyArNDEsNyBAQCBKU1ZhbHVl
IEpTUmVhZGFibGVTdHJlYW1Tb3VyY2U6OnN0YXJ0KEV4ZWNTdGF0ZSYgc3RhdGUsIFJlZjxEZWZl
cnJlZFByb21pc2U+JiYgcAogICAgIAogICAgIC8vIEZJWE1FOiBXaHkgaXMgaXQgb2sgdG8gQVNT
RVJUIHRoZSBhcmd1bWVudCBjb3VudCBoZXJlPwogICAgIEFTU0VSVChzdGF0ZS5hcmd1bWVudENv
dW50KCkpOwotICAgIEpTUmVhZGFibGVTdHJlYW1EZWZhdWx0Q29udHJvbGxlciogY29udHJvbGxl
ciA9IGpzRHluYW1pY0Rvd25jYXN0PEpTUmVhZGFibGVTdHJlYW1EZWZhdWx0Q29udHJvbGxlcio+
KHZtLCBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgwKSk7CisgICAgSlNSZWFkYWJsZVN0cmVhbURl
ZmF1bHRDb250cm9sbGVyKiBjb250cm9sbGVyID0ganNEeW5hbWljQ2FzdDxKU1JlYWRhYmxlU3Ry
ZWFtRGVmYXVsdENvbnRyb2xsZXIqPih2bSwgc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMCkpOwog
ICAgIEFTU0VSVChjb250cm9sbGVyKTsKIAogICAgIG1fY29udHJvbGxlci5zZXQodm0sIHRoaXMs
IGNvbnRyb2xsZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNX
b3JrZXJHbG9iYWxTY29wZUJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNX
b3JrZXJHbG9iYWxTY29wZUJhc2UuY3BwCmluZGV4IDJmMDE1NTJjY2NjMTM0YjlhZDg1OTQ5NDE4
ZjVhMGJiOTk4YWVkNGUuLjg1YmY3NWM1MWIyYjJmZmU3YTc0NzQyZmEwZGRmYjczYzEzYjViN2Eg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyR2xvYmFsU2Nv
cGVCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckdsb2Jh
bFNjb3BlQmFzZS5jcHAKQEAgLTMxLDcgKzMxLDYgQEAKICNpbmNsdWRlICJET01XcmFwcGVyV29y
bGQuaCIKICNpbmNsdWRlICJKU0RPTUdsb2JhbE9iamVjdFRhc2suaCIKICNpbmNsdWRlICJKU0Rl
ZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlLmgiCi0jaW5jbHVkZSAiSlNEeW5hbWljRG93bmNhc3Qu
aCIKICNpbmNsdWRlICJKU1dvcmtlckdsb2JhbFNjb3BlLmgiCiAjaW5jbHVkZSAiV29ya2VyR2xv
YmFsU2NvcGUuaCIKICNpbmNsdWRlICJXb3JrZXJUaHJlYWQuaCIKQEAgLTE1NCw3ICsxNTMsNyBA
QCBKU0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlKiB0b0pTRGVkaWNhdGVkV29ya2VyR2xvYmFs
U2NvcGUoVk0mIHZtLCBKU1ZhbHVlIHZhbAogICAgIGlmIChjbGFzc0luZm8gPT0gSlNEZWRpY2F0
ZWRXb3JrZXJHbG9iYWxTY29wZTo6aW5mbygpKQogICAgICAgICByZXR1cm4ganNDYXN0PEpTRGVk
aWNhdGVkV29ya2VyR2xvYmFsU2NvcGUqPihhc09iamVjdCh2YWx1ZSkpOwogICAgIGlmIChjbGFz
c0luZm8gPT0gSlNQcm94eTo6aW5mbygpKQotICAgICAgICByZXR1cm4ganNEeW5hbWljRG93bmNh
c3Q8SlNEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZSo+KHZtLCBqc0Nhc3Q8SlNQcm94eSo+KGFz
T2JqZWN0KHZhbHVlKSktPnRhcmdldCgpKTsKKyAgICAgICAgcmV0dXJuIGpzRHluYW1pY0Nhc3Q8
SlNEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZSo+KHZtLCBqc0Nhc3Q8SlNQcm94eSo+KGFzT2Jq
ZWN0KHZhbHVlKSktPnRhcmdldCgpKTsKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIApAQCAtMTcy
LDcgKzE3MSw3IEBAIEpTV29ya2VyR2xvYmFsU2NvcGUqIHRvSlNXb3JrZXJHbG9iYWxTY29wZShW
TSYgdm0sIEpTVmFsdWUgdmFsdWUpCiAjZW5kaWYKIAogICAgIGlmIChjbGFzc0luZm8gPT0gSlNQ
cm94eTo6aW5mbygpKQotICAgICAgICByZXR1cm4ganNEeW5hbWljRG93bmNhc3Q8SlNXb3JrZXJH
bG9iYWxTY29wZSo+KHZtLCBqc0Nhc3Q8SlNQcm94eSo+KGFzT2JqZWN0KHZhbHVlKSktPnRhcmdl
dCgpKTsKKyAgICAgICAgcmV0dXJuIGpzRHluYW1pY0Nhc3Q8SlNXb3JrZXJHbG9iYWxTY29wZSo+
KHZtLCBqc0Nhc3Q8SlNQcm94eSo+KGFzT2JqZWN0KHZhbHVlKSktPnRhcmdldCgpKTsKIAogICAg
IHJldHVybiBudWxscHRyOwogfQpAQCAtMTg2LDcgKzE4NSw3IEBAIEpTU2VydmljZVdvcmtlckds
b2JhbFNjb3BlKiB0b0pTU2VydmljZVdvcmtlckdsb2JhbFNjb3BlKFZNJiB2bSwgSlNWYWx1ZSB2
YWx1ZSkKICAgICBpZiAoY2xhc3NJbmZvID09IEpTU2VydmljZVdvcmtlckdsb2JhbFNjb3BlOjpp
bmZvKCkpCiAgICAgICAgIHJldHVybiBqc0Nhc3Q8SlNTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUq
Pihhc09iamVjdCh2YWx1ZSkpOwogICAgIGlmIChjbGFzc0luZm8gPT0gSlNQcm94eTo6aW5mbygp
KQotICAgICAgICByZXR1cm4ganNEeW5hbWljRG93bmNhc3Q8SlNTZXJ2aWNlV29ya2VyR2xvYmFs
U2NvcGUqPih2bSwganNDYXN0PEpTUHJveHkqPihhc09iamVjdCh2YWx1ZSkpLT50YXJnZXQoKSk7
CisgICAgICAgIHJldHVybiBqc0R5bmFtaWNDYXN0PEpTU2VydmljZVdvcmtlckdsb2JhbFNjb3Bl
Kj4odm0sIGpzQ2FzdDxKU1Byb3h5Kj4oYXNPYmplY3QodmFsdWUpKS0+dGFyZ2V0KCkpOwogICAg
IHJldHVybiBudWxscHRyOwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9SZWFkYWJsZVN0cmVhbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9SZWFkYWJsZVN0cmVhbS5jcHAKaW5kZXggYTZjZmFhYzVmZTk4NWI4NzZmODJkODljYzAyYjEw
NDk4YjZmODY0Ni4uNDQ2YWFiNTQ5NjgwNTAxMjUwM2YwYmE0YzEwMDljNmIyZTE0ODY3MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvUmVhZGFibGVTdHJlYW0uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1JlYWRhYmxlU3RyZWFtLmNwcApAQCAtNTMs
NyArNTMsNyBAQCBSZWY8UmVhZGFibGVTdHJlYW0+IFJlYWRhYmxlU3RyZWFtOjpjcmVhdGUoSlND
OjpFeGVjU3RhdGUmIGV4ZWNTdGF0ZSwgUmVmUHRyPFJlYQogICAgIGFyZ3MuYXBwZW5kKHNvdXJj
ZSA/IHRvSlNOZXdseUNyZWF0ZWQoJmV4ZWNTdGF0ZSwgJmdsb2JhbE9iamVjdCwgc291cmNlLnJl
bGVhc2VOb25OdWxsKCkpIDogSlNDOjpqc1VuZGVmaW5lZCgpKTsKICAgICBBU1NFUlQoIWFyZ3Mu
aGFzT3ZlcmZsb3dlZCgpKTsKIAotICAgIGF1dG8gbmV3UmVhZGFibGVTdHJlYW0gPSBqc0R5bmFt
aWNEb3duY2FzdDxKU1JlYWRhYmxlU3RyZWFtKj4odm0sIEpTQzo6Y29uc3RydWN0KCZleGVjU3Rh
dGUsIGNvbnN0cnVjdG9yLCBjb25zdHJ1Y3RUeXBlLCBjb25zdHJ1Y3REYXRhLCBhcmdzKSk7Cisg
ICAgYXV0byBuZXdSZWFkYWJsZVN0cmVhbSA9IGpzRHluYW1pY0Nhc3Q8SlNSZWFkYWJsZVN0cmVh
bSo+KHZtLCBKU0M6OmNvbnN0cnVjdCgmZXhlY1N0YXRlLCBjb25zdHJ1Y3RvciwgY29uc3RydWN0
VHlwZSwgY29uc3RydWN0RGF0YSwgYXJncykpOwogICAgIHNjb3BlLmFzc2VydE5vRXhjZXB0aW9u
KCk7CiAKICAgICByZXR1cm4gY3JlYXRlKGdsb2JhbE9iamVjdCwgKm5ld1JlYWRhYmxlU3RyZWFt
KTsKQEAgLTE1NSw4ICsxNTUsOCBAQCBib29sIFJlYWRhYmxlU3RyZWFtOjppc0Rpc3R1cmJlZCgp
IGNvbnN0CiBib29sIFJlYWRhYmxlU3RyZWFtOjppc0Rpc3R1cmJlZChFeGVjU3RhdGUmIHN0YXRl
LCBKU1ZhbHVlIHZhbHVlKQogewogICAgIGF1dG8mIHZtID0gc3RhdGUudm0oKTsKLSAgICBhdXRv
JiBnbG9iYWxPYmplY3QgPSAqanNEeW5hbWljRG93bmNhc3Q8SlNET01HbG9iYWxPYmplY3QqPih2
bSwgc3RhdGUubGV4aWNhbEdsb2JhbE9iamVjdCgpKTsKLSAgICBhdXRvKiByZWFkYWJsZVN0cmVh
bSA9IGpzRHluYW1pY0Rvd25jYXN0PEpTUmVhZGFibGVTdHJlYW0qPih2bSwgdmFsdWUpOworICAg
IGF1dG8mIGdsb2JhbE9iamVjdCA9ICpqc0R5bmFtaWNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4o
dm0sIHN0YXRlLmxleGljYWxHbG9iYWxPYmplY3QoKSk7CisgICAgYXV0byogcmVhZGFibGVTdHJl
YW0gPSBqc0R5bmFtaWNDYXN0PEpTUmVhZGFibGVTdHJlYW0qPih2bSwgdmFsdWUpOwogCiAgICAg
cmV0dXJuIGNoZWNrUmVhZGFibGVTdHJlYW0oZ2xvYmFsT2JqZWN0LCByZWFkYWJsZVN0cmVhbSwg
Z2xvYmFsT2JqZWN0LmJ1aWx0aW5JbnRlcm5hbEZ1bmN0aW9ucygpLnJlYWRhYmxlU3RyZWFtSW50
ZXJuYWxzKCkubV9pc1JlYWRhYmxlU3RyZWFtRGlzdHVyYmVkRnVuY3Rpb24uZ2V0KCkpOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvUmVhZGFibGVTdHJlYW0uaCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1JlYWRhYmxlU3RyZWFtLmgKaW5kZXggMGI3MGQ3
MDY2NDFhMDM3NTU2NDE1NjQ3NzM1YmJjMDc3YTJjYTNlZS4uYmU2ZDYyOWQ1NzA4YzI5MTEzNTIy
ZTVlZmNmYmUxNTYzZTY3ZDEzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvUmVhZGFibGVTdHJlYW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9SZWFk
YWJsZVN0cmVhbS5oCkBAIC02MCwxMSArNjAsMTEgQEAgc3RydWN0IEpTUmVhZGFibGVTdHJlYW1X
cmFwcGVyQ29udmVydGVyIHsKICAgICBzdGF0aWMgUmVmUHRyPFJlYWRhYmxlU3RyZWFtPiB0b1dy
YXBwZWQoSlNDOjpFeGVjU3RhdGUmIHN0YXRlLCBKU0M6OkpTVmFsdWUgdmFsdWUpCiAgICAgewog
ICAgICAgICBKU0M6OlZNJiB2bSA9IHN0YXRlLnZtKCk7Ci0gICAgICAgIGF1dG8qIGdsb2JhbE9i
amVjdCA9IGpzRHluYW1pY0Rvd25jYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4odm0sIHN0YXRlLmxl
eGljYWxHbG9iYWxPYmplY3QoKSk7CisgICAgICAgIGF1dG8qIGdsb2JhbE9iamVjdCA9IEpTQzo6
anNEeW5hbWljQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KHZtLCBzdGF0ZS5sZXhpY2FsR2xvYmFs
T2JqZWN0KCkpOwogICAgICAgICBpZiAoIWdsb2JhbE9iamVjdCkKICAgICAgICAgICAgIHJldHVy
biBudWxscHRyOwogCi0gICAgICAgIGF1dG8qIHJlYWRhYmxlU3RyZWFtID0ganNEeW5hbWljRG93
bmNhc3Q8SlNSZWFkYWJsZVN0cmVhbSo+KHZtLCB2YWx1ZSk7CisgICAgICAgIGF1dG8qIHJlYWRh
YmxlU3RyZWFtID0gSlNDOjpqc0R5bmFtaWNDYXN0PEpTUmVhZGFibGVTdHJlYW0qPih2bSwgdmFs
dWUpOwogICAgICAgICBpZiAoIXJlYWRhYmxlU3RyZWFtKQogICAgICAgICAgICAgcmV0dXJuIG51
bGxwdHI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE1v
ZHVsZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVM
b2FkZXIuY3BwCmluZGV4IDIzMjdmYmM0ZTkwOWFiMWFiNjRkOGJkYzQwYWQ0YmZhNjdkYzBiOWMu
LmQwNGM2ZjlhMmRlZmMwNTM0MzFmYjI5MzBkNDgxY2QxM2YyODAxNzcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0TW9kdWxlTG9hZGVyLmNwcApAQCAtMTk5LDcg
KzE5OSw3IEBAIEpTQzo6SlNWYWx1ZSBTY3JpcHRNb2R1bGVMb2FkZXI6OmV2YWx1YXRlKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSoKICAgICAvLyBGSVhNRTogQ3VycmVudGx5
LCB3ZSBvbmx5IHN1cHBvcnQgSlNNb2R1bGVSZWNvcmQuCiAgICAgLy8gT25jZSB0aGUgcmVmbGVj
dGl2ZSBwYXJ0IG9mIHRoZSBtb2R1bGUgbG9hZGVyIGlzIHN1cHBvcnRlZCwgd2Ugd2lsbCBoYW5k
bGUgYXJiaXRyYXJ5IHZhbHVlcy4KICAgICAvLyBodHRwczovL3doYXR3Zy5naXRodWIuaW8vbG9h
ZGVyLyNyZWdpc3RyeS1wcm90b3R5cGUtcHJvdmlkZQotICAgIGF1dG8qIG1vZHVsZVJlY29yZCA9
IGpzRHluYW1pY0Rvd25jYXN0PEpTQzo6SlNNb2R1bGVSZWNvcmQqPih2bSwgbW9kdWxlUmVjb3Jk
VmFsdWUpOworICAgIGF1dG8qIG1vZHVsZVJlY29yZCA9IGpzRHluYW1pY0Nhc3Q8SlNDOjpKU01v
ZHVsZVJlY29yZCo+KHZtLCBtb2R1bGVSZWNvcmRWYWx1ZSk7CiAgICAgaWYgKCFtb2R1bGVSZWNv
cmQpCiAgICAgICAgIHJldHVybiBKU0M6OmpzVW5kZWZpbmVkKCk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCmluZGV4IDUz
MmM3MTdkYzg3ZTA2ZDdlNTgzMzVhMDNhYThkNWRmZmRjY2I2MzkuLjdhNDRmOTMwYTRmNDg0YWIz
ZjA4ZjczMWIzZmVmNjY5NTI5MWViNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcApAQCAtMTAzNyw3ICsxMDM3LDcgQEAg
Y2xhc3MgQ2xvbmVTZXJpYWxpemVyIDogQ2xvbmVCYXNlIHsKICNlbmRpZgogCiAjaWYgRU5BQkxF
KFdFQkFTU0VNQkxZKQotICAgICAgICAgICAgaWYgKEpTV2ViQXNzZW1ibHlNb2R1bGUqIG1vZHVs
ZSA9IGpzRHluYW1pY0Rvd25jYXN0PEpTV2ViQXNzZW1ibHlNb2R1bGUqPih2bSwgb2JqKSkgewor
ICAgICAgICAgICAgaWYgKEpTV2ViQXNzZW1ibHlNb2R1bGUqIG1vZHVsZSA9IGpzRHluYW1pY0Nh
c3Q8SlNXZWJBc3NlbWJseU1vZHVsZSo+KHZtLCBvYmopKSB7CiAgICAgICAgICAgICAgICAgaWYg
KG1fY29udGV4dCAhPSBTZXJpYWxpemF0aW9uQ29udGV4dDo6V29ya2VyUG9zdE1lc3NhZ2UgJiYg
bV9jb250ZXh0ICE9IFNlcmlhbGl6YXRpb25Db250ZXh0OjpXaW5kb3dQb3N0TWVzc2FnZSkKICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCkBAIC0xNTc0LDcgKzE1NzQsNyBAQCBT
ZXJpYWxpemF0aW9uUmV0dXJuQ29kZSBDbG9uZVNlcmlhbGl6ZXI6OnNlcmlhbGl6ZShKU1ZhbHVl
IGluKQogICAgICAgICAgICAgICAgIGlmICghaXRlcmF0b3ItPm5leHRLZXlWYWx1ZShtX2V4ZWMs
IGtleSwgdmFsdWUpKSB7CiAgICAgICAgICAgICAgICAgICAgIG1hcEl0ZXJhdG9yU3RhY2sucmVt
b3ZlTGFzdCgpOwogICAgICAgICAgICAgICAgICAgICBKU09iamVjdCogb2JqZWN0ID0gaW5wdXRP
YmplY3RTdGFjay5sYXN0KCk7Ci0gICAgICAgICAgICAgICAgICAgIEFTU0VSVChqc0R5bmFtaWNE
b3duY2FzdDxKU01hcCo+KHZtLCBvYmplY3QpKTsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJU
KGpzRHluYW1pY0Nhc3Q8SlNNYXAqPih2bSwgb2JqZWN0KSk7CiAgICAgICAgICAgICAgICAgICAg
IHByb3BlcnR5U3RhY2suYXBwZW5kKFByb3BlcnR5TmFtZUFycmF5KCZ2bSwgUHJvcGVydHlOYW1l
TW9kZTo6U3RyaW5ncywgUHJpdmF0ZVN5bWJvbE1vZGU6OkV4Y2x1ZGUpKTsKICAgICAgICAgICAg
ICAgICAgICAgb2JqZWN0LT5tZXRob2RUYWJsZSh2bSktPmdldE93blByb3BlcnR5TmFtZXMob2Jq
ZWN0LCBtX2V4ZWMsIHByb3BlcnR5U3RhY2subGFzdCgpLCBFbnVtZXJhdGlvbk1vZGUoKSk7CiAg
ICAgICAgICAgICAgICAgICAgIHdyaXRlKE5vbk1hcFByb3BlcnRpZXNUYWcpOwpAQCAtMTYxOCw3
ICsxNjE4LDcgQEAgU2VyaWFsaXphdGlvblJldHVybkNvZGUgQ2xvbmVTZXJpYWxpemVyOjpzZXJp
YWxpemUoSlNWYWx1ZSBpbikKICAgICAgICAgICAgICAgICBpZiAoIWl0ZXJhdG9yLT5uZXh0KG1f
ZXhlYywga2V5KSkgewogICAgICAgICAgICAgICAgICAgICBzZXRJdGVyYXRvclN0YWNrLnJlbW92
ZUxhc3QoKTsKICAgICAgICAgICAgICAgICAgICAgSlNPYmplY3QqIG9iamVjdCA9IGlucHV0T2Jq
ZWN0U3RhY2subGFzdCgpOwotICAgICAgICAgICAgICAgICAgICBBU1NFUlQoanNEeW5hbWljRG93
bmNhc3Q8SlNTZXQqPih2bSwgb2JqZWN0KSk7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVChq
c0R5bmFtaWNDYXN0PEpTU2V0Kj4odm0sIG9iamVjdCkpOwogICAgICAgICAgICAgICAgICAgICBw
cm9wZXJ0eVN0YWNrLmFwcGVuZChQcm9wZXJ0eU5hbWVBcnJheSgmdm0sIFByb3BlcnR5TmFtZU1v
ZGU6OlN0cmluZ3MsIFByaXZhdGVTeW1ib2xNb2RlOjpFeGNsdWRlKSk7CiAgICAgICAgICAgICAg
ICAgICAgIG9iamVjdC0+bWV0aG9kVGFibGUodm0pLT5nZXRPd25Qcm9wZXJ0eU5hbWVzKG9iamVj
dCwgbV9leGVjLCBwcm9wZXJ0eVN0YWNrLmxhc3QoKSwgRW51bWVyYXRpb25Nb2RlKCkpOwogICAg
ICAgICAgICAgICAgICAgICB3cml0ZShOb25TZXRQcm9wZXJ0aWVzVGFnKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1N0cnVjdHVyZWRDbG9uZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9TdHJ1Y3R1cmVkQ2xvbmUuY3BwCmluZGV4IDY1MmQ2YjM5NWE0
NzEzM2ZiZmNlZGQ0N2U3Y2NjYjQyNGU4NWY0OGEuLmVlZDIyMTIzNWRjMDdkMWFjN2Y0Njc2ZGNk
MDhmMTZjNzg2Y2IwYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1N0
cnVjdHVyZWRDbG9uZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU3RydWN0
dXJlZENsb25lLmNwcApAQCAtODAsNyArODAsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIHN0cnVjdHVyZWRDbG9uZUFycmF5QnVmZmVyVmlldyhFeGVjU3RhdGUqIHN0YXRlKQogCiAg
ICAgSlNWYWx1ZSB2YWx1ZSA9IHN0YXRlLT51bmNoZWNrZWRBcmd1bWVudCgwKTsKICAgICBWTSYg
dm0gPSBzdGF0ZS0+dm0oKTsKLSAgICBhdXRvKiBidWZmZXJWaWV3ID0ganNEeW5hbWljRG93bmNh
c3Q8SlNBcnJheUJ1ZmZlclZpZXcqPih2bSwgdmFsdWUpOworICAgIGF1dG8qIGJ1ZmZlclZpZXcg
PSBqc0R5bmFtaWNDYXN0PEpTQXJyYXlCdWZmZXJWaWV3Kj4odm0sIHZhbHVlKTsKICAgICBBU1NF
UlQoYnVmZmVyVmlldyk7CiAKICAgICBhdXRvKiBidWZmZXIgPSBidWZmZXJWaWV3LT51bnNoYXJl
ZEJ1ZmZlcigpOwpAQCAtOTEsMjUgKzkxLDI1IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgc3RydWN0dXJlZENsb25lQXJyYXlCdWZmZXJWaWV3KEV4ZWNTdGF0ZSogc3RhdGUpCiAgICAg
fQogICAgIGF1dG8gYnVmZmVyQ2xvbmUgPSBBcnJheUJ1ZmZlcjo6dHJ5Q3JlYXRlKGJ1ZmZlci0+
ZGF0YSgpLCBidWZmZXItPmJ5dGVMZW5ndGgoKSk7CiAKLSAgICBpZiAoanNEeW5hbWljRG93bmNh
c3Q8SlNJbnQ4QXJyYXkqPih2bSwgdmFsdWUpKQorICAgIGlmIChqc0R5bmFtaWNDYXN0PEpTSW50
OEFycmF5Kj4odm0sIHZhbHVlKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU0lu
dDhBcnJheTo6Y3JlYXRlKHN0YXRlLCBidWZmZXJWaWV3LT5zdHJ1Y3R1cmUoKSwgV1RGTW92ZShi
dWZmZXJDbG9uZSksIGJ1ZmZlclZpZXctPmJ5dGVPZmZzZXQoKSwgYnVmZmVyVmlldy0+bGVuZ3Ro
KCkpKTsKLSAgICBpZiAoanNEeW5hbWljRG93bmNhc3Q8SlNJbnQxNkFycmF5Kj4odm0sIHZhbHVl
KSkKKyAgICBpZiAoanNEeW5hbWljQ2FzdDxKU0ludDE2QXJyYXkqPih2bSwgdmFsdWUpKQogICAg
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTSW50MTZBcnJheTo6Y3JlYXRlKHN0YXRlLCBi
dWZmZXJWaWV3LT5zdHJ1Y3R1cmUoKSwgV1RGTW92ZShidWZmZXJDbG9uZSksIGJ1ZmZlclZpZXct
PmJ5dGVPZmZzZXQoKSwgYnVmZmVyVmlldy0+bGVuZ3RoKCkpKTsKLSAgICBpZiAoanNEeW5hbWlj
RG93bmNhc3Q8SlNJbnQzMkFycmF5Kj4odm0sIHZhbHVlKSkKKyAgICBpZiAoanNEeW5hbWljQ2Fz
dDxKU0ludDMyQXJyYXkqPih2bSwgdmFsdWUpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKEpTSW50MzJBcnJheTo6Y3JlYXRlKHN0YXRlLCBidWZmZXJWaWV3LT5zdHJ1Y3R1cmUoKSwg
V1RGTW92ZShidWZmZXJDbG9uZSksIGJ1ZmZlclZpZXctPmJ5dGVPZmZzZXQoKSwgYnVmZmVyVmll
dy0+bGVuZ3RoKCkpKTsKLSAgICBpZiAoanNEeW5hbWljRG93bmNhc3Q8SlNVaW50OEFycmF5Kj4o
dm0sIHZhbHVlKSkKKyAgICBpZiAoanNEeW5hbWljQ2FzdDxKU1VpbnQ4QXJyYXkqPih2bSwgdmFs
dWUpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVWludDhBcnJheTo6Y3JlYXRl
KHN0YXRlLCBidWZmZXJWaWV3LT5zdHJ1Y3R1cmUoKSwgV1RGTW92ZShidWZmZXJDbG9uZSksIGJ1
ZmZlclZpZXctPmJ5dGVPZmZzZXQoKSwgYnVmZmVyVmlldy0+bGVuZ3RoKCkpKTsKLSAgICBpZiAo
anNEeW5hbWljRG93bmNhc3Q8SlNVaW50OENsYW1wZWRBcnJheSo+KHZtLCB2YWx1ZSkpCisgICAg
aWYgKGpzRHluYW1pY0Nhc3Q8SlNVaW50OENsYW1wZWRBcnJheSo+KHZtLCB2YWx1ZSkpCiAgICAg
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNVaW50OENsYW1wZWRBcnJheTo6Y3JlYXRlKHN0
YXRlLCBidWZmZXJWaWV3LT5zdHJ1Y3R1cmUoKSwgV1RGTW92ZShidWZmZXJDbG9uZSksIGJ1ZmZl
clZpZXctPmJ5dGVPZmZzZXQoKSwgYnVmZmVyVmlldy0+bGVuZ3RoKCkpKTsKLSAgICBpZiAoanNE
eW5hbWljRG93bmNhc3Q8SlNVaW50MTZBcnJheSo+KHZtLCB2YWx1ZSkpCisgICAgaWYgKGpzRHlu
YW1pY0Nhc3Q8SlNVaW50MTZBcnJheSo+KHZtLCB2YWx1ZSkpCiAgICAgICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoSlNVaW50MTZBcnJheTo6Y3JlYXRlKHN0YXRlLCBidWZmZXJWaWV3LT5zdHJ1
Y3R1cmUoKSwgV1RGTW92ZShidWZmZXJDbG9uZSksIGJ1ZmZlclZpZXctPmJ5dGVPZmZzZXQoKSwg
YnVmZmVyVmlldy0+bGVuZ3RoKCkpKTsKLSAgICBpZiAoanNEeW5hbWljRG93bmNhc3Q8SlNVaW50
MzJBcnJheSo+KHZtLCB2YWx1ZSkpCisgICAgaWYgKGpzRHluYW1pY0Nhc3Q8SlNVaW50MzJBcnJh
eSo+KHZtLCB2YWx1ZSkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNVaW50MzJB
cnJheTo6Y3JlYXRlKHN0YXRlLCBidWZmZXJWaWV3LT5zdHJ1Y3R1cmUoKSwgV1RGTW92ZShidWZm
ZXJDbG9uZSksIGJ1ZmZlclZpZXctPmJ5dGVPZmZzZXQoKSwgYnVmZmVyVmlldy0+bGVuZ3RoKCkp
KTsKLSAgICBpZiAoanNEeW5hbWljRG93bmNhc3Q8SlNGbG9hdDMyQXJyYXkqPih2bSwgdmFsdWUp
KQorICAgIGlmIChqc0R5bmFtaWNDYXN0PEpTRmxvYXQzMkFycmF5Kj4odm0sIHZhbHVlKSkKICAg
ICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU0Zsb2F0MzJBcnJheTo6Y3JlYXRlKHN0YXRl
LCBidWZmZXJWaWV3LT5zdHJ1Y3R1cmUoKSwgV1RGTW92ZShidWZmZXJDbG9uZSksIGJ1ZmZlclZp
ZXctPmJ5dGVPZmZzZXQoKSwgYnVmZmVyVmlldy0+bGVuZ3RoKCkpKTsKLSAgICBpZiAoanNEeW5h
bWljRG93bmNhc3Q8SlNGbG9hdDY0QXJyYXkqPih2bSwgdmFsdWUpKQorICAgIGlmIChqc0R5bmFt
aWNDYXN0PEpTRmxvYXQ2NEFycmF5Kj4odm0sIHZhbHVlKSkKICAgICAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShKU0Zsb2F0NjRBcnJheTo6Y3JlYXRlKHN0YXRlLCBidWZmZXJWaWV3LT5zdHJ1
Y3R1cmUoKSwgV1RGTW92ZShidWZmZXJDbG9uZSksIGJ1ZmZlclZpZXctPmJ5dGVPZmZzZXQoKSwg
YnVmZmVyVmlldy0+bGVuZ3RoKCkpKTsKLSAgICBpZiAoanNEeW5hbWljRG93bmNhc3Q8SlNEYXRh
Vmlldyo+KHZtLCB2YWx1ZSkpCisgICAgaWYgKGpzRHluYW1pY0Nhc3Q8SlNEYXRhVmlldyo+KHZt
LCB2YWx1ZSkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNEYXRhVmlldzo6Y3Jl
YXRlKHN0YXRlLCBidWZmZXJWaWV3LT5zdHJ1Y3R1cmUoKSwgV1RGTW92ZShidWZmZXJDbG9uZSks
IGJ1ZmZlclZpZXctPmJ5dGVPZmZzZXQoKSwgYnVmZmVyVmlldy0+bGVuZ3RoKCkpKTsKIAogICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQppbmRleCBjNTk3ZDVhMTMzMTI3OGEzMzVhMmMxYTAy
Nzk1MDYyY2Q0NDEwNzMwLi4yMjQyOTlkY2JiMTE2OTgwODljYzk3MmVmNmViYTQ1OWJmNzJhMWNh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JKUy5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JKUy5wbQpAQCAtMzcxOSw3ICszNzE5LDcgQEAgc3ViIEdldENhc3RpbmdIZWxwZXJGb3JUaGlz
T2JqZWN0CiB7CiAgICAgbXkgJGludGVyZmFjZSA9IHNoaWZ0OwogICAgIG15ICRpbnRlcmZhY2VO
YW1lID0gJGludGVyZmFjZS0+dHlwZS0+bmFtZTsKLSAgICByZXR1cm4gImpzRHluYW1pY0Rvd25j
YXN0PEpTJGludGVyZmFjZU5hbWUqPiI7CisgICAgcmV0dXJuICJqc0R5bmFtaWNDYXN0PEpTJGlu
dGVyZmFjZU5hbWUqPiI7CiB9CiAKICMgaHR0cDovL2hleWNhbS5naXRodWIuaW8vd2ViaWRsLyNV
bnNjb3BhYmxlCkBAIC00NDIyLDcgKzQ0MjIsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlv
bgogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOwogICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIiAgICBWTSYgdm0gPSBzdGF0ZS0+dm0oKTtcbiIpOwogICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgIiAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZt
KTtcbiIpOwotICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBhdXRvKiBwcm90b3R5cGUg
PSBqc0R5bmFtaWNEb3duY2FzdDwke2NsYXNzTmFtZX1Qcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6
ZGVjb2RlKHRoaXNWYWx1ZSkpO1xuIik7CisgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAg
IGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Nhc3Q8JHtjbGFzc05hbWV9UHJvdG90eXBlKj4o
dm0sIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTtcbiIpOwogICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIiAgICBpZiAoVU5MSUtFTFkoIXByb3RvdHlwZSkpXG4iKTsKICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICIgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKHN0YXRlLCB0
aHJvd1Njb3BlKTtcbiIpOwogCkBAIC00NDQyLDcgKzQ0NDIsNyBAQCBzdWIgR2VuZXJhdGVJbXBs
ZW1lbnRhdGlvbgogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOwogICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIiAgICBWTSYgdm0gPSBzdGF0ZS0+dm0oKTtcbiIpOwogICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTtcbiIpOwotICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBhdXRvKiBw
cm90b3R5cGUgPSBqc0R5bmFtaWNEb3duY2FzdDwke2NsYXNzTmFtZX1Qcm90b3R5cGUqPih2bSwg
SlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpO1xuIik7CisgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAiICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Nhc3Q8JHtjbGFzc05hbWV9UHJv
dG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTtcbiIpOwogICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAoVU5MSUtFTFkoIXByb3RvdHlwZSkpIHtcbiIpOwog
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgdGhyb3dWTVR5cGVFcnJvcihzdGF0
ZSwgdGhyb3dTY29wZSk7XG4iKTsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAg
IHJldHVybiBmYWxzZTtcbiIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTSW50ZXJmYWNlTmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNJbnRlcmZhY2VOYW1lLmNwcAppbmRleCBiMDI4MzgzNTll
OTY5YjUyNTMzYTgzMjZlN2MxY2MyZDZlZTVlNWYzLi40YmY1NDZmOThiMDRkNDE1OWU1ZDM1Yzhj
NTRmMWNkMDAzNTM3MzliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNJbnRlcmZhY2VOYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNJbnRlcmZhY2VOYW1lLmNwcApAQCAtMTM1LDcgKzEzNSw3
IEBAIEVuY29kZWRKU1ZhbHVlIGpzSW50ZXJmYWNlTmFtZUNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSog
c3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWCiB7CiAgICAgVk0mIHZtID0gc3RhdGUtPnZtKCk7
CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgYXV0
byogcHJvdG90eXBlID0ganNEeW5hbWljRG93bmNhc3Q8SlNJbnRlcmZhY2VOYW1lUHJvdG90eXBl
Kj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKKyAgICBhdXRvKiBwcm90b3R5cGUg
PSBqc0R5bmFtaWNDYXN0PEpTSW50ZXJmYWNlTmFtZVByb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpk
ZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFwcm90b3R5cGUpKQogICAgICAg
ICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihzdGF0ZSwgdGhyb3dTY29wZSk7CiAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShKU0ludGVyZmFjZU5hbWU6OmdldENvbnN0cnVjdG9yKHN0YXRlLT52
bSgpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CkBAIC0xNDUsNyArMTQ1LDcgQEAgYm9v
bCBzZXRKU0ludGVyZmFjZU5hbWVDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIEUKIHsKICAgICBWTSYgdm0gPSBzdGF0ZS0+dm0oKTsKICAgICBh
dXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAgICBhdXRvKiBwcm90
b3R5cGUgPSBqc0R5bmFtaWNEb3duY2FzdDxKU0ludGVyZmFjZU5hbWVQcm90b3R5cGUqPih2bSwg
SlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOworICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHlu
YW1pY0Nhc3Q8SlNJbnRlcmZhY2VOYW1lUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0
aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIXByb3RvdHlwZSkpIHsKICAgICAgICAgdGhy
b3dWTVR5cGVFcnJvcihzdGF0ZSwgdGhyb3dTY29wZSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsK
QEAgLTIyMyw3ICsyMjMsNyBAQCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSogc3Rh
dGUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEludGVyZgogCiBJbnRlcmZhY2VO
YW1lKiBKU0ludGVyZmFjZU5hbWU6OnRvV3JhcHBlZChKU0M6OlZNJiB2bSwgSlNDOjpKU1ZhbHVl
IHZhbHVlKQogewotICAgIGlmIChhdXRvKiB3cmFwcGVyID0ganNEeW5hbWljRG93bmNhc3Q8SlNJ
bnRlcmZhY2VOYW1lKj4odm0sIHZhbHVlKSkKKyAgICBpZiAoYXV0byogd3JhcHBlciA9IGpzRHlu
YW1pY0Nhc3Q8SlNJbnRlcmZhY2VOYW1lKj4odm0sIHZhbHVlKSkKICAgICAgICAgcmV0dXJuICZ3
cmFwcGVyLT53cmFwcGVkKCk7CiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNNYXBMaWtlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU01hcExpa2UuY3BwCmluZGV4
IGQwZjM1ZjI3MDU0OTZhMmY1ZDQxMzMyYjRhYmZlMmZjZjhhYWE3ZWQuLmI5ZmY5YzNkZjA5OWEz
ZmZiMGExZWUxZmEyZjgzZWIxZmQwYmY0NzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU01hcExpa2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU01hcExpa2UuY3BwCkBAIC0xNjQsMTkgKzE2NCwx
OSBAQCB2b2lkIEpTTWFwTGlrZTo6ZGVzdHJveShKU0M6OkpTQ2VsbCogY2VsbCkKIAogdGVtcGxh
dGU8PiBpbmxpbmUgSlNNYXBMaWtlKiBJRExBdHRyaWJ1dGU8SlNNYXBMaWtlPjo6Y2FzdChFeGVj
U3RhdGUmIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUpCiB7Ci0gICAgcmV0dXJuIGpz
RHluYW1pY0Rvd25jYXN0PEpTTWFwTGlrZSo+KHN0YXRlLnZtKCksIEpTVmFsdWU6OmRlY29kZSh0
aGlzVmFsdWUpKTsKKyAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU01hcExpa2UqPihzdGF0ZS52
bSgpLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5l
IEpTTWFwTGlrZSogSURMT3BlcmF0aW9uPEpTTWFwTGlrZT46OmNhc3QoRXhlY1N0YXRlJiBzdGF0
ZSkKIHsKLSAgICByZXR1cm4ganNEeW5hbWljRG93bmNhc3Q8SlNNYXBMaWtlKj4oc3RhdGUudm0o
KSwgc3RhdGUudGhpc1ZhbHVlKCkpOworICAgIHJldHVybiBqc0R5bmFtaWNDYXN0PEpTTWFwTGlr
ZSo+KHN0YXRlLnZtKCksIHN0YXRlLnRoaXNWYWx1ZSgpKTsKIH0KIAogRW5jb2RlZEpTVmFsdWUg
anNNYXBMaWtlQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVk0mIHZtID0gc3RhdGUtPnZtKCk7CiAgICAg
YXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgYXV0byogcHJv
dG90eXBlID0ganNEeW5hbWljRG93bmNhc3Q8SlNNYXBMaWtlUHJvdG90eXBlKj4odm0sIEpTVmFs
dWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKKyAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWND
YXN0PEpTTWFwTGlrZVByb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7
CiAgICAgaWYgKFVOTElLRUxZKCFwcm90b3R5cGUpKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5
cGVFcnJvcihzdGF0ZSwgdGhyb3dTY29wZSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShK
U01hcExpa2U6OmdldENvbnN0cnVjdG9yKHN0YXRlLT52bSgpLCBwcm90b3R5cGUtPmdsb2JhbE9i
amVjdCgpKSk7CkBAIC0xODYsNyArMTg2LDcgQEAgYm9vbCBzZXRKU01hcExpa2VDb25zdHJ1Y3Rv
cihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWQKIHsK
ICAgICBWTSYgdm0gPSBzdGF0ZS0+dm0oKTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJF
X1RIUk9XX1NDT1BFKHZtKTsKLSAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNEb3duY2Fz
dDxKU01hcExpa2VQcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwor
ICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Nhc3Q8SlNNYXBMaWtlUHJvdG90eXBlKj4o
dm0sIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIXByb3Rv
dHlwZSkpIHsKICAgICAgICAgdGhyb3dWTVR5cGVFcnJvcihzdGF0ZSwgdGhyb3dTY29wZSk7CiAg
ICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTM5MSw3ICszOTEsNyBAQCBKU0M6OkpTVmFsdWUgdG9K
UyhKU0M6OkV4ZWNTdGF0ZSogc3RhdGUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IE1hcExpawogCiBNYXBMaWtlKiBKU01hcExpa2U6OnRvV3JhcHBlZChKU0M6OlZNJiB2bSwgSlND
OjpKU1ZhbHVlIHZhbHVlKQogewotICAgIGlmIChhdXRvKiB3cmFwcGVyID0ganNEeW5hbWljRG93
bmNhc3Q8SlNNYXBMaWtlKj4odm0sIHZhbHVlKSkKKyAgICBpZiAoYXV0byogd3JhcHBlciA9IGpz
RHluYW1pY0Nhc3Q8SlNNYXBMaWtlKj4odm0sIHZhbHVlKSkKICAgICAgICAgcmV0dXJuICZ3cmFw
cGVyLT53cmFwcGVkKCk7CiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNSZWFkT25seU1hcExpa2UuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTUmVhZE9ubHlNYXBM
aWtlLmNwcAppbmRleCBkM2E5ZjI4MThkZTFkODVlYzAxZjQ2NWQxZGJkZjM1Y2ZjYzI0MmMzLi4x
Y2M0OGI0MjY2NzUxZDZkNDQ1NTkxMmY3NzBjYWYwYjk2MDU5M2FlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNSZWFkT25seU1hcExpa2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1JlYWRPbmx5
TWFwTGlrZS5jcHAKQEAgLTE1OCwxOSArMTU4LDE5IEBAIHZvaWQgSlNSZWFkT25seU1hcExpa2U6
OmRlc3Ryb3koSlNDOjpKU0NlbGwqIGNlbGwpCiAKIHRlbXBsYXRlPD4gaW5saW5lIEpTUmVhZE9u
bHlNYXBMaWtlKiBJRExBdHRyaWJ1dGU8SlNSZWFkT25seU1hcExpa2U+OjpjYXN0KEV4ZWNTdGF0
ZSYgc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSkKIHsKLSAgICByZXR1cm4ganNEeW5h
bWljRG93bmNhc3Q8SlNSZWFkT25seU1hcExpa2UqPihzdGF0ZS52bSgpLCBKU1ZhbHVlOjpkZWNv
ZGUodGhpc1ZhbHVlKSk7CisgICAgcmV0dXJuIGpzRHluYW1pY0Nhc3Q8SlNSZWFkT25seU1hcExp
a2UqPihzdGF0ZS52bSgpLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiB9CiAKIHRlbXBs
YXRlPD4gaW5saW5lIEpTUmVhZE9ubHlNYXBMaWtlKiBJRExPcGVyYXRpb248SlNSZWFkT25seU1h
cExpa2U+OjpjYXN0KEV4ZWNTdGF0ZSYgc3RhdGUpCiB7Ci0gICAgcmV0dXJuIGpzRHluYW1pY0Rv
d25jYXN0PEpTUmVhZE9ubHlNYXBMaWtlKj4oc3RhdGUudm0oKSwgc3RhdGUudGhpc1ZhbHVlKCkp
OworICAgIHJldHVybiBqc0R5bmFtaWNDYXN0PEpTUmVhZE9ubHlNYXBMaWtlKj4oc3RhdGUudm0o
KSwgc3RhdGUudGhpc1ZhbHVlKCkpOwogfQogCiBFbmNvZGVkSlNWYWx1ZSBqc1JlYWRPbmx5TWFw
TGlrZUNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFZNJiB2bSA9IHN0YXRlLT52bSgpOwogICAgIGF1dG8g
dGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAgIGF1dG8qIHByb3RvdHlw
ZSA9IGpzRHluYW1pY0Rvd25jYXN0PEpTUmVhZE9ubHlNYXBMaWtlUHJvdG90eXBlKj4odm0sIEpT
VmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKKyAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFt
aWNDYXN0PEpTUmVhZE9ubHlNYXBMaWtlUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0
aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIXByb3RvdHlwZSkpCiAgICAgICAgIHJldHVy
biB0aHJvd1ZNVHlwZUVycm9yKHN0YXRlLCB0aHJvd1Njb3BlKTsKICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKEpTUmVhZE9ubHlNYXBMaWtlOjpnZXRDb25zdHJ1Y3RvcihzdGF0ZS0+dm0oKSwg
cHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOwpAQCAtMTgwLDcgKzE4MCw3IEBAIGJvb2wgc2V0
SlNSZWFkT25seU1hcExpa2VDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsCiB7CiAgICAgVk0mIHZtID0gc3RhdGUtPnZtKCk7CiAgICAgYXV0byB0
aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgYXV0byogcHJvdG90eXBl
ID0ganNEeW5hbWljRG93bmNhc3Q8SlNSZWFkT25seU1hcExpa2VQcm90b3R5cGUqPih2bSwgSlNW
YWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOworICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1p
Y0Nhc3Q8SlNSZWFkT25seU1hcExpa2VQcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRo
aXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghcHJvdG90eXBlKSkgewogICAgICAgICB0aHJv
d1ZNVHlwZUVycm9yKHN0YXRlLCB0aHJvd1Njb3BlKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwpA
QCAtMzQwLDcgKzM0MCw3IEBAIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiBzdGF0
ZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUmVhZE9uCiAKIFJlYWRPbmx5TWFw
TGlrZSogSlNSZWFkT25seU1hcExpa2U6OnRvV3JhcHBlZChKU0M6OlZNJiB2bSwgSlNDOjpKU1Zh
bHVlIHZhbHVlKQogewotICAgIGlmIChhdXRvKiB3cmFwcGVyID0ganNEeW5hbWljRG93bmNhc3Q8
SlNSZWFkT25seU1hcExpa2UqPih2bSwgdmFsdWUpKQorICAgIGlmIChhdXRvKiB3cmFwcGVyID0g
anNEeW5hbWljQ2FzdDxKU1JlYWRPbmx5TWFwTGlrZSo+KHZtLCB2YWx1ZSkpCiAgICAgICAgIHJl
dHVybiAmd3JhcHBlci0+d3JhcHBlZCgpOwogICAgIHJldHVybiBudWxscHRyOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEFjdGl2
ZURPTU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0QWN0aXZlRE9NT2JqZWN0LmNwcAppbmRleCBjMGMwMWE4OWEyYTQ1MDYxYmI5NWU5MjFj
YmJjOWViNzJkZWEyYjY4Li44MTVhMDNlMmRmNzFmMjhiMGNmNzkzMjllMTAxZjg4NjNkYzM0OTVl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0QWN0aXZlRE9NT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0QWN0aXZlRE9NT2JqZWN0LmNwcApAQCAtMTYyLDE5ICsxNjIsMTkg
QEAgdm9pZCBKU1Rlc3RBY3RpdmVET01PYmplY3Q6OmRlc3Ryb3koSlNDOjpKU0NlbGwqIGNlbGwp
CiAKIHRlbXBsYXRlPD4gaW5saW5lIEpTVGVzdEFjdGl2ZURPTU9iamVjdCogSURMQXR0cmlidXRl
PEpTVGVzdEFjdGl2ZURPTU9iamVjdD46OmNhc3QoRXhlY1N0YXRlJiBzdGF0ZSwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlKQogewotICAgIHJldHVybiBqc0R5bmFtaWNEb3duY2FzdDxKU1Rlc3RB
Y3RpdmVET01PYmplY3QqPihzdGF0ZS52bSgpLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7
CisgICAgcmV0dXJuIGpzRHluYW1pY0Nhc3Q8SlNUZXN0QWN0aXZlRE9NT2JqZWN0Kj4oc3RhdGUu
dm0oKSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogfQogCiB0ZW1wbGF0ZTw+IGlubGlu
ZSBKU1Rlc3RBY3RpdmVET01PYmplY3QqIElETE9wZXJhdGlvbjxKU1Rlc3RBY3RpdmVET01PYmpl
Y3Q+OjpjYXN0KEV4ZWNTdGF0ZSYgc3RhdGUpCiB7Ci0gICAgcmV0dXJuIGpzRHluYW1pY0Rvd25j
YXN0PEpTVGVzdEFjdGl2ZURPTU9iamVjdCo+KHN0YXRlLnZtKCksIHN0YXRlLnRoaXNWYWx1ZSgp
KTsKKyAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3RBY3RpdmVET01PYmplY3QqPihzdGF0
ZS52bSgpLCBzdGF0ZS50aGlzVmFsdWUoKSk7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIGpzVGVzdEFj
dGl2ZURPTU9iamVjdENvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFZNJiB2bSA9IHN0YXRlLT52bSgpOwog
ICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAgIGF1dG8q
IHByb3RvdHlwZSA9IGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdEFjdGl2ZURPTU9iamVjdFByb3Rv
dHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CisgICAgYXV0byogcHJvdG90
eXBlID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RBY3RpdmVET01PYmplY3RQcm90b3R5cGUqPih2bSwg
SlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghcHJvdG90eXBl
KSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3Ioc3RhdGUsIHRocm93U2NvcGUpOwog
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0QWN0aXZlRE9NT2JqZWN0OjpnZXRDb25z
dHJ1Y3RvcihzdGF0ZS0+dm0oKSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOwpAQCAtMTg0
LDcgKzE4NCw3IEBAIGJvb2wgc2V0SlNUZXN0QWN0aXZlRE9NT2JqZWN0Q29uc3RydWN0b3IoRXhl
Y1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhCiB7CiAgICAgVk0mIHZtID0gc3Rh
dGUtPnZtKCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
Ci0gICAgYXV0byogcHJvdG90eXBlID0ganNEeW5hbWljRG93bmNhc3Q8SlNUZXN0QWN0aXZlRE9N
T2JqZWN0UHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKKyAgICBh
dXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdEFjdGl2ZURPTU9iamVjdFByb3Rv
dHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZ
KCFwcm90b3R5cGUpKSB7CiAgICAgICAgIHRocm93Vk1UeXBlRXJyb3Ioc3RhdGUsIHRocm93U2Nv
cGUpOwogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0zMDEsNyArMzAxLDcgQEAgSlNDOjpKU1Zh
bHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqIHN0YXRlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBUZXN0QWMKIAogVGVzdEFjdGl2ZURPTU9iamVjdCogSlNUZXN0QWN0aXZlRE9NT2Jq
ZWN0Ojp0b1dyYXBwZWQoSlNDOjpWTSYgdm0sIEpTQzo6SlNWYWx1ZSB2YWx1ZSkKIHsKLSAgICBp
ZiAoYXV0byogd3JhcHBlciA9IGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdEFjdGl2ZURPTU9iamVj
dCo+KHZtLCB2YWx1ZSkpCisgICAgaWYgKGF1dG8qIHdyYXBwZXIgPSBqc0R5bmFtaWNDYXN0PEpT
VGVzdEFjdGl2ZURPTU9iamVjdCo+KHZtLCB2YWx1ZSkpCiAgICAgICAgIHJldHVybiAmd3JhcHBl
ci0+d3JhcHBlZCgpOwogICAgIHJldHVybiBudWxscHRyOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENFUmVhY3Rpb25zLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDRVJlYWN0aW9u
cy5jcHAKaW5kZXggNjVlZTBiYmZiZThhYTk5OTc0ZDA1NzM1ZmExOTUwOTI4OTA3YzhhYS4uZDI0
OWM5YjE1MmQ3MTAxMGZiMzBkNDdiOGE4NTA1ZTI5ODE0YTdhYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENFUmVhY3Rpb25zLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q0VSZWFj
dGlvbnMuY3BwCkBAIC0xNTUsMTkgKzE1NSwxOSBAQCB2b2lkIEpTVGVzdENFUmVhY3Rpb25zOjpk
ZXN0cm95KEpTQzo6SlNDZWxsKiBjZWxsKQogCiB0ZW1wbGF0ZTw+IGlubGluZSBKU1Rlc3RDRVJl
YWN0aW9ucyogSURMQXR0cmlidXRlPEpTVGVzdENFUmVhY3Rpb25zPjo6Y2FzdChFeGVjU3RhdGUm
IHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUpCiB7Ci0gICAgcmV0dXJuIGpzRHluYW1p
Y0Rvd25jYXN0PEpTVGVzdENFUmVhY3Rpb25zKj4oc3RhdGUudm0oKSwgSlNWYWx1ZTo6ZGVjb2Rl
KHRoaXNWYWx1ZSkpOworICAgIHJldHVybiBqc0R5bmFtaWNDYXN0PEpTVGVzdENFUmVhY3Rpb25z
Kj4oc3RhdGUudm0oKSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogfQogCiB0ZW1wbGF0
ZTw+IGlubGluZSBKU1Rlc3RDRVJlYWN0aW9ucyogSURMT3BlcmF0aW9uPEpTVGVzdENFUmVhY3Rp
b25zPjo6Y2FzdChFeGVjU3RhdGUmIHN0YXRlKQogewotICAgIHJldHVybiBqc0R5bmFtaWNEb3du
Y2FzdDxKU1Rlc3RDRVJlYWN0aW9ucyo+KHN0YXRlLnZtKCksIHN0YXRlLnRoaXNWYWx1ZSgpKTsK
KyAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3RDRVJlYWN0aW9ucyo+KHN0YXRlLnZtKCks
IHN0YXRlLnRoaXNWYWx1ZSgpKTsKIH0KIAogRW5jb2RlZEpTVmFsdWUganNUZXN0Q0VSZWFjdGlv
bnNDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkKIHsKICAgICBWTSYgdm0gPSBzdGF0ZS0+dm0oKTsKICAgICBhdXRvIHRo
cm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAgICBhdXRvKiBwcm90b3R5cGUg
PSBqc0R5bmFtaWNEb3duY2FzdDxKU1Rlc3RDRVJlYWN0aW9uc1Byb3RvdHlwZSo+KHZtLCBKU1Zh
bHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CisgICAgYXV0byogcHJvdG90eXBlID0ganNEeW5hbWlj
Q2FzdDxKU1Rlc3RDRVJlYWN0aW9uc1Byb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhp
c1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFwcm90b3R5cGUpKQogICAgICAgICByZXR1cm4g
dGhyb3dWTVR5cGVFcnJvcihzdGF0ZSwgdGhyb3dTY29wZSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShKU1Rlc3RDRVJlYWN0aW9uczo6Z2V0Q29uc3RydWN0b3Ioc3RhdGUtPnZtKCksIHBy
b3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKQEAgLTE3Nyw3ICsxNzcsNyBAQCBib29sIHNldEpT
VGVzdENFUmVhY3Rpb25zQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLAogewogICAgIFZNJiB2bSA9IHN0YXRlLT52bSgpOwogICAgIGF1dG8gdGhy
b3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAgIGF1dG8qIHByb3RvdHlwZSA9
IGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdENFUmVhY3Rpb25zUHJvdG90eXBlKj4odm0sIEpTVmFs
dWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKKyAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWND
YXN0PEpTVGVzdENFUmVhY3Rpb25zUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlz
VmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIXByb3RvdHlwZSkpIHsKICAgICAgICAgdGhyb3dW
TVR5cGVFcnJvcihzdGF0ZSwgdGhyb3dTY29wZSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAg
LTM1NSw3ICszNTUsNyBAQCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSogc3RhdGUs
IEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRlc3RDRQogCiBUZXN0Q0VSZWFjdGlv
bnMqIEpTVGVzdENFUmVhY3Rpb25zOjp0b1dyYXBwZWQoSlNDOjpWTSYgdm0sIEpTQzo6SlNWYWx1
ZSB2YWx1ZSkKIHsKLSAgICBpZiAoYXV0byogd3JhcHBlciA9IGpzRHluYW1pY0Rvd25jYXN0PEpT
VGVzdENFUmVhY3Rpb25zKj4odm0sIHZhbHVlKSkKKyAgICBpZiAoYXV0byogd3JhcHBlciA9IGpz
RHluYW1pY0Nhc3Q8SlNUZXN0Q0VSZWFjdGlvbnMqPih2bSwgdmFsdWUpKQogICAgICAgICByZXR1
cm4gJndyYXBwZXItPndyYXBwZWQoKTsKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDRVJlYWN0
aW9uc1N0cmluZ2lmaWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyLmNwcAppbmRleCBiY2JlODdlNTUyZGJi
NzU1OGU5OTA2OWRhYjY1NTVlNjUwZTkxN2RiLi5kMTc1MzljYzVjYWViYmMxNDFmOTJhNDBkYmU4
Yjg0YWY2MjVhM2ZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENFUmVhY3Rpb25zU3RyaW5naWZp
ZXIuY3BwCkBAIC0xNDUsMTkgKzE0NSwxOSBAQCB2b2lkIEpTVGVzdENFUmVhY3Rpb25zU3RyaW5n
aWZpZXI6OmRlc3Ryb3koSlNDOjpKU0NlbGwqIGNlbGwpCiAKIHRlbXBsYXRlPD4gaW5saW5lIEpT
VGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXIqIElETEF0dHJpYnV0ZTxKU1Rlc3RDRVJlYWN0aW9u
c1N0cmluZ2lmaWVyPjo6Y2FzdChFeGVjU3RhdGUmIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUpCiB7Ci0gICAgcmV0dXJuIGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdENFUmVhY3Rpb25z
U3RyaW5naWZpZXIqPihzdGF0ZS52bSgpLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7Cisg
ICAgcmV0dXJuIGpzRHluYW1pY0Nhc3Q8SlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllcio+KHN0
YXRlLnZtKCksIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKIH0KIAogdGVtcGxhdGU8PiBp
bmxpbmUgSlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllciogSURMT3BlcmF0aW9uPEpTVGVzdENF
UmVhY3Rpb25zU3RyaW5naWZpZXI+OjpjYXN0KEV4ZWNTdGF0ZSYgc3RhdGUpCiB7Ci0gICAgcmV0
dXJuIGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXIqPihzdGF0
ZS52bSgpLCBzdGF0ZS50aGlzVmFsdWUoKSk7CisgICAgcmV0dXJuIGpzRHluYW1pY0Nhc3Q8SlNU
ZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllcio+KHN0YXRlLnZtKCksIHN0YXRlLnRoaXNWYWx1ZSgp
KTsKIH0KIAogRW5jb2RlZEpTVmFsdWUganNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllckNvbnN0
cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKQogewogICAgIFZNJiB2bSA9IHN0YXRlLT52bSgpOwogICAgIGF1dG8gdGhyb3dTY29w
ZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHlu
YW1pY0Rvd25jYXN0PEpTVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJQcm90b3R5cGUqPih2bSwg
SlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOworICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHlu
YW1pY0Nhc3Q8SlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllclByb3RvdHlwZSo+KHZtLCBKU1Zh
bHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFwcm90b3R5cGUpKQog
ICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihzdGF0ZSwgdGhyb3dTY29wZSk7CiAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyOjpnZXRD
b25zdHJ1Y3RvcihzdGF0ZS0+dm0oKSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOwpAQCAt
MTY3LDcgKzE2Nyw3IEBAIGJvb2wgc2V0SlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllckNvbnN0
cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlCiB7CiAgICAgVk0mIHZtID0g
c3RhdGUtPnZtKCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7Ci0gICAgYXV0byogcHJvdG90eXBlID0ganNEeW5hbWljRG93bmNhc3Q8SlNUZXN0Q0VSZWFj
dGlvbnNTdHJpbmdpZmllclByb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVl
KSk7CisgICAgYXV0byogcHJvdG90eXBlID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RDRVJlYWN0aW9u
c1N0cmluZ2lmaWVyUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsK
ICAgICBpZiAoVU5MSUtFTFkoIXByb3RvdHlwZSkpIHsKICAgICAgICAgdGhyb3dWTVR5cGVFcnJv
cihzdGF0ZSwgdGhyb3dTY29wZSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTI3NSw3ICsy
NzUsNyBAQCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSogc3RhdGUsIEpTRE9NR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRlc3RDRQogCiBUZXN0Q0VSZWFjdGlvbnNTdHJpbmdp
ZmllciogSlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllcjo6dG9XcmFwcGVkKEpTQzo6Vk0mIHZt
LCBKU0M6OkpTVmFsdWUgdmFsdWUpCiB7Ci0gICAgaWYgKGF1dG8qIHdyYXBwZXIgPSBqc0R5bmFt
aWNEb3duY2FzdDxKU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyKj4odm0sIHZhbHVlKSkKKyAg
ICBpZiAoYXV0byogd3JhcHBlciA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0Q0VSZWFjdGlvbnNTdHJp
bmdpZmllcio+KHZtLCB2YWx1ZSkpCiAgICAgICAgIHJldHVybiAmd3JhcHBlci0+d3JhcHBlZCgp
OwogICAgIHJldHVybiBudWxscHRyOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENhbGxUcmFjZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENhbGxUcmFjZXIuY3BwCmluZGV4IDA2
YTY0ZjQ4MjJiOGI4YjExYjg4M2UzMDMyZjE0M2YyMDg2YzYxNGEuLmM4YTFjODA3YTUzMDkyOGEz
MDIyOWY2MjE4ZmVlMzhhZjA4ZWI1YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDYWxsVHJhY2VyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2FsbFRyYWNlci5jcHAKQEAgLTE4
NiwxOSArMTg2LDE5IEBAIHZvaWQgSlNUZXN0Q2FsbFRyYWNlcjo6ZGVzdHJveShKU0M6OkpTQ2Vs
bCogY2VsbCkKIAogdGVtcGxhdGU8PiBpbmxpbmUgSlNUZXN0Q2FsbFRyYWNlciogSURMQXR0cmli
dXRlPEpTVGVzdENhbGxUcmFjZXI+OjpjYXN0KEV4ZWNTdGF0ZSYgc3RhdGUsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSkKIHsKLSAgICByZXR1cm4ganNEeW5hbWljRG93bmNhc3Q8SlNUZXN0Q2Fs
bFRyYWNlcio+KHN0YXRlLnZtKCksIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKKyAgICBy
ZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3RDYWxsVHJhY2VyKj4oc3RhdGUudm0oKSwgSlNWYWx1
ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBKU1Rlc3RDYWxs
VHJhY2VyKiBJRExPcGVyYXRpb248SlNUZXN0Q2FsbFRyYWNlcj46OmNhc3QoRXhlY1N0YXRlJiBz
dGF0ZSkKIHsKLSAgICByZXR1cm4ganNEeW5hbWljRG93bmNhc3Q8SlNUZXN0Q2FsbFRyYWNlcio+
KHN0YXRlLnZtKCksIHN0YXRlLnRoaXNWYWx1ZSgpKTsKKyAgICByZXR1cm4ganNEeW5hbWljQ2Fz
dDxKU1Rlc3RDYWxsVHJhY2VyKj4oc3RhdGUudm0oKSwgc3RhdGUudGhpc1ZhbHVlKCkpOwogfQog
CiBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RDYWxsVHJhY2VyQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBz
dGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVk0m
IHZtID0gc3RhdGUtPnZtKCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7Ci0gICAgYXV0byogcHJvdG90eXBlID0ganNEeW5hbWljRG93bmNhc3Q8SlNUZXN0
Q2FsbFRyYWNlclByb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7Cisg
ICAgYXV0byogcHJvdG90eXBlID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RDYWxsVHJhY2VyUHJvdG90
eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFko
IXByb3RvdHlwZSkpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKHN0YXRlLCB0aHJv
d1Njb3BlKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdENhbGxUcmFjZXI6Omdl
dENvbnN0cnVjdG9yKHN0YXRlLT52bSgpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CkBA
IC0yMDgsNyArMjA4LDcgQEAgYm9vbCBzZXRKU1Rlc3RDYWxsVHJhY2VyQ29uc3RydWN0b3IoRXhl
Y1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLAogewogICAgIFZNJiB2bSA9
IHN0YXRlLT52bSgpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwotICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdENhbGxU
cmFjZXJQcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOworICAgIGF1
dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0Q2FsbFRyYWNlclByb3RvdHlwZSo+
KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFwcm90
b3R5cGUpKSB7CiAgICAgICAgIHRocm93Vk1UeXBlRXJyb3Ioc3RhdGUsIHRocm93U2NvcGUpOwog
ICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC01NzQsNyArNTc0LDcgQEAgSlNDOjpKU1ZhbHVlIHRv
SlMoSlNDOjpFeGVjU3RhdGUqIHN0YXRlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBUZXN0Q2EKIAogVGVzdENhbGxUcmFjZXIqIEpTVGVzdENhbGxUcmFjZXI6OnRvV3JhcHBlZChK
U0M6OlZNJiB2bSwgSlNDOjpKU1ZhbHVlIHZhbHVlKQogewotICAgIGlmIChhdXRvKiB3cmFwcGVy
ID0ganNEeW5hbWljRG93bmNhc3Q8SlNUZXN0Q2FsbFRyYWNlcio+KHZtLCB2YWx1ZSkpCisgICAg
aWYgKGF1dG8qIHdyYXBwZXIgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdENhbGxUcmFjZXIqPih2bSwg
dmFsdWUpKQogICAgICAgICByZXR1cm4gJndyYXBwZXItPndyYXBwZWQoKTsKICAgICByZXR1cm4g
bnVsbHB0cjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2xhc3NXaXRoSlNCdWlsdGlu
Q29uc3RydWN0b3IuY3BwCmluZGV4IDg2MDA1MTQ2OWVkNjc5OTg4OTdkYzNjNjQzNWM2ZjA3ZTQ1
NmFlODAuLjE1ZTJlNDAwNWU1ZTVkOTQ0M2IzZTY5YWIwNjA4ZmJmNjQyMzYzNjggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDbGFzc1dp
dGhKU0J1aWx0aW5Db25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yLmNwcApA
QCAtMTQxLDcgKzE0MSw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdENsYXNzV2l0aEpTQnVpbHRp
bkNvbnN0cnVjdG9yQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwKIHsKICAgICBWTSYgdm0g
PSBzdGF0ZS0+dm0oKTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTsKLSAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNEb3duY2FzdDxKU1Rlc3RDbGFz
c1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3RvclByb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUo
dGhpc1ZhbHVlKSk7CisgICAgYXV0byogcHJvdG90eXBlID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RD
bGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3RvclByb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNv
ZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFwcm90b3R5cGUpKQogICAgICAgICBy
ZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihzdGF0ZSwgdGhyb3dTY29wZSk7CiAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShKU1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3Rvcjo6Z2V0Q29u
c3RydWN0b3Ioc3RhdGUtPnZtKCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKQEAgLTE1
MSw3ICsxNTEsNyBAQCBib29sIHNldEpTVGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9y
Q29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZAogewogICAgIFZNJiB2bSA9IHN0
YXRlLT52bSgpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0p
OwotICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdENsYXNzV2l0
aEpTQnVpbHRpbkNvbnN0cnVjdG9yUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlz
VmFsdWUpKTsKKyAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdENsYXNz
V2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0
aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIXByb3RvdHlwZSkpIHsKICAgICAgICAgdGhy
b3dWTVR5cGVFcnJvcihzdGF0ZSwgdGhyb3dTY29wZSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsK
QEAgLTIxNCw3ICsyMTQsNyBAQCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSogc3Rh
dGUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRlc3RDbAogCiBUZXN0Q2xhc3NX
aXRoSlNCdWlsdGluQ29uc3RydWN0b3IqIEpTVGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVj
dG9yOjp0b1dyYXBwZWQoSlNDOjpWTSYgdm0sIEpTQzo6SlNWYWx1ZSB2YWx1ZSkKIHsKLSAgICBp
ZiAoYXV0byogd3JhcHBlciA9IGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdENsYXNzV2l0aEpTQnVp
bHRpbkNvbnN0cnVjdG9yKj4odm0sIHZhbHVlKSkKKyAgICBpZiAoYXV0byogd3JhcHBlciA9IGpz
RHluYW1pY0Nhc3Q8SlNUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3IqPih2bSwgdmFs
dWUpKQogICAgICAgICByZXR1cm4gJndyYXBwZXItPndyYXBwZWQoKTsKICAgICByZXR1cm4gbnVs
bHB0cjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RDdXN0b21Db25zdHJ1Y3RvcldpdGhOb0ludGVyZmFjZU9iamVjdC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q3VzdG9tQ29uc3Ry
dWN0b3JXaXRoTm9JbnRlcmZhY2VPYmplY3QuY3BwCmluZGV4IGJkZjkyZTM3YTAxMzdlMWI4NDk1
MWM2MmFmNGFhMGQ2Y2JhM2ZiYmQuLjMxYTBjMTlkMjAzMmM5NGFkODhiM2EyNTc0NDFhNWRjOWEy
YmRjM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RDdXN0b21Db25zdHJ1Y3RvcldpdGhOb0ludGVyZmFjZU9iamVjdC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1c3RvbUNvbnN0
cnVjdG9yV2l0aE5vSW50ZXJmYWNlT2JqZWN0LmNwcApAQCAtMTM2LDcgKzEzNiw3IEBAIEVuY29k
ZWRKU1ZhbHVlIGpzVGVzdEN1c3RvbUNvbnN0cnVjdG9yV2l0aE5vSW50ZXJmYWNlT2JqZWN0Q29u
c3RydWN0b3IoRXhlY1N0YXRlCiB7CiAgICAgVk0mIHZtID0gc3RhdGUtPnZtKCk7CiAgICAgYXV0
byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgYXV0byogcHJvdG90
eXBlID0ganNEeW5hbWljRG93bmNhc3Q8SlNUZXN0Q3VzdG9tQ29uc3RydWN0b3JXaXRoTm9JbnRl
cmZhY2VPYmplY3RQcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwor
ICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0Q3VzdG9tQ29uc3RydWN0
b3JXaXRoTm9JbnRlcmZhY2VPYmplY3RQcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRo
aXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghcHJvdG90eXBlKSkKICAgICAgICAgcmV0dXJu
IHRocm93Vk1UeXBlRXJyb3Ioc3RhdGUsIHRocm93U2NvcGUpOwogICAgIEpTVmFsdWUgY29uc3Ry
dWN0b3IgPSBKU1Rlc3RDdXN0b21Db25zdHJ1Y3RvcldpdGhOb0ludGVyZmFjZU9iamVjdENvbnN0
cnVjdG9yOjpjcmVhdGUoc3RhdGUtPnZtKCksIEpTVGVzdEN1c3RvbUNvbnN0cnVjdG9yV2l0aE5v
SW50ZXJmYWNlT2JqZWN0Q29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShzdGF0ZS0+dm0oKSwg
KnByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCktPm9i
amVjdFByb3RvdHlwZSgpKSwgKmpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KHByb3RvdHlwZS0+
Z2xvYmFsT2JqZWN0KCkpKTsKQEAgLTE0OSw3ICsxNDksNyBAQCBib29sIHNldEpTVGVzdEN1c3Rv
bUNvbnN0cnVjdG9yV2l0aE5vSW50ZXJmYWNlT2JqZWN0Q29uc3RydWN0b3IoRXhlY1N0YXRlKiBz
dGF0ZQogewogICAgIFZNJiB2bSA9IHN0YXRlLT52bSgpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1p
Y0Rvd25jYXN0PEpTVGVzdEN1c3RvbUNvbnN0cnVjdG9yV2l0aE5vSW50ZXJmYWNlT2JqZWN0UHJv
dG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKKyAgICBhdXRvKiBwcm90
b3R5cGUgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdEN1c3RvbUNvbnN0cnVjdG9yV2l0aE5vSW50ZXJm
YWNlT2JqZWN0UHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAg
ICBpZiAoVU5MSUtFTFkoIXByb3RvdHlwZSkpIHsKICAgICAgICAgdGhyb3dWTVR5cGVFcnJvcihz
dGF0ZSwgdGhyb3dTY29wZSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTIxMiw3ICsyMTIs
NyBAQCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSogc3RhdGUsIEpTRE9NR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIFRlc3RDdQogCiBUZXN0Q3VzdG9tQ29uc3RydWN0b3JXaXRo
Tm9JbnRlcmZhY2VPYmplY3QqIEpTVGVzdEN1c3RvbUNvbnN0cnVjdG9yV2l0aE5vSW50ZXJmYWNl
T2JqZWN0Ojp0b1dyYXBwZWQoSlNDOjpWTSYgdm0sIEpTQzo6SlNWYWx1ZSB2YWx1ZSkKIHsKLSAg
ICBpZiAoYXV0byogd3JhcHBlciA9IGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdEN1c3RvbUNvbnN0
cnVjdG9yV2l0aE5vSW50ZXJmYWNlT2JqZWN0Kj4odm0sIHZhbHVlKSkKKyAgICBpZiAoYXV0byog
d3JhcHBlciA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0Q3VzdG9tQ29uc3RydWN0b3JXaXRoTm9JbnRl
cmZhY2VPYmplY3QqPih2bSwgdmFsdWUpKQogICAgICAgICByZXR1cm4gJndyYXBwZXItPndyYXBw
ZWQoKTsKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RET01KSVQuY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdERPTUpJVC5jcHAKaW5kZXggNzBiNjRm
N2JmYWFlYWNjZDMyZWU5ODI0ODg0YzhlYjc2NTJiMzRlNC4uNmU1ODVmNDllMTFjNWM0MzAzMTIz
Y2JmZTRhNzRhOWM5YmNiZmI0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdERPTUpJVC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdERPTUpJVC5jcHAKQEAgLTU4OSwxOSArNTg5LDE5
IEBAIEpTVmFsdWUgSlNUZXN0RE9NSklUOjpnZXRDb25zdHJ1Y3RvcihWTSYgdm0sIGNvbnN0IEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiAKIHRlbXBsYXRlPD4gaW5saW5lIEpTVGVzdERP
TUpJVCogSURMQXR0cmlidXRlPEpTVGVzdERPTUpJVD46OmNhc3QoRXhlY1N0YXRlJiBzdGF0ZSwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlKQogewotICAgIHJldHVybiBqc0R5bmFtaWNEb3duY2Fz
dDxKU1Rlc3RET01KSVQqPihzdGF0ZS52bSgpLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7
CisgICAgcmV0dXJuIGpzRHluYW1pY0Nhc3Q8SlNUZXN0RE9NSklUKj4oc3RhdGUudm0oKSwgSlNW
YWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBKU1Rlc3RE
T01KSVQqIElETE9wZXJhdGlvbjxKU1Rlc3RET01KSVQ+OjpjYXN0KEV4ZWNTdGF0ZSYgc3RhdGUp
CiB7Ci0gICAgcmV0dXJuIGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdERPTUpJVCo+KHN0YXRlLnZt
KCksIHN0YXRlLnRoaXNWYWx1ZSgpKTsKKyAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3RE
T01KSVQqPihzdGF0ZS52bSgpLCBzdGF0ZS50aGlzVmFsdWUoKSk7CiB9CiAKIEVuY29kZWRKU1Zh
bHVlIGpzVGVzdERPTUpJVENvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFZNJiB2bSA9IHN0YXRlLT52bSgp
OwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAgIGF1
dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdERPTUpJVFByb3RvdHlwZSo+
KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CisgICAgYXV0byogcHJvdG90eXBlID0g
anNEeW5hbWljQ2FzdDxKU1Rlc3RET01KSVRQcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2Rl
KHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghcHJvdG90eXBlKSkKICAgICAgICAgcmV0
dXJuIHRocm93Vk1UeXBlRXJyb3Ioc3RhdGUsIHRocm93U2NvcGUpOwogICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoSlNUZXN0RE9NSklUOjpnZXRDb25zdHJ1Y3RvcihzdGF0ZS0+dm0oKSwgcHJv
dG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOwpAQCAtNjExLDcgKzYxMSw3IEBAIGJvb2wgc2V0SlNU
ZXN0RE9NSklUQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBFbmNvCiB7CiAgICAgVk0mIHZtID0gc3RhdGUtPnZtKCk7CiAgICAgYXV0byB0aHJv
d1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgYXV0byogcHJvdG90eXBlID0g
anNEeW5hbWljRG93bmNhc3Q8SlNUZXN0RE9NSklUUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRl
Y29kZSh0aGlzVmFsdWUpKTsKKyAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNDYXN0PEpT
VGVzdERPTUpJVFByb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAg
ICAgaWYgKFVOTElLRUxZKCFwcm90b3R5cGUpKSB7CiAgICAgICAgIHRocm93Vk1UeXBlRXJyb3Io
c3RhdGUsIHRocm93U2NvcGUpOwogICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RW5hYmxlZEJ5U2V0
dGluZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
RW5hYmxlZEJ5U2V0dGluZy5jcHAKaW5kZXggMzU0ODEzYjc2NGFmODQ5Y2Y2NzA2ODc0NTcwZTRk
ODVjMTk3NjQ1YS4uYTJlMWFjNzA0ZDk4YTgxZTZkMjQzNDQ1NTI3MWJhMTg5OTBmZWI2OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEVu
YWJsZWRCeVNldHRpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RFbmFibGVkQnlTZXR0aW5nLmNwcApAQCAtMTgxLDE5ICsxODEsMTkgQEAg
dm9pZCBKU1Rlc3RFbmFibGVkQnlTZXR0aW5nOjpkZXN0cm95KEpTQzo6SlNDZWxsKiBjZWxsKQog
CiB0ZW1wbGF0ZTw+IGlubGluZSBKU1Rlc3RFbmFibGVkQnlTZXR0aW5nKiBJRExBdHRyaWJ1dGU8
SlNUZXN0RW5hYmxlZEJ5U2V0dGluZz46OmNhc3QoRXhlY1N0YXRlJiBzdGF0ZSwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlKQogewotICAgIHJldHVybiBqc0R5bmFtaWNEb3duY2FzdDxKU1Rlc3RF
bmFibGVkQnlTZXR0aW5nKj4oc3RhdGUudm0oKSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkp
OworICAgIHJldHVybiBqc0R5bmFtaWNDYXN0PEpTVGVzdEVuYWJsZWRCeVNldHRpbmcqPihzdGF0
ZS52bSgpLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiB9CiAKIHRlbXBsYXRlPD4gaW5s
aW5lIEpTVGVzdEVuYWJsZWRCeVNldHRpbmcqIElETE9wZXJhdGlvbjxKU1Rlc3RFbmFibGVkQnlT
ZXR0aW5nPjo6Y2FzdChFeGVjU3RhdGUmIHN0YXRlKQogewotICAgIHJldHVybiBqc0R5bmFtaWNE
b3duY2FzdDxKU1Rlc3RFbmFibGVkQnlTZXR0aW5nKj4oc3RhdGUudm0oKSwgc3RhdGUudGhpc1Zh
bHVlKCkpOworICAgIHJldHVybiBqc0R5bmFtaWNDYXN0PEpTVGVzdEVuYWJsZWRCeVNldHRpbmcq
PihzdGF0ZS52bSgpLCBzdGF0ZS50aGlzVmFsdWUoKSk7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIGpz
VGVzdEVuYWJsZWRCeVNldHRpbmdDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBWTSYgdm0gPSBzdGF0ZS0+
dm0oKTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAg
ICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNEb3duY2FzdDxKU1Rlc3RFbmFibGVkQnlTZXR0
aW5nUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKKyAgICBhdXRv
KiBwcm90b3R5cGUgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdEVuYWJsZWRCeVNldHRpbmdQcm90b3R5
cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSgh
cHJvdG90eXBlKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3Ioc3RhdGUsIHRocm93
U2NvcGUpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0RW5hYmxlZEJ5U2V0dGlu
Zzo6Z2V0Q29uc3RydWN0b3Ioc3RhdGUtPnZtKCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkp
KTsKQEAgLTIwMyw3ICsyMDMsNyBAQCBib29sIHNldEpTVGVzdEVuYWJsZWRCeVNldHRpbmdDb25z
dHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVgogewogICAgIFZN
JiB2bSA9IHN0YXRlLT52bSgpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwotICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Rvd25jYXN0PEpTVGVz
dEVuYWJsZWRCeVNldHRpbmdQcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1
ZSkpOworICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0RW5hYmxlZEJ5
U2V0dGluZ1Byb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAg
aWYgKFVOTElLRUxZKCFwcm90b3R5cGUpKSB7CiAgICAgICAgIHRocm93Vk1UeXBlRXJyb3Ioc3Rh
dGUsIHRocm93U2NvcGUpOwogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0zNDgsNyArMzQ4LDcg
QEAgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqIHN0YXRlLCBKU0RPTUdsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBUZXN0RW4KIAogVGVzdEVuYWJsZWRCeVNldHRpbmcqIEpTVGVz
dEVuYWJsZWRCeVNldHRpbmc6OnRvV3JhcHBlZChKU0M6OlZNJiB2bSwgSlNDOjpKU1ZhbHVlIHZh
bHVlKQogewotICAgIGlmIChhdXRvKiB3cmFwcGVyID0ganNEeW5hbWljRG93bmNhc3Q8SlNUZXN0
RW5hYmxlZEJ5U2V0dGluZyo+KHZtLCB2YWx1ZSkpCisgICAgaWYgKGF1dG8qIHdyYXBwZXIgPSBq
c0R5bmFtaWNDYXN0PEpTVGVzdEVuYWJsZWRCeVNldHRpbmcqPih2bSwgdmFsdWUpKQogICAgICAg
ICByZXR1cm4gJndyYXBwZXItPndyYXBwZWQoKTsKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RF
dmVudENvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RFdmVudENvbnN0cnVjdG9yLmNwcAppbmRleCAzNjNlZmFkZjFkMDdmOTgyMTAw
NWQ2YjczYjMyZWJjZWFlZTg2NWI5Li4zNzUyMjhjYjU0ODUxNDhiZTYxYzJhMjE1MGY1ZmQyNzMy
M2QyN2FlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50Q29uc3RydWN0b3IuY3BwCkBAIC0yMzIsMTQg
KzIzMiwxNCBAQCBKU1ZhbHVlIEpTVGVzdEV2ZW50Q29uc3RydWN0b3I6OmdldENvbnN0cnVjdG9y
KFZNJiB2bSwgY29uc3QgSlNHbG9iYWxPYmplY3QqIGdsbwogCiB0ZW1wbGF0ZTw+IGlubGluZSBK
U1Rlc3RFdmVudENvbnN0cnVjdG9yKiBJRExBdHRyaWJ1dGU8SlNUZXN0RXZlbnRDb25zdHJ1Y3Rv
cj46OmNhc3QoRXhlY1N0YXRlJiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlKQogewot
ICAgIHJldHVybiBqc0R5bmFtaWNEb3duY2FzdDxKU1Rlc3RFdmVudENvbnN0cnVjdG9yKj4oc3Rh
dGUudm0oKSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOworICAgIHJldHVybiBqc0R5bmFt
aWNDYXN0PEpTVGVzdEV2ZW50Q29uc3RydWN0b3IqPihzdGF0ZS52bSgpLCBKU1ZhbHVlOjpkZWNv
ZGUodGhpc1ZhbHVlKSk7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIGpzVGVzdEV2ZW50Q29uc3RydWN0
b3JDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkKIHsKICAgICBWTSYgdm0gPSBzdGF0ZS0+dm0oKTsKICAgICBhdXRvIHRo
cm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAgICBhdXRvKiBwcm90b3R5cGUg
PSBqc0R5bmFtaWNEb3duY2FzdDxKU1Rlc3RFdmVudENvbnN0cnVjdG9yUHJvdG90eXBlKj4odm0s
IEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKKyAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5
bmFtaWNDYXN0PEpTVGVzdEV2ZW50Q29uc3RydWN0b3JQcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6
ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghcHJvdG90eXBlKSkKICAgICAg
ICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3Ioc3RhdGUsIHRocm93U2NvcGUpOwogICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0b3Io
c3RhdGUtPnZtKCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKQEAgLTI0OSw3ICsyNDks
NyBAQCBib29sIHNldEpTVGVzdEV2ZW50Q29uc3RydWN0b3JDb25zdHJ1Y3RvcihFeGVjU3RhdGUq
IHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVgogewogICAgIFZNJiB2bSA9IHN0YXRlLT52bSgp
OwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAgIGF1
dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdEV2ZW50Q29uc3RydWN0b3JQ
cm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOworICAgIGF1dG8qIHBy
b3RvdHlwZSA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0RXZlbnRDb25zdHJ1Y3RvclByb3RvdHlwZSo+
KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFwcm90
b3R5cGUpKSB7CiAgICAgICAgIHRocm93Vk1UeXBlRXJyb3Ioc3RhdGUsIHRocm93U2NvcGUpOwog
ICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRUYXJnZXQuY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0LmNwcAppbmRleCA3NjZk
YTU2NTBhOGExMWU5MjgwODkxYjkyODY0ZjAyOWFhNDk5ZjdhLi43OWFmNDlkMzgwZThiNzExMTk5
NDJhOWZkNTFlMzc3NmVlZjg4MDZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRUYXJnZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudFRhcmdldC5jcHAKQEAgLTIw
MywxNCArMjAzLDE0IEBAIHZvaWQgSlNUZXN0RXZlbnRUYXJnZXQ6OmdldE93blByb3BlcnR5TmFt
ZXMoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBzdGF0ZSwKIAogdGVtcGxhdGU8PiBpbmxp
bmUgSlNUZXN0RXZlbnRUYXJnZXQqIElETE9wZXJhdGlvbjxKU1Rlc3RFdmVudFRhcmdldD46OmNh
c3QoRXhlY1N0YXRlJiBzdGF0ZSkKIHsKLSAgICByZXR1cm4ganNEeW5hbWljRG93bmNhc3Q8SlNU
ZXN0RXZlbnRUYXJnZXQqPihzdGF0ZS52bSgpLCBzdGF0ZS50aGlzVmFsdWUoKSk7CisgICAgcmV0
dXJuIGpzRHluYW1pY0Nhc3Q8SlNUZXN0RXZlbnRUYXJnZXQqPihzdGF0ZS52bSgpLCBzdGF0ZS50
aGlzVmFsdWUoKSk7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIGpzVGVzdEV2ZW50VGFyZ2V0Q29uc3Ry
dWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpCiB7CiAgICAgVk0mIHZtID0gc3RhdGUtPnZtKCk7CiAgICAgYXV0byB0aHJvd1Njb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgYXV0byogcHJvdG90eXBlID0ganNEeW5h
bWljRG93bmNhc3Q8SlNUZXN0RXZlbnRUYXJnZXRQcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVj
b2RlKHRoaXNWYWx1ZSkpOworICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Nhc3Q8SlNU
ZXN0RXZlbnRUYXJnZXRQcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkp
OwogICAgIGlmIChVTkxJS0VMWSghcHJvdG90eXBlKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1U
eXBlRXJyb3Ioc3RhdGUsIHRocm93U2NvcGUpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
SlNUZXN0RXZlbnRUYXJnZXQ6OmdldENvbnN0cnVjdG9yKHN0YXRlLT52bSgpLCBwcm90b3R5cGUt
Pmdsb2JhbE9iamVjdCgpKSk7CkBAIC0yMjAsNyArMjIwLDcgQEAgYm9vbCBzZXRKU1Rlc3RFdmVu
dFRhcmdldENvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwKIHsKICAgICBWTSYgdm0gPSBzdGF0ZS0+dm0oKTsKICAgICBhdXRvIHRocm93U2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFt
aWNEb3duY2FzdDxKU1Rlc3RFdmVudFRhcmdldFByb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNv
ZGUodGhpc1ZhbHVlKSk7CisgICAgYXV0byogcHJvdG90eXBlID0ganNEeW5hbWljQ2FzdDxKU1Rl
c3RFdmVudFRhcmdldFByb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7
CiAgICAgaWYgKFVOTElLRUxZKCFwcm90b3R5cGUpKSB7CiAgICAgICAgIHRocm93Vk1UeXBlRXJy
b3Ioc3RhdGUsIHRocm93U2NvcGUpOwogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0yODYsNyAr
Mjg2LDcgQEAgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqIHN0YXRlLCBKU0RPTUds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBUZXN0RXYKIAogVGVzdEV2ZW50VGFyZ2V0KiBKU1Rl
c3RFdmVudFRhcmdldDo6dG9XcmFwcGVkKEpTQzo6Vk0mIHZtLCBKU0M6OkpTVmFsdWUgdmFsdWUp
CiB7Ci0gICAgaWYgKGF1dG8qIHdyYXBwZXIgPSBqc0R5bmFtaWNEb3duY2FzdDxKU1Rlc3RFdmVu
dFRhcmdldCo+KHZtLCB2YWx1ZSkpCisgICAgaWYgKGF1dG8qIHdyYXBwZXIgPSBqc0R5bmFtaWND
YXN0PEpTVGVzdEV2ZW50VGFyZ2V0Kj4odm0sIHZhbHVlKSkKICAgICAgICAgcmV0dXJuICZ3cmFw
cGVyLT53cmFwcGVkKCk7CiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXhjZXB0aW9uLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFeGNlcHRpb24u
Y3BwCmluZGV4IGNmZTRhNDAxNjE1NGFiMzRlZGIwYTY3OTQxNTYxNzY3NmY0YzQzMzcuLmVmZTMx
NzRjNDU0OWI4ZDcyOGUxYjhhOWZjODA4MDVkODY3N2E4ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFeGNlcHRpb24uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFeGNlcHRpb24u
Y3BwCkBAIC0xMzcsMTQgKzEzNywxNCBAQCB2b2lkIEpTVGVzdEV4Y2VwdGlvbjo6ZGVzdHJveShK
U0M6OkpTQ2VsbCogY2VsbCkKIAogdGVtcGxhdGU8PiBpbmxpbmUgSlNUZXN0RXhjZXB0aW9uKiBJ
RExBdHRyaWJ1dGU8SlNUZXN0RXhjZXB0aW9uPjo6Y2FzdChFeGVjU3RhdGUmIHN0YXRlLCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUpCiB7Ci0gICAgcmV0dXJuIGpzRHluYW1pY0Rvd25jYXN0PEpT
VGVzdEV4Y2VwdGlvbio+KHN0YXRlLnZtKCksIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsK
KyAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3RFeGNlcHRpb24qPihzdGF0ZS52bSgpLCBK
U1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIGpzVGVzdEV4
Y2VwdGlvbkNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFZNJiB2bSA9IHN0YXRlLT52bSgpOwogICAgIGF1
dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAgIGF1dG8qIHByb3Rv
dHlwZSA9IGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdEV4Y2VwdGlvblByb3RvdHlwZSo+KHZtLCBK
U1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CisgICAgYXV0byogcHJvdG90eXBlID0ganNEeW5h
bWljQ2FzdDxKU1Rlc3RFeGNlcHRpb25Qcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRo
aXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghcHJvdG90eXBlKSkKICAgICAgICAgcmV0dXJu
IHRocm93Vk1UeXBlRXJyb3Ioc3RhdGUsIHRocm93U2NvcGUpOwogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoSlNUZXN0RXhjZXB0aW9uOjpnZXRDb25zdHJ1Y3RvcihzdGF0ZS0+dm0oKSwgcHJv
dG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOwpAQCAtMTU0LDcgKzE1NCw3IEBAIGJvb2wgc2V0SlNU
ZXN0RXhjZXB0aW9uQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBFCiB7CiAgICAgVk0mIHZtID0gc3RhdGUtPnZtKCk7CiAgICAgYXV0byB0aHJv
d1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgYXV0byogcHJvdG90eXBlID0g
anNEeW5hbWljRG93bmNhc3Q8SlNUZXN0RXhjZXB0aW9uUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6
OmRlY29kZSh0aGlzVmFsdWUpKTsKKyAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNDYXN0
PEpTVGVzdEV4Y2VwdGlvblByb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVl
KSk7CiAgICAgaWYgKFVOTElLRUxZKCFwcm90b3R5cGUpKSB7CiAgICAgICAgIHRocm93Vk1UeXBl
RXJyb3Ioc3RhdGUsIHRocm93U2NvcGUpOwogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0yMzEs
NyArMjMxLDcgQEAgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqIHN0YXRlLCBKU0RP
TUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBUZXN0RXgKIAogVGVzdEV4Y2VwdGlvbiogSlNU
ZXN0RXhjZXB0aW9uOjp0b1dyYXBwZWQoSlNDOjpWTSYgdm0sIEpTQzo6SlNWYWx1ZSB2YWx1ZSkK
IHsKLSAgICBpZiAoYXV0byogd3JhcHBlciA9IGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdEV4Y2Vw
dGlvbio+KHZtLCB2YWx1ZSkpCisgICAgaWYgKGF1dG8qIHdyYXBwZXIgPSBqc0R5bmFtaWNDYXN0
PEpTVGVzdEV4Y2VwdGlvbio+KHZtLCB2YWx1ZSkpCiAgICAgICAgIHJldHVybiAmd3JhcHBlci0+
d3JhcHBlZCgpOwogICAgIHJldHVybiBudWxscHRyOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdlbmVy
YXRlSXNSZWFjaGFibGUuY3BwCmluZGV4IGNkNGVhNWFkMmE5MDAxNDg2NzhiY2NjNTQzOTU1NzY5
MzA2Y2FjMjYuLmY2NGM1ODVhZjE5MzNjZDNlNGRjNWI2NGVjYWZkYTAwN2M3Y2Q0NjEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RHZW5l
cmF0ZUlzUmVhY2hhYmxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZS5jcHAKQEAgLTE0MywxNCArMTQzLDE0
IEBAIHZvaWQgSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZTo6ZGVzdHJveShKU0M6OkpTQ2VsbCog
Y2VsbCkKIAogdGVtcGxhdGU8PiBpbmxpbmUgSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZSogSURM
QXR0cmlidXRlPEpTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGU+OjpjYXN0KEV4ZWNTdGF0ZSYgc3Rh
dGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSkKIHsKLSAgICByZXR1cm4ganNEeW5hbWljRG93
bmNhc3Q8SlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZSo+KHN0YXRlLnZtKCksIEpTVmFsdWU6OmRl
Y29kZSh0aGlzVmFsdWUpKTsKKyAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3RHZW5lcmF0
ZUlzUmVhY2hhYmxlKj4oc3RhdGUudm0oKSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwog
fQogCiBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlQ29uc3RydWN0b3Io
RXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
CiB7CiAgICAgVk0mIHZtID0gc3RhdGUtPnZtKCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgYXV0byogcHJvdG90eXBlID0ganNEeW5hbWljRG93
bmNhc3Q8SlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZVByb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpk
ZWNvZGUodGhpc1ZhbHVlKSk7CisgICAgYXV0byogcHJvdG90eXBlID0ganNEeW5hbWljQ2FzdDxK
U1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0
aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIXByb3RvdHlwZSkpCiAgICAgICAgIHJldHVy
biB0aHJvd1ZNVHlwZUVycm9yKHN0YXRlLCB0aHJvd1Njb3BlKTsKICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKEpTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGU6OmdldENvbnN0cnVjdG9yKHN0YXRl
LT52bSgpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CkBAIC0xNjAsNyArMTYwLDcgQEAg
Ym9vbCBzZXRKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBz
dGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGgKIHsKICAgICBWTSYgdm0gPSBzdGF0ZS0+dm0oKTsKICAg
ICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAgICBhdXRvKiBw
cm90b3R5cGUgPSBqc0R5bmFtaWNEb3duY2FzdDxKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlUHJv
dG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKKyAgICBhdXRvKiBwcm90
b3R5cGUgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGVQcm90b3R5cGUq
Pih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghcHJv
dG90eXBlKSkgewogICAgICAgICB0aHJvd1ZNVHlwZUVycm9yKHN0YXRlLCB0aHJvd1Njb3BlKTsK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMjM3LDcgKzIzNyw3IEBAIEpTQzo6SlNWYWx1ZSB0
b0pTKEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgVGVzdEdlCiAKIFRlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlKiBKU1Rlc3RHZW5lcmF0ZUlzUmVh
Y2hhYmxlOjp0b1dyYXBwZWQoSlNDOjpWTSYgdm0sIEpTQzo6SlNWYWx1ZSB2YWx1ZSkKIHsKLSAg
ICBpZiAoYXV0byogd3JhcHBlciA9IGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdEdlbmVyYXRlSXNS
ZWFjaGFibGUqPih2bSwgdmFsdWUpKQorICAgIGlmIChhdXRvKiB3cmFwcGVyID0ganNEeW5hbWlj
Q2FzdDxKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlKj4odm0sIHZhbHVlKSkKICAgICAgICAgcmV0
dXJuICZ3cmFwcGVyLT53cmFwcGVkKCk7CiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2xvYmFs
T2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RHbG9iYWxPYmplY3QuY3BwCmluZGV4IGQzOGYyMzJjZmY5MTcwYjUyNWQ5YzNmYTNjODE4ZWY3
ZjdlZmUxOWIuLjRkMmRjNzYxZTUwNDQ4MWE0MzlmODA5ODNkMjc2YTg5MDMzZTk2ODkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RHbG9i
YWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RHbG9iYWxPYmplY3QuY3BwCkBAIC0yMTIsMTkgKzIxMiwxOSBAQCB2b2lkIEpTVGVz
dEdsb2JhbE9iamVjdDo6ZGVzdHJveShKU0M6OkpTQ2VsbCogY2VsbCkKIAogdGVtcGxhdGU8PiBp
bmxpbmUgSlNUZXN0R2xvYmFsT2JqZWN0KiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0
Pjo6Y2FzdChFeGVjU3RhdGUmIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUpCiB7Ci0g
ICAgcmV0dXJuIGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdEdsb2JhbE9iamVjdCo+KHN0YXRlLnZt
KCksIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKKyAgICByZXR1cm4ganNEeW5hbWljQ2Fz
dDxKU1Rlc3RHbG9iYWxPYmplY3QqPihzdGF0ZS52bSgpLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1Zh
bHVlKSk7CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5lIEpTVGVzdEdsb2JhbE9iamVjdCogSURMT3Bl
cmF0aW9uPEpTVGVzdEdsb2JhbE9iamVjdD46OmNhc3QoRXhlY1N0YXRlJiBzdGF0ZSkKIHsKLSAg
ICByZXR1cm4ganNEeW5hbWljRG93bmNhc3Q8SlNUZXN0R2xvYmFsT2JqZWN0Kj4oc3RhdGUudm0o
KSwgc3RhdGUudGhpc1ZhbHVlKCkpOworICAgIHJldHVybiBqc0R5bmFtaWNDYXN0PEpTVGVzdEds
b2JhbE9iamVjdCo+KHN0YXRlLnZtKCksIHN0YXRlLnRoaXNWYWx1ZSgpKTsKIH0KIAogRW5jb2Rl
ZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0Q29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVk0mIHZtID0g
c3RhdGUtPnZtKCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7Ci0gICAgYXV0byogcHJvdG90eXBlID0ganNEeW5hbWljRG93bmNhc3Q8SlNUZXN0R2xvYmFs
T2JqZWN0UHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKKyAgICBh
dXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdEdsb2JhbE9iamVjdFByb3RvdHlw
ZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFw
cm90b3R5cGUpKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihzdGF0ZSwgdGhyb3dT
Y29wZSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3RHbG9iYWxPYmplY3Q6Omdl
dENvbnN0cnVjdG9yKHN0YXRlLT52bSgpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CkBA
IC0yMzQsNyArMjM0LDcgQEAgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RDb25zdHJ1Y3RvcihF
eGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUKIHsKICAgICBWTSYgdm0g
PSBzdGF0ZS0+dm0oKTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTsKLSAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNEb3duY2FzdDxKU1Rlc3RHbG9i
YWxPYmplY3RQcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOworICAg
IGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0R2xvYmFsT2JqZWN0UHJvdG90
eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFko
IXByb3RvdHlwZSkpIHsKICAgICAgICAgdGhyb3dWTVR5cGVFcnJvcihzdGF0ZSwgdGhyb3dTY29w
ZSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTYyMiw3ICs2MjIsNyBAQCBKU0M6OkpTVmFs
dWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSogc3RhdGUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIFRlc3RHbAogCiBUZXN0R2xvYmFsT2JqZWN0KiBKU1Rlc3RHbG9iYWxPYmplY3Q6OnRv
V3JhcHBlZChKU0M6OlZNJiB2bSwgSlNDOjpKU1ZhbHVlIHZhbHVlKQogewotICAgIGlmIChhdXRv
KiB3cmFwcGVyID0ganNEeW5hbWljRG93bmNhc3Q8SlNUZXN0R2xvYmFsT2JqZWN0Kj4odm0sIHZh
bHVlKSkKKyAgICBpZiAoYXV0byogd3JhcHBlciA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0R2xvYmFs
T2JqZWN0Kj4odm0sIHZhbHVlKSkKICAgICAgICAgcmV0dXJuICZ3cmFwcGVyLT53cmFwcGVkKCk7
CiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmllci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW5kZXhlZFNl
dHRlck5vSWRlbnRpZmllci5jcHAKaW5kZXggYjk0M2RjYjljZGY4OTlkNDY4MTQ3MjE4YzU0YTJl
NzZjZWI2Y2Y3ZS4uNDdmMDg3OGViZDkxNjhhNWU3ZDI0YTBlNWU3MzYwZmU3YWM2N2I0MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdElu
ZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyLmNwcApAQCAt
MjI3LDcgKzIyNyw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50
aWZpZXJDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvCiB7CiAgICAgVk0mIHZtID0g
c3RhdGUtPnZtKCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7Ci0gICAgYXV0byogcHJvdG90eXBlID0ganNEeW5hbWljRG93bmNhc3Q8SlNUZXN0SW5kZXhl
ZFNldHRlck5vSWRlbnRpZmllclByb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1Zh
bHVlKSk7CisgICAgYXV0byogcHJvdG90eXBlID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RJbmRleGVk
U2V0dGVyTm9JZGVudGlmaWVyUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFs
dWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIXByb3RvdHlwZSkpCiAgICAgICAgIHJldHVybiB0aHJv
d1ZNVHlwZUVycm9yKHN0YXRlLCB0aHJvd1Njb3BlKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKEpTVGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXI6OmdldENvbnN0cnVjdG9yKHN0YXRl
LT52bSgpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CkBAIC0yMzcsNyArMjM3LDcgQEAg
Ym9vbCBzZXRKU1Rlc3RJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IoRXhlY1N0
YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmEKIHsKICAgICBWTSYgdm0gPSBzdGF0ZS0+dm0oKTsKICAg
ICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAgICBhdXRvKiBw
cm90b3R5cGUgPSBqc0R5bmFtaWNEb3duY2FzdDxKU1Rlc3RJbmRleGVkU2V0dGVyTm9JZGVudGlm
aWVyUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKKyAgICBhdXRv
KiBwcm90b3R5cGUgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZp
ZXJQcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChV
TkxJS0VMWSghcHJvdG90eXBlKSkgewogICAgICAgICB0aHJvd1ZNVHlwZUVycm9yKHN0YXRlLCB0
aHJvd1Njb3BlKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMzAwLDcgKzMwMCw3IEBAIEpT
Qzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSwgSlNET01HbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgVGVzdEluCiAKIFRlc3RJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyKiBK
U1Rlc3RJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyOjp0b1dyYXBwZWQoSlNDOjpWTSYgdm0sIEpT
Qzo6SlNWYWx1ZSB2YWx1ZSkKIHsKLSAgICBpZiAoYXV0byogd3JhcHBlciA9IGpzRHluYW1pY0Rv
d25jYXN0PEpTVGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXIqPih2bSwgdmFsdWUpKQorICAg
IGlmIChhdXRvKiB3cmFwcGVyID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RJbmRleGVkU2V0dGVyTm9J
ZGVudGlmaWVyKj4odm0sIHZhbHVlKSkKICAgICAgICAgcmV0dXJuICZ3cmFwcGVyLT53cmFwcGVk
KCk7CiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0
aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJ
bmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24uY3BwCmluZGV4IDVjYWU1MDdmOTM4YjlhZmY0
OGJiNGYxMzYxNmY2MDlkN2NhMjMzNzIuLjQwYmVlZmY2MGNiMmRmY2Q0NmRlOTM1MjNhMzJiMTU2
Y2VmMTRiMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbmRleGVkU2V0dGVyVGhy
b3dpbmdFeGNlcHRpb24uY3BwCkBAIC0yMjcsNyArMjI3LDcgQEAgRW5jb2RlZEpTVmFsdWUganNU
ZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBz
dGF0ZSwKIHsKICAgICBWTSYgdm0gPSBzdGF0ZS0+dm0oKTsKICAgICBhdXRvIHRocm93U2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFt
aWNEb3duY2FzdDxKU1Rlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Qcm90b3R5cGUq
Pih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOworICAgIGF1dG8qIHByb3RvdHlwZSA9
IGpzRHluYW1pY0Nhc3Q8SlNUZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uUHJvdG90
eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFko
IXByb3RvdHlwZSkpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKHN0YXRlLCB0aHJv
d1Njb3BlKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdEluZGV4ZWRTZXR0ZXJU
aHJvd2luZ0V4Y2VwdGlvbjo6Z2V0Q29uc3RydWN0b3Ioc3RhdGUtPnZtKCksIHByb3RvdHlwZS0+
Z2xvYmFsT2JqZWN0KCkpKTsKQEAgLTIzNyw3ICsyMzcsNyBAQCBib29sIHNldEpTVGVzdEluZGV4
ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVu
Y29kZQogewogICAgIFZNJiB2bSA9IHN0YXRlLT52bSgpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1p
Y0Rvd25jYXN0PEpTVGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvblByb3RvdHlwZSo+
KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CisgICAgYXV0byogcHJvdG90eXBlID0g
anNEeW5hbWljQ2FzdDxKU1Rlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Qcm90b3R5
cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSgh
cHJvdG90eXBlKSkgewogICAgICAgICB0aHJvd1ZNVHlwZUVycm9yKHN0YXRlLCB0aHJvd1Njb3Bl
KTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMzAwLDcgKzMwMCw3IEBAIEpTQzo6SlNWYWx1
ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgVGVzdEluCiAKIFRlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24qIEpTVGVz
dEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbjo6dG9XcmFwcGVkKEpTQzo6Vk0mIHZtLCBK
U0M6OkpTVmFsdWUgdmFsdWUpCiB7Ci0gICAgaWYgKGF1dG8qIHdyYXBwZXIgPSBqc0R5bmFtaWNE
b3duY2FzdDxKU1Rlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24qPih2bSwgdmFsdWUp
KQorICAgIGlmIChhdXRvKiB3cmFwcGVyID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RJbmRleGVkU2V0
dGVyVGhyb3dpbmdFeGNlcHRpb24qPih2bSwgdmFsdWUpKQogICAgICAgICByZXR1cm4gJndyYXBw
ZXItPndyYXBwZWQoKTsKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbmRleGVkU2V0dGVyV2l0
aElkZW50aWZpZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllci5jcHAKaW5kZXggYTAxM2ZiNDAxYzIy
ZWZkMWI0NWZiZjk2NTE0YzQ2YWU1M2ViNWQ1ZC4uYjkxOTIwNTU2ZTA5NjFkM2EzMGE3ZTljZjAy
ZDVkZTNlMjRkNzMyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEluZGV4ZWRTZXR0ZXJX
aXRoSWRlbnRpZmllci5jcHAKQEAgLTIzMiwxNCArMjMyLDE0IEBAIGJvb2wgSlNUZXN0SW5kZXhl
ZFNldHRlcldpdGhJZGVudGlmaWVyOjpkZWZpbmVPd25Qcm9wZXJ0eShKU09iamVjdCogb2JqZWN0
LCBFeGVjCiAKIHRlbXBsYXRlPD4gaW5saW5lIEpTVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRp
ZmllciogSURMT3BlcmF0aW9uPEpTVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllcj46OmNh
c3QoRXhlY1N0YXRlJiBzdGF0ZSkKIHsKLSAgICByZXR1cm4ganNEeW5hbWljRG93bmNhc3Q8SlNU
ZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyKj4oc3RhdGUudm0oKSwgc3RhdGUudGhpc1Zh
bHVlKCkpOworICAgIHJldHVybiBqc0R5bmFtaWNDYXN0PEpTVGVzdEluZGV4ZWRTZXR0ZXJXaXRo
SWRlbnRpZmllcio+KHN0YXRlLnZtKCksIHN0YXRlLnRoaXNWYWx1ZSgpKTsKIH0KIAogRW5jb2Rl
ZEpTVmFsdWUganNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IoRXhl
Y1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7
CiAgICAgVk0mIHZtID0gc3RhdGUtPnZtKCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7Ci0gICAgYXV0byogcHJvdG90eXBlID0ganNEeW5hbWljRG93bmNh
c3Q8SlNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyUHJvdG90eXBlKj4odm0sIEpTVmFs
dWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKKyAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWND
YXN0PEpTVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllclByb3RvdHlwZSo+KHZtLCBKU1Zh
bHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFwcm90b3R5cGUpKQog
ICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihzdGF0ZSwgdGhyb3dTY29wZSk7CiAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXI6
OmdldENvbnN0cnVjdG9yKHN0YXRlLT52bSgpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7
CkBAIC0yNDksNyArMjQ5LDcgQEAgYm9vbCBzZXRKU1Rlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50
aWZpZXJDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlMKIHsKICAgICBWTSYg
dm0gPSBzdGF0ZS0+dm0oKTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKHZtKTsKLSAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNEb3duY2FzdDxKU1Rlc3RJ
bmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJQcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2Rl
KHRoaXNWYWx1ZSkpOworICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0
SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29k
ZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIXByb3RvdHlwZSkpIHsKICAgICAgICAg
dGhyb3dWTVR5cGVFcnJvcihzdGF0ZSwgdGhyb3dTY29wZSk7CiAgICAgICAgIHJldHVybiBmYWxz
ZTsKQEAgLTMzMiw3ICszMzIsNyBAQCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSog
c3RhdGUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRlc3RJbgogCiBUZXN0SW5k
ZXhlZFNldHRlcldpdGhJZGVudGlmaWVyKiBKU1Rlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZp
ZXI6OnRvV3JhcHBlZChKU0M6OlZNJiB2bSwgSlNDOjpKU1ZhbHVlIHZhbHVlKQogewotICAgIGlm
IChhdXRvKiB3cmFwcGVyID0ganNEeW5hbWljRG93bmNhc3Q8SlNUZXN0SW5kZXhlZFNldHRlcldp
dGhJZGVudGlmaWVyKj4odm0sIHZhbHVlKSkKKyAgICBpZiAoYXV0byogd3JhcHBlciA9IGpzRHlu
YW1pY0Nhc3Q8SlNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyKj4odm0sIHZhbHVlKSkK
ICAgICAgICAgcmV0dXJuICZ3cmFwcGVyLT53cmFwcGVkKCk7CiAgICAgcmV0dXJuIG51bGxwdHI7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0SW50ZXJmYWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RJbnRlcmZhY2UuY3BwCmluZGV4IDQwYmE2OTBmNDRmOWEwMWQ2MTYxMmU3ZTVh
ZWQ3ZDYzZWEzYWM5YzUuLmRjMjU5OTQ2ZTkzYTU3OWQ4NjVjYmU3ZDc3NGUxODkyZTU2YzU2Yjgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RJbnRlcmZhY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RJbnRlcmZhY2UuY3BwCkBAIC00MjYsMTkgKzQyNiwxOSBAQCB2b2lkIEpTVGVz
dEludGVyZmFjZTo6ZGVzdHJveShKU0M6OkpTQ2VsbCogY2VsbCkKIAogdGVtcGxhdGU8PiBpbmxp
bmUgSlNUZXN0SW50ZXJmYWNlKiBJRExBdHRyaWJ1dGU8SlNUZXN0SW50ZXJmYWNlPjo6Y2FzdChF
eGVjU3RhdGUmIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUpCiB7Ci0gICAgcmV0dXJu
IGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdEludGVyZmFjZSo+KHN0YXRlLnZtKCksIEpTVmFsdWU6
OmRlY29kZSh0aGlzVmFsdWUpKTsKKyAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3RJbnRl
cmZhY2UqPihzdGF0ZS52bSgpLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiB9CiAKIHRl
bXBsYXRlPD4gaW5saW5lIEpTVGVzdEludGVyZmFjZSogSURMT3BlcmF0aW9uPEpTVGVzdEludGVy
ZmFjZT46OmNhc3QoRXhlY1N0YXRlJiBzdGF0ZSkKIHsKLSAgICByZXR1cm4ganNEeW5hbWljRG93
bmNhc3Q8SlNUZXN0SW50ZXJmYWNlKj4oc3RhdGUudm0oKSwgc3RhdGUudGhpc1ZhbHVlKCkpOwor
ICAgIHJldHVybiBqc0R5bmFtaWNDYXN0PEpTVGVzdEludGVyZmFjZSo+KHN0YXRlLnZtKCksIHN0
YXRlLnRoaXNWYWx1ZSgpKTsKIH0KIAogRW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlQ29u
c3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCiB7CiAgICAgVk0mIHZtID0gc3RhdGUtPnZtKCk7CiAgICAgYXV0byB0aHJvd1Nj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgYXV0byogcHJvdG90eXBlID0ganNE
eW5hbWljRG93bmNhc3Q8SlNUZXN0SW50ZXJmYWNlUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRl
Y29kZSh0aGlzVmFsdWUpKTsKKyAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNDYXN0PEpT
VGVzdEludGVyZmFjZVByb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7
CiAgICAgaWYgKFVOTElLRUxZKCFwcm90b3R5cGUpKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5
cGVFcnJvcihzdGF0ZSwgdGhyb3dTY29wZSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShK
U1Rlc3RJbnRlcmZhY2U6OmdldENvbnN0cnVjdG9yKHN0YXRlLT52bSgpLCBwcm90b3R5cGUtPmds
b2JhbE9iamVjdCgpKSk7CkBAIC00NDgsNyArNDQ4LDcgQEAgYm9vbCBzZXRKU1Rlc3RJbnRlcmZh
Y2VDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IEUKIHsKICAgICBWTSYgdm0gPSBzdGF0ZS0+dm0oKTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBE
RUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNE
b3duY2FzdDxKU1Rlc3RJbnRlcmZhY2VQcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRo
aXNWYWx1ZSkpOworICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0SW50
ZXJmYWNlUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBp
ZiAoVU5MSUtFTFkoIXByb3RvdHlwZSkpIHsKICAgICAgICAgdGhyb3dWTVR5cGVFcnJvcihzdGF0
ZSwgdGhyb3dTY29wZSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTEwMTcsNyArMTAxNyw3
IEBAIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSwgSlNET01HbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgVGVzdEluCiAKIFRlc3RJbnRlcmZhY2UqIEpTVGVzdEludGVy
ZmFjZTo6dG9XcmFwcGVkKEpTQzo6Vk0mIHZtLCBKU0M6OkpTVmFsdWUgdmFsdWUpCiB7Ci0gICAg
aWYgKGF1dG8qIHdyYXBwZXIgPSBqc0R5bmFtaWNEb3duY2FzdDxKU1Rlc3RJbnRlcmZhY2UqPih2
bSwgdmFsdWUpKQorICAgIGlmIChhdXRvKiB3cmFwcGVyID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RJ
bnRlcmZhY2UqPih2bSwgdmFsdWUpKQogICAgICAgICByZXR1cm4gJndyYXBwZXItPndyYXBwZWQo
KTsKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJm
YWNlTGVhZGluZ1VuZGVyc2NvcmUuY3BwCmluZGV4IDFmZTk0ZWM3NTc0Yjc2ZTM5MTQwMTNjZGEz
OTllMzg2NGNjODZkYTguLjA0NjNjNTExYzNmMDZkZjdjZDk1OTAyMjFkOGE3MGQxNDE3NTliYTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlLmNw
cApAQCAtMTM3LDE0ICsxMzcsMTQgQEAgdm9pZCBKU1Rlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJz
Y29yZTo6ZGVzdHJveShKU0M6OkpTQ2VsbCogY2VsbCkKIAogdGVtcGxhdGU8PiBpbmxpbmUgSlNU
ZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmUqIElETEF0dHJpYnV0ZTxKU1Rlc3RJbnRlcmZh
Y2VMZWFkaW5nVW5kZXJzY29yZT46OmNhc3QoRXhlY1N0YXRlJiBzdGF0ZSwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlKQogewotICAgIHJldHVybiBqc0R5bmFtaWNEb3duY2FzdDxKU1Rlc3RJbnRl
cmZhY2VMZWFkaW5nVW5kZXJzY29yZSo+KHN0YXRlLnZtKCksIEpTVmFsdWU6OmRlY29kZSh0aGlz
VmFsdWUpKTsKKyAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3RJbnRlcmZhY2VMZWFkaW5n
VW5kZXJzY29yZSo+KHN0YXRlLnZtKCksIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKIH0K
IAogRW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmVDb25zdHJ1
Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkKIHsKICAgICBWTSYgdm0gPSBzdGF0ZS0+dm0oKTsKICAgICBhdXRvIHRocm93U2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFt
aWNEb3duY2FzdDxKU1Rlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZVByb3RvdHlwZSo+KHZt
LCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CisgICAgYXV0byogcHJvdG90eXBlID0ganNE
eW5hbWljQ2FzdDxKU1Rlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZVByb3RvdHlwZSo+KHZt
LCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFwcm90b3R5
cGUpKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihzdGF0ZSwgdGhyb3dTY29wZSk7
CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJz
Y29yZTo6Z2V0Q29uc3RydWN0b3Ioc3RhdGUtPnZtKCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0
KCkpKTsKQEAgLTE1NCw3ICsxNTQsNyBAQCBib29sIHNldEpTVGVzdEludGVyZmFjZUxlYWRpbmdV
bmRlcnNjb3JlQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVgogewogICAg
IFZNJiB2bSA9IHN0YXRlLT52bSgpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUodm0pOwotICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Rvd25jYXN0PEpT
VGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRl
Y29kZSh0aGlzVmFsdWUpKTsKKyAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNDYXN0PEpT
VGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRl
Y29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIXByb3RvdHlwZSkpIHsKICAgICAg
ICAgdGhyb3dWTVR5cGVFcnJvcihzdGF0ZSwgdGhyb3dTY29wZSk7CiAgICAgICAgIHJldHVybiBm
YWxzZTsKQEAgLTIwOCw3ICsyMDgsNyBAQCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0
ZSogc3RhdGUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRlc3RJbgogCiBUZXN0
SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmUqIEpTVGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNj
b3JlOjp0b1dyYXBwZWQoSlNDOjpWTSYgdm0sIEpTQzo6SlNWYWx1ZSB2YWx1ZSkKIHsKLSAgICBp
ZiAoYXV0byogd3JhcHBlciA9IGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdEludGVyZmFjZUxlYWRp
bmdVbmRlcnNjb3JlKj4odm0sIHZhbHVlKSkKKyAgICBpZiAoYXV0byogd3JhcHBlciA9IGpzRHlu
YW1pY0Nhc3Q8SlNUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmUqPih2bSwgdmFsdWUpKQog
ICAgICAgICByZXR1cm4gJndyYXBwZXItPndyYXBwZWQoKTsKICAgICByZXR1cm4gbnVsbHB0cjsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RJdGVyYWJsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0SXRlcmFibGUuY3BwCmluZGV4IDMyYjNkMTRiZTg2OTZjOTFmZGUzNTE1OGY3MTI1
MzMzNjYxY2Q5MmUuLmNhYTFkOTM4ZGJjODM4YzUxZmJlNmQxYjhmMWMyNWVjOWMxM2I4NjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJ
dGVyYWJsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdEl0ZXJhYmxlLmNwcApAQCAtMTQ5LDE0ICsxNDksMTQgQEAgdm9pZCBKU1Rlc3RJdGVy
YWJsZTo6ZGVzdHJveShKU0M6OkpTQ2VsbCogY2VsbCkKIAogdGVtcGxhdGU8PiBpbmxpbmUgSlNU
ZXN0SXRlcmFibGUqIElETE9wZXJhdGlvbjxKU1Rlc3RJdGVyYWJsZT46OmNhc3QoRXhlY1N0YXRl
JiBzdGF0ZSkKIHsKLSAgICByZXR1cm4ganNEeW5hbWljRG93bmNhc3Q8SlNUZXN0SXRlcmFibGUq
PihzdGF0ZS52bSgpLCBzdGF0ZS50aGlzVmFsdWUoKSk7CisgICAgcmV0dXJuIGpzRHluYW1pY0Nh
c3Q8SlNUZXN0SXRlcmFibGUqPihzdGF0ZS52bSgpLCBzdGF0ZS50aGlzVmFsdWUoKSk7CiB9CiAK
IEVuY29kZWRKU1ZhbHVlIGpzVGVzdEl0ZXJhYmxlQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0
ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVk0mIHZt
ID0gc3RhdGUtPnZtKCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7Ci0gICAgYXV0byogcHJvdG90eXBlID0ganNEeW5hbWljRG93bmNhc3Q8SlNUZXN0SXRl
cmFibGVQcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOworICAgIGF1
dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0SXRlcmFibGVQcm90b3R5cGUqPih2
bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghcHJvdG90
eXBlKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3Ioc3RhdGUsIHRocm93U2NvcGUp
OwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0SXRlcmFibGU6OmdldENvbnN0cnVj
dG9yKHN0YXRlLT52bSgpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CkBAIC0xNjYsNyAr
MTY2LDcgQEAgYm9vbCBzZXRKU1Rlc3RJdGVyYWJsZUNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3Rh
dGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW4KIHsKICAgICBWTSYgdm0gPSBzdGF0ZS0+
dm0oKTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAg
ICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNEb3duY2FzdDxKU1Rlc3RJdGVyYWJsZVByb3Rv
dHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CisgICAgYXV0byogcHJvdG90
eXBlID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RJdGVyYWJsZVByb3RvdHlwZSo+KHZtLCBKU1ZhbHVl
OjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFwcm90b3R5cGUpKSB7CiAg
ICAgICAgIHRocm93Vk1UeXBlRXJyb3Ioc3RhdGUsIHRocm93U2NvcGUpOwogICAgICAgICByZXR1
cm4gZmFsc2U7CkBAIC0yODQsNyArMjg0LDcgQEAgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVj
U3RhdGUqIHN0YXRlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBUZXN0SXQKIAog
VGVzdEl0ZXJhYmxlKiBKU1Rlc3RJdGVyYWJsZTo6dG9XcmFwcGVkKEpTQzo6Vk0mIHZtLCBKU0M6
OkpTVmFsdWUgdmFsdWUpCiB7Ci0gICAgaWYgKGF1dG8qIHdyYXBwZXIgPSBqc0R5bmFtaWNEb3du
Y2FzdDxKU1Rlc3RJdGVyYWJsZSo+KHZtLCB2YWx1ZSkpCisgICAgaWYgKGF1dG8qIHdyYXBwZXIg
PSBqc0R5bmFtaWNDYXN0PEpTVGVzdEl0ZXJhYmxlKj4odm0sIHZhbHVlKSkKICAgICAgICAgcmV0
dXJuICZ3cmFwcGVyLT53cmFwcGVkKCk7CiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SlNCdWls
dGluQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yLmNwcAppbmRleCBhMTU3MjczODhiOTU2ZDA0
ZTllOWU2NTY4M2ZkNzNjMTliMzM5NjgwLi4zOGNiNWMyMDU4ZmQwODI2MDcyNzM3NmZiZTJkMzU2
MmMzODgyMzIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3Rvci5jcHAK
QEAgLTE1MSwxOSArMTUxLDE5IEBAIHZvaWQgSlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3I6OmRl
c3Ryb3koSlNDOjpKU0NlbGwqIGNlbGwpCiAKIHRlbXBsYXRlPD4gaW5saW5lIEpTVGVzdEpTQnVp
bHRpbkNvbnN0cnVjdG9yKiBJRExBdHRyaWJ1dGU8SlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3I+
OjpjYXN0KEV4ZWNTdGF0ZSYgc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSkKIHsKLSAg
ICByZXR1cm4ganNEeW5hbWljRG93bmNhc3Q8SlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3IqPihz
dGF0ZS52bSgpLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CisgICAgcmV0dXJuIGpzRHlu
YW1pY0Nhc3Q8SlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3IqPihzdGF0ZS52bSgpLCBKU1ZhbHVl
OjpkZWNvZGUodGhpc1ZhbHVlKSk7CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5lIEpTVGVzdEpTQnVp
bHRpbkNvbnN0cnVjdG9yKiBJRExPcGVyYXRpb248SlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3I+
OjpjYXN0KEV4ZWNTdGF0ZSYgc3RhdGUpCiB7Ci0gICAgcmV0dXJuIGpzRHluYW1pY0Rvd25jYXN0
PEpTVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yKj4oc3RhdGUudm0oKSwgc3RhdGUudGhpc1ZhbHVl
KCkpOworICAgIHJldHVybiBqc0R5bmFtaWNDYXN0PEpTVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9y
Kj4oc3RhdGUudm0oKSwgc3RhdGUudGhpc1ZhbHVlKCkpOwogfQogCiBFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvckNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFZNJiB2bSA9IHN0
YXRlLT52bSgpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0p
OwotICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdEpTQnVpbHRp
bkNvbnN0cnVjdG9yUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsK
KyAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdEpTQnVpbHRpbkNvbnN0
cnVjdG9yUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBp
ZiAoVU5MSUtFTFkoIXByb3RvdHlwZSkpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9y
KHN0YXRlLCB0aHJvd1Njb3BlKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdEpT
QnVpbHRpbkNvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3RvcihzdGF0ZS0+dm0oKSwgcHJvdG90eXBl
LT5nbG9iYWxPYmplY3QoKSkpOwpAQCAtMTczLDcgKzE3Myw3IEBAIGJvb2wgc2V0SlNUZXN0SlNC
dWlsdGluQ29uc3RydWN0b3JDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNW
YWx1ZSB0CiB7CiAgICAgVk0mIHZtID0gc3RhdGUtPnZtKCk7CiAgICAgYXV0byB0aHJvd1Njb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgYXV0byogcHJvdG90eXBlID0ganNEeW5h
bWljRG93bmNhc3Q8SlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JQcm90b3R5cGUqPih2bSwgSlNW
YWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOworICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1p
Y0Nhc3Q8SlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JQcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6
ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghcHJvdG90eXBlKSkgewogICAg
ICAgICB0aHJvd1ZNVHlwZUVycm9yKHN0YXRlLCB0aHJvd1Njb3BlKTsKICAgICAgICAgcmV0dXJu
IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwCmlu
ZGV4IDAwYzAyN2U5ZDJjZDJkM2U2YzlhMDZjNDNmOGNmZmQxNDE2ODYxMjAuLjAyZmJhNjM4Njhh
M2E2ZDQ4ZWYwZTI3MzZlOTE2ZjVlNjg3YmM5NzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVk
aWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAKQEAgLTE0MiwxNCArMTQyLDE0IEBAIHZvaWQgSlNUZXN0
TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcjo6ZGVzdHJveShKU0M6OkpTQ2VsbCogY2VsbCkKIAogdGVt
cGxhdGU8PiBpbmxpbmUgSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lciogSURMT3BlcmF0aW9u
PEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI+OjpjYXN0KEV4ZWNTdGF0ZSYgc3RhdGUpCiB7
Ci0gICAgcmV0dXJuIGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVu
ZXIqPihzdGF0ZS52bSgpLCBzdGF0ZS50aGlzVmFsdWUoKSk7CisgICAgcmV0dXJuIGpzRHluYW1p
Y0Nhc3Q8SlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcio+KHN0YXRlLnZtKCksIHN0YXRlLnRo
aXNWYWx1ZSgpKTsKIH0KIAogRW5jb2RlZEpTVmFsdWUganNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0
ZW5lckNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFZNJiB2bSA9IHN0YXRlLT52bSgpOwogICAgIGF1dG8g
dGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAgIGF1dG8qIHByb3RvdHlw
ZSA9IGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJQcm90b3R5
cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOworICAgIGF1dG8qIHByb3RvdHlw
ZSA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lclByb3RvdHlwZSo+
KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFwcm90
b3R5cGUpKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihzdGF0ZSwgdGhyb3dTY29w
ZSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3Rl
bmVyOjpnZXRDb25zdHJ1Y3RvcihzdGF0ZS0+dm0oKSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3Qo
KSkpOwpAQCAtMTU5LDcgKzE1OSw3IEBAIGJvb2wgc2V0SlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0
ZW5lckNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlCiB7CiAgICAg
Vk0mIHZtID0gc3RhdGUtPnZtKCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7Ci0gICAgYXV0byogcHJvdG90eXBlID0ganNEeW5hbWljRG93bmNhc3Q8SlNU
ZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lclByb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUo
dGhpc1ZhbHVlKSk7CisgICAgYXV0byogcHJvdG90eXBlID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RN
ZWRpYVF1ZXJ5TGlzdExpc3RlbmVyUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlz
VmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIXByb3RvdHlwZSkpIHsKICAgICAgICAgdGhyb3dW
TVR5cGVFcnJvcihzdGF0ZSwgdGhyb3dTY29wZSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAg
LTI0MCw3ICsyNDAsNyBAQCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSogc3RhdGUs
IEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRlc3RNZQogCiBUZXN0TWVkaWFRdWVy
eUxpc3RMaXN0ZW5lciogSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcjo6dG9XcmFwcGVkKEpT
Qzo6Vk0mIHZtLCBKU0M6OkpTVmFsdWUgdmFsdWUpCiB7Ci0gICAgaWYgKGF1dG8qIHdyYXBwZXIg
PSBqc0R5bmFtaWNEb3duY2FzdDxKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKj4odm0sIHZh
bHVlKSkKKyAgICBpZiAoYXV0byogd3JhcHBlciA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0TWVkaWFR
dWVyeUxpc3RMaXN0ZW5lcio+KHZtLCB2YWx1ZSkpCiAgICAgICAgIHJldHVybiAmd3JhcHBlci0+
d3JhcHBlZCgpOwogICAgIHJldHVybiBudWxscHRyOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRl
ck5vSWRlbnRpZmllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyLmNwcAppbmRleCA2MzA3
YTU1ODQ5NjI5NDVjZTQ1YTcyYzlhNTM1OWQ2YjE5YWRlNzhlLi5hYWRhNDhjMDRlNmVkZTlhOGU0
NzY2N2FmM2U1MTJmMzI3NTczYzg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyLmNwcApAQCAtMjkzLDcgKzI5Myw3IEBA
IEVuY29kZWRKU1ZhbHVlIGpzVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlck5vSWRlbnRpZmllckNv
bnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhCiB7CiAgICAgVk0mIHZtID0gc3RhdGUtPnZtKCk7CiAg
ICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgYXV0byog
cHJvdG90eXBlID0ganNEeW5hbWljRG93bmNhc3Q8SlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVy
Tm9JZGVudGlmaWVyUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsK
KyAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE5hbWVkQW5kSW5kZXhl
ZFNldHRlck5vSWRlbnRpZmllclByb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1Zh
bHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFwcm90b3R5cGUpKQogICAgICAgICByZXR1cm4gdGhy
b3dWTVR5cGVFcnJvcihzdGF0ZSwgdGhyb3dTY29wZSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXI6OmdldENvbnN0cnVj
dG9yKHN0YXRlLT52bSgpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CkBAIC0zMDMsNyAr
MzAzLDcgQEAgYm9vbCBzZXRKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXJD
b25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBFbmMKIHsKICAgICBWTSYgdm0gPSBzdGF0ZS0+
dm0oKTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAg
ICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNEb3duY2FzdDxKU1Rlc3ROYW1lZEFuZEluZGV4
ZWRTZXR0ZXJOb0lkZW50aWZpZXJQcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNW
YWx1ZSkpOworICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0TmFtZWRB
bmRJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29k
ZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIXByb3RvdHlwZSkpIHsKICAgICAgICAg
dGhyb3dWTVR5cGVFcnJvcihzdGF0ZSwgdGhyb3dTY29wZSk7CiAgICAgICAgIHJldHVybiBmYWxz
ZTsKQEAgLTM2Niw3ICszNjYsNyBAQCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSog
c3RhdGUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRlc3ROYQogCiBUZXN0TmFt
ZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyKiBKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0
ZXJOb0lkZW50aWZpZXI6OnRvV3JhcHBlZChKU0M6OlZNJiB2bSwgSlNDOjpKU1ZhbHVlIHZhbHVl
KQogewotICAgIGlmIChhdXRvKiB3cmFwcGVyID0ganNEeW5hbWljRG93bmNhc3Q8SlNUZXN0TmFt
ZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyKj4odm0sIHZhbHVlKSkKKyAgICBpZiAoYXV0
byogd3JhcHBlciA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9J
ZGVudGlmaWVyKj4odm0sIHZhbHVlKSkKICAgICAgICAgcmV0dXJuICZ3cmFwcGVyLT53cmFwcGVk
KCk7CiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dp
bmdFeGNlcHRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmNwcAppbmRleCA0
NDc3MWJlZDM4YWFhN2U0MTRkYzY5Y2ZkYzJlYmRhZmVmZTFkMWI2Li5jMjdmYmJhZDA1MjQ4Zjk5
OGYyMzZkMjlkNDIyNDA5MmEyNWUyNjk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdF
eGNlcHRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHAKQEAgLTI5
Myw3ICsyOTMsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJU
aHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yKEV4ZWNTdGF0ZQogewogICAgIFZNJiB2bSA9IHN0
YXRlLT52bSgpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0p
OwotICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdE5hbWVkQW5k
SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRl
Y29kZSh0aGlzVmFsdWUpKTsKKyAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNDYXN0PEpT
VGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uUHJvdG90eXBlKj4odm0s
IEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIXByb3RvdHlw
ZSkpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKHN0YXRlLCB0aHJvd1Njb3BlKTsK
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRo
cm93aW5nRXhjZXB0aW9uOjpnZXRDb25zdHJ1Y3RvcihzdGF0ZS0+dm0oKSwgcHJvdG90eXBlLT5n
bG9iYWxPYmplY3QoKSkpOwpAQCAtMzAzLDcgKzMwMyw3IEBAIGJvb2wgc2V0SlNUZXN0TmFtZWRB
bmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0
YXRlCiB7CiAgICAgVk0mIHZtID0gc3RhdGUtPnZtKCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgYXV0byogcHJvdG90eXBlID0ganNEeW5hbWlj
RG93bmNhc3Q8SlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Qcm90
b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOworICAgIGF1dG8qIHByb3Rv
dHlwZSA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdF
eGNlcHRpb25Qcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAg
IGlmIChVTkxJS0VMWSghcHJvdG90eXBlKSkgewogICAgICAgICB0aHJvd1ZNVHlwZUVycm9yKHN0
YXRlLCB0aHJvd1Njb3BlKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMzY2LDcgKzM2Niw3
IEBAIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSwgSlNET01HbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgVGVzdE5hCiAKIFRlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJU
aHJvd2luZ0V4Y2VwdGlvbiogSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNl
cHRpb246OnRvV3JhcHBlZChKU0M6OlZNJiB2bSwgSlNDOjpKU1ZhbHVlIHZhbHVlKQogewotICAg
IGlmIChhdXRvKiB3cmFwcGVyID0ganNEeW5hbWljRG93bmNhc3Q8SlNUZXN0TmFtZWRBbmRJbmRl
eGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24qPih2bSwgdmFsdWUpKQorICAgIGlmIChhdXRvKiB3
cmFwcGVyID0ganNEeW5hbWljQ2FzdDxKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2lu
Z0V4Y2VwdGlvbio+KHZtLCB2YWx1ZSkpCiAgICAgICAgIHJldHVybiAmd3JhcHBlci0+d3JhcHBl
ZCgpOwogICAgIHJldHVybiBudWxscHRyOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJ
ZGVudGlmaWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllci5jcHAKaW5kZXggOGJkODEy
NGQ0NGJkYmYzNjY3YTcyZWY2Y2U0YTRiNjUyMjY5M2ZkZS4uNDllZmJjMDA4ODU3MjZkY2IyZDcy
OGM4MzI3YmZmMmE4MGRjMDc2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXIuY3BwCkBAIC0zMDAsMTQgKzMwMCwx
NCBAQCBib29sIEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyOjpkZWZp
bmVPd25Qcm9wZXJ0eShKU09iamVjdCogb2JqZQogCiB0ZW1wbGF0ZTw+IGlubGluZSBKU1Rlc3RO
YW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllciogSURMT3BlcmF0aW9uPEpTVGVzdE5h
bWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyPjo6Y2FzdChFeGVjU3RhdGUmIHN0YXRl
KQogewotICAgIHJldHVybiBqc0R5bmFtaWNEb3duY2FzdDxKU1Rlc3ROYW1lZEFuZEluZGV4ZWRT
ZXR0ZXJXaXRoSWRlbnRpZmllcio+KHN0YXRlLnZtKCksIHN0YXRlLnRoaXNWYWx1ZSgpKTsKKyAg
ICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRl
bnRpZmllcio+KHN0YXRlLnZtKCksIHN0YXRlLnRoaXNWYWx1ZSgpKTsKIH0KIAogRW5jb2RlZEpT
VmFsdWUganNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3Rv
cihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkKIHsKICAgICBWTSYgdm0gPSBzdGF0ZS0+dm0oKTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBE
RUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNE
b3duY2FzdDxKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllclByb3RvdHlw
ZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CisgICAgYXV0byogcHJvdG90eXBl
ID0ganNEeW5hbWljQ2FzdDxKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmll
clByb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVO
TElLRUxZKCFwcm90b3R5cGUpKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihzdGF0
ZSwgdGhyb3dTY29wZSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3ROYW1lZEFu
ZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllcjo6Z2V0Q29uc3RydWN0b3Ioc3RhdGUtPnZtKCks
IHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKQEAgLTMxNyw3ICszMTcsNyBAQCBib29sIHNl
dEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IoRXhl
Y1N0YXRlKiBzdGF0ZSwgRQogewogICAgIFZNJiB2bSA9IHN0YXRlLT52bSgpOwogICAgIGF1dG8g
dGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAgIGF1dG8qIHByb3RvdHlw
ZSA9IGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVu
dGlmaWVyUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKKyAgICBh
dXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRl
cldpdGhJZGVudGlmaWVyUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUp
KTsKICAgICBpZiAoVU5MSUtFTFkoIXByb3RvdHlwZSkpIHsKICAgICAgICAgdGhyb3dWTVR5cGVF
cnJvcihzdGF0ZSwgdGhyb3dTY29wZSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTQyMCw3
ICs0MjAsNyBAQCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSogc3RhdGUsIEpTRE9N
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRlc3ROYQogCiBUZXN0TmFtZWRBbmRJbmRleGVk
U2V0dGVyV2l0aElkZW50aWZpZXIqIEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVu
dGlmaWVyOjp0b1dyYXBwZWQoSlNDOjpWTSYgdm0sIEpTQzo6SlNWYWx1ZSB2YWx1ZSkKIHsKLSAg
ICBpZiAoYXV0byogd3JhcHBlciA9IGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdE5hbWVkQW5kSW5k
ZXhlZFNldHRlcldpdGhJZGVudGlmaWVyKj4odm0sIHZhbHVlKSkKKyAgICBpZiAoYXV0byogd3Jh
cHBlciA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50
aWZpZXIqPih2bSwgdmFsdWUpKQogICAgICAgICByZXR1cm4gJndyYXBwZXItPndyYXBwZWQoKTsK
ICAgICByZXR1cm4gbnVsbHB0cjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZENvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZENvbnN0cnVjdG9yLmNw
cAppbmRleCBkOGE3MGRjM2I3ZWMzZWRiN2E0NTU3Nzk1MzQwMGIwNTRkM2RhNGViLi4zNzMzYTc4
YTNhM2M0OTBlYTNjMmQ3NmU1ODhjNDI0MWI3NTNjYzYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVk
Q29uc3RydWN0b3IuY3BwCkBAIC0xNzgsNyArMTc4LDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0
TmFtZWRDb25zdHJ1Y3RvckNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1Zh
bHUKIHsKICAgICBWTSYgdm0gPSBzdGF0ZS0+dm0oKTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBE
RUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNE
b3duY2FzdDxKU1Rlc3ROYW1lZENvbnN0cnVjdG9yUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRl
Y29kZSh0aGlzVmFsdWUpKTsKKyAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNDYXN0PEpT
VGVzdE5hbWVkQ29uc3RydWN0b3JQcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNW
YWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghcHJvdG90eXBlKSkKICAgICAgICAgcmV0dXJuIHRo
cm93Vk1UeXBlRXJyb3Ioc3RhdGUsIHRocm93U2NvcGUpOwogICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0b3Ioc3RhdGUtPnZtKCks
IHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKQEAgLTE4OCw3ICsxODgsNyBAQCBib29sIHNl
dEpTVGVzdE5hbWVkQ29uc3RydWN0b3JDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVgogewogICAgIFZNJiB2bSA9IHN0YXRlLT52bSgpOwogICAgIGF1dG8g
dGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAgIGF1dG8qIHByb3RvdHlw
ZSA9IGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdE5hbWVkQ29uc3RydWN0b3JQcm90b3R5cGUqPih2
bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOworICAgIGF1dG8qIHByb3RvdHlwZSA9IGpz
RHluYW1pY0Nhc3Q8SlNUZXN0TmFtZWRDb25zdHJ1Y3RvclByb3RvdHlwZSo+KHZtLCBKU1ZhbHVl
OjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFwcm90b3R5cGUpKSB7CiAg
ICAgICAgIHRocm93Vk1UeXBlRXJyb3Ioc3RhdGUsIHRocm93U2NvcGUpOwogICAgICAgICByZXR1
cm4gZmFsc2U7CkBAIC0yNTMsNyArMjUzLDcgQEAgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVj
U3RhdGUqIHN0YXRlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBUZXN0TmEKIAog
VGVzdE5hbWVkQ29uc3RydWN0b3IqIEpTVGVzdE5hbWVkQ29uc3RydWN0b3I6OnRvV3JhcHBlZChK
U0M6OlZNJiB2bSwgSlNDOjpKU1ZhbHVlIHZhbHVlKQogewotICAgIGlmIChhdXRvKiB3cmFwcGVy
ID0ganNEeW5hbWljRG93bmNhc3Q8SlNUZXN0TmFtZWRDb25zdHJ1Y3Rvcio+KHZtLCB2YWx1ZSkp
CisgICAgaWYgKGF1dG8qIHdyYXBwZXIgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE5hbWVkQ29uc3Ry
dWN0b3IqPih2bSwgdmFsdWUpKQogICAgICAgICByZXR1cm4gJndyYXBwZXItPndyYXBwZWQoKTsK
ICAgICByZXR1cm4gbnVsbHB0cjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJOb0lkZW50aWZpZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRl
ck5vSWRlbnRpZmllci5jcHAKaW5kZXggMDNhOWMxODE4NjE2MzdhYzhjYWUyNWU5MGJiNTQ2ZmMy
N2RiNDQ3MS4uODI1Njc2MjQyZTUzM2I3YTlmMTM3ZGNmN2U3MDQzODQwOWExNzYzYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVk
RGVsZXRlck5vSWRlbnRpZmllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlck5vSWRlbnRpZmllci5jcHAKQEAgLTIwNiw3
ICsyMDYsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROYW1lZERlbGV0ZXJOb0lkZW50aWZpZXJD
b25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZAogewogICAgIFZNJiB2bSA9IHN0YXRl
LT52bSgpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwot
ICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdE5hbWVkRGVsZXRl
ck5vSWRlbnRpZmllclByb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7
CisgICAgYXV0byogcHJvdG90eXBlID0ganNEeW5hbWljQ2FzdDxKU1Rlc3ROYW1lZERlbGV0ZXJO
b0lkZW50aWZpZXJQcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwog
ICAgIGlmIChVTkxJS0VMWSghcHJvdG90eXBlKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBl
RXJyb3Ioc3RhdGUsIHRocm93U2NvcGUpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNU
ZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVyOjpnZXRDb25zdHJ1Y3RvcihzdGF0ZS0+dm0oKSwg
cHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOwpAQCAtMjE2LDcgKzIxNiw3IEBAIGJvb2wgc2V0
SlNUZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0
ZSwgRW5jb2RlZEpTVmFsCiB7CiAgICAgVk0mIHZtID0gc3RhdGUtPnZtKCk7CiAgICAgYXV0byB0
aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgYXV0byogcHJvdG90eXBl
ID0ganNEeW5hbWljRG93bmNhc3Q8SlNUZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVyUHJvdG90
eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKKyAgICBhdXRvKiBwcm90b3R5
cGUgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE5hbWVkRGVsZXRlck5vSWRlbnRpZmllclByb3RvdHlw
ZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFw
cm90b3R5cGUpKSB7CiAgICAgICAgIHRocm93Vk1UeXBlRXJyb3Ioc3RhdGUsIHRocm93U2NvcGUp
OwogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0yNzksNyArMjc5LDcgQEAgSlNDOjpKU1ZhbHVl
IHRvSlMoSlNDOjpFeGVjU3RhdGUqIHN0YXRlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBUZXN0TmEKIAogVGVzdE5hbWVkRGVsZXRlck5vSWRlbnRpZmllciogSlNUZXN0TmFtZWRE
ZWxldGVyTm9JZGVudGlmaWVyOjp0b1dyYXBwZWQoSlNDOjpWTSYgdm0sIEpTQzo6SlNWYWx1ZSB2
YWx1ZSkKIHsKLSAgICBpZiAoYXV0byogd3JhcHBlciA9IGpzRHluYW1pY0Rvd25jYXN0PEpTVGVz
dE5hbWVkRGVsZXRlck5vSWRlbnRpZmllcio+KHZtLCB2YWx1ZSkpCisgICAgaWYgKGF1dG8qIHdy
YXBwZXIgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE5hbWVkRGVsZXRlck5vSWRlbnRpZmllcio+KHZt
LCB2YWx1ZSkpCiAgICAgICAgIHJldHVybiAmd3JhcHBlci0+d3JhcHBlZCgpOwogICAgIHJldHVy
biBudWxscHRyOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJUaHJv
d2luZ0V4Y2VwdGlvbi5jcHAKaW5kZXggMmQ5OTA5MjM0ZjM2YTIyYjk0ZjI4ZGY4M2I0ZjcwYzky
OGE3YWY4YS4uOGYxNzE3MmFmMWQ5NDk1MDFjOTA2MjQzYTFiZGUwYWI5ZTY0MWJjMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVk
RGVsZXRlclRocm93aW5nRXhjZXB0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNlcHRpb24uY3Bw
CkBAIC0yMjAsNyArMjIwLDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0TmFtZWREZWxldGVyVGhy
b3dpbmdFeGNlcHRpb25Db25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLAogewogICAgIFZNJiB2
bSA9IHN0YXRlLT52bSgpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOwotICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdE5h
bWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29k
ZSh0aGlzVmFsdWUpKTsKKyAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNDYXN0PEpTVGVz
dE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRl
Y29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIXByb3RvdHlwZSkpCiAgICAgICAg
IHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKHN0YXRlLCB0aHJvd1Njb3BlKTsKICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uOjpnZXRD
b25zdHJ1Y3RvcihzdGF0ZS0+dm0oKSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOwpAQCAt
MjMwLDcgKzIzMCw3IEBAIGJvb2wgc2V0SlNUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNlcHRp
b25Db25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkCiB7CiAgICAgVk0mIHZtID0g
c3RhdGUtPnZtKCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7Ci0gICAgYXV0byogcHJvdG90eXBlID0ganNEeW5hbWljRG93bmNhc3Q8SlNUZXN0TmFtZWRE
ZWxldGVyVGhyb3dpbmdFeGNlcHRpb25Qcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRo
aXNWYWx1ZSkpOworICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0TmFt
ZWREZWxldGVyVGhyb3dpbmdFeGNlcHRpb25Qcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2Rl
KHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghcHJvdG90eXBlKSkgewogICAgICAgICB0
aHJvd1ZNVHlwZUVycm9yKHN0YXRlLCB0aHJvd1Njb3BlKTsKICAgICAgICAgcmV0dXJuIGZhbHNl
OwpAQCAtMjkzLDcgKzI5Myw3IEBAIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiBz
dGF0ZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVGVzdE5hCiAKIFRlc3ROYW1l
ZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbiogSlNUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNl
cHRpb246OnRvV3JhcHBlZChKU0M6OlZNJiB2bSwgSlNDOjpKU1ZhbHVlIHZhbHVlKQogewotICAg
IGlmIChhdXRvKiB3cmFwcGVyID0ganNEeW5hbWljRG93bmNhc3Q8SlNUZXN0TmFtZWREZWxldGVy
VGhyb3dpbmdFeGNlcHRpb24qPih2bSwgdmFsdWUpKQorICAgIGlmIChhdXRvKiB3cmFwcGVyID0g
anNEeW5hbWljQ2FzdDxKU1Rlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbio+KHZtLCB2
YWx1ZSkpCiAgICAgICAgIHJldHVybiAmd3JhcHBlci0+d3JhcHBlZCgpOwogICAgIHJldHVybiBu
dWxscHRyOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRp
Zmllci5jcHAKaW5kZXggMjExMzMyMzJlMWU5NTY4YThiNmZkMjJiYWMxNzc1YTY5MzY0NmFkZS4u
MWRiNjlmMWI2OWMxZmMyNGIxYWQ2MTE2YWFlMTYwMjRjNTk1NGRhZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlcldp
dGhJZGVudGlmaWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXIuY3BwCkBAIC0yMTIsMTQgKzIx
MiwxNCBAQCBib29sIEpTVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyOjpkZWxldGVQcm9w
ZXJ0eUJ5SW5kZXgoSlNDZWxsKiBjZWxsLCBFeGVjUwogCiB0ZW1wbGF0ZTw+IGlubGluZSBKU1Rl
c3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllciogSURMT3BlcmF0aW9uPEpTVGVzdE5hbWVkRGVs
ZXRlcldpdGhJZGVudGlmaWVyPjo6Y2FzdChFeGVjU3RhdGUmIHN0YXRlKQogewotICAgIHJldHVy
biBqc0R5bmFtaWNEb3duY2FzdDxKU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllcio+KHN0
YXRlLnZtKCksIHN0YXRlLnRoaXNWYWx1ZSgpKTsKKyAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxK
U1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllcio+KHN0YXRlLnZtKCksIHN0YXRlLnRoaXNW
YWx1ZSgpKTsKIH0KIAogRW5jb2RlZEpTVmFsdWUganNUZXN0TmFtZWREZWxldGVyV2l0aElkZW50
aWZpZXJDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBWTSYgdm0gPSBzdGF0ZS0+dm0oKTsKICAgICBhdXRv
IHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAgICBhdXRvKiBwcm90b3R5
cGUgPSBqc0R5bmFtaWNEb3duY2FzdDxKU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllclBy
b3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CisgICAgYXV0byogcHJv
dG90eXBlID0ganNEeW5hbWljQ2FzdDxKU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllclBy
b3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElL
RUxZKCFwcm90b3R5cGUpKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihzdGF0ZSwg
dGhyb3dTY29wZSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3ROYW1lZERlbGV0
ZXJXaXRoSWRlbnRpZmllcjo6Z2V0Q29uc3RydWN0b3Ioc3RhdGUtPnZtKCksIHByb3RvdHlwZS0+
Z2xvYmFsT2JqZWN0KCkpKTsKQEAgLTIyOSw3ICsyMjksNyBAQCBib29sIHNldEpTVGVzdE5hbWVk
RGVsZXRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2Rl
ZEpTVgogewogICAgIFZNJiB2bSA9IHN0YXRlLT52bSgpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1p
Y0Rvd25jYXN0PEpTVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyUHJvdG90eXBlKj4odm0s
IEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKKyAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5
bmFtaWNDYXN0PEpTVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyUHJvdG90eXBlKj4odm0s
IEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIXByb3RvdHlw
ZSkpIHsKICAgICAgICAgdGhyb3dWTVR5cGVFcnJvcihzdGF0ZSwgdGhyb3dTY29wZSk7CiAgICAg
ICAgIHJldHVybiBmYWxzZTsKQEAgLTMxMCw3ICszMTAsNyBAQCBKU0M6OkpTVmFsdWUgdG9KUyhK
U0M6OkV4ZWNTdGF0ZSogc3RhdGUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRl
c3ROYQogCiBUZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXIqIEpTVGVzdE5hbWVkRGVsZXRl
cldpdGhJZGVudGlmaWVyOjp0b1dyYXBwZWQoSlNDOjpWTSYgdm0sIEpTQzo6SlNWYWx1ZSB2YWx1
ZSkKIHsKLSAgICBpZiAoYXV0byogd3JhcHBlciA9IGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdE5h
bWVkRGVsZXRlcldpdGhJZGVudGlmaWVyKj4odm0sIHZhbHVlKSkKKyAgICBpZiAoYXV0byogd3Jh
cHBlciA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXIqPih2
bSwgdmFsdWUpKQogICAgICAgICByZXR1cm4gJndyYXBwZXItPndyYXBwZWQoKTsKICAgICByZXR1
cm4gbnVsbHB0cjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdldHRlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxldGVyV2l0
aEluZGV4ZWRHZXR0ZXIuY3BwCmluZGV4IGQ4ZGRkM2NkMDMwODZmZjY3YTk0MTAzZGYzYzZlNGQ3
ZDFkZTI3ODguLmUzZmZhNzgzMzhiYmVjY2E1MWU3YTFlMWYxNzFhYmMzNmFjYmUwYmMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1l
ZERlbGV0ZXJXaXRoSW5kZXhlZEdldHRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlcldpdGhJbmRleGVkR2V0dGVyLmNw
cApAQCAtMjI0LDcgKzIyNCw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE5hbWVkRGVsZXRlcldp
dGhJbmRleGVkR2V0dGVyQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwKIHsKICAgICBWTSYg
dm0gPSBzdGF0ZS0+dm0oKTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKHZtKTsKLSAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNEb3duY2FzdDxKU1Rlc3RO
YW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdldHRlclByb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNv
ZGUodGhpc1ZhbHVlKSk7CisgICAgYXV0byogcHJvdG90eXBlID0ganNEeW5hbWljQ2FzdDxKU1Rl
c3ROYW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdldHRlclByb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpk
ZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFwcm90b3R5cGUpKQogICAgICAg
ICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihzdGF0ZSwgdGhyb3dTY29wZSk7CiAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShKU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdldHRlcjo6Z2V0
Q29uc3RydWN0b3Ioc3RhdGUtPnZtKCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKQEAg
LTIzNCw3ICsyMzQsNyBAQCBib29sIHNldEpTVGVzdE5hbWVkRGVsZXRlcldpdGhJbmRleGVkR2V0
dGVyQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZAogewogICAgIFZNJiB2bSA9
IHN0YXRlLT52bSgpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwotICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdE5hbWVk
RGVsZXRlcldpdGhJbmRleGVkR2V0dGVyUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0
aGlzVmFsdWUpKTsKKyAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE5h
bWVkRGVsZXRlcldpdGhJbmRleGVkR2V0dGVyUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29k
ZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIXByb3RvdHlwZSkpIHsKICAgICAgICAg
dGhyb3dWTVR5cGVFcnJvcihzdGF0ZSwgdGhyb3dTY29wZSk7CiAgICAgICAgIHJldHVybiBmYWxz
ZTsKQEAgLTI5Nyw3ICsyOTcsNyBAQCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSog
c3RhdGUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRlc3ROYQogCiBUZXN0TmFt
ZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXIqIEpTVGVzdE5hbWVkRGVsZXRlcldpdGhJbmRleGVk
R2V0dGVyOjp0b1dyYXBwZWQoSlNDOjpWTSYgdm0sIEpTQzo6SlNWYWx1ZSB2YWx1ZSkKIHsKLSAg
ICBpZiAoYXV0byogd3JhcHBlciA9IGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdE5hbWVkRGVsZXRl
cldpdGhJbmRleGVkR2V0dGVyKj4odm0sIHZhbHVlKSkKKyAgICBpZiAoYXV0byogd3JhcHBlciA9
IGpzRHluYW1pY0Nhc3Q8SlNUZXN0TmFtZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXIqPih2bSwg
dmFsdWUpKQogICAgICAgICByZXR1cm4gJndyYXBwZXItPndyYXBwZWQoKTsKICAgICByZXR1cm4g
bnVsbHB0cjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3ROYW1lZEdldHRlckNhbGxXaXRoLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEdldHRlckNhbGxXaXRoLmNwcAppbmRl
eCBjMmZmMzAyNWQ5NWM3YmI5YzBjM2QzMTQzNzQxYWFjNTNjZDE4Mzg2Li5jMTE4MjBlZjhhZGNi
ZTdjNDc0OTdhODA0NTUzODQxNTIzYjhjZTBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkR2V0
dGVyQ2FsbFdpdGguY3BwCkBAIC0xODUsNyArMTg1LDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0
TmFtZWRHZXR0ZXJDYWxsV2l0aENvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRK
U1YKIHsKICAgICBWTSYgdm0gPSBzdGF0ZS0+dm0oKTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBE
RUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNE
b3duY2FzdDxKU1Rlc3ROYW1lZEdldHRlckNhbGxXaXRoUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6
OmRlY29kZSh0aGlzVmFsdWUpKTsKKyAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNDYXN0
PEpTVGVzdE5hbWVkR2V0dGVyQ2FsbFdpdGhQcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2Rl
KHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghcHJvdG90eXBlKSkKICAgICAgICAgcmV0
dXJuIHRocm93Vk1UeXBlRXJyb3Ioc3RhdGUsIHRocm93U2NvcGUpOwogICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoSlNUZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aDo6Z2V0Q29uc3RydWN0b3Ioc3Rh
dGUtPnZtKCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKQEAgLTE5NSw3ICsxOTUsNyBA
QCBib29sIHNldEpTVGVzdE5hbWVkR2V0dGVyQ2FsbFdpdGhDb25zdHJ1Y3RvcihFeGVjU3RhdGUq
IHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aAogewogICAgIFZNJiB2bSA9IHN0YXRlLT52bSgpOwog
ICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAgIGF1dG8q
IHByb3RvdHlwZSA9IGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdE5hbWVkR2V0dGVyQ2FsbFdpdGhQ
cm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOworICAgIGF1dG8qIHBy
b3RvdHlwZSA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aFByb3RvdHlw
ZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFw
cm90b3R5cGUpKSB7CiAgICAgICAgIHRocm93Vk1UeXBlRXJyb3Ioc3RhdGUsIHRocm93U2NvcGUp
OwogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0yNTgsNyArMjU4LDcgQEAgSlNDOjpKU1ZhbHVl
IHRvSlMoSlNDOjpFeGVjU3RhdGUqIHN0YXRlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBUZXN0TmEKIAogVGVzdE5hbWVkR2V0dGVyQ2FsbFdpdGgqIEpTVGVzdE5hbWVkR2V0dGVy
Q2FsbFdpdGg6OnRvV3JhcHBlZChKU0M6OlZNJiB2bSwgSlNDOjpKU1ZhbHVlIHZhbHVlKQogewot
ICAgIGlmIChhdXRvKiB3cmFwcGVyID0ganNEeW5hbWljRG93bmNhc3Q8SlNUZXN0TmFtZWRHZXR0
ZXJDYWxsV2l0aCo+KHZtLCB2YWx1ZSkpCisgICAgaWYgKGF1dG8qIHdyYXBwZXIgPSBqc0R5bmFt
aWNDYXN0PEpTVGVzdE5hbWVkR2V0dGVyQ2FsbFdpdGgqPih2bSwgdmFsdWUpKQogICAgICAgICBy
ZXR1cm4gJndyYXBwZXItPndyYXBwZWQoKTsKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1l
ZEdldHRlck5vSWRlbnRpZmllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0TmFtZWRHZXR0ZXJOb0lkZW50aWZpZXIuY3BwCmluZGV4IDcyNzdiZTE3
NjRiM2Q1YTE3N2VjNDc3NjFmMzQ5YWU2MmY3MWVjZjUuLjYzZGJjNjNkYmU5NmRmMmUwY2MwZmRi
ZGUxOTI1NzI3MGY1ZGVmNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEdldHRlck5vSWRlbnRpZmllci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkR2V0dGVyTm9J
ZGVudGlmaWVyLmNwcApAQCAtMTg1LDcgKzE4NSw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE5h
bWVkR2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2Rl
CiB7CiAgICAgVk0mIHZtID0gc3RhdGUtPnZtKCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgYXV0byogcHJvdG90eXBlID0ganNEeW5hbWljRG93
bmNhc3Q8SlNUZXN0TmFtZWRHZXR0ZXJOb0lkZW50aWZpZXJQcm90b3R5cGUqPih2bSwgSlNWYWx1
ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOworICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Nh
c3Q8SlNUZXN0TmFtZWRHZXR0ZXJOb0lkZW50aWZpZXJQcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6
ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghcHJvdG90eXBlKSkKICAgICAg
ICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3Ioc3RhdGUsIHRocm93U2NvcGUpOwogICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0TmFtZWRHZXR0ZXJOb0lkZW50aWZpZXI6OmdldENvbnN0
cnVjdG9yKHN0YXRlLT52bSgpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CkBAIC0xOTUs
NyArMTk1LDcgQEAgYm9vbCBzZXRKU1Rlc3ROYW1lZEdldHRlck5vSWRlbnRpZmllckNvbnN0cnVj
dG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHUKIHsKICAgICBWTSYgdm0gPSBzdGF0
ZS0+dm0oKTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
LSAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNEb3duY2FzdDxKU1Rlc3ROYW1lZEdldHRl
ck5vSWRlbnRpZmllclByb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7
CisgICAgYXV0byogcHJvdG90eXBlID0ganNEeW5hbWljQ2FzdDxKU1Rlc3ROYW1lZEdldHRlck5v
SWRlbnRpZmllclByb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAg
ICAgaWYgKFVOTElLRUxZKCFwcm90b3R5cGUpKSB7CiAgICAgICAgIHRocm93Vk1UeXBlRXJyb3Io
c3RhdGUsIHRocm93U2NvcGUpOwogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0yNTgsNyArMjU4
LDcgQEAgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqIHN0YXRlLCBKU0RPTUdsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBUZXN0TmEKIAogVGVzdE5hbWVkR2V0dGVyTm9JZGVudGlm
aWVyKiBKU1Rlc3ROYW1lZEdldHRlck5vSWRlbnRpZmllcjo6dG9XcmFwcGVkKEpTQzo6Vk0mIHZt
LCBKU0M6OkpTVmFsdWUgdmFsdWUpCiB7Ci0gICAgaWYgKGF1dG8qIHdyYXBwZXIgPSBqc0R5bmFt
aWNEb3duY2FzdDxKU1Rlc3ROYW1lZEdldHRlck5vSWRlbnRpZmllcio+KHZtLCB2YWx1ZSkpCisg
ICAgaWYgKGF1dG8qIHdyYXBwZXIgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE5hbWVkR2V0dGVyTm9J
ZGVudGlmaWVyKj4odm0sIHZhbHVlKSkKICAgICAgICAgcmV0dXJuICZ3cmFwcGVyLT53cmFwcGVk
KCk7CiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRH
ZXR0ZXJXaXRoSWRlbnRpZmllci5jcHAKaW5kZXggODBkZjVkNjk3OTgwYmY4YTcxNTQ5NzNlNmI0
NmJiNzVjZjhkNzA1Ni4uY2I3ZjkwNjgwNjQ5NTNjN2JlYmM2N2E3MjIyYzg2NTc4MmE0N2RjMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE5hbWVkR2V0dGVyV2l0aElkZW50aWZpZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEdldHRlcldpdGhJZGVudGlmaWVyLmNwcApA
QCAtMTg5LDE0ICsxODksMTQgQEAgdm9pZCBKU1Rlc3ROYW1lZEdldHRlcldpdGhJZGVudGlmaWVy
OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKEpTT2JqZWN0KiBvYmplY3QsIEV4ZWMKIAogdGVtcGxhdGU8
PiBpbmxpbmUgSlNUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllciogSURMT3BlcmF0aW9uPEpT
VGVzdE5hbWVkR2V0dGVyV2l0aElkZW50aWZpZXI+OjpjYXN0KEV4ZWNTdGF0ZSYgc3RhdGUpCiB7
Ci0gICAgcmV0dXJuIGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdE5hbWVkR2V0dGVyV2l0aElkZW50
aWZpZXIqPihzdGF0ZS52bSgpLCBzdGF0ZS50aGlzVmFsdWUoKSk7CisgICAgcmV0dXJuIGpzRHlu
YW1pY0Nhc3Q8SlNUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllcio+KHN0YXRlLnZtKCksIHN0
YXRlLnRoaXNWYWx1ZSgpKTsKIH0KIAogRW5jb2RlZEpTVmFsdWUganNUZXN0TmFtZWRHZXR0ZXJX
aXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFZNJiB2bSA9IHN0YXRlLT52bSgpOwog
ICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAgIGF1dG8q
IHByb3RvdHlwZSA9IGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdE5hbWVkR2V0dGVyV2l0aElkZW50
aWZpZXJQcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOworICAgIGF1
dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRp
ZmllclByb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYg
KFVOTElLRUxZKCFwcm90b3R5cGUpKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihz
dGF0ZSwgdGhyb3dTY29wZSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3ROYW1l
ZEdldHRlcldpdGhJZGVudGlmaWVyOjpnZXRDb25zdHJ1Y3RvcihzdGF0ZS0+dm0oKSwgcHJvdG90
eXBlLT5nbG9iYWxPYmplY3QoKSkpOwpAQCAtMjA2LDcgKzIwNiw3IEBAIGJvb2wgc2V0SlNUZXN0
TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVu
Y29kZWRKU1ZhCiB7CiAgICAgVk0mIHZtID0gc3RhdGUtPnZtKCk7CiAgICAgYXV0byB0aHJvd1Nj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgYXV0byogcHJvdG90eXBlID0ganNE
eW5hbWljRG93bmNhc3Q8SlNUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllclByb3RvdHlwZSo+
KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CisgICAgYXV0byogcHJvdG90eXBlID0g
anNEeW5hbWljQ2FzdDxKU1Rlc3ROYW1lZEdldHRlcldpdGhJZGVudGlmaWVyUHJvdG90eXBlKj4o
dm0sIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIXByb3Rv
dHlwZSkpIHsKICAgICAgICAgdGhyb3dWTVR5cGVFcnJvcihzdGF0ZSwgdGhyb3dTY29wZSk7CiAg
ICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTI4Niw3ICsyODYsNyBAQCBKU0M6OkpTVmFsdWUgdG9K
UyhKU0M6OkV4ZWNTdGF0ZSogc3RhdGUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IFRlc3ROYQogCiBUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllciogSlNUZXN0TmFtZWRHZXR0
ZXJXaXRoSWRlbnRpZmllcjo6dG9XcmFwcGVkKEpTQzo6Vk0mIHZtLCBKU0M6OkpTVmFsdWUgdmFs
dWUpCiB7Ci0gICAgaWYgKGF1dG8qIHdyYXBwZXIgPSBqc0R5bmFtaWNEb3duY2FzdDxKU1Rlc3RO
YW1lZEdldHRlcldpdGhJZGVudGlmaWVyKj4odm0sIHZhbHVlKSkKKyAgICBpZiAoYXV0byogd3Jh
cHBlciA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllcio+KHZt
LCB2YWx1ZSkpCiAgICAgICAgIHJldHVybiAmd3JhcHBlci0+d3JhcHBlZCgpOwogICAgIHJldHVy
biBudWxscHRyOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlck5vSWRlbnRpZmll
ci5jcHAKaW5kZXggMGM5OTRjODJhZmYzNzU2MzIzZWM3Y2U0YWQ4OGU4YWNjZTFjOTFiZi4uYzg5
YjIzYmZkOWFiZjRmODUzODFlNDhhYzZiYWY5M2FhM2M3Y2Y2NSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyTm9JZGVu
dGlmaWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXIuY3BwCkBAIC0yNDcsNyArMjQ3LDcgQEAgRW5j
b2RlZEpTVmFsdWUganNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvcihFeGVj
U3RhdGUqIHN0YXRlLCBFbmNvZGUKIHsKICAgICBWTSYgdm0gPSBzdGF0ZS0+dm0oKTsKICAgICBh
dXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAgICBhdXRvKiBwcm90
b3R5cGUgPSBqc0R5bmFtaWNEb3duY2FzdDxKU1Rlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllclBy
b3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CisgICAgYXV0byogcHJv
dG90eXBlID0ganNEeW5hbWljQ2FzdDxKU1Rlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllclByb3Rv
dHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZ
KCFwcm90b3R5cGUpKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihzdGF0ZSwgdGhy
b3dTY29wZSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3ROYW1lZFNldHRlck5v
SWRlbnRpZmllcjo6Z2V0Q29uc3RydWN0b3Ioc3RhdGUtPnZtKCksIHByb3RvdHlwZS0+Z2xvYmFs
T2JqZWN0KCkpKTsKQEAgLTI1Nyw3ICsyNTcsNyBAQCBib29sIHNldEpTVGVzdE5hbWVkU2V0dGVy
Tm9JZGVudGlmaWVyQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdQog
ewogICAgIFZNJiB2bSA9IHN0YXRlLT52bSgpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xB
UkVfVEhST1dfU0NPUEUodm0pOwotICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Rvd25j
YXN0PEpTVGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6
OmRlY29kZSh0aGlzVmFsdWUpKTsKKyAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNDYXN0
PEpTVGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRl
Y29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIXByb3RvdHlwZSkpIHsKICAgICAg
ICAgdGhyb3dWTVR5cGVFcnJvcihzdGF0ZSwgdGhyb3dTY29wZSk7CiAgICAgICAgIHJldHVybiBm
YWxzZTsKQEAgLTMyMCw3ICszMjAsNyBAQCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0
ZSogc3RhdGUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRlc3ROYQogCiBUZXN0
TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXIqIEpTVGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyOjp0
b1dyYXBwZWQoSlNDOjpWTSYgdm0sIEpTQzo6SlNWYWx1ZSB2YWx1ZSkKIHsKLSAgICBpZiAoYXV0
byogd3JhcHBlciA9IGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdE5hbWVkU2V0dGVyTm9JZGVudGlm
aWVyKj4odm0sIHZhbHVlKSkKKyAgICBpZiAoYXV0byogd3JhcHBlciA9IGpzRHluYW1pY0Nhc3Q8
SlNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXIqPih2bSwgdmFsdWUpKQogICAgICAgICByZXR1
cm4gJndyYXBwZXItPndyYXBwZWQoKTsKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNl
dHRlclRocm93aW5nRXhjZXB0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmNwcAppbmRleCA4
Y2FlYzZmYmE5ZjEyYjM5MzlkNDVkYWFjOTdiNTA2MzI1OTFlYTllLi4zYWZhMTFkMGFlM2U4OWYz
Y2JmMGVlODk0NGYxZDZiZWYxMTRkOGU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5h
bWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24uY3BwCkBAIC0yNDcsNyArMjQ3LDcgQEAgRW5jb2Rl
ZEpTVmFsdWUganNUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yKEV4
ZWNTdGF0ZSogc3RhdGUsIEUKIHsKICAgICBWTSYgdm0gPSBzdGF0ZS0+dm0oKTsKICAgICBhdXRv
IHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAgICBhdXRvKiBwcm90b3R5
cGUgPSBqc0R5bmFtaWNEb3duY2FzdDxKU1Rlc3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9u
UHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKKyAgICBhdXRvKiBw
cm90b3R5cGUgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRp
b25Qcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChV
TkxJS0VMWSghcHJvdG90eXBlKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3Ioc3Rh
dGUsIHRocm93U2NvcGUpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0TmFtZWRT
ZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbjo6Z2V0Q29uc3RydWN0b3Ioc3RhdGUtPnZtKCksIHByb3Rv
dHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKQEAgLTI1Nyw3ICsyNTcsNyBAQCBib29sIHNldEpTVGVz
dE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRl
LCBFbmNvZGVkSgogewogICAgIFZNJiB2bSA9IHN0YXRlLT52bSgpOwogICAgIGF1dG8gdGhyb3dT
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAgIGF1dG8qIHByb3RvdHlwZSA9IGpz
RHluYW1pY0Rvd25jYXN0PEpTVGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Qcm90b3R5
cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOworICAgIGF1dG8qIHByb3RvdHlw
ZSA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvblByb3Rv
dHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZ
KCFwcm90b3R5cGUpKSB7CiAgICAgICAgIHRocm93Vk1UeXBlRXJyb3Ioc3RhdGUsIHRocm93U2Nv
cGUpOwogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0zMjAsNyArMzIwLDcgQEAgSlNDOjpKU1Zh
bHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqIHN0YXRlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBUZXN0TmEKIAogVGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24qIEpTVGVz
dE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb246OnRvV3JhcHBlZChKU0M6OlZNJiB2bSwgSlND
OjpKU1ZhbHVlIHZhbHVlKQogewotICAgIGlmIChhdXRvKiB3cmFwcGVyID0ganNEeW5hbWljRG93
bmNhc3Q8SlNUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbio+KHZtLCB2YWx1ZSkpCisg
ICAgaWYgKGF1dG8qIHdyYXBwZXIgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE5hbWVkU2V0dGVyVGhy
b3dpbmdFeGNlcHRpb24qPih2bSwgdmFsdWUpKQogICAgICAgICByZXR1cm4gJndyYXBwZXItPndy
YXBwZWQoKTsKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlm
aWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RO
YW1lZFNldHRlcldpdGhJZGVudGlmaWVyLmNwcAppbmRleCBmNmE3NTE1Njc2MGMwODgzNjAwNzk4
ZjI5YzM1ZWNkYTcwZjlhYTZmLi5mZmJhZTA2MzIwZjdiNmJhMjU1ZTg5N2RkNTczNDViNzY0M2Uw
NGViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXIu
Y3BwCkBAIC0yNTEsMTQgKzI1MSwxNCBAQCBib29sIEpTVGVzdE5hbWVkU2V0dGVyV2l0aElkZW50
aWZpZXI6OmRlZmluZU93blByb3BlcnR5KEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdAogCiB0ZW1w
bGF0ZTw+IGlubGluZSBKU1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyKiBJRExPcGVyYXRp
b248SlNUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllcj46OmNhc3QoRXhlY1N0YXRlJiBzdGF0
ZSkKIHsKLSAgICByZXR1cm4ganNEeW5hbWljRG93bmNhc3Q8SlNUZXN0TmFtZWRTZXR0ZXJXaXRo
SWRlbnRpZmllcio+KHN0YXRlLnZtKCksIHN0YXRlLnRoaXNWYWx1ZSgpKTsKKyAgICByZXR1cm4g
anNEeW5hbWljQ2FzdDxKU1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyKj4oc3RhdGUudm0o
KSwgc3RhdGUudGhpc1ZhbHVlKCkpOwogfQogCiBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROYW1lZFNl
dHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVk0mIHZtID0gc3RhdGUtPnZt
KCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAg
YXV0byogcHJvdG90eXBlID0ganNEeW5hbWljRG93bmNhc3Q8SlNUZXN0TmFtZWRTZXR0ZXJXaXRo
SWRlbnRpZmllclByb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7Cisg
ICAgYXV0byogcHJvdG90eXBlID0ganNEeW5hbWljQ2FzdDxKU1Rlc3ROYW1lZFNldHRlcldpdGhJ
ZGVudGlmaWVyUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAg
ICBpZiAoVU5MSUtFTFkoIXByb3RvdHlwZSkpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVy
cm9yKHN0YXRlLCB0aHJvd1Njb3BlKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVz
dE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXI6OmdldENvbnN0cnVjdG9yKHN0YXRlLT52bSgpLCBw
cm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CkBAIC0yNjgsNyArMjY4LDcgQEAgYm9vbCBzZXRK
U1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0
ZSwgRW5jb2RlZEpTVmEKIHsKICAgICBWTSYgdm0gPSBzdGF0ZS0+dm0oKTsKICAgICBhdXRvIHRo
cm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAgICBhdXRvKiBwcm90b3R5cGUg
PSBqc0R5bmFtaWNEb3duY2FzdDxKU1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyUHJvdG90
eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKKyAgICBhdXRvKiBwcm90b3R5
cGUgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXJQcm90b3R5
cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSgh
cHJvdG90eXBlKSkgewogICAgICAgICB0aHJvd1ZNVHlwZUVycm9yKHN0YXRlLCB0aHJvd1Njb3Bl
KTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMzUxLDcgKzM1MSw3IEBAIEpTQzo6SlNWYWx1
ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgVGVzdE5hCiAKIFRlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyKiBKU1Rlc3ROYW1l
ZFNldHRlcldpdGhJZGVudGlmaWVyOjp0b1dyYXBwZWQoSlNDOjpWTSYgdm0sIEpTQzo6SlNWYWx1
ZSB2YWx1ZSkKIHsKLSAgICBpZiAoYXV0byogd3JhcHBlciA9IGpzRHluYW1pY0Rvd25jYXN0PEpT
VGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXIqPih2bSwgdmFsdWUpKQorICAgIGlmIChhdXRv
KiB3cmFwcGVyID0ganNEeW5hbWljQ2FzdDxKU1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVy
Kj4odm0sIHZhbHVlKSkKICAgICAgICAgcmV0dXJuICZ3cmFwcGVyLT53cmFwcGVkKCk7CiAgICAg
cmV0dXJuIG51bGxwdHI7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJX
aXRoSW5kZXhlZEdldHRlci5jcHAKaW5kZXggNDI1OTE5ZThmZDQ3MTU3ODQzMGU4ZjliOWNhNDMx
YjYwNzhjYzNlYy4uOTY2ZmI0NGY1Njc5ZmQ0ZmVjZTMxNTExZTM4MTBiMzQ3OWQ1ODI0YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5h
bWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyLmNw
cApAQCAtMjc3LDE0ICsyNzcsMTQgQEAgYm9vbCBKU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVk
R2V0dGVyOjpkZWZpbmVPd25Qcm9wZXJ0eShKU09iamVjdCogb2JqZWN0LCBFeGUKIAogdGVtcGxh
dGU8PiBpbmxpbmUgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlciogSURMT3BlcmF0
aW9uPEpTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXI+OjpjYXN0KEV4ZWNTdGF0ZSYg
c3RhdGUpCiB7Ci0gICAgcmV0dXJuIGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdE5hbWVkU2V0dGVy
V2l0aEluZGV4ZWRHZXR0ZXIqPihzdGF0ZS52bSgpLCBzdGF0ZS50aGlzVmFsdWUoKSk7CisgICAg
cmV0dXJuIGpzRHluYW1pY0Nhc3Q8SlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlcio+
KHN0YXRlLnZtKCksIHN0YXRlLnRoaXNWYWx1ZSgpKTsKIH0KIAogRW5jb2RlZEpTVmFsdWUganNU
ZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3Rh
dGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFZNJiB2
bSA9IHN0YXRlLT52bSgpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOwotICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdE5h
bWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJQcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2Rl
KHRoaXNWYWx1ZSkpOworICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0
TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlclByb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNv
ZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFwcm90b3R5cGUpKQogICAgICAgICBy
ZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihzdGF0ZSwgdGhyb3dTY29wZSk7CiAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShKU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyOjpnZXRDb25z
dHJ1Y3RvcihzdGF0ZS0+dm0oKSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOwpAQCAtMjk0
LDcgKzI5NCw3IEBAIGJvb2wgc2V0SlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckNv
bnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKCiB7CiAgICAgVk0mIHZtID0gc3Rh
dGUtPnZtKCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
Ci0gICAgYXV0byogcHJvdG90eXBlID0ganNEeW5hbWljRG93bmNhc3Q8SlNUZXN0TmFtZWRTZXR0
ZXJXaXRoSW5kZXhlZEdldHRlclByb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1Zh
bHVlKSk7CisgICAgYXV0byogcHJvdG90eXBlID0ganNEeW5hbWljQ2FzdDxKU1Rlc3ROYW1lZFNl
dHRlcldpdGhJbmRleGVkR2V0dGVyUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlz
VmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIXByb3RvdHlwZSkpIHsKICAgICAgICAgdGhyb3dW
TVR5cGVFcnJvcihzdGF0ZSwgdGhyb3dTY29wZSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAg
LTM5NCw3ICszOTQsNyBAQCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSogc3RhdGUs
IEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRlc3ROYQogCiBUZXN0TmFtZWRTZXR0
ZXJXaXRoSW5kZXhlZEdldHRlciogSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlcjo6
dG9XcmFwcGVkKEpTQzo6Vk0mIHZtLCBKU0M6OkpTVmFsdWUgdmFsdWUpCiB7Ci0gICAgaWYgKGF1
dG8qIHdyYXBwZXIgPSBqc0R5bmFtaWNEb3duY2FzdDxKU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRl
eGVkR2V0dGVyKj4odm0sIHZhbHVlKSkKKyAgICBpZiAoYXV0byogd3JhcHBlciA9IGpzRHluYW1p
Y0Nhc3Q8SlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlcio+KHZtLCB2YWx1ZSkpCiAg
ICAgICAgIHJldHVybiAmd3JhcHBlci0+d3JhcHBlZCgpOwogICAgIHJldHVybiBudWxscHRyOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4
ZWRHZXR0ZXJBbmRTZXR0ZXIuY3BwCmluZGV4IGVmYjU1NmEzYjIwNWJkOTAwOTZhMDdmNjFmZmFm
MzBlZTA2ZmMyZjcuLjBkOGZmYzA3NzI2MWMyMWRiMThmYTIyNjY2MzgyZGI5YTNiNWEyMjcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RO
YW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhl
ZEdldHRlckFuZFNldHRlci5jcHAKQEAgLTMwMCwxNCArMzAwLDE0IEBAIGJvb2wgSlNUZXN0TmFt
ZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlcjo6ZGVmaW5lT3duUHJvcGVydHkoSlNP
YmplY3QqIG9iCiAKIHRlbXBsYXRlPD4gaW5saW5lIEpTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4
ZWRHZXR0ZXJBbmRTZXR0ZXIqIElETE9wZXJhdGlvbjxKU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRl
eGVkR2V0dGVyQW5kU2V0dGVyPjo6Y2FzdChFeGVjU3RhdGUmIHN0YXRlKQogewotICAgIHJldHVy
biBqc0R5bmFtaWNEb3duY2FzdDxKU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5k
U2V0dGVyKj4oc3RhdGUudm0oKSwgc3RhdGUudGhpc1ZhbHVlKCkpOworICAgIHJldHVybiBqc0R5
bmFtaWNDYXN0PEpTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXIqPihz
dGF0ZS52bSgpLCBzdGF0ZS50aGlzVmFsdWUoKSk7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIGpzVGVz
dE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXJDb25zdHJ1Y3RvcihFeGVjU3Rh
dGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAg
ICBWTSYgdm0gPSBzdGF0ZS0+dm0oKTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKLSAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNEb3duY2FzdDxK
U1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyUHJvdG90eXBlKj4odm0s
IEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKKyAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5
bmFtaWNDYXN0PEpTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXJQcm90
b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VM
WSghcHJvdG90eXBlKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3Ioc3RhdGUsIHRo
cm93U2NvcGUpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0TmFtZWRTZXR0ZXJX
aXRoSW5kZXhlZEdldHRlckFuZFNldHRlcjo6Z2V0Q29uc3RydWN0b3Ioc3RhdGUtPnZtKCksIHBy
b3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKQEAgLTMxNyw3ICszMTcsNyBAQCBib29sIHNldEpT
VGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXJDb25zdHJ1Y3RvcihFeGVj
U3RhdGUqIHN0YXRlLAogewogICAgIFZNJiB2bSA9IHN0YXRlLT52bSgpOwogICAgIGF1dG8gdGhy
b3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAgIGF1dG8qIHByb3RvdHlwZSA9
IGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRT
ZXR0ZXJQcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOworICAgIGF1
dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhl
ZEdldHRlckFuZFNldHRlclByb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVl
KSk7CiAgICAgaWYgKFVOTElLRUxZKCFwcm90b3R5cGUpKSB7CiAgICAgICAgIHRocm93Vk1UeXBl
RXJyb3Ioc3RhdGUsIHRocm93U2NvcGUpOwogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC00NDQs
NyArNDQ0LDcgQEAgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqIHN0YXRlLCBKU0RP
TUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBUZXN0TmEKIAogVGVzdE5hbWVkU2V0dGVyV2l0
aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXIqIEpTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0
ZXJBbmRTZXR0ZXI6OnRvV3JhcHBlZChKU0M6OlZNJiB2bSwgSlNDOjpKU1ZhbHVlIHZhbHVlKQog
ewotICAgIGlmIChhdXRvKiB3cmFwcGVyID0ganNEeW5hbWljRG93bmNhc3Q8SlNUZXN0TmFtZWRT
ZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlcio+KHZtLCB2YWx1ZSkpCisgICAgaWYgKGF1
dG8qIHdyYXBwZXIgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRH
ZXR0ZXJBbmRTZXR0ZXIqPih2bSwgdmFsdWUpKQogICAgICAgICByZXR1cm4gJndyYXBwZXItPndy
YXBwZWQoKTsKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhPdmVycmlk
ZUJ1aWx0aW5zLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3ROYW1lZFNldHRlcldpdGhPdmVycmlkZUJ1aWx0aW5zLmNwcAppbmRleCBmYWMxMDJkYWEz
OWU2NDE5NTA0MzI5NzBhZTVlMjk4Mjg3Y2I0N2RjLi5jMzNmZDhlZDc1MTAyYTA2ZGViNDYxODM0
MzI0NWMxOWMxNGY2MDM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoT3ZlcnJpZGVCdWlsdGlucy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0
dGVyV2l0aE92ZXJyaWRlQnVpbHRpbnMuY3BwCkBAIC0yMzQsNyArMjM0LDcgQEAgRW5jb2RlZEpT
VmFsdWUganNUZXN0TmFtZWRTZXR0ZXJXaXRoT3ZlcnJpZGVCdWlsdGluc0NvbnN0cnVjdG9yKEV4
ZWNTdGF0ZSogc3RhdGUKIHsKICAgICBWTSYgdm0gPSBzdGF0ZS0+dm0oKTsKICAgICBhdXRvIHRo
cm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAgICBhdXRvKiBwcm90b3R5cGUg
PSBqc0R5bmFtaWNEb3duY2FzdDxKU1Rlc3ROYW1lZFNldHRlcldpdGhPdmVycmlkZUJ1aWx0aW5z
UHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKKyAgICBhdXRvKiBw
cm90b3R5cGUgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE5hbWVkU2V0dGVyV2l0aE92ZXJyaWRlQnVp
bHRpbnNQcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlm
IChVTkxJS0VMWSghcHJvdG90eXBlKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3Io
c3RhdGUsIHRocm93U2NvcGUpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0TmFt
ZWRTZXR0ZXJXaXRoT3ZlcnJpZGVCdWlsdGluczo6Z2V0Q29uc3RydWN0b3Ioc3RhdGUtPnZtKCks
IHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKQEAgLTI0NCw3ICsyNDQsNyBAQCBib29sIHNl
dEpTVGVzdE5hbWVkU2V0dGVyV2l0aE92ZXJyaWRlQnVpbHRpbnNDb25zdHJ1Y3RvcihFeGVjU3Rh
dGUqIHN0YXRlLCBFbmNvZAogewogICAgIFZNJiB2bSA9IHN0YXRlLT52bSgpOwogICAgIGF1dG8g
dGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAgIGF1dG8qIHByb3RvdHlw
ZSA9IGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdE5hbWVkU2V0dGVyV2l0aE92ZXJyaWRlQnVpbHRp
bnNQcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOworICAgIGF1dG8q
IHByb3RvdHlwZSA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0TmFtZWRTZXR0ZXJXaXRoT3ZlcnJpZGVC
dWlsdGluc1Byb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAg
aWYgKFVOTElLRUxZKCFwcm90b3R5cGUpKSB7CiAgICAgICAgIHRocm93Vk1UeXBlRXJyb3Ioc3Rh
dGUsIHRocm93U2NvcGUpOwogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0zMDcsNyArMzA3LDcg
QEAgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqIHN0YXRlLCBKU0RPTUdsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBUZXN0TmEKIAogVGVzdE5hbWVkU2V0dGVyV2l0aE92ZXJyaWRl
QnVpbHRpbnMqIEpTVGVzdE5hbWVkU2V0dGVyV2l0aE92ZXJyaWRlQnVpbHRpbnM6OnRvV3JhcHBl
ZChKU0M6OlZNJiB2bSwgSlNDOjpKU1ZhbHVlIHZhbHVlKQogewotICAgIGlmIChhdXRvKiB3cmFw
cGVyID0ganNEeW5hbWljRG93bmNhc3Q8SlNUZXN0TmFtZWRTZXR0ZXJXaXRoT3ZlcnJpZGVCdWls
dGlucyo+KHZtLCB2YWx1ZSkpCisgICAgaWYgKGF1dG8qIHdyYXBwZXIgPSBqc0R5bmFtaWNDYXN0
PEpTVGVzdE5hbWVkU2V0dGVyV2l0aE92ZXJyaWRlQnVpbHRpbnMqPih2bSwgdmFsdWUpKQogICAg
ICAgICByZXR1cm4gJndyYXBwZXItPndyYXBwZWQoKTsKICAgICByZXR1cm4gbnVsbHB0cjsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3ROYW1lZFNldHRlcldpdGhVbmZvcmdhYmxlUHJvcGVydGllcy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJs
ZVByb3BlcnRpZXMuY3BwCmluZGV4IDc5MmQzMjU2N2I5NjdiOWMxMjUwNjlmYjMxYTk5YmE1OWQy
Mjg4ZTguLjBkYWJlMmExYjFmZjllZWIxYWY1OGRhN2QwMzMyMDJlNzU5ZmY2OTggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNl
dHRlcldpdGhVbmZvcmdhYmxlUHJvcGVydGllcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9w
ZXJ0aWVzLmNwcApAQCAtMjc2LDE5ICsyNzYsMTkgQEAgc3RhdGljIGJvb2wgaXNVbmZvcmdlYWJs
ZVByb3BlcnR5TmFtZShQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKQogCiB0ZW1wbGF0ZTw+IGlu
bGluZSBKU1Rlc3ROYW1lZFNldHRlcldpdGhVbmZvcmdhYmxlUHJvcGVydGllcyogSURMQXR0cmli
dXRlPEpTVGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVzPjo6Y2FzdChFeGVj
U3RhdGUmIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUpCiB7Ci0gICAgcmV0dXJuIGpz
RHluYW1pY0Rvd25jYXN0PEpTVGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVz
Kj4oc3RhdGUudm0oKSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOworICAgIHJldHVybiBq
c0R5bmFtaWNDYXN0PEpTVGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVzKj4o
c3RhdGUudm0oKSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogfQogCiB0ZW1wbGF0ZTw+
IGlubGluZSBKU1Rlc3ROYW1lZFNldHRlcldpdGhVbmZvcmdhYmxlUHJvcGVydGllcyogSURMT3Bl
cmF0aW9uPEpTVGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVzPjo6Y2FzdChF
eGVjU3RhdGUmIHN0YXRlKQogewotICAgIHJldHVybiBqc0R5bmFtaWNEb3duY2FzdDxKU1Rlc3RO
YW1lZFNldHRlcldpdGhVbmZvcmdhYmxlUHJvcGVydGllcyo+KHN0YXRlLnZtKCksIHN0YXRlLnRo
aXNWYWx1ZSgpKTsKKyAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3ROYW1lZFNldHRlcldp
dGhVbmZvcmdhYmxlUHJvcGVydGllcyo+KHN0YXRlLnZtKCksIHN0YXRlLnRoaXNWYWx1ZSgpKTsK
IH0KIAogRW5jb2RlZEpTVmFsdWUganNUZXN0TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3Bl
cnRpZXNDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBWTSYgdm0gPSBzdGF0ZS0+dm0oKTsKICAgICBhdXRv
IHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAgICBhdXRvKiBwcm90b3R5
cGUgPSBqc0R5bmFtaWNEb3duY2FzdDxKU1Rlc3ROYW1lZFNldHRlcldpdGhVbmZvcmdhYmxlUHJv
cGVydGllc1Byb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CisgICAg
YXV0byogcHJvdG90eXBlID0ganNEeW5hbWljQ2FzdDxKU1Rlc3ROYW1lZFNldHRlcldpdGhVbmZv
cmdhYmxlUHJvcGVydGllc1Byb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVl
KSk7CiAgICAgaWYgKFVOTElLRUxZKCFwcm90b3R5cGUpKQogICAgICAgICByZXR1cm4gdGhyb3dW
TVR5cGVFcnJvcihzdGF0ZSwgdGhyb3dTY29wZSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShKU1Rlc3ROYW1lZFNldHRlcldpdGhVbmZvcmdhYmxlUHJvcGVydGllczo6Z2V0Q29uc3RydWN0
b3Ioc3RhdGUtPnZtKCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKQEAgLTI5OCw3ICsy
OTgsNyBAQCBib29sIHNldEpTVGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVz
Q29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgRQogewogICAgIFZNJiB2bSA9IHN0YXRlLT52
bSgpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAg
IGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdE5hbWVkU2V0dGVyV2l0
aFVuZm9yZ2FibGVQcm9wZXJ0aWVzUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlz
VmFsdWUpKTsKKyAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE5hbWVk
U2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVzUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRl
Y29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIXByb3RvdHlwZSkpIHsKICAgICAg
ICAgdGhyb3dWTVR5cGVFcnJvcihzdGF0ZSwgdGhyb3dTY29wZSk7CiAgICAgICAgIHJldHVybiBm
YWxzZTsKQEAgLTM4OSw3ICszODksNyBAQCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0
ZSogc3RhdGUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRlc3ROYQogCiBUZXN0
TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRpZXMqIEpTVGVzdE5hbWVkU2V0dGVyV2l0
aFVuZm9yZ2FibGVQcm9wZXJ0aWVzOjp0b1dyYXBwZWQoSlNDOjpWTSYgdm0sIEpTQzo6SlNWYWx1
ZSB2YWx1ZSkKIHsKLSAgICBpZiAoYXV0byogd3JhcHBlciA9IGpzRHluYW1pY0Rvd25jYXN0PEpT
VGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVzKj4odm0sIHZhbHVlKSkKKyAg
ICBpZiAoYXV0byogd3JhcHBlciA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0TmFtZWRTZXR0ZXJXaXRo
VW5mb3JnYWJsZVByb3BlcnRpZXMqPih2bSwgdmFsdWUpKQogICAgICAgICByZXR1cm4gJndyYXBw
ZXItPndyYXBwZWQoKTsKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhV
bmZvcmdhYmxlUHJvcGVydGllc0FuZE92ZXJyaWRlQnVpbHRpbnMuY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2Fi
bGVQcm9wZXJ0aWVzQW5kT3ZlcnJpZGVCdWlsdGlucy5jcHAKaW5kZXggYjhmMWIzMTg4NzU0OWI5
OWFjZTM2YTYxZDY3YjlkMGRkYmQ5OGZhOC4uNTg2Y2UzZjYwMjVhZDViNTNhOGVkZjY5MTllNjgw
M2U4NzIxMmQ1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVzQW5kT3ZlcnJp
ZGVCdWlsdGlucy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVzQW5kT3ZlcnJpZGVC
dWlsdGlucy5jcHAKQEAgLTI2MywxOSArMjYzLDE5IEBAIHN0YXRpYyBib29sIGlzVW5mb3JnZWFi
bGVQcm9wZXJ0eU5hbWUoUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkKIAogdGVtcGxhdGU8PiBp
bmxpbmUgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRpZXNBbmRPdmVycmlk
ZUJ1aWx0aW5zKiBJRExBdHRyaWJ1dGU8SlNUZXN0TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVBy
b3BlcnRpZXNBbmRPdmVycmlkZUJ1aWx0aW5zPjo6Y2FzdChFeGVjU3RhdGUmIHN0YXRlLCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUpCiB7Ci0gICAgcmV0dXJuIGpzRHluYW1pY0Rvd25jYXN0PEpT
VGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVzQW5kT3ZlcnJpZGVCdWlsdGlu
cyo+KHN0YXRlLnZtKCksIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKKyAgICByZXR1cm4g
anNEeW5hbWljQ2FzdDxKU1Rlc3ROYW1lZFNldHRlcldpdGhVbmZvcmdhYmxlUHJvcGVydGllc0Fu
ZE92ZXJyaWRlQnVpbHRpbnMqPihzdGF0ZS52bSgpLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVl
KSk7CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5lIEpTVGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2Fi
bGVQcm9wZXJ0aWVzQW5kT3ZlcnJpZGVCdWlsdGlucyogSURMT3BlcmF0aW9uPEpTVGVzdE5hbWVk
U2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVzQW5kT3ZlcnJpZGVCdWlsdGlucz46OmNhc3Qo
RXhlY1N0YXRlJiBzdGF0ZSkKIHsKLSAgICByZXR1cm4ganNEeW5hbWljRG93bmNhc3Q8SlNUZXN0
TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRpZXNBbmRPdmVycmlkZUJ1aWx0aW5zKj4o
c3RhdGUudm0oKSwgc3RhdGUudGhpc1ZhbHVlKCkpOworICAgIHJldHVybiBqc0R5bmFtaWNDYXN0
PEpTVGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVzQW5kT3ZlcnJpZGVCdWls
dGlucyo+KHN0YXRlLnZtKCksIHN0YXRlLnRoaXNWYWx1ZSgpKTsKIH0KIAogRW5jb2RlZEpTVmFs
dWUganNUZXN0TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRpZXNBbmRPdmVycmlkZUJ1
aWx0aW5zQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVk0mIHZtID0gc3RhdGUtPnZtKCk7CiAgICAgYXV0
byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgYXV0byogcHJvdG90
eXBlID0ganNEeW5hbWljRG93bmNhc3Q8SlNUZXN0TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVBy
b3BlcnRpZXNBbmRPdmVycmlkZUJ1aWx0aW5zUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29k
ZSh0aGlzVmFsdWUpKTsKKyAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNDYXN0PEpTVGVz
dE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVzQW5kT3ZlcnJpZGVCdWlsdGluc1By
b3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElL
RUxZKCFwcm90b3R5cGUpKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihzdGF0ZSwg
dGhyb3dTY29wZSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3ROYW1lZFNldHRl
cldpdGhVbmZvcmdhYmxlUHJvcGVydGllc0FuZE92ZXJyaWRlQnVpbHRpbnM6OmdldENvbnN0cnVj
dG9yKHN0YXRlLT52bSgpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CkBAIC0yODUsNyAr
Mjg1LDcgQEAgYm9vbCBzZXRKU1Rlc3ROYW1lZFNldHRlcldpdGhVbmZvcmdhYmxlUHJvcGVydGll
c0FuZE92ZXJyaWRlQnVpbHRpbnNDb25zdHJ1Y3RvcigKIHsKICAgICBWTSYgdm0gPSBzdGF0ZS0+
dm0oKTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAg
ICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNEb3duY2FzdDxKU1Rlc3ROYW1lZFNldHRlcldp
dGhVbmZvcmdhYmxlUHJvcGVydGllc0FuZE92ZXJyaWRlQnVpbHRpbnNQcm90b3R5cGUqPih2bSwg
SlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOworICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHlu
YW1pY0Nhc3Q8SlNUZXN0TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRpZXNBbmRPdmVy
cmlkZUJ1aWx0aW5zUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsK
ICAgICBpZiAoVU5MSUtFTFkoIXByb3RvdHlwZSkpIHsKICAgICAgICAgdGhyb3dWTVR5cGVFcnJv
cihzdGF0ZSwgdGhyb3dTY29wZSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTM3Niw3ICsz
NzYsNyBAQCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSogc3RhdGUsIEpTRE9NR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRlc3ROYQogCiBUZXN0TmFtZWRTZXR0ZXJXaXRoVW5m
b3JnYWJsZVByb3BlcnRpZXNBbmRPdmVycmlkZUJ1aWx0aW5zKiBKU1Rlc3ROYW1lZFNldHRlcldp
dGhVbmZvcmdhYmxlUHJvcGVydGllc0FuZE92ZXJyaWRlQnVpbHRpbnM6OnRvV3JhcHBlZChKU0M6
OlZNJiB2bSwgSlNDOjpKU1ZhbHVlIHZhbHVlKQogewotICAgIGlmIChhdXRvKiB3cmFwcGVyID0g
anNEeW5hbWljRG93bmNhc3Q8SlNUZXN0TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRp
ZXNBbmRPdmVycmlkZUJ1aWx0aW5zKj4odm0sIHZhbHVlKSkKKyAgICBpZiAoYXV0byogd3JhcHBl
ciA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRp
ZXNBbmRPdmVycmlkZUJ1aWx0aW5zKj4odm0sIHZhbHVlKSkKICAgICAgICAgcmV0dXJuICZ3cmFw
cGVyLT53cmFwcGVkKCk7CiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9kZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9kZS5jcHAKaW5kZXgg
YThhM2I0ZTIwODVmMTQ3NTAzNmJlZDdkZDU4ODFjMWY2ODE5YWNlYS4uOTI1Y2RhMDEzNWZhNmVh
NjQ0ZWQyNjFlMjU5NWIwNDZlYmUwMDMyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb2RlLmNwcApAQCAtMjE2LDE5ICsyMTYs
MTkgQEAgSlNWYWx1ZSBKU1Rlc3ROb2RlOjpnZXRDb25zdHJ1Y3RvcihWTSYgdm0sIGNvbnN0IEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiAKIHRlbXBsYXRlPD4gaW5saW5lIEpTVGVzdE5v
ZGUqIElETEF0dHJpYnV0ZTxKU1Rlc3ROb2RlPjo6Y2FzdChFeGVjU3RhdGUmIHN0YXRlLCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUpCiB7Ci0gICAgcmV0dXJuIGpzRHluYW1pY0Rvd25jYXN0PEpT
VGVzdE5vZGUqPihzdGF0ZS52bSgpLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CisgICAg
cmV0dXJuIGpzRHluYW1pY0Nhc3Q8SlNUZXN0Tm9kZSo+KHN0YXRlLnZtKCksIEpTVmFsdWU6OmRl
Y29kZSh0aGlzVmFsdWUpKTsKIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgSlNUZXN0Tm9kZSogSURM
T3BlcmF0aW9uPEpTVGVzdE5vZGU+OjpjYXN0KEV4ZWNTdGF0ZSYgc3RhdGUpCiB7Ci0gICAgcmV0
dXJuIGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdE5vZGUqPihzdGF0ZS52bSgpLCBzdGF0ZS50aGlz
VmFsdWUoKSk7CisgICAgcmV0dXJuIGpzRHluYW1pY0Nhc3Q8SlNUZXN0Tm9kZSo+KHN0YXRlLnZt
KCksIHN0YXRlLnRoaXNWYWx1ZSgpKTsKIH0KIAogRW5jb2RlZEpTVmFsdWUganNUZXN0Tm9kZUNv
bnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQogewogICAgIFZNJiB2bSA9IHN0YXRlLT52bSgpOwogICAgIGF1dG8gdGhyb3dT
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAgIGF1dG8qIHByb3RvdHlwZSA9IGpz
RHluYW1pY0Rvd25jYXN0PEpTVGVzdE5vZGVQcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2Rl
KHRoaXNWYWx1ZSkpOworICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0
Tm9kZVByb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYg
KFVOTElLRUxZKCFwcm90b3R5cGUpKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihz
dGF0ZSwgdGhyb3dTY29wZSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3ROb2Rl
OjpnZXRDb25zdHJ1Y3RvcihzdGF0ZS0+dm0oKSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkp
OwpAQCAtMjM4LDcgKzIzOCw3IEBAIGJvb2wgc2V0SlNUZXN0Tm9kZUNvbnN0cnVjdG9yKEV4ZWNT
dGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlCiB7CiAgICAgVk0m
IHZtID0gc3RhdGUtPnZtKCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7Ci0gICAgYXV0byogcHJvdG90eXBlID0ganNEeW5hbWljRG93bmNhc3Q8SlNUZXN0
Tm9kZVByb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CisgICAgYXV0
byogcHJvdG90eXBlID0ganNEeW5hbWljQ2FzdDxKU1Rlc3ROb2RlUHJvdG90eXBlKj4odm0sIEpT
VmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIXByb3RvdHlwZSkp
IHsKICAgICAgICAgdGhyb3dWTVR5cGVFcnJvcihzdGF0ZSwgdGhyb3dTY29wZSk7CiAgICAgICAg
IHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKaW5kZXggOWNlYmI3NzU3NTc5ZmRmOWY3NzAyNWFjNzky
MjljMGQ2NTgyNzJhYi4uNTUyZjc4YmU5NDQ1MjM0NGVlNjk4ZjU1MGVjZmVjODY4NDU1NmRkMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE9iai5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE9iai5jcHAKQEAgLTI0OTEsMTkgKzI0OTEsMTkgQEAgQ2FsbFR5cGUgSlNUZXN0T2JqOjpn
ZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYgY2FsbERhdGEpCiAKIHRlbXBsYXRlPD4gaW5s
aW5lIEpTVGVzdE9iaiogSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmNhc3QoRXhlY1N0YXRlJiBz
dGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlKQogewotICAgIHJldHVybiBqc0R5bmFtaWNE
b3duY2FzdDxKU1Rlc3RPYmoqPihzdGF0ZS52bSgpLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVl
KSk7CisgICAgcmV0dXJuIGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oc3RhdGUudm0oKSwgSlNW
YWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBKU1Rlc3RP
YmoqIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYXN0KEV4ZWNTdGF0ZSYgc3RhdGUpCiB7Ci0g
ICAgcmV0dXJuIGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdE9iaio+KHN0YXRlLnZtKCksIHN0YXRl
LnRoaXNWYWx1ZSgpKTsKKyAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihzdGF0
ZS52bSgpLCBzdGF0ZS50aGlzVmFsdWUoKSk7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9i
akNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKQogewogICAgIFZNJiB2bSA9IHN0YXRlLT52bSgpOwogICAgIGF1dG8gdGhy
b3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAgIGF1dG8qIHByb3RvdHlwZSA9
IGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdE9ialByb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNv
ZGUodGhpc1ZhbHVlKSk7CisgICAgYXV0byogcHJvdG90eXBlID0ganNEeW5hbWljQ2FzdDxKU1Rl
c3RPYmpQcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlm
IChVTkxJS0VMWSghcHJvdG90eXBlKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3Io
c3RhdGUsIHRocm93U2NvcGUpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0T2Jq
OjpnZXRDb25zdHJ1Y3RvcihzdGF0ZS0+dm0oKSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkp
OwpAQCAtMjUxMyw3ICsyNTEzLDcgQEAgYm9vbCBzZXRKU1Rlc3RPYmpDb25zdHJ1Y3RvcihFeGVj
U3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWQKIHsKICAgICBW
TSYgdm0gPSBzdGF0ZS0+dm0oKTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKLSAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNEb3duY2FzdDxKU1Rl
c3RPYmpQcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOworICAgIGF1
dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqUHJvdG90eXBlKj4odm0sIEpT
VmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIXByb3RvdHlwZSkp
IHsKICAgICAgICAgdGhyb3dWTVR5cGVFcnJvcihzdGF0ZSwgdGhyb3dTY29wZSk7CiAgICAgICAg
IHJldHVybiBmYWxzZTsKQEAgLTg0NDQsNyArODQ0NCw3IEBAIEpTQzo6SlNWYWx1ZSB0b0pTKEpT
Qzo6RXhlY1N0YXRlKiBzdGF0ZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVGVz
dE9iCiAKIFRlc3RPYmoqIEpTVGVzdE9iajo6dG9XcmFwcGVkKEpTQzo6Vk0mIHZtLCBKU0M6OkpT
VmFsdWUgdmFsdWUpCiB7Ci0gICAgaWYgKGF1dG8qIHdyYXBwZXIgPSBqc0R5bmFtaWNEb3duY2Fz
dDxKU1Rlc3RPYmoqPih2bSwgdmFsdWUpKQorICAgIGlmIChhdXRvKiB3cmFwcGVyID0ganNEeW5h
bWljQ2FzdDxKU1Rlc3RPYmoqPih2bSwgdmFsdWUpKQogICAgICAgICByZXR1cm4gJndyYXBwZXIt
PndyYXBwZWQoKTsKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0
b3JzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RP
dmVybG9hZGVkQ29uc3RydWN0b3JzLmNwcAppbmRleCAxOTdlY2Y5Nzg3YmQxM2FiM2ZhMjAwN2Vk
YzRiNTQ2OTYxOGVjNmIxLi40MTgxMWI5Zjc3MWY3MmVlNjYxNGEzNzUwNjIzNDI5ZjE1YTYyNzM5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMuY3BwCkBAIC0y
MzAsNyArMjMwLDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9y
c0NvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWQKIHsKICAgICBWTSYgdm0gPSBz
dGF0ZS0+dm0oKTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZt
KTsKLSAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNEb3duY2FzdDxKU1Rlc3RPdmVybG9h
ZGVkQ29uc3RydWN0b3JzUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUp
KTsKKyAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE92ZXJsb2FkZWRD
b25zdHJ1Y3RvcnNQcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwog
ICAgIGlmIChVTkxJS0VMWSghcHJvdG90eXBlKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBl
RXJyb3Ioc3RhdGUsIHRocm93U2NvcGUpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNU
ZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yczo6Z2V0Q29uc3RydWN0b3Ioc3RhdGUtPnZtKCksIHBy
b3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKQEAgLTI0MCw3ICsyNDAsNyBAQCBib29sIHNldEpT
VGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBF
bmNvZGVkSlNWYWx1ZQogewogICAgIFZNJiB2bSA9IHN0YXRlLT52bSgpOwogICAgIGF1dG8gdGhy
b3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAgIGF1dG8qIHByb3RvdHlwZSA9
IGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNQcm90b3R5cGUq
Pih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOworICAgIGF1dG8qIHByb3RvdHlwZSA9
IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1Byb3RvdHlwZSo+KHZt
LCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFwcm90b3R5
cGUpKSB7CiAgICAgICAgIHRocm93Vk1UeXBlRXJyb3Ioc3RhdGUsIHRocm93U2NvcGUpOwogICAg
ICAgICByZXR1cm4gZmFsc2U7CkBAIC0zMDMsNyArMzAzLDcgQEAgSlNDOjpKU1ZhbHVlIHRvSlMo
SlNDOjpFeGVjU3RhdGUqIHN0YXRlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBU
ZXN0T3YKIAogVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMqIEpTVGVzdE92ZXJsb2FkZWRDb25z
dHJ1Y3RvcnM6OnRvV3JhcHBlZChKU0M6OlZNJiB2bSwgSlNDOjpKU1ZhbHVlIHZhbHVlKQogewot
ICAgIGlmIChhdXRvKiB3cmFwcGVyID0ganNEeW5hbWljRG93bmNhc3Q8SlNUZXN0T3ZlcmxvYWRl
ZENvbnN0cnVjdG9ycyo+KHZtLCB2YWx1ZSkpCisgICAgaWYgKGF1dG8qIHdyYXBwZXIgPSBqc0R5
bmFtaWNDYXN0PEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMqPih2bSwgdmFsdWUpKQogICAg
ICAgICByZXR1cm4gJndyYXBwZXItPndyYXBwZWQoKTsKICAgICByZXR1cm4gbnVsbHB0cjsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbmNlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0
aFNlcXVlbmNlLmNwcAppbmRleCAzMGM4YmRhZmVmNzEyYTViZGI3YmE1NTczMWFjZTE4ZjE3MDJl
NTNmLi45MGNlOTBkNTAyMGJiMTg4NjE3ZGMxNDY0YTA3MTA3N2E3OTEzZTYyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRl
ZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVu
Y2UuY3BwCkBAIC0xODYsNyArMTg2LDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0T3ZlcmxvYWRl
ZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZUNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3QKIHsKICAg
ICBWTSYgdm0gPSBzdGF0ZS0+dm0oKTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKLSAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNEb3duY2FzdDxK
U1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbmNlUHJvdG90eXBlKj4odm0sIEpT
VmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKKyAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFt
aWNDYXN0PEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2VQcm90b3R5cGUq
Pih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghcHJv
dG90eXBlKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3Ioc3RhdGUsIHRocm93U2Nv
cGUpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVj
dG9yc1dpdGhTZXF1ZW5jZTo6Z2V0Q29uc3RydWN0b3Ioc3RhdGUtPnZtKCksIHByb3RvdHlwZS0+
Z2xvYmFsT2JqZWN0KCkpKTsKQEAgLTE5Niw3ICsxOTYsNyBAQCBib29sIHNldEpTVGVzdE92ZXJs
b2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2VDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRl
LCBFbgogewogICAgIFZNJiB2bSA9IHN0YXRlLT52bSgpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1p
Y0Rvd25jYXN0PEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2VQcm90b3R5
cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOworICAgIGF1dG8qIHByb3RvdHlw
ZSA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5j
ZVByb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVO
TElLRUxZKCFwcm90b3R5cGUpKSB7CiAgICAgICAgIHRocm93Vk1UeXBlRXJyb3Ioc3RhdGUsIHRo
cm93U2NvcGUpOwogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0yNTksNyArMjU5LDcgQEAgSlND
OjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqIHN0YXRlLCBKU0RPTUdsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBUZXN0T3YKIAogVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2Vx
dWVuY2UqIEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2U6OnRvV3JhcHBl
ZChKU0M6OlZNJiB2bSwgSlNDOjpKU1ZhbHVlIHZhbHVlKQogewotICAgIGlmIChhdXRvKiB3cmFw
cGVyID0ganNEeW5hbWljRG93bmNhc3Q8SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhT
ZXF1ZW5jZSo+KHZtLCB2YWx1ZSkpCisgICAgaWYgKGF1dG8qIHdyYXBwZXIgPSBqc0R5bmFtaWND
YXN0PEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2UqPih2bSwgdmFsdWUp
KQogICAgICAgICByZXR1cm4gJndyYXBwZXItPndyYXBwZWQoKTsKICAgICByZXR1cm4gbnVsbHB0
cjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RPdmVycmlkZUJ1aWx0aW5zLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVycmlkZUJ1aWx0aW5zLmNwcAppbmRleCA3YjA2ZTg2MTg5
Y2Q0ZWU4ZTQwMTAzMWIxZGVjZGM1M2VlZjk3YzhmLi5mZjdlMjAwZDk3ZTQxNzNhMjM0ZmU0YjRl
ZDc1MDAyNjIyYmQ4ODJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcnJpZGVCdWlsdGlucy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJyaWRlQnVpbHRpbnMuY3BwCkBA
IC0xOTIsMTQgKzE5MiwxNCBAQCB2b2lkIEpTVGVzdE92ZXJyaWRlQnVpbHRpbnM6OmdldE93blBy
b3BlcnR5TmFtZXMoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBzdAogCiB0ZW1wbGF0ZTw+
IGlubGluZSBKU1Rlc3RPdmVycmlkZUJ1aWx0aW5zKiBJRExPcGVyYXRpb248SlNUZXN0T3ZlcnJp
ZGVCdWlsdGlucz46OmNhc3QoRXhlY1N0YXRlJiBzdGF0ZSkKIHsKLSAgICByZXR1cm4ganNEeW5h
bWljRG93bmNhc3Q8SlNUZXN0T3ZlcnJpZGVCdWlsdGlucyo+KHN0YXRlLnZtKCksIHN0YXRlLnRo
aXNWYWx1ZSgpKTsKKyAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3RPdmVycmlkZUJ1aWx0
aW5zKj4oc3RhdGUudm0oKSwgc3RhdGUudGhpc1ZhbHVlKCkpOwogfQogCiBFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RPdmVycmlkZUJ1aWx0aW5zQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVk0mIHZtID0gc3Rh
dGUtPnZtKCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
Ci0gICAgYXV0byogcHJvdG90eXBlID0ganNEeW5hbWljRG93bmNhc3Q8SlNUZXN0T3ZlcnJpZGVC
dWlsdGluc1Byb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CisgICAg
YXV0byogcHJvdG90eXBlID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPdmVycmlkZUJ1aWx0aW5zUHJv
dG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtF
TFkoIXByb3RvdHlwZSkpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKHN0YXRlLCB0
aHJvd1Njb3BlKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdE92ZXJyaWRlQnVp
bHRpbnM6OmdldENvbnN0cnVjdG9yKHN0YXRlLT52bSgpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVj
dCgpKSk7CkBAIC0yMDksNyArMjA5LDcgQEAgYm9vbCBzZXRKU1Rlc3RPdmVycmlkZUJ1aWx0aW5z
Q29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1YKIHsKICAg
ICBWTSYgdm0gPSBzdGF0ZS0+dm0oKTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKLSAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNEb3duY2FzdDxK
U1Rlc3RPdmVycmlkZUJ1aWx0aW5zUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlz
VmFsdWUpKTsKKyAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE92ZXJy
aWRlQnVpbHRpbnNQcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwog
ICAgIGlmIChVTkxJS0VMWSghcHJvdG90eXBlKSkgewogICAgICAgICB0aHJvd1ZNVHlwZUVycm9y
KHN0YXRlLCB0aHJvd1Njb3BlKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMjg5LDcgKzI4
OSw3IEBAIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSwgSlNET01HbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVGVzdE92CiAKIFRlc3RPdmVycmlkZUJ1aWx0aW5zKiBK
U1Rlc3RPdmVycmlkZUJ1aWx0aW5zOjp0b1dyYXBwZWQoSlNDOjpWTSYgdm0sIEpTQzo6SlNWYWx1
ZSB2YWx1ZSkKIHsKLSAgICBpZiAoYXV0byogd3JhcHBlciA9IGpzRHluYW1pY0Rvd25jYXN0PEpT
VGVzdE92ZXJyaWRlQnVpbHRpbnMqPih2bSwgdmFsdWUpKQorICAgIGlmIChhdXRvKiB3cmFwcGVy
ID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPdmVycmlkZUJ1aWx0aW5zKj4odm0sIHZhbHVlKSkKICAg
ICAgICAgcmV0dXJuICZ3cmFwcGVyLT53cmFwcGVkKCk7CiAgICAgcmV0dXJuIG51bGxwdHI7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0UGx1Z2luSW50ZXJmYWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RQbHVnaW5JbnRlcmZhY2UuY3BwCmluZGV4IGQxZjExZmUwZjM4NTdjZTcz
NGEyZGNjMGM2ZWY1MTkxMmE1ZDJmMzIuLmIwNGMzNWJkMTUyNDBhODA2ODg2MWIyNWVmMmM3Nzhh
OGI0NWM1MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RQbHVnaW5JbnRlcmZhY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RQbHVnaW5JbnRlcmZhY2UuY3BwCkBAIC0xODksNyAr
MTg5LDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0UGx1Z2luSW50ZXJmYWNlQ29uc3RydWN0b3Io
RXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUKIHsKICAgICBWTSYgdm0gPSBzdGF0ZS0+
dm0oKTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAg
ICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNEb3duY2FzdDxKU1Rlc3RQbHVnaW5JbnRlcmZh
Y2VQcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOworICAgIGF1dG8q
IHByb3RvdHlwZSA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0UGx1Z2luSW50ZXJmYWNlUHJvdG90eXBl
Kj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIXBy
b3RvdHlwZSkpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKHN0YXRlLCB0aHJvd1Nj
b3BlKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdFBsdWdpbkludGVyZmFjZTo6
Z2V0Q29uc3RydWN0b3Ioc3RhdGUtPnZtKCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsK
QEAgLTE5OSw3ICsxOTksNyBAQCBib29sIHNldEpTVGVzdFBsdWdpbkludGVyZmFjZUNvbnN0cnVj
dG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYQogewogICAgIFZNJiB2
bSA9IHN0YXRlLT52bSgpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOwotICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdFBs
dWdpbkludGVyZmFjZVByb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7
CisgICAgYXV0byogcHJvdG90eXBlID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RQbHVnaW5JbnRlcmZh
Y2VQcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChV
TkxJS0VMWSghcHJvdG90eXBlKSkgewogICAgICAgICB0aHJvd1ZNVHlwZUVycm9yKHN0YXRlLCB0
aHJvd1Njb3BlKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMjYyLDcgKzI2Miw3IEBAIEpT
Qzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSwgSlNET01HbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgVGVzdFBsCiAKIFRlc3RQbHVnaW5JbnRlcmZhY2UqIEpTVGVzdFBsdWdp
bkludGVyZmFjZTo6dG9XcmFwcGVkKEpTQzo6Vk0mIHZtLCBKU0M6OkpTVmFsdWUgdmFsdWUpCiB7
Ci0gICAgaWYgKGF1dG8qIHdyYXBwZXIgPSBqc0R5bmFtaWNEb3duY2FzdDxKU1Rlc3RQbHVnaW5J
bnRlcmZhY2UqPih2bSwgdmFsdWUpKQorICAgIGlmIChhdXRvKiB3cmFwcGVyID0ganNEeW5hbWlj
Q2FzdDxKU1Rlc3RQbHVnaW5JbnRlcmZhY2UqPih2bSwgdmFsdWUpKQogICAgICAgICByZXR1cm4g
JndyYXBwZXItPndyYXBwZWQoKTsKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RQcm9taXNlUmVq
ZWN0aW9uRXZlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdFByb21pc2VSZWplY3Rpb25FdmVudC5jcHAKaW5kZXggMDdkMTY1M2E4YWQ4MTM2OTVm
YjIxNDgzZTI1MzU2MGMyZmY1NDU0Mi4uMTQ5Y2M5YjdjNjBiZWIxYWIxYmUyNzFiNmI0NTFkYWYx
OGI2ZjQyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdFByb21pc2VSZWplY3Rpb25FdmVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFByb21pc2VSZWplY3Rpb25FdmVudC5jcHAK
QEAgLTIzMSwxNCArMjMxLDE0IEBAIEpTVmFsdWUgSlNUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50
OjpnZXRDb25zdHJ1Y3RvcihWTSYgdm0sIGNvbnN0IEpTR2xvYmFsT2JqZWN0CiAKIHRlbXBsYXRl
PD4gaW5saW5lIEpTVGVzdFByb21pc2VSZWplY3Rpb25FdmVudCogSURMQXR0cmlidXRlPEpTVGVz
dFByb21pc2VSZWplY3Rpb25FdmVudD46OmNhc3QoRXhlY1N0YXRlJiBzdGF0ZSwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlKQogewotICAgIHJldHVybiBqc0R5bmFtaWNEb3duY2FzdDxKU1Rlc3RQ
cm9taXNlUmVqZWN0aW9uRXZlbnQqPihzdGF0ZS52bSgpLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1Zh
bHVlKSk7CisgICAgcmV0dXJuIGpzRHluYW1pY0Nhc3Q8SlNUZXN0UHJvbWlzZVJlamVjdGlvbkV2
ZW50Kj4oc3RhdGUudm0oKSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogfQogCiBFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnRDb25zdHJ1Y3RvcihFeGVjU3Rh
dGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAg
ICBWTSYgdm0gPSBzdGF0ZS0+dm0oKTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKLSAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNEb3duY2FzdDxK
U1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnRQcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2Rl
KHRoaXNWYWx1ZSkpOworICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0
UHJvbWlzZVJlamVjdGlvbkV2ZW50UHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlz
VmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIXByb3RvdHlwZSkpCiAgICAgICAgIHJldHVybiB0
aHJvd1ZNVHlwZUVycm9yKHN0YXRlLCB0aHJvd1Njb3BlKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKEpTVGVzdFByb21pc2VSZWplY3Rpb25FdmVudDo6Z2V0Q29uc3RydWN0b3Ioc3RhdGUt
PnZtKCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKQEAgLTI0OCw3ICsyNDgsNyBAQCBi
b29sIHNldEpTVGVzdFByb21pc2VSZWplY3Rpb25FdmVudENvbnN0cnVjdG9yKEV4ZWNTdGF0ZSog
c3RhdGUsIEVuY29kZWRKU1ZhbHVlCiB7CiAgICAgVk0mIHZtID0gc3RhdGUtPnZtKCk7CiAgICAg
YXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgYXV0byogcHJv
dG90eXBlID0ganNEeW5hbWljRG93bmNhc3Q8SlNUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50UHJv
dG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKKyAgICBhdXRvKiBwcm90
b3R5cGUgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdFByb21pc2VSZWplY3Rpb25FdmVudFByb3RvdHlw
ZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFw
cm90b3R5cGUpKSB7CiAgICAgICAgIHRocm93Vk1UeXBlRXJyb3Ioc3RhdGUsIHRocm93U2NvcGUp
OwogICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXphdGlvbi5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXphdGlvbi5jcHAKaW5k
ZXggZDc3YzUwNzZhYjJlZDI2OGFiYTUxMGZiN2E1Nzg5NDk5OWMwNWJhYS4uOGY4YzRkZjY5MzU2
YmU4MzAwMzEzOTk1Y2E2MjViNDMyZWY0NGFkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6YXRpb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemF0aW9u
LmNwcApAQCAtMTc2LDE5ICsxNzYsMTkgQEAgdm9pZCBKU1Rlc3RTZXJpYWxpemF0aW9uOjpkZXN0
cm95KEpTQzo6SlNDZWxsKiBjZWxsKQogCiB0ZW1wbGF0ZTw+IGlubGluZSBKU1Rlc3RTZXJpYWxp
emF0aW9uKiBJRExBdHRyaWJ1dGU8SlNUZXN0U2VyaWFsaXphdGlvbj46OmNhc3QoRXhlY1N0YXRl
JiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlKQogewotICAgIHJldHVybiBqc0R5bmFt
aWNEb3duY2FzdDxKU1Rlc3RTZXJpYWxpemF0aW9uKj4oc3RhdGUudm0oKSwgSlNWYWx1ZTo6ZGVj
b2RlKHRoaXNWYWx1ZSkpOworICAgIHJldHVybiBqc0R5bmFtaWNDYXN0PEpTVGVzdFNlcmlhbGl6
YXRpb24qPihzdGF0ZS52bSgpLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiB9CiAKIHRl
bXBsYXRlPD4gaW5saW5lIEpTVGVzdFNlcmlhbGl6YXRpb24qIElETE9wZXJhdGlvbjxKU1Rlc3RT
ZXJpYWxpemF0aW9uPjo6Y2FzdChFeGVjU3RhdGUmIHN0YXRlKQogewotICAgIHJldHVybiBqc0R5
bmFtaWNEb3duY2FzdDxKU1Rlc3RTZXJpYWxpemF0aW9uKj4oc3RhdGUudm0oKSwgc3RhdGUudGhp
c1ZhbHVlKCkpOworICAgIHJldHVybiBqc0R5bmFtaWNDYXN0PEpTVGVzdFNlcmlhbGl6YXRpb24q
PihzdGF0ZS52bSgpLCBzdGF0ZS50aGlzVmFsdWUoKSk7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIGpz
VGVzdFNlcmlhbGl6YXRpb25Db25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBWTSYgdm0gPSBzdGF0ZS0+dm0o
KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAgICBh
dXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNEb3duY2FzdDxKU1Rlc3RTZXJpYWxpemF0aW9uUHJv
dG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKKyAgICBhdXRvKiBwcm90
b3R5cGUgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdFNlcmlhbGl6YXRpb25Qcm90b3R5cGUqPih2bSwg
SlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghcHJvdG90eXBl
KSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3Ioc3RhdGUsIHRocm93U2NvcGUpOwog
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0U2VyaWFsaXphdGlvbjo6Z2V0Q29uc3Ry
dWN0b3Ioc3RhdGUtPnZtKCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKQEAgLTE5OCw3
ICsxOTgsNyBAQCBib29sIHNldEpTVGVzdFNlcmlhbGl6YXRpb25Db25zdHJ1Y3RvcihFeGVjU3Rh
dGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdQogewogICAgIFZNJiB2bSA9IHN0YXRl
LT52bSgpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwot
ICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdFNlcmlhbGl6YXRp
b25Qcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOworICAgIGF1dG8q
IHByb3RvdHlwZSA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0U2VyaWFsaXphdGlvblByb3RvdHlwZSo+
KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFwcm90
b3R5cGUpKSB7CiAgICAgICAgIHRocm93Vk1UeXBlRXJyb3Ioc3RhdGUsIHRocm93U2NvcGUpOwog
ICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC01OTYsNyArNTk2LDcgQEAgSlNDOjpKU1ZhbHVlIHRv
SlMoSlNDOjpFeGVjU3RhdGUqIHN0YXRlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBUZXN0U2UKIAogVGVzdFNlcmlhbGl6YXRpb24qIEpTVGVzdFNlcmlhbGl6YXRpb246OnRvV3Jh
cHBlZChKU0M6OlZNJiB2bSwgSlNDOjpKU1ZhbHVlIHZhbHVlKQogewotICAgIGlmIChhdXRvKiB3
cmFwcGVyID0ganNEeW5hbWljRG93bmNhc3Q8SlNUZXN0U2VyaWFsaXphdGlvbio+KHZtLCB2YWx1
ZSkpCisgICAgaWYgKGF1dG8qIHdyYXBwZXIgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdFNlcmlhbGl6
YXRpb24qPih2bSwgdmFsdWUpKQogICAgICAgICByZXR1cm4gJndyYXBwZXItPndyYXBwZWQoKTsK
ICAgICByZXR1cm4gbnVsbHB0cjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemF0aW9uSW5kaXJlY3RJbmhlcml0YW5j
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2Vy
aWFsaXphdGlvbkluZGlyZWN0SW5oZXJpdGFuY2UuY3BwCmluZGV4IDAwMGQ3YzAyNWQ5OTIwZjk3
MWFkYzVlZWE4YmFjYjgxNWJjZmE4ZDQuLmRmNjRlYWRjNDczNmFjMjgzM2JjNThhZjQ3MTU5NTQ2
NDA0ZTBmMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RTZXJpYWxpemF0aW9uSW5kaXJlY3RJbmhlcml0YW5jZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6YXRpb25J
bmRpcmVjdEluaGVyaXRhbmNlLmNwcApAQCAtMTI3LDcgKzEyNyw3IEBAIEVuY29kZWRKU1ZhbHVl
IGpzVGVzdFNlcmlhbGl6YXRpb25JbmRpcmVjdEluaGVyaXRhbmNlQ29uc3RydWN0b3IoRXhlY1N0
YXRlKiBzdGF0CiB7CiAgICAgVk0mIHZtID0gc3RhdGUtPnZtKCk7CiAgICAgYXV0byB0aHJvd1Nj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgYXV0byogcHJvdG90eXBlID0ganNE
eW5hbWljRG93bmNhc3Q8SlNUZXN0U2VyaWFsaXphdGlvbkluZGlyZWN0SW5oZXJpdGFuY2VQcm90
b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOworICAgIGF1dG8qIHByb3Rv
dHlwZSA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0U2VyaWFsaXphdGlvbkluZGlyZWN0SW5oZXJpdGFu
Y2VQcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChV
TkxJS0VMWSghcHJvdG90eXBlKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3Ioc3Rh
dGUsIHRocm93U2NvcGUpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0U2VyaWFs
aXphdGlvbkluZGlyZWN0SW5oZXJpdGFuY2U6OmdldENvbnN0cnVjdG9yKHN0YXRlLT52bSgpLCBw
cm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CkBAIC0xMzcsNyArMTM3LDcgQEAgYm9vbCBzZXRK
U1Rlc3RTZXJpYWxpemF0aW9uSW5kaXJlY3RJbmhlcml0YW5jZUNvbnN0cnVjdG9yKEV4ZWNTdGF0
ZSogc3RhdGUsIEVuY28KIHsKICAgICBWTSYgdm0gPSBzdGF0ZS0+dm0oKTsKICAgICBhdXRvIHRo
cm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAgICBhdXRvKiBwcm90b3R5cGUg
PSBqc0R5bmFtaWNEb3duY2FzdDxKU1Rlc3RTZXJpYWxpemF0aW9uSW5kaXJlY3RJbmhlcml0YW5j
ZVByb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CisgICAgYXV0byog
cHJvdG90eXBlID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RTZXJpYWxpemF0aW9uSW5kaXJlY3RJbmhl
cml0YW5jZVByb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAg
aWYgKFVOTElLRUxZKCFwcm90b3R5cGUpKSB7CiAgICAgICAgIHRocm93Vk1UeXBlRXJyb3Ioc3Rh
dGUsIHRocm93U2NvcGUpOwogICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXphdGlvbklu
aGVyaXQuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dFNlcmlhbGl6YXRpb25Jbmhlcml0LmNwcAppbmRleCAzMWFjY2U1MzMxZDIxZGE3NzQyMTA5NDJh
MjA2MzRhZDEyNGQxZmYyLi5jZWVmYzhhNTFjZjRjY2U5YzI4MDE5YTJmNjMyY2FlMmMzOTQ2MTc3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0U2VyaWFsaXphdGlvbkluaGVyaXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemF0aW9uSW5oZXJpdC5jcHAKQEAgLTEzNywx
OSArMTM3LDE5IEBAIEpTVmFsdWUgSlNUZXN0U2VyaWFsaXphdGlvbkluaGVyaXQ6OmdldENvbnN0
cnVjdG9yKFZNJiB2bSwgY29uc3QgSlNHbG9iYWxPYmplY3QqCiAKIHRlbXBsYXRlPD4gaW5saW5l
IEpTVGVzdFNlcmlhbGl6YXRpb25Jbmhlcml0KiBJRExBdHRyaWJ1dGU8SlNUZXN0U2VyaWFsaXph
dGlvbkluaGVyaXQ+OjpjYXN0KEV4ZWNTdGF0ZSYgc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSkKIHsKLSAgICByZXR1cm4ganNEeW5hbWljRG93bmNhc3Q8SlNUZXN0U2VyaWFsaXphdGlv
bkluaGVyaXQqPihzdGF0ZS52bSgpLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CisgICAg
cmV0dXJuIGpzRHluYW1pY0Nhc3Q8SlNUZXN0U2VyaWFsaXphdGlvbkluaGVyaXQqPihzdGF0ZS52
bSgpLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5l
IEpTVGVzdFNlcmlhbGl6YXRpb25Jbmhlcml0KiBJRExPcGVyYXRpb248SlNUZXN0U2VyaWFsaXph
dGlvbkluaGVyaXQ+OjpjYXN0KEV4ZWNTdGF0ZSYgc3RhdGUpCiB7Ci0gICAgcmV0dXJuIGpzRHlu
YW1pY0Rvd25jYXN0PEpTVGVzdFNlcmlhbGl6YXRpb25Jbmhlcml0Kj4oc3RhdGUudm0oKSwgc3Rh
dGUudGhpc1ZhbHVlKCkpOworICAgIHJldHVybiBqc0R5bmFtaWNDYXN0PEpTVGVzdFNlcmlhbGl6
YXRpb25Jbmhlcml0Kj4oc3RhdGUudm0oKSwgc3RhdGUudGhpc1ZhbHVlKCkpOwogfQogCiBFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RTZXJpYWxpemF0aW9uSW5oZXJpdENvbnN0cnVjdG9yKEV4ZWNTdGF0
ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAg
IFZNJiB2bSA9IHN0YXRlLT52bSgpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUodm0pOwotICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Rvd25jYXN0PEpT
VGVzdFNlcmlhbGl6YXRpb25Jbmhlcml0UHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0
aGlzVmFsdWUpKTsKKyAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdFNl
cmlhbGl6YXRpb25Jbmhlcml0UHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFs
dWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIXByb3RvdHlwZSkpCiAgICAgICAgIHJldHVybiB0aHJv
d1ZNVHlwZUVycm9yKHN0YXRlLCB0aHJvd1Njb3BlKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKEpTVGVzdFNlcmlhbGl6YXRpb25Jbmhlcml0OjpnZXRDb25zdHJ1Y3RvcihzdGF0ZS0+dm0o
KSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOwpAQCAtMTU5LDcgKzE1OSw3IEBAIGJvb2wg
c2V0SlNUZXN0U2VyaWFsaXphdGlvbkluaGVyaXRDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRl
LCBFbmNvZGVkSlNWYWx1ZSB0CiB7CiAgICAgVk0mIHZtID0gc3RhdGUtPnZtKCk7CiAgICAgYXV0
byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgYXV0byogcHJvdG90
eXBlID0ganNEeW5hbWljRG93bmNhc3Q8SlNUZXN0U2VyaWFsaXphdGlvbkluaGVyaXRQcm90b3R5
cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOworICAgIGF1dG8qIHByb3RvdHlw
ZSA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0U2VyaWFsaXphdGlvbkluaGVyaXRQcm90b3R5cGUqPih2
bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghcHJvdG90
eXBlKSkgewogICAgICAgICB0aHJvd1ZNVHlwZUVycm9yKHN0YXRlLCB0aHJvd1Njb3BlKTsKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6YXRpb25Jbmhlcml0RmluYWwuY3BwIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6YXRpb25J
bmhlcml0RmluYWwuY3BwCmluZGV4IDZlMGVlOTI4NmI1YzBmYjdiMGEzZWY3MDNhZjk4ZTY3MGY5
NzBlNjUuLmMwMGJkY2M0MDc0MmMwNzA1MjY4YmEzNTQwNTVlYTg1NDliMjdiOTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxp
emF0aW9uSW5oZXJpdEZpbmFsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXphdGlvbkluaGVyaXRGaW5hbC5jcHAKQEAgLTE0MCwx
OSArMTQwLDE5IEBAIEpTVmFsdWUgSlNUZXN0U2VyaWFsaXphdGlvbkluaGVyaXRGaW5hbDo6Z2V0
Q29uc3RydWN0b3IoVk0mIHZtLCBjb25zdCBKU0dsb2JhbE9iCiAKIHRlbXBsYXRlPD4gaW5saW5l
IEpTVGVzdFNlcmlhbGl6YXRpb25Jbmhlcml0RmluYWwqIElETEF0dHJpYnV0ZTxKU1Rlc3RTZXJp
YWxpemF0aW9uSW5oZXJpdEZpbmFsPjo6Y2FzdChFeGVjU3RhdGUmIHN0YXRlLCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUpCiB7Ci0gICAgcmV0dXJuIGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdFNl
cmlhbGl6YXRpb25Jbmhlcml0RmluYWwqPihzdGF0ZS52bSgpLCBKU1ZhbHVlOjpkZWNvZGUodGhp
c1ZhbHVlKSk7CisgICAgcmV0dXJuIGpzRHluYW1pY0Nhc3Q8SlNUZXN0U2VyaWFsaXphdGlvbklu
aGVyaXRGaW5hbCo+KHN0YXRlLnZtKCksIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKIH0K
IAogdGVtcGxhdGU8PiBpbmxpbmUgSlNUZXN0U2VyaWFsaXphdGlvbkluaGVyaXRGaW5hbCogSURM
T3BlcmF0aW9uPEpTVGVzdFNlcmlhbGl6YXRpb25Jbmhlcml0RmluYWw+OjpjYXN0KEV4ZWNTdGF0
ZSYgc3RhdGUpCiB7Ci0gICAgcmV0dXJuIGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdFNlcmlhbGl6
YXRpb25Jbmhlcml0RmluYWwqPihzdGF0ZS52bSgpLCBzdGF0ZS50aGlzVmFsdWUoKSk7CisgICAg
cmV0dXJuIGpzRHluYW1pY0Nhc3Q8SlNUZXN0U2VyaWFsaXphdGlvbkluaGVyaXRGaW5hbCo+KHN0
YXRlLnZtKCksIHN0YXRlLnRoaXNWYWx1ZSgpKTsKIH0KIAogRW5jb2RlZEpTVmFsdWUganNUZXN0
U2VyaWFsaXphdGlvbkluaGVyaXRGaW5hbENvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFZNJiB2bSA9IHN0
YXRlLT52bSgpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0p
OwotICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdFNlcmlhbGl6
YXRpb25Jbmhlcml0RmluYWxQcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1
ZSkpOworICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0U2VyaWFsaXph
dGlvbkluaGVyaXRGaW5hbFByb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVl
KSk7CiAgICAgaWYgKFVOTElLRUxZKCFwcm90b3R5cGUpKQogICAgICAgICByZXR1cm4gdGhyb3dW
TVR5cGVFcnJvcihzdGF0ZSwgdGhyb3dTY29wZSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShKU1Rlc3RTZXJpYWxpemF0aW9uSW5oZXJpdEZpbmFsOjpnZXRDb25zdHJ1Y3RvcihzdGF0ZS0+
dm0oKSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOwpAQCAtMTYyLDcgKzE2Miw3IEBAIGJv
b2wgc2V0SlNUZXN0U2VyaWFsaXphdGlvbkluaGVyaXRGaW5hbENvbnN0cnVjdG9yKEV4ZWNTdGF0
ZSogc3RhdGUsIEVuY29kZWRKU1ZhCiB7CiAgICAgVk0mIHZtID0gc3RhdGUtPnZtKCk7CiAgICAg
YXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgYXV0byogcHJv
dG90eXBlID0ganNEeW5hbWljRG93bmNhc3Q8SlNUZXN0U2VyaWFsaXphdGlvbkluaGVyaXRGaW5h
bFByb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CisgICAgYXV0byog
cHJvdG90eXBlID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RTZXJpYWxpemF0aW9uSW5oZXJpdEZpbmFs
UHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5M
SUtFTFkoIXByb3RvdHlwZSkpIHsKICAgICAgICAgdGhyb3dWTVR5cGVFcnJvcihzdGF0ZSwgdGhy
b3dTY29wZSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJ
bnRlcmZhY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHAKaW5kZXggODZhODZkZTYyNzY0
MWZkYmY4NWEyNDIxYzkyM2QyYzI0M2UwZDBiNS4uYTYxNzcxYTE1ZDQ2ZGYzY2UzNTY4MTMwY2Vi
Yjc0ZmIyOWE4YWY3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZUludGVyZmFjZS5jcHAKQEAgLTE2NCwxOSArMTY0LDE5IEBAIHZvaWQgSlNUZXN0
U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlOjpkZXN0cm95KEpTQzo6SlNDZWxsKiBjZWxs
KQogCiB0ZW1wbGF0ZTw+IGlubGluZSBKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZh
Y2UqIElETEF0dHJpYnV0ZTxKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2U+Ojpj
YXN0KEV4ZWNTdGF0ZSYgc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSkKIHsKLSAgICBy
ZXR1cm4ganNEeW5hbWljRG93bmNhc3Q8SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJm
YWNlKj4oc3RhdGUudm0oKSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOworICAgIHJldHVy
biBqc0R5bmFtaWNDYXN0PEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSo+KHN0
YXRlLnZtKCksIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKIH0KIAogdGVtcGxhdGU8PiBp
bmxpbmUgSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlKiBJRExPcGVyYXRpb248
SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlPjo6Y2FzdChFeGVjU3RhdGUmIHN0
YXRlKQogewotICAgIHJldHVybiBqc0R5bmFtaWNEb3duY2FzdDxKU1Rlc3RTZXJpYWxpemVkU2Ny
aXB0VmFsdWVJbnRlcmZhY2UqPihzdGF0ZS52bSgpLCBzdGF0ZS50aGlzVmFsdWUoKSk7CisgICAg
cmV0dXJuIGpzRHluYW1pY0Nhc3Q8SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNl
Kj4oc3RhdGUudm0oKSwgc3RhdGUudGhpc1ZhbHVlKCkpOwogfQogCiBFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDb25zdHJ1Y3RvcihFeGVjU3RhdGUq
IHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBW
TSYgdm0gPSBzdGF0ZS0+dm0oKTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKLSAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNEb3duY2FzdDxKU1Rl
c3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VQcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6
ZGVjb2RlKHRoaXNWYWx1ZSkpOworICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Nhc3Q8
SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlUHJvdG90eXBlKj4odm0sIEpTVmFs
dWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIXByb3RvdHlwZSkpCiAg
ICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKHN0YXRlLCB0aHJvd1Njb3BlKTsKICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFj
ZTo6Z2V0Q29uc3RydWN0b3Ioc3RhdGUtPnZtKCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkp
KTsKQEAgLTE4Niw3ICsxODYsNyBAQCBib29sIHNldEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZUludGVyZmFjZUNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZQogewogICAgIFZN
JiB2bSA9IHN0YXRlLT52bSgpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwotICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Rvd25jYXN0PEpTVGVz
dFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVByb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpk
ZWNvZGUodGhpc1ZhbHVlKSk7CisgICAgYXV0byogcHJvdG90eXBlID0ganNEeW5hbWljQ2FzdDxK
U1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VQcm90b3R5cGUqPih2bSwgSlNWYWx1
ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghcHJvdG90eXBlKSkgewog
ICAgICAgICB0aHJvd1ZNVHlwZUVycm9yKHN0YXRlLCB0aHJvd1Njb3BlKTsKICAgICAgICAgcmV0
dXJuIGZhbHNlOwpAQCAtMzk5LDcgKzM5OSw3IEBAIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhl
Y1N0YXRlKiBzdGF0ZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVGVzdFNlCiAK
IFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UqIEpTVGVzdFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZUludGVyZmFjZTo6dG9XcmFwcGVkKEpTQzo6Vk0mIHZtLCBKU0M6OkpTVmFsdWUgdmFs
dWUpCiB7Ci0gICAgaWYgKGF1dG8qIHdyYXBwZXIgPSBqc0R5bmFtaWNEb3duY2FzdDxKU1Rlc3RT
ZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UqPih2bSwgdmFsdWUpKQorICAgIGlmIChhdXRv
KiB3cmFwcGVyID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRl
cmZhY2UqPih2bSwgdmFsdWUpKQogICAgICAgICByZXR1cm4gJndyYXBwZXItPndyYXBwZWQoKTsK
ICAgICByZXR1cm4gbnVsbHB0cjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXIuY3BwCmluZGV4IDQw
NzJhMDk2MjI0ZDBiMDQwMzJkYTkwZmZhZTMzYjJmZDk1YjgxNWYuLmQzY2VkNzViOWUyYTdhNjUy
ZDNlZWJkYjc3OGFlNTk1MjExN2ZiZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyLmNwcApAQCAt
MTQwLDE0ICsxNDAsMTQgQEAgdm9pZCBKU1Rlc3RTdHJpbmdpZmllcjo6ZGVzdHJveShKU0M6OkpT
Q2VsbCogY2VsbCkKIAogdGVtcGxhdGU8PiBpbmxpbmUgSlNUZXN0U3RyaW5naWZpZXIqIElETE9w
ZXJhdGlvbjxKU1Rlc3RTdHJpbmdpZmllcj46OmNhc3QoRXhlY1N0YXRlJiBzdGF0ZSkKIHsKLSAg
ICByZXR1cm4ganNEeW5hbWljRG93bmNhc3Q8SlNUZXN0U3RyaW5naWZpZXIqPihzdGF0ZS52bSgp
LCBzdGF0ZS50aGlzVmFsdWUoKSk7CisgICAgcmV0dXJuIGpzRHluYW1pY0Nhc3Q8SlNUZXN0U3Ry
aW5naWZpZXIqPihzdGF0ZS52bSgpLCBzdGF0ZS50aGlzVmFsdWUoKSk7CiB9CiAKIEVuY29kZWRK
U1ZhbHVlIGpzVGVzdFN0cmluZ2lmaWVyQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVk0mIHZtID0gc3Rh
dGUtPnZtKCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
Ci0gICAgYXV0byogcHJvdG90eXBlID0ganNEeW5hbWljRG93bmNhc3Q8SlNUZXN0U3RyaW5naWZp
ZXJQcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOworICAgIGF1dG8q
IHByb3RvdHlwZSA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0U3RyaW5naWZpZXJQcm90b3R5cGUqPih2
bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghcHJvdG90
eXBlKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3Ioc3RhdGUsIHRocm93U2NvcGUp
OwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0U3RyaW5naWZpZXI6OmdldENvbnN0
cnVjdG9yKHN0YXRlLT52bSgpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CkBAIC0xNTcs
NyArMTU3LDcgQEAgYm9vbCBzZXRKU1Rlc3RTdHJpbmdpZmllckNvbnN0cnVjdG9yKEV4ZWNTdGF0
ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwKIHsKICAgICBWTSYgdm0gPSBzdGF0
ZS0+dm0oKTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
LSAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNEb3duY2FzdDxKU1Rlc3RTdHJpbmdpZmll
clByb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CisgICAgYXV0byog
cHJvdG90eXBlID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RTdHJpbmdpZmllclByb3RvdHlwZSo+KHZt
LCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFwcm90b3R5
cGUpKSB7CiAgICAgICAgIHRocm93Vk1UeXBlRXJyb3Ioc3RhdGUsIHRocm93U2NvcGUpOwogICAg
ICAgICByZXR1cm4gZmFsc2U7CkBAIC0yMzMsNyArMjMzLDcgQEAgSlNDOjpKU1ZhbHVlIHRvSlMo
SlNDOjpFeGVjU3RhdGUqIHN0YXRlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBU
ZXN0U3QKIAogVGVzdFN0cmluZ2lmaWVyKiBKU1Rlc3RTdHJpbmdpZmllcjo6dG9XcmFwcGVkKEpT
Qzo6Vk0mIHZtLCBKU0M6OkpTVmFsdWUgdmFsdWUpCiB7Ci0gICAgaWYgKGF1dG8qIHdyYXBwZXIg
PSBqc0R5bmFtaWNEb3duY2FzdDxKU1Rlc3RTdHJpbmdpZmllcio+KHZtLCB2YWx1ZSkpCisgICAg
aWYgKGF1dG8qIHdyYXBwZXIgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdFN0cmluZ2lmaWVyKj4odm0s
IHZhbHVlKSkKICAgICAgICAgcmV0dXJuICZ3cmFwcGVyLT53cmFwcGVkKCk7CiAgICAgcmV0dXJu
IG51bGxwdHI7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJBbm9ueW1vdXNPcGVyYXRpb24uY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyQW5vbnlt
b3VzT3BlcmF0aW9uLmNwcAppbmRleCBlODUzNDU5NDhhZDQyNGMwODFhNGZhNzhmN2JkMzg4MGRl
YTViMzVhLi44ZTBiMjhhODUyNDRkYjMzMjJkOTRlZTJjYjlkMTQ0MGJjNDNiMjgyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5n
aWZpZXJBbm9ueW1vdXNPcGVyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllckFub255bW91c09wZXJhdGlvbi5jcHAK
QEAgLTE0MCwxNCArMTQwLDE0IEBAIHZvaWQgSlNUZXN0U3RyaW5naWZpZXJBbm9ueW1vdXNPcGVy
YXRpb246OmRlc3Ryb3koSlNDOjpKU0NlbGwqIGNlbGwpCiAKIHRlbXBsYXRlPD4gaW5saW5lIEpT
VGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uKiBJRExPcGVyYXRpb248SlNUZXN0U3Ry
aW5naWZpZXJBbm9ueW1vdXNPcGVyYXRpb24+OjpjYXN0KEV4ZWNTdGF0ZSYgc3RhdGUpCiB7Ci0g
ICAgcmV0dXJuIGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3Bl
cmF0aW9uKj4oc3RhdGUudm0oKSwgc3RhdGUudGhpc1ZhbHVlKCkpOworICAgIHJldHVybiBqc0R5
bmFtaWNDYXN0PEpTVGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uKj4oc3RhdGUudm0o
KSwgc3RhdGUudGhpc1ZhbHVlKCkpOwogfQogCiBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RTdHJpbmdp
ZmllckFub255bW91c09wZXJhdGlvbkNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFZNJiB2bSA9IHN0YXRl
LT52bSgpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwot
ICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdFN0cmluZ2lmaWVy
QW5vbnltb3VzT3BlcmF0aW9uUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFs
dWUpKTsKKyAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdFN0cmluZ2lm
aWVyQW5vbnltb3VzT3BlcmF0aW9uUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlz
VmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIXByb3RvdHlwZSkpCiAgICAgICAgIHJldHVybiB0
aHJvd1ZNVHlwZUVycm9yKHN0YXRlLCB0aHJvd1Njb3BlKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKEpTVGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uOjpnZXRDb25zdHJ1Y3Rv
cihzdGF0ZS0+dm0oKSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOwpAQCAtMTU3LDcgKzE1
Nyw3IEBAIGJvb2wgc2V0SlNUZXN0U3RyaW5naWZpZXJBbm9ueW1vdXNPcGVyYXRpb25Db25zdHJ1
Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkCiB7CiAgICAgVk0mIHZtID0gc3RhdGUtPnZt
KCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAg
YXV0byogcHJvdG90eXBlID0ganNEeW5hbWljRG93bmNhc3Q8SlNUZXN0U3RyaW5naWZpZXJBbm9u
eW1vdXNPcGVyYXRpb25Qcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkp
OworICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0U3RyaW5naWZpZXJB
bm9ueW1vdXNPcGVyYXRpb25Qcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1
ZSkpOwogICAgIGlmIChVTkxJS0VMWSghcHJvdG90eXBlKSkgewogICAgICAgICB0aHJvd1ZNVHlw
ZUVycm9yKHN0YXRlLCB0aHJvd1Njb3BlKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMjMz
LDcgKzIzMyw3IEBAIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSwgSlNE
T01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVGVzdFN0CiAKIFRlc3RTdHJpbmdpZmllckFu
b255bW91c09wZXJhdGlvbiogSlNUZXN0U3RyaW5naWZpZXJBbm9ueW1vdXNPcGVyYXRpb246OnRv
V3JhcHBlZChKU0M6OlZNJiB2bSwgSlNDOjpKU1ZhbHVlIHZhbHVlKQogewotICAgIGlmIChhdXRv
KiB3cmFwcGVyID0ganNEeW5hbWljRG93bmNhc3Q8SlNUZXN0U3RyaW5naWZpZXJBbm9ueW1vdXNP
cGVyYXRpb24qPih2bSwgdmFsdWUpKQorICAgIGlmIChhdXRvKiB3cmFwcGVyID0ganNEeW5hbWlj
Q2FzdDxKU1Rlc3RTdHJpbmdpZmllckFub255bW91c09wZXJhdGlvbio+KHZtLCB2YWx1ZSkpCiAg
ICAgICAgIHJldHVybiAmd3JhcHBlci0+d3JhcHBlZCgpOwogICAgIHJldHVybiBudWxscHRyOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb24uY3BwCmlu
ZGV4IDg0ZDE3NzczOTMwYzI2NjI4ODA3M2RlYTgwYzYyMjVkMjk4NWFiZGUuLmRhYTY4N2Y0Mzcz
NTJhNDY4MTFlMTgxM2FhZTM0MGRjNDQ4YjU4YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0aW9u
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvbi5jcHAKQEAgLTE0MiwxNCArMTQyLDE0IEBAIHZvaWQg
SlNUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvbjo6ZGVzdHJveShKU0M6OkpTQ2VsbCogY2Vs
bCkKIAogdGVtcGxhdGU8PiBpbmxpbmUgSlNUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvbiog
SURMT3BlcmF0aW9uPEpTVGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb24+OjpjYXN0KEV4ZWNT
dGF0ZSYgc3RhdGUpCiB7Ci0gICAgcmV0dXJuIGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdFN0cmlu
Z2lmaWVyTmFtZWRPcGVyYXRpb24qPihzdGF0ZS52bSgpLCBzdGF0ZS50aGlzVmFsdWUoKSk7Cisg
ICAgcmV0dXJuIGpzRHluYW1pY0Nhc3Q8SlNUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvbio+
KHN0YXRlLnZtKCksIHN0YXRlLnRoaXNWYWx1ZSgpKTsKIH0KIAogRW5jb2RlZEpTVmFsdWUganNU
ZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvbkNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFZNJiB2bSA9
IHN0YXRlLT52bSgpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwotICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdFN0cmlu
Z2lmaWVyTmFtZWRPcGVyYXRpb25Qcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNW
YWx1ZSkpOworICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0U3RyaW5n
aWZpZXJOYW1lZE9wZXJhdGlvblByb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1Zh
bHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFwcm90b3R5cGUpKQogICAgICAgICByZXR1cm4gdGhy
b3dWTVR5cGVFcnJvcihzdGF0ZSwgdGhyb3dTY29wZSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShKU1Rlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0aW9uOjpnZXRDb25zdHJ1Y3RvcihzdGF0
ZS0+dm0oKSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOwpAQCAtMTU5LDcgKzE1OSw3IEBA
IGJvb2wgc2V0SlNUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvbkNvbnN0cnVjdG9yKEV4ZWNT
dGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhCiB7CiAgICAgVk0mIHZtID0gc3RhdGUtPnZtKCk7CiAg
ICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgYXV0byog
cHJvdG90eXBlID0ganNEeW5hbWljRG93bmNhc3Q8SlNUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJh
dGlvblByb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CisgICAgYXV0
byogcHJvdG90eXBlID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0
aW9uUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAo
VU5MSUtFTFkoIXByb3RvdHlwZSkpIHsKICAgICAgICAgdGhyb3dWTVR5cGVFcnJvcihzdGF0ZSwg
dGhyb3dTY29wZSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTI0OCw3ICsyNDgsNyBAQCBK
U0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSogc3RhdGUsIEpTRE9NR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIFRlc3RTdAogCiBUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvbiog
SlNUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvbjo6dG9XcmFwcGVkKEpTQzo6Vk0mIHZtLCBK
U0M6OkpTVmFsdWUgdmFsdWUpCiB7Ci0gICAgaWYgKGF1dG8qIHdyYXBwZXIgPSBqc0R5bmFtaWNE
b3duY2FzdDxKU1Rlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0aW9uKj4odm0sIHZhbHVlKSkKKyAg
ICBpZiAoYXV0byogd3JhcHBlciA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0U3RyaW5naWZpZXJOYW1l
ZE9wZXJhdGlvbio+KHZtLCB2YWx1ZSkpCiAgICAgICAgIHJldHVybiAmd3JhcHBlci0+d3JhcHBl
ZCgpOwogICAgIHJldHVybiBudWxscHRyOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVt
ZW50ZWRBcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzLmNwcAppbmRleCBiNmViZjE0Y2Vj
MGMxMDcyYjY1MzdhZDFmNzMwNmMwODc2Y2U5MDMyLi45ZWI4M2JiNGUwNGU5ZTRiYjYyYmI5OGIz
MGI4MjQzMTc1NDExYTA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5n
aWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzLmNwcApAQCAtMTQyLDE0ICsxNDIsMTQgQEAgdm9p
ZCBKU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVudGVkQXM6OmRlc3Ryb3koSlNDOjpK
U0NlbGwqIGNlbGwpCiAKIHRlbXBsYXRlPD4gaW5saW5lIEpTVGVzdFN0cmluZ2lmaWVyT3BlcmF0
aW9uSW1wbGVtZW50ZWRBcyogSURMT3BlcmF0aW9uPEpTVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9u
SW1wbGVtZW50ZWRBcz46OmNhc3QoRXhlY1N0YXRlJiBzdGF0ZSkKIHsKLSAgICByZXR1cm4ganNE
eW5hbWljRG93bmNhc3Q8SlNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzKj4o
c3RhdGUudm0oKSwgc3RhdGUudGhpc1ZhbHVlKCkpOworICAgIHJldHVybiBqc0R5bmFtaWNDYXN0
PEpTVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRBcyo+KHN0YXRlLnZtKCksIHN0
YXRlLnRoaXNWYWx1ZSgpKTsKIH0KIAogRW5jb2RlZEpTVmFsdWUganNUZXN0U3RyaW5naWZpZXJP
cGVyYXRpb25JbXBsZW1lbnRlZEFzQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVk0mIHZtID0gc3RhdGUt
PnZtKCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0g
ICAgYXV0byogcHJvdG90eXBlID0ganNEeW5hbWljRG93bmNhc3Q8SlNUZXN0U3RyaW5naWZpZXJP
cGVyYXRpb25JbXBsZW1lbnRlZEFzUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlz
VmFsdWUpKTsKKyAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdFN0cmlu
Z2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRBc1Byb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNv
ZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFwcm90b3R5cGUpKQogICAgICAgICBy
ZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihzdGF0ZSwgdGhyb3dTY29wZSk7CiAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShKU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVudGVkQXM6Omdl
dENvbnN0cnVjdG9yKHN0YXRlLT52bSgpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CkBA
IC0xNTksNyArMTU5LDcgQEAgYm9vbCBzZXRKU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxl
bWVudGVkQXNDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBFbmMKIHsKICAgICBWTSYgdm0g
PSBzdGF0ZS0+dm0oKTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTsKLSAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNEb3duY2FzdDxKU1Rlc3RTdHJp
bmdpZmllck9wZXJhdGlvbkltcGxlbWVudGVkQXNQcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVj
b2RlKHRoaXNWYWx1ZSkpOworICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Nhc3Q8SlNU
ZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzUHJvdG90eXBlKj4odm0sIEpTVmFs
dWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIXByb3RvdHlwZSkpIHsK
ICAgICAgICAgdGhyb3dWTVR5cGVFcnJvcihzdGF0ZSwgdGhyb3dTY29wZSk7CiAgICAgICAgIHJl
dHVybiBmYWxzZTsKQEAgLTI0OCw3ICsyNDgsNyBAQCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4
ZWNTdGF0ZSogc3RhdGUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRlc3RTdAog
CiBUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzKiBKU1Rlc3RTdHJpbmdpZmll
ck9wZXJhdGlvbkltcGxlbWVudGVkQXM6OnRvV3JhcHBlZChKU0M6OlZNJiB2bSwgSlNDOjpKU1Zh
bHVlIHZhbHVlKQogewotICAgIGlmIChhdXRvKiB3cmFwcGVyID0ganNEeW5hbWljRG93bmNhc3Q8
SlNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzKj4odm0sIHZhbHVlKSkKKyAg
ICBpZiAoYXV0byogd3JhcHBlciA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0U3RyaW5naWZpZXJPcGVy
YXRpb25JbXBsZW1lbnRlZEFzKj4odm0sIHZhbHVlKSkKICAgICAgICAgcmV0dXJuICZ3cmFwcGVy
LT53cmFwcGVkKCk7CiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJPcGVyYXRp
b25OYW1lZFRvU3RyaW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmcuY3BwCmluZGV4IGZl
NDMyYmE1ZjUyYTlhNWU0ODMxMjc4M2JjZmNlODJkMjU1ZDI4NWQuLjI3MmIxOWZkZGFiNGRiMjYy
NTA4YmFmNzVhYzU4NTBlYjU2YzM1MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJp
bmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RTdHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmcuY3BwCkBAIC0xNDAsMTQgKzE0MCwx
NCBAQCB2b2lkIEpTVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0cmluZzo6ZGVzdHJv
eShKU0M6OkpTQ2VsbCogY2VsbCkKIAogdGVtcGxhdGU8PiBpbmxpbmUgSlNUZXN0U3RyaW5naWZp
ZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5nKiBJRExPcGVyYXRpb248SlNUZXN0U3RyaW5naWZpZXJP
cGVyYXRpb25OYW1lZFRvU3RyaW5nPjo6Y2FzdChFeGVjU3RhdGUmIHN0YXRlKQogewotICAgIHJl
dHVybiBqc0R5bmFtaWNEb3duY2FzdDxKU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9T
dHJpbmcqPihzdGF0ZS52bSgpLCBzdGF0ZS50aGlzVmFsdWUoKSk7CisgICAgcmV0dXJuIGpzRHlu
YW1pY0Nhc3Q8SlNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5nKj4oc3RhdGUu
dm0oKSwgc3RhdGUudGhpc1ZhbHVlKCkpOwogfQogCiBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RTdHJp
bmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmdDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRl
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBWTSYgdm0g
PSBzdGF0ZS0+dm0oKTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTsKLSAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNEb3duY2FzdDxKU1Rlc3RTdHJp
bmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmdQcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVj
b2RlKHRoaXNWYWx1ZSkpOworICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Nhc3Q8SlNU
ZXN0U3RyaW5naWZpZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5nUHJvdG90eXBlKj4odm0sIEpTVmFs
dWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIXByb3RvdHlwZSkpCiAg
ICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKHN0YXRlLCB0aHJvd1Njb3BlKTsKICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0
cmluZzo6Z2V0Q29uc3RydWN0b3Ioc3RhdGUtPnZtKCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0
KCkpKTsKQEAgLTE1Nyw3ICsxNTcsNyBAQCBib29sIHNldEpTVGVzdFN0cmluZ2lmaWVyT3BlcmF0
aW9uTmFtZWRUb1N0cmluZ0NvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuYwogewogICAg
IFZNJiB2bSA9IHN0YXRlLT52bSgpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUodm0pOwotICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Rvd25jYXN0PEpT
VGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0cmluZ1Byb3RvdHlwZSo+KHZtLCBKU1Zh
bHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CisgICAgYXV0byogcHJvdG90eXBlID0ganNEeW5hbWlj
Q2FzdDxKU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmdQcm90b3R5cGUqPih2
bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghcHJvdG90
eXBlKSkgewogICAgICAgICB0aHJvd1ZNVHlwZUVycm9yKHN0YXRlLCB0aHJvd1Njb3BlKTsKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMjMzLDcgKzIzMyw3IEBAIEpTQzo6SlNWYWx1ZSB0b0pT
KEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
VGVzdFN0CiAKIFRlc3RTdHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmcqIEpTVGVzdFN0
cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0cmluZzo6dG9XcmFwcGVkKEpTQzo6Vk0mIHZtLCBK
U0M6OkpTVmFsdWUgdmFsdWUpCiB7Ci0gICAgaWYgKGF1dG8qIHdyYXBwZXIgPSBqc0R5bmFtaWNE
b3duY2FzdDxKU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmcqPih2bSwgdmFs
dWUpKQorICAgIGlmIChhdXRvKiB3cmFwcGVyID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RTdHJpbmdp
Zmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmcqPih2bSwgdmFsdWUpKQogICAgICAgICByZXR1cm4g
JndyYXBwZXItPndyYXBwZWQoKTsKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmll
clJlYWRPbmx5QXR0cmlidXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRlLmNwcAppbmRleCA4N2Iz
YjE0ZjZlZWFlMWJlOGI1YzdmNmRiZjFiZGRjMWNlOTY1MmY4Li4zZWNlODYxODU3MTIwMWE4MjNj
OTcwM2ZkY2EyNjFmZDQwYmExOGI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmlu
Z2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGUuY3BwCkBAIC0xNDMsMTkgKzE0MywxOSBAQCB2b2lkIEpT
VGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGU6OmRlc3Ryb3koSlNDOjpKU0NlbGwqIGNl
bGwpCiAKIHRlbXBsYXRlPD4gaW5saW5lIEpTVGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1
dGUqIElETEF0dHJpYnV0ZTxKU1Rlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRlPjo6Y2Fz
dChFeGVjU3RhdGUmIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUpCiB7Ci0gICAgcmV0
dXJuIGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGUq
PihzdGF0ZS52bSgpLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CisgICAgcmV0dXJuIGpz
RHluYW1pY0Nhc3Q8SlNUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZSo+KHN0YXRlLnZt
KCksIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUg
SlNUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZSogSURMT3BlcmF0aW9uPEpTVGVzdFN0
cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGU+OjpjYXN0KEV4ZWNTdGF0ZSYgc3RhdGUpCiB7Ci0g
ICAgcmV0dXJuIGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRy
aWJ1dGUqPihzdGF0ZS52bSgpLCBzdGF0ZS50aGlzVmFsdWUoKSk7CisgICAgcmV0dXJuIGpzRHlu
YW1pY0Nhc3Q8SlNUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZSo+KHN0YXRlLnZtKCks
IHN0YXRlLnRoaXNWYWx1ZSgpKTsKIH0KIAogRW5jb2RlZEpTVmFsdWUganNUZXN0U3RyaW5naWZp
ZXJSZWFkT25seUF0dHJpYnV0ZUNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFZNJiB2bSA9IHN0YXRlLT52
bSgpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAg
IGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdFN0cmluZ2lmaWVyUmVh
ZE9ubHlBdHRyaWJ1dGVQcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkp
OworICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0U3RyaW5naWZpZXJS
ZWFkT25seUF0dHJpYnV0ZVByb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVl
KSk7CiAgICAgaWYgKFVOTElLRUxZKCFwcm90b3R5cGUpKQogICAgICAgICByZXR1cm4gdGhyb3dW
TVR5cGVFcnJvcihzdGF0ZSwgdGhyb3dTY29wZSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShKU1Rlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRlOjpnZXRDb25zdHJ1Y3RvcihzdGF0
ZS0+dm0oKSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOwpAQCAtMTY1LDcgKzE2NSw3IEBA
IGJvb2wgc2V0SlNUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZUNvbnN0cnVjdG9yKEV4
ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKCiB7CiAgICAgVk0mIHZtID0gc3RhdGUtPnZtKCk7CiAg
ICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgYXV0byog
cHJvdG90eXBlID0ganNEeW5hbWljRG93bmNhc3Q8SlNUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0
dHJpYnV0ZVByb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CisgICAg
YXV0byogcHJvdG90eXBlID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RTdHJpbmdpZmllclJlYWRPbmx5
QXR0cmlidXRlUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAg
ICBpZiAoVU5MSUtFTFkoIXByb3RvdHlwZSkpIHsKICAgICAgICAgdGhyb3dWTVR5cGVFcnJvcihz
dGF0ZSwgdGhyb3dTY29wZSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTI1NSw3ICsyNTUs
NyBAQCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSogc3RhdGUsIEpTRE9NR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIFRlc3RTdAogCiBUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0
dHJpYnV0ZSogSlNUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZTo6dG9XcmFwcGVkKEpT
Qzo6Vk0mIHZtLCBKU0M6OkpTVmFsdWUgdmFsdWUpCiB7Ci0gICAgaWYgKGF1dG8qIHdyYXBwZXIg
PSBqc0R5bmFtaWNEb3duY2FzdDxKU1Rlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRlKj4o
dm0sIHZhbHVlKSkKKyAgICBpZiAoYXV0byogd3JhcHBlciA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0
U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZSo+KHZtLCB2YWx1ZSkpCiAgICAgICAgIHJldHVy
biAmd3JhcHBlci0+d3JhcHBlZCgpOwogICAgIHJldHVybiBudWxscHRyOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lm
aWVyUmVhZFdyaXRlQXR0cmlidXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZS5jcHAKaW5kZXgg
ZWEwN2UzY2Y2ZTE5MTM2OGYwOGViMTk2MzE1ZmRmM2RmNjQ0MmQyNC4uYzRiN2M0MjE0ZTcyZWE2
MGFlMDMwMDkyOTRiMDE2YmI4MTYyZTZkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGUuY3BwCkBAIC0xNDQsMTkgKzE0NCwxOSBAQCB2
b2lkIEpTVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlOjpkZXN0cm95KEpTQzo6SlND
ZWxsKiBjZWxsKQogCiB0ZW1wbGF0ZTw+IGlubGluZSBKU1Rlc3RTdHJpbmdpZmllclJlYWRXcml0
ZUF0dHJpYnV0ZSogSURMQXR0cmlidXRlPEpTVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmli
dXRlPjo6Y2FzdChFeGVjU3RhdGUmIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUpCiB7
Ci0gICAgcmV0dXJuIGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRl
QXR0cmlidXRlKj4oc3RhdGUudm0oKSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOworICAg
IHJldHVybiBqc0R5bmFtaWNDYXN0PEpTVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRl
Kj4oc3RhdGUudm0oKSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogfQogCiB0ZW1wbGF0
ZTw+IGlubGluZSBKU1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZSogSURMT3BlcmF0
aW9uPEpTVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlPjo6Y2FzdChFeGVjU3RhdGUm
IHN0YXRlKQogewotICAgIHJldHVybiBqc0R5bmFtaWNEb3duY2FzdDxKU1Rlc3RTdHJpbmdpZmll
clJlYWRXcml0ZUF0dHJpYnV0ZSo+KHN0YXRlLnZtKCksIHN0YXRlLnRoaXNWYWx1ZSgpKTsKKyAg
ICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0
ZSo+KHN0YXRlLnZtKCksIHN0YXRlLnRoaXNWYWx1ZSgpKTsKIH0KIAogRW5jb2RlZEpTVmFsdWUg
anNUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGVDb25zdHJ1Y3RvcihFeGVjU3RhdGUq
IHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBW
TSYgdm0gPSBzdGF0ZS0+dm0oKTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKLSAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNEb3duY2FzdDxKU1Rl
c3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZVByb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpk
ZWNvZGUodGhpc1ZhbHVlKSk7CisgICAgYXV0byogcHJvdG90eXBlID0ganNEeW5hbWljQ2FzdDxK
U1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZVByb3RvdHlwZSo+KHZtLCBKU1ZhbHVl
OjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFwcm90b3R5cGUpKQogICAg
ICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihzdGF0ZSwgdGhyb3dTY29wZSk7CiAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZTo6
Z2V0Q29uc3RydWN0b3Ioc3RhdGUtPnZtKCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsK
QEAgLTE2Niw3ICsxNjYsNyBAQCBib29sIHNldEpTVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0
cmlidXRlQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZAogewogICAgIFZNJiB2
bSA9IHN0YXRlLT52bSgpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOwotICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdFN0
cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29k
ZSh0aGlzVmFsdWUpKTsKKyAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNDYXN0PEpTVGVz
dFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRl
Y29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIXByb3RvdHlwZSkpIHsKICAgICAg
ICAgdGhyb3dWTVR5cGVFcnJvcihzdGF0ZSwgdGhyb3dTY29wZSk7CiAgICAgICAgIHJldHVybiBm
YWxzZTsKQEAgLTI3Myw3ICsyNzMsNyBAQCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0
ZSogc3RhdGUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRlc3RTdAogCiBUZXN0
U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGUqIEpTVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRl
QXR0cmlidXRlOjp0b1dyYXBwZWQoSlNDOjpWTSYgdm0sIEpTQzo6SlNWYWx1ZSB2YWx1ZSkKIHsK
LSAgICBpZiAoYXV0byogd3JhcHBlciA9IGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdFN0cmluZ2lm
aWVyUmVhZFdyaXRlQXR0cmlidXRlKj4odm0sIHZhbHVlKSkKKyAgICBpZiAoYXV0byogd3JhcHBl
ciA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGUqPih2
bSwgdmFsdWUpKQogICAgICAgICByZXR1cm4gJndyYXBwZXItPndyYXBwZWQoKTsKICAgICByZXR1
cm4gbnVsbHB0cjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RUeXBlZGVmcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlwZWRlZnMuY3BwCmluZGV4IGRjNjFkM2M5MzcwMWQxZmJl
OGU4ODVlYzY0YjYyOTA5ZjVkOTAxOTguLjc3MmIxNjIzNzhhMTcxMzM3YWYxZmY2ODdiNmI4YTEw
OGRkYmQ3NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RUeXBlZGVmcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmNwcApAQCAtMjQ3LDE5ICsyNDcsMTkgQEAgdm9p
ZCBKU1Rlc3RUeXBlZGVmczo6ZGVzdHJveShKU0M6OkpTQ2VsbCogY2VsbCkKIAogdGVtcGxhdGU8
PiBpbmxpbmUgSlNUZXN0VHlwZWRlZnMqIElETEF0dHJpYnV0ZTxKU1Rlc3RUeXBlZGVmcz46OmNh
c3QoRXhlY1N0YXRlJiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlKQogewotICAgIHJl
dHVybiBqc0R5bmFtaWNEb3duY2FzdDxKU1Rlc3RUeXBlZGVmcyo+KHN0YXRlLnZtKCksIEpTVmFs
dWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKKyAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3RU
eXBlZGVmcyo+KHN0YXRlLnZtKCksIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKIH0KIAog
dGVtcGxhdGU8PiBpbmxpbmUgSlNUZXN0VHlwZWRlZnMqIElETE9wZXJhdGlvbjxKU1Rlc3RUeXBl
ZGVmcz46OmNhc3QoRXhlY1N0YXRlJiBzdGF0ZSkKIHsKLSAgICByZXR1cm4ganNEeW5hbWljRG93
bmNhc3Q8SlNUZXN0VHlwZWRlZnMqPihzdGF0ZS52bSgpLCBzdGF0ZS50aGlzVmFsdWUoKSk7Cisg
ICAgcmV0dXJuIGpzRHluYW1pY0Nhc3Q8SlNUZXN0VHlwZWRlZnMqPihzdGF0ZS52bSgpLCBzdGF0
ZS50aGlzVmFsdWUoKSk7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIGpzVGVzdFR5cGVkZWZzQ29uc3Ry
dWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpCiB7CiAgICAgVk0mIHZtID0gc3RhdGUtPnZtKCk7CiAgICAgYXV0byB0aHJvd1Njb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgYXV0byogcHJvdG90eXBlID0ganNEeW5h
bWljRG93bmNhc3Q8SlNUZXN0VHlwZWRlZnNQcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2Rl
KHRoaXNWYWx1ZSkpOworICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0
VHlwZWRlZnNQcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAg
IGlmIChVTkxJS0VMWSghcHJvdG90eXBlKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJy
b3Ioc3RhdGUsIHRocm93U2NvcGUpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0
VHlwZWRlZnM6OmdldENvbnN0cnVjdG9yKHN0YXRlLT52bSgpLCBwcm90b3R5cGUtPmdsb2JhbE9i
amVjdCgpKSk7CkBAIC0yNjksNyArMjY5LDcgQEAgYm9vbCBzZXRKU1Rlc3RUeXBlZGVmc0NvbnN0
cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW4KIHsK
ICAgICBWTSYgdm0gPSBzdGF0ZS0+dm0oKTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJF
X1RIUk9XX1NDT1BFKHZtKTsKLSAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNEb3duY2Fz
dDxKU1Rlc3RUeXBlZGVmc1Byb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVl
KSk7CisgICAgYXV0byogcHJvdG90eXBlID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RUeXBlZGVmc1By
b3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElL
RUxZKCFwcm90b3R5cGUpKSB7CiAgICAgICAgIHRocm93Vk1UeXBlRXJyb3Ioc3RhdGUsIHRocm93
U2NvcGUpOwogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC03OTUsNyArNzk1LDcgQEAgSlNDOjpK
U1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqIHN0YXRlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBUZXN0VHkKIAogVGVzdFR5cGVkZWZzKiBKU1Rlc3RUeXBlZGVmczo6dG9XcmFw
cGVkKEpTQzo6Vk0mIHZtLCBKU0M6OkpTVmFsdWUgdmFsdWUpCiB7Ci0gICAgaWYgKGF1dG8qIHdy
YXBwZXIgPSBqc0R5bmFtaWNEb3duY2FzdDxKU1Rlc3RUeXBlZGVmcyo+KHZtLCB2YWx1ZSkpCisg
ICAgaWYgKGF1dG8qIHdyYXBwZXIgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdFR5cGVkZWZzKj4odm0s
IHZhbHVlKSkKICAgICAgICAgcmV0dXJuICZ3cmFwcGVyLT53cmFwcGVkKCk7CiAgICAgcmV0dXJu
IG51bGxwdHI7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9XZWJT
Y3JpcHRPYmplY3QubW0gYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9XZWJTY3JpcHRPYmpl
Y3QubW0KaW5kZXggZWEyNDczZGFjZTU4NjA2ZDUzODljOWU3NTBmYWI3ODM5Zjk0NzUzZS4uMDJj
MWQzMjhiNjhiYmI1NDE1MmJmNzEwMGI4MzhkNjEwY2ExMTNiMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYnJpZGdlL29iamMvV2ViU2NyaXB0T2JqZWN0Lm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JyaWRnZS9vYmpjL1dlYlNjcmlwdE9iamVjdC5tbQpAQCAtNDAxLDcgKzQwMSw3IEBAIC0g
KHZvaWQpc2V0VmFsdWU6KGlkKXZhbHVlIGZvcktleTooTlNTdHJpbmcgKilrZXkKICAgICBhdXRv
IHNjb3BlID0gREVDTEFSRV9DQVRDSF9TQ09QRSh2bSk7CiAgICAgRXhlY1N0YXRlKiBleGVjID0g
Z2xvYmFsT2JqZWN0LT5nbG9iYWxFeGVjKCk7CiAKLSAgICBKU09iamVjdCogb2JqZWN0ID0ganNE
eW5hbWljRG93bmNhc3Q8SlNPYmplY3QqPih2bSwgW3NlbGYgX2ltcF0pOworICAgIEpTT2JqZWN0
KiBvYmplY3QgPSBqc0R5bmFtaWNDYXN0PEpTT2JqZWN0Kj4odm0sIFtzZWxmIF9pbXBdKTsKICAg
ICBQdXRQcm9wZXJ0eVNsb3Qgc2xvdChvYmplY3QpOwogICAgIG9iamVjdC0+bWV0aG9kVGFibGUo
dm0pLT5wdXQob2JqZWN0LCBleGVjLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKGV4ZWMsIFN0cmlu
ZyhrZXkpKSwgY29udmVydE9iamNWYWx1ZVRvVmFsdWUoZXhlYywgJnZhbHVlLCBPYmpjT2JqZWN0
VHlwZSwgW3NlbGYgX3Jvb3RPYmplY3RdKSwgc2xvdCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9y
dW50aW1lX2FycmF5LmNwcAppbmRleCBkYTRkZTdiZDMzMWYwMjk1NzE2YTJlZTIwN2RkMmFkMDkw
NTBmNWE4Li40ZDM0YzA3YWM0Y2Q5YjQwMDdhMjViY2I5MTk3N2I0NDI0ZWEzNDI1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwCkBAIC02NSw3ICs2NSw3IEBAIEVuY29k
ZWRKU1ZhbHVlIFJ1bnRpbWVBcnJheTo6bGVuZ3RoR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhCiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBhdXRvIHNj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKLSAgICBSdW50aW1lQXJyYXkqIHRoaXNP
YmplY3QgPSBqc0R5bmFtaWNEb3duY2FzdDxSdW50aW1lQXJyYXkqPih2bSwgSlNWYWx1ZTo6ZGVj
b2RlKHRoaXNWYWx1ZSkpOworICAgIFJ1bnRpbWVBcnJheSogdGhpc09iamVjdCA9IGpzRHluYW1p
Y0Nhc3Q8UnVudGltZUFycmF5Kj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAg
ICBpZiAoIXRoaXNPYmplY3QpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMs
IHNjb3BlKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKHRoaXNPYmplY3Qt
PmdldExlbmd0aCgpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGlt
ZV9tZXRob2QuY3BwIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmNwcApp
bmRleCA2N2VlNzVkNDRiYzExYmNkMTBkMmFjMzg3MmRhMGVlZDkxYTYzYzRmLi5jNDU4ZGY5MWQw
MmNjZTNiZGU0ZmJmODcwZDhiZTYxNDg0NTVhZTg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9icmlkZ2UvcnVudGltZV9tZXRob2QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9y
dW50aW1lX21ldGhvZC5jcHAKQEAgLTYxLDcgKzYxLDcgQEAgRW5jb2RlZEpTVmFsdWUgUnVudGlt
ZU1ldGhvZDo6bGVuZ3RoR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhp
c1YKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKIAotICAgIFJ1bnRpbWVNZXRob2QqIHRoaXNPYmplY3QgPSBqc0R5bmFt
aWNEb3duY2FzdDxSdW50aW1lTWV0aG9kKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUp
KTsKKyAgICBSdW50aW1lTWV0aG9kKiB0aGlzT2JqZWN0ID0ganNEeW5hbWljQ2FzdDxSdW50aW1l
TWV0aG9kKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoIXRoaXNP
YmplY3QpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIHNjb3BlKTsKICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKHRoaXNPYmplY3QtPm1fbWV0aG9kLT5u
dW1QYXJhbWV0ZXJzKCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1l
ZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3Bw
CmluZGV4IDFmNDM3YjkyOGI5MGUxYmE5YmNlMmJiMDMyNzU2MGE1ZGFkMWMwZTcuLjFmZTAwNTBk
OGQwODcwNGQ2OGM4NmEwNDE3NTQ0NDY5OTQ3MzJmYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTWVkaWFFbGVtZW50LmNwcApAQCAtNDI1Miw3ICs0MjUyLDcgQEAgc3RhdGljIEpTQzo6SlNW
YWx1ZSBjb250cm9sbGVySlNWYWx1ZShKU0M6OkV4ZWNTdGF0ZSYgZXhlYywgSlNET01HbG9iYWxP
YmplY3QmIGcKICAgICBhdXRvIG1lZGlhSlNXcmFwcGVyID0gdG9KUygmZXhlYywgJmdsb2JhbE9i
amVjdCwgbWVkaWEpOwogCiAgICAgLy8gUmV0cmlldmUgdGhlIGNvbnRyb2xsZXIgdGhyb3VnaCB0
aGUgSlMgb2JqZWN0IGdyYXBoCi0gICAgSlNDOjpKU09iamVjdCogbWVkaWFKU1dyYXBwZXJPYmpl
Y3QgPSBqc0R5bmFtaWNEb3duY2FzdDxKU0M6OkpTT2JqZWN0Kj4odm0sIG1lZGlhSlNXcmFwcGVy
KTsKKyAgICBKU0M6OkpTT2JqZWN0KiBtZWRpYUpTV3JhcHBlck9iamVjdCA9IEpTQzo6anNEeW5h
bWljQ2FzdDxKU0M6OkpTT2JqZWN0Kj4odm0sIG1lZGlhSlNXcmFwcGVyKTsKICAgICBpZiAoIW1l
ZGlhSlNXcmFwcGVyT2JqZWN0KQogICAgICAgICByZXR1cm4gSlNDOjpqc051bGwoKTsKIApAQCAt
NDI2MCw3ICs0MjYwLDcgQEAgc3RhdGljIEpTQzo6SlNWYWx1ZSBjb250cm9sbGVySlNWYWx1ZShK
U0M6OkV4ZWNTdGF0ZSYgZXhlYywgSlNET01HbG9iYWxPYmplY3QmIGcKICAgICBKU0M6OkpTVmFs
dWUgY29udHJvbHNIb3N0SlNXcmFwcGVyID0gbWVkaWFKU1dyYXBwZXJPYmplY3QtPmdldCgmZXhl
YywgY29udHJvbHNIb3N0KTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBKU0M6Ompz
TnVsbCgpKTsKIAotICAgIEpTQzo6SlNPYmplY3QqIGNvbnRyb2xzSG9zdEpTV3JhcHBlck9iamVj
dCA9IGpzRHluYW1pY0Rvd25jYXN0PEpTQzo6SlNPYmplY3QqPih2bSwgY29udHJvbHNIb3N0SlNX
cmFwcGVyKTsKKyAgICBKU0M6OkpTT2JqZWN0KiBjb250cm9sc0hvc3RKU1dyYXBwZXJPYmplY3Qg
PSBKU0M6OmpzRHluYW1pY0Nhc3Q8SlNDOjpKU09iamVjdCo+KHZtLCBjb250cm9sc0hvc3RKU1dy
YXBwZXIpOwogICAgIGlmICghY29udHJvbHNIb3N0SlNXcmFwcGVyT2JqZWN0KQogICAgICAgICBy
ZXR1cm4gSlNDOjpqc051bGwoKTsKIApAQCAtNDMwNyw3ICs0MzA3LDcgQEAgdm9pZCBIVE1MTWVk
aWFFbGVtZW50Ojp1cGRhdGVDYXB0aW9uQ29udGFpbmVyKCkKICAgICBKU0M6OkV4ZWNTdGF0ZSog
ZXhlYyA9IGdsb2JhbE9iamVjdC0+Z2xvYmFsRXhlYygpOwogCiAgICAgSlNDOjpKU1ZhbHVlIGNv
bnRyb2xsZXJWYWx1ZSA9IGNvbnRyb2xsZXJKU1ZhbHVlKCpleGVjLCAqZ2xvYmFsT2JqZWN0LCAq
dGhpcyk7Ci0gICAgSlNDOjpKU09iamVjdCogY29udHJvbGxlck9iamVjdCA9IGpzRHluYW1pY0Rv
d25jYXN0PEpTQzo6SlNPYmplY3QqPih2bSwgY29udHJvbGxlclZhbHVlKTsKKyAgICBKU0M6OkpT
T2JqZWN0KiBjb250cm9sbGVyT2JqZWN0ID0gSlNDOjpqc0R5bmFtaWNDYXN0PEpTQzo6SlNPYmpl
Y3QqPih2bSwgY29udHJvbGxlclZhbHVlKTsKICAgICBpZiAoIWNvbnRyb2xsZXJPYmplY3QpCiAg
ICAgICAgIHJldHVybjsKIApAQCAtNDMxOCw3ICs0MzE4LDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVt
ZW50Ojp1cGRhdGVDYXB0aW9uQ29udGFpbmVyKCkKICAgICAvLyBSZXR1cm4gdmFsdWU6CiAgICAg
Ly8gICAgIE5vbmUKICAgICBKU0M6OkpTVmFsdWUgbWV0aG9kVmFsdWUgPSBjb250cm9sbGVyT2Jq
ZWN0LT5nZXQoZXhlYywgSlNDOjpJZGVudGlmaWVyOjpmcm9tU3RyaW5nKGV4ZWMsICJ1cGRhdGVD
YXB0aW9uQ29udGFpbmVyIikpOwotICAgIEpTQzo6SlNPYmplY3QqIG1ldGhvZE9iamVjdCA9IGpz
RHluYW1pY0Rvd25jYXN0PEpTQzo6SlNPYmplY3QqPih2bSwgbWV0aG9kVmFsdWUpOworICAgIEpT
Qzo6SlNPYmplY3QqIG1ldGhvZE9iamVjdCA9IEpTQzo6anNEeW5hbWljQ2FzdDxKU0M6OkpTT2Jq
ZWN0Kj4odm0sIG1ldGhvZFZhbHVlKTsKICAgICBpZiAoIW1ldGhvZE9iamVjdCkKICAgICAgICAg
cmV0dXJuOwogCkBAIC03MTQ4LDcgKzcxNDgsNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmRp
ZEFkZFVzZXJBZ2VudFNoYWRvd1Jvb3QoU2hhZG93Um9vdCYgcm9vdCkKIAogICAgIEpTQzo6SlNW
YWx1ZSBjb250cm9sbGVyVmFsdWUgPSBKU0M6OmNhbGwoZXhlYywgZnVuY3Rpb24sIGNhbGxUeXBl
LCBjYWxsRGF0YSwgZ2xvYmFsT2JqZWN0LCBhcmdMaXN0KTsKICAgICBzY29wZS5jbGVhckV4Y2Vw
dGlvbigpOwotICAgIEpTQzo6SlNPYmplY3QqIGNvbnRyb2xsZXJPYmplY3QgPSBqc0R5bmFtaWNE
b3duY2FzdDxKU0M6OkpTT2JqZWN0Kj4odm0sIGNvbnRyb2xsZXJWYWx1ZSk7CisgICAgSlNDOjpK
U09iamVjdCogY29udHJvbGxlck9iamVjdCA9IEpTQzo6anNEeW5hbWljQ2FzdDxKU0M6OkpTT2Jq
ZWN0Kj4odm0sIGNvbnRyb2xsZXJWYWx1ZSk7CiAgICAgaWYgKCFjb250cm9sbGVyT2JqZWN0KQog
ICAgICAgICByZXR1cm47CiAKQEAgLTcxNjEsNyArNzE2MSw3IEBAIHZvaWQgSFRNTE1lZGlhRWxl
bWVudDo6ZGlkQWRkVXNlckFnZW50U2hhZG93Um9vdChTaGFkb3dSb290JiByb290KQogCiAgICAg
bWVkaWFKU1dyYXBwZXJPYmplY3QtPnB1dERpcmVjdChleGVjLT52bSgpLCBjb250cm9sc0hvc3Qs
IG1lZGlhQ29udHJvbHNIb3N0SlNXcmFwcGVyLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250
RGVsZXRlIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0gfCBKU0M6OlByb3BlcnR5
QXR0cmlidXRlOjpSZWFkT25seSk7CiAKLSAgICBKU0M6OkpTT2JqZWN0KiBtZWRpYUNvbnRyb2xz
SG9zdEpTV3JhcHBlck9iamVjdCA9IGpzRHluYW1pY0Rvd25jYXN0PEpTQzo6SlNPYmplY3QqPih2
bSwgbWVkaWFDb250cm9sc0hvc3RKU1dyYXBwZXIpOworICAgIEpTQzo6SlNPYmplY3QqIG1lZGlh
Q29udHJvbHNIb3N0SlNXcmFwcGVyT2JqZWN0ID0gSlNDOjpqc0R5bmFtaWNDYXN0PEpTQzo6SlNP
YmplY3QqPih2bSwgbWVkaWFDb250cm9sc0hvc3RKU1dyYXBwZXIpOwogICAgIGlmICghbWVkaWFD
b250cm9sc0hvc3RKU1dyYXBwZXJPYmplY3QpCiAgICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JET01BZ2VudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTUFnZW50LmNwcApp
bmRleCA5NzI2YzgwNGNlODVhMDI1OWRjYWUxNWYyN2IzMDEzNmVhMzViMzIxLi4wM2QwNmQ0OGYz
MjgyZjUxZjI4NWQyYTNmZWMyNDBjZTRmODlkOTdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTUFnZW50LmNwcApAQCAtMTYxMSw3ICsx
NjExLDcgQEAgUmVmPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkRPTTo6RXZlbnRMaXN0ZW5lcj4gSW5z
cGVjdG9yRE9NQWdlbnQ6OmJ1aWxkT2JqZWN0Rm9yRXYKICAgICAgICAgaGFuZGxlciA9IHNjcmlw
dExpc3RlbmVyLmpzRnVuY3Rpb24obm9kZS0+ZG9jdW1lbnQoKSk7CiAgICAgICAgIGlmIChoYW5k
bGVyICYmIHN0YXRlKSB7CiAgICAgICAgICAgICBib2R5ID0gaGFuZGxlci0+dG9TdHJpbmcoc3Rh
dGUpLT52YWx1ZShzdGF0ZSk7Ci0gICAgICAgICAgICBpZiAoYXV0byBmdW5jdGlvbiA9IGpzRHlu
YW1pY0Rvd25jYXN0PEpTQzo6SlNGdW5jdGlvbio+KHN0YXRlLT52bSgpLCBoYW5kbGVyKSkgewor
ICAgICAgICAgICAgaWYgKGF1dG8gZnVuY3Rpb24gPSBKU0M6OmpzRHluYW1pY0Nhc3Q8SlNDOjpK
U0Z1bmN0aW9uKj4oc3RhdGUtPnZtKCksIGhhbmRsZXIpKSB7CiAgICAgICAgICAgICAgICAgaWYg
KCFmdW5jdGlvbi0+aXNIb3N0T3JCdWlsdGluRnVuY3Rpb24oKSkgewogICAgICAgICAgICAgICAg
ICAgICBpZiAoYXV0byBleGVjdXRhYmxlID0gZnVuY3Rpb24tPmpzRXhlY3V0YWJsZSgpKSB7CiAg
ICAgICAgICAgICAgICAgICAgICAgICBsaW5lTnVtYmVyID0gZXhlY3V0YWJsZS0+Zmlyc3RMaW5l
KCkgLSAxOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0F1dG9tYXRpb24v
V2ViQXV0b21hdGlvblNlc3Npb25Qcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
QXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5LmNwcAppbmRleCBkMTM3ODc2Y2Zl
MzAwYTI5OGY0ZDgwMDQ2ZTA2YjM3YzJiNmIwNWEzLi4yZTZjYmViMmFjOWEyYTg0MWFiYjI4NWFi
NDIzMDI0NzI5ODkzZWUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQXV0
b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5LmNwcApAQCAt
MjEzLDcgKzIxMyw3IEBAIFdlYkNvcmU6OkVsZW1lbnQqIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJv
eHk6OmVsZW1lbnRGb3JOb2RlSGFuZGxlKFdlYkZyYW1lJiBmcmFtCiAgICAgaWYgKCFlbGVtZW50
KQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIGF1dG8gZWxlbWVudFdyYXBwZXIgPSBX
ZWJDb3JlOjpqc0R5bmFtaWNEb3duY2FzdDxXZWJDb3JlOjpKU0VsZW1lbnQqPih0b0pTKGNvbnRl
eHQpLT52bSgpLCB0b0pTKGVsZW1lbnQpKTsKKyAgICBhdXRvIGVsZW1lbnRXcmFwcGVyID0gSlND
Ojpqc0R5bmFtaWNDYXN0PFdlYkNvcmU6OkpTRWxlbWVudCo+KHRvSlMoY29udGV4dCktPnZtKCks
IHRvSlMoZWxlbWVudCkpOwogICAgIGlmICghZWxlbWVudFdyYXBwZXIpCiAgICAgICAgIHJldHVy
biBudWxscHRyOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJGcmFtZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFt
ZS5jcHAKaW5kZXggMTAwZjY3NDZmZDlkNTFkYzMwMWIzZTcyMWVmM2M4YTM0NjYwZGJjYi4uNjdl
MTMxN2IyZTc1ZWE1OTQ4ZGI5ZWIzOTdmZjZhYjA4ZTQ5MTBkYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcApAQCAtNjk0LDcgKzY5NCw3IEBAIFdl
YkZyYW1lKiBXZWJGcmFtZTo6ZnJhbWVGb3JDb250ZXh0KEpTQ29udGV4dFJlZiBjb250ZXh0KQog
ewogCiAgICAgSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0T2JqID0gdG9KUyhjb250
ZXh0KS0+bGV4aWNhbEdsb2JhbE9iamVjdCgpOwotICAgIEpTRE9NV2luZG93KiB3aW5kb3cgPSBq
c0R5bmFtaWNEb3duY2FzdDxKU0RPTVdpbmRvdyo+KGdsb2JhbE9iamVjdE9iai0+dm0oKSwgZ2xv
YmFsT2JqZWN0T2JqKTsKKyAgICBKU0RPTVdpbmRvdyogd2luZG93ID0ganNEeW5hbWljQ2FzdDxK
U0RPTVdpbmRvdyo+KGdsb2JhbE9iamVjdE9iai0+dm0oKSwgZ2xvYmFsT2JqZWN0T2JqKTsKICAg
ICBpZiAoIXdpbmRvdykKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgcmV0dXJuIFdlYkZy
YW1lOjpmcm9tQ29yZUZyYW1lKCood2luZG93LT53cmFwcGVkKCkuZnJhbWUoKSkpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>335310</attachid>
            <date>2018-03-08 09:47:07 -0800</date>
            <delta_ts>2018-03-08 10:17:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-183449-20180309024706.patch</filename>
            <type>text/plain</type>
            <size>214375</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI5NDEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWNjN2QwYTA2YjgyZDY4
NGViYjMwMjg2ZGE0ODUwODk0MjA5YmQ2ZC4uNzVlNzE2MDA2YWJlZWJkMTczOGJjOGY4ZjdmNjZj
YTdmZWY2OGQ4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM5MyBAQAogMjAxOC0wMy0wOCAgWXVz
dWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KIAorICAgICAgICBbSlNDXVtXZWJD
b3JlXSBFeHRlbmQganNEeW5hbWljQ2FzdCBmb3IgV2ViQ29yZSB0eXBlcyBpbiBXZWJDb3JlIGFu
ZCByZW1vdmUganNEeW5hbWljRG93bmNhc3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE4MzQ0OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggcmVtb3ZlcyBqc0R5bmFtaWNEb3duY2FzdC4g
T3VyIEpTQzo6anNEeW5hbWljQ2FzdCBjYW4gaGF2ZSBhIHdheSB0byBpbmplY3QgYSBmYXN0Cisg
ICAgICAgIHBhdGggdGhhdCBpcyBzaW1pbGFyIHRvIGpzRHluYW1pY0Rvd25jYXN0LiBXZWJDb3Jl
IGNhbiBsZXZlcmFnZSB0aGlzIGZ1bmN0aW9uYWxpdHkgdG8gYWRkCisgICAgICAgIGEgZmFzdCBw
YXRoIGZvciBXZWJDb3JlJ3MgZXh0ZW5kZWQgSlMgb2JqZWN0IHR5cGVzIChKU0V2ZW50LCBKU0Vs
ZW1lbnQsIEpTTm9kZSwgYW5kIEpTRG9jdW1lbnQpLgorCisgICAgICAgIE5vIGJlaGF2aW9yIGNo
YW5nZS4KKworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiBiaW5kaW5ncy9qcy9Db21tb25WTS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpsZXhp
Y2FsRnJhbWVGcm9tQ29tbW9uVk0pOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NQ29udmVy
dEJ1ZmZlclNvdXJjZS5oOgorICAgICAgICAoV2ViQ29yZTo6dG9Qb3NzaWJseVNoYXJlZEFycmF5
QnVmZmVyVmlldyk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01Db252ZXJ0UHJvbWlzZS5o
OgorICAgICAgICAoV2ViQ29yZTo6Q29udmVydGVyPElETFByb21pc2U8VD4+Ojpjb252ZXJ0KToK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OnJlcG9ydEV4Y2VwdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpyZXRyaWV2
ZUVycm9yTWVzc2FnZSk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01JdGVyYXRvci5oOgor
ICAgICAgICAoV2ViQ29yZTo6SXRlcmF0b3JUcmFpdHM+OjpuZXh0KToKKyAgICAgICAgKiBiaW5k
aW5ncy9qcy9KU0RPTVdpbmRvd1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2lu
ZG93UHJveHk6OnRvV3JhcHBlZCk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XcmFwcGVy
Q2FjaGUuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RvY3VtZW50Q3VzdG9tLmg6CisgICAg
ICAgIChKU0M6OkpTQ2FzdGluZ0hlbHBlcnM6OkluaGVyaXRzVHJhaXRzPFdlYkNvcmU6OkpTRG9j
dW1lbnQ+Ojppbmhlcml0cyk6CisgICAgICAgIChXZWJDb3JlOjpqc0RvY3VtZW50Q2FzdCk6IERl
bGV0ZWQuCisgICAgICAgICogYmluZGluZ3MvanMvSlNEeW5hbWljRG93bmNhc3QuaDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0VsZW1lbnRDdXN0b20uaDoKKyAgICAgICAgKEpT
Qzo6SlNDYXN0aW5nSGVscGVyczo6SW5oZXJpdHNUcmFpdHM8V2ViQ29yZTo6SlNFbGVtZW50Pjo6
aW5oZXJpdHMpOgorICAgICAgICAoV2ViQ29yZTo6anNFbGVtZW50Q2FzdCk6IERlbGV0ZWQuCisg
ICAgICAgICogYmluZGluZ3MvanMvSlNFdmVudEN1c3RvbS5oOgorICAgICAgICAoSlNDOjpKU0Nh
c3RpbmdIZWxwZXJzOjpJbmhlcml0c1RyYWl0czxXZWJDb3JlOjpKU0V2ZW50Pjo6aW5oZXJpdHMp
OgorICAgICAgICAoV2ViQ29yZTo6anNFdmVudENhc3QpOiBEZWxldGVkLgorICAgICAgICAqIGJp
bmRpbmdzL2pzL0pTRXZlbnRUYXJnZXRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6anNF
dmVudFRhcmdldENhc3QpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTTm9kZUN1c3RvbS5oOgor
ICAgICAgICAoSlNDOjpKU0Nhc3RpbmdIZWxwZXJzOjpJbmhlcml0c1RyYWl0czxXZWJDb3JlOjpK
U05vZGU+Ojppbmhlcml0cyk6CisgICAgICAgIChXZWJDb3JlOjpqc05vZGVDYXN0KTogRGVsZXRl
ZC4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6cGx1Z2luRWxlbWVudFByb3BlcnR5R2V0dGVyKToKKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9KU1JlYWRhYmxlU3RyZWFtU291cmNlQ3VzdG9tLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkpTUmVhZGFibGVTdHJlYW1Tb3VyY2U6OnN0YXJ0KToKKyAgICAgICAgKiBiaW5k
aW5ncy9qcy9KU1dvcmtlckdsb2JhbFNjb3BlQmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0
b0pTRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUpOgorICAgICAgICAoV2ViQ29yZTo6dG9KU1dv
cmtlckdsb2JhbFNjb3BlKToKKyAgICAgICAgKFdlYkNvcmU6OnRvSlNTZXJ2aWNlV29ya2VyR2xv
YmFsU2NvcGUpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1JlYWRhYmxlU3RyZWFtLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlYWRhYmxlU3RyZWFtOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVhZGFibGVTdHJlYW06OmlzRGlzdHVyYmVkKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9S
ZWFkYWJsZVN0cmVhbS5oOgorICAgICAgICAoV2ViQ29yZTo6SlNSZWFkYWJsZVN0cmVhbVdyYXBw
ZXJDb252ZXJ0ZXI6OnRvV3JhcHBlZCk6CisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0TW9k
dWxlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdE1vZHVsZUxvYWRlcjo6ZXZh
bHVhdGUpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDbG9uZVNlcmlhbGl6ZXI6OmR1bXBJZlRlcm1pbmFsKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNsb25lU2VyaWFsaXplcjo6c2VyaWFsaXplKToKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9TdHJ1Y3R1cmVkQ2xvbmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c3RydWN0
dXJlZENsb25lQXJyYXlCdWZmZXJWaWV3KToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKEdldENhc3RpbmdIZWxwZXJGb3JUaGlzT2JqZWN0
KToKKyAgICAgICAgKEdlbmVyYXRlSW1wbGVtZW50YXRpb24pOgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU0ludGVyZmFjZU5hbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
anNJbnRlcmZhY2VOYW1lQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNJbnRl
cmZhY2VOYW1lQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6SlNJbnRlcmZhY2VOYW1l
Ojp0b1dyYXBwZWQpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU01hcExp
a2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURMQXR0cmlidXRlPEpTTWFwTGlrZT46OmNhc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6SURMT3BlcmF0aW9uPEpTTWFwTGlrZT46OmNhc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6anNNYXBMaWtlQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6
c2V0SlNNYXBMaWtlQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6SlNNYXBMaWtlOjp0
b1dyYXBwZWQpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1JlYWRPbmx5
TWFwTGlrZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJRExBdHRyaWJ1dGU8SlNSZWFkT25seU1h
cExpa2U+OjpjYXN0KToKKyAgICAgICAgKFdlYkNvcmU6OklETE9wZXJhdGlvbjxKU1JlYWRPbmx5
TWFwTGlrZT46OmNhc3QpOgorICAgICAgICAoV2ViQ29yZTo6anNSZWFkT25seU1hcExpa2VDb25z
dHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1JlYWRPbmx5TWFwTGlrZUNvbnN0cnVj
dG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkpTUmVhZE9ubHlNYXBMaWtlOjp0b1dyYXBwZWQpOgor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVET01PYmplY3Qu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SURMQXR0cmlidXRlPEpTVGVzdEFjdGl2ZURPTU9iamVj
dD46OmNhc3QpOgorICAgICAgICAoV2ViQ29yZTo6SURMT3BlcmF0aW9uPEpTVGVzdEFjdGl2ZURP
TU9iamVjdD46OmNhc3QpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0QWN0aXZlRE9NT2JqZWN0
Q29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0QWN0aXZlRE9NT2JqZWN0
Q29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0QWN0aXZlRE9NT2JqZWN0Ojp0
b1dyYXBwZWQpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDRVJl
YWN0aW9ucy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJRExBdHRyaWJ1dGU8SlNUZXN0Q0VSZWFj
dGlvbnM+OjpjYXN0KToKKyAgICAgICAgKFdlYkNvcmU6OklETE9wZXJhdGlvbjxKU1Rlc3RDRVJl
YWN0aW9ucz46OmNhc3QpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0Q0VSZWFjdGlvbnNDb25z
dHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RDRVJlYWN0aW9uc0NvbnN0cnVj
dG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdENFUmVhY3Rpb25zOjp0b1dyYXBwZWQpOgor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDRVJlYWN0aW9uc1N0cmlu
Z2lmaWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklETEF0dHJpYnV0ZTxKU1Rlc3RDRVJlYWN0
aW9uc1N0cmluZ2lmaWVyPjo6Y2FzdCk6CisgICAgICAgIChXZWJDb3JlOjpJRExPcGVyYXRpb248
SlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllcj46OmNhc3QpOgorICAgICAgICAoV2ViQ29yZTo6
anNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllckNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNv
cmU6OnNldEpTVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJDb25zdHJ1Y3Rvcik6CisgICAgICAg
IChXZWJDb3JlOjpKU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyOjp0b1dyYXBwZWQpOgorICAg
ICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDYWxsVHJhY2VyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OklETEF0dHJpYnV0ZTxKU1Rlc3RDYWxsVHJhY2VyPjo6Y2FzdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpJRExPcGVyYXRpb248SlNUZXN0Q2FsbFRyYWNlcj46OmNhc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6anNUZXN0Q2FsbFRyYWNlckNvbnN0cnVjdG9yKToKKyAgICAgICAg
KFdlYkNvcmU6OnNldEpTVGVzdENhbGxUcmFjZXJDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJD
b3JlOjpKU1Rlc3RDYWxsVHJhY2VyOjp0b1dyYXBwZWQpOgorICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3Rvci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpqc1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3RvckNvbnN0
cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdENsYXNzV2l0aEpTQnVpbHRpbkNv
bnN0cnVjdG9yQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0Q2xhc3NXaXRo
SlNCdWlsdGluQ29uc3RydWN0b3I6OnRvV3JhcHBlZCk6CisgICAgICAgICogYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdEN1c3RvbUNvbnN0cnVjdG9yV2l0aE5vSW50ZXJmYWNlT2JqZWN0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEN1c3RvbUNvbnN0cnVjdG9yV2l0aE5vSW50
ZXJmYWNlT2JqZWN0Q29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0Q3Vz
dG9tQ29uc3RydWN0b3JXaXRoTm9JbnRlcmZhY2VPYmplY3RDb25zdHJ1Y3Rvcik6CisgICAgICAg
IChXZWJDb3JlOjpKU1Rlc3RDdXN0b21Db25zdHJ1Y3RvcldpdGhOb0ludGVyZmFjZU9iamVjdDo6
dG9XcmFwcGVkKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RE9N
SklULmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklETEF0dHJpYnV0ZTxKU1Rlc3RET01KSVQ+Ojpj
YXN0KToKKyAgICAgICAgKFdlYkNvcmU6OklETE9wZXJhdGlvbjxKU1Rlc3RET01KSVQ+OjpjYXN0
KToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdERPTUpJVENvbnN0cnVjdG9yKToKKyAgICAgICAg
KFdlYkNvcmU6OnNldEpTVGVzdERPTUpJVENvbnN0cnVjdG9yKToKKyAgICAgICAgKiBiaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RW5hYmxlZEJ5U2V0dGluZy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpJRExBdHRyaWJ1dGU8SlNUZXN0RW5hYmxlZEJ5U2V0dGluZz46OmNhc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6SURMT3BlcmF0aW9uPEpTVGVzdEVuYWJsZWRCeVNldHRpbmc+OjpjYXN0
KToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEVuYWJsZWRCeVNldHRpbmdDb25zdHJ1Y3Rvcik6
CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RFbmFibGVkQnlTZXR0aW5nQ29uc3RydWN0b3Ip
OgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0RW5hYmxlZEJ5U2V0dGluZzo6dG9XcmFwcGVkKToK
KyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRDb25zdHJ1Y3Rv
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJRExBdHRyaWJ1dGU8SlNUZXN0RXZlbnRDb25zdHJ1
Y3Rvcj46OmNhc3QpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0RXZlbnRDb25zdHJ1Y3RvckNv
bnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdEV2ZW50Q29uc3RydWN0b3JD
b25zdHJ1Y3Rvcik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2
ZW50VGFyZ2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklETE9wZXJhdGlvbjxKU1Rlc3RFdmVu
dFRhcmdldD46OmNhc3QpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0RXZlbnRUYXJnZXRDb25z
dHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RFdmVudFRhcmdldENvbnN0cnVj
dG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdEV2ZW50VGFyZ2V0Ojp0b1dyYXBwZWQpOgor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFeGNlcHRpb24uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SURMQXR0cmlidXRlPEpTVGVzdEV4Y2VwdGlvbj46OmNhc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6anNUZXN0RXhjZXB0aW9uQ29uc3RydWN0b3IpOgorICAgICAgICAo
V2ViQ29yZTo6c2V0SlNUZXN0RXhjZXB0aW9uQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29y
ZTo6SlNUZXN0RXhjZXB0aW9uOjp0b1dyYXBwZWQpOgorICAgICAgICAqIGJpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OklETEF0dHJpYnV0ZTxKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlPjo6Y2FzdCk6CisgICAg
ICAgIChXZWJDb3JlOjpqc1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlQ29uc3RydWN0b3IpOgorICAg
ICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZUNvbnN0cnVjdG9yKToK
KyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGU6OnRvV3JhcHBlZCk6
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdsb2JhbE9iamVjdC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6
Y2FzdCk6CisgICAgICAgIChXZWJDb3JlOjpJRExPcGVyYXRpb248SlNUZXN0R2xvYmFsT2JqZWN0
Pjo6Y2FzdCk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RHbG9iYWxPYmplY3RDb25zdHJ1Y3Rv
cik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RHbG9iYWxPYmplY3RDb25zdHJ1Y3Rvcik6
CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RHbG9iYWxPYmplY3Q6OnRvV3JhcHBlZCk6CisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50
aWZpZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRp
ZmllckNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdEluZGV4ZWRTZXR0
ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RJbmRl
eGVkU2V0dGVyTm9JZGVudGlmaWVyOjp0b1dyYXBwZWQpOgorICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6anNUZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29u
c3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0SW5kZXhlZFNldHRlclRocm93
aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0SW5kZXhl
ZFNldHRlclRocm93aW5nRXhjZXB0aW9uOjp0b1dyYXBwZWQpOgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SURMT3BlcmF0aW9uPEpTVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRl
bnRpZmllcj46OmNhc3QpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0SW5kZXhlZFNldHRlcldp
dGhJZGVudGlmaWVyQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0SW5k
ZXhlZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6
SlNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyOjp0b1dyYXBwZWQpOgorICAgICAgICAq
IGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SURMQXR0cmlidXRlPEpTVGVzdEludGVyZmFjZT46OmNhc3QpOgorICAgICAgICAo
V2ViQ29yZTo6SURMT3BlcmF0aW9uPEpTVGVzdEludGVyZmFjZT46OmNhc3QpOgorICAgICAgICAo
V2ViQ29yZTo6anNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6
c2V0SlNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0
SW50ZXJmYWNlOjp0b1dyYXBwZWQpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJRExBdHRyaWJ1dGU8SlNUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmU+OjpjYXN0KToK
KyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlQ29uc3Ry
dWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVy
c2NvcmVDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RJbnRlcmZhY2VMZWFk
aW5nVW5kZXJzY29yZTo6dG9XcmFwcGVkKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0SXRlcmFibGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURMT3BlcmF0aW9u
PEpTVGVzdEl0ZXJhYmxlPjo6Y2FzdCk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RJdGVyYWJs
ZUNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdEl0ZXJhYmxlQ29uc3Ry
dWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0SXRlcmFibGU6OnRvV3JhcHBlZCk6Cisg
ICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEpTQnVpbHRpbkNvbnN0cnVj
dG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklETEF0dHJpYnV0ZTxKU1Rlc3RKU0J1aWx0aW5D
b25zdHJ1Y3Rvcj46OmNhc3QpOgorICAgICAgICAoV2ViQ29yZTo6SURMT3BlcmF0aW9uPEpTVGVz
dEpTQnVpbHRpbkNvbnN0cnVjdG9yPjo6Y2FzdCk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RK
U0J1aWx0aW5Db25zdHJ1Y3RvckNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpT
VGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yQ29uc3RydWN0b3IpOgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OklETE9wZXJhdGlvbjxKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyPjo6
Y2FzdCk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyQ29u
c3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0
ZW5lckNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdE1lZGlhUXVlcnlMaXN0
TGlzdGVuZXI6OnRvV3JhcHBlZCk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlck5vSWRlbnRpZmllci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpqc1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3Rv
cik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lk
ZW50aWZpZXJDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3ROYW1lZEFuZElu
ZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXI6OnRvV3JhcHBlZCk6CisgICAgICAgICogYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0
aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRo
cm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0
TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3Rvcik6CisgICAg
ICAgIChXZWJDb3JlOjpKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlv
bjo6dG9XcmFwcGVkKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SURMT3BlcmF0aW9uPEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVy
Pjo6Y2FzdCk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJX
aXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE5h
bWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IpOgorICAgICAgICAo
V2ViQ29yZTo6SlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXI6OnRvV3Jh
cHBlZCk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQ29u
c3RydWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0TmFtZWRDb25zdHJ1Y3RvckNv
bnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE5hbWVkQ29uc3RydWN0b3JD
b25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3ROYW1lZENvbnN0cnVjdG9yOjp0
b1dyYXBwZWQpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1l
ZERlbGV0ZXJOb0lkZW50aWZpZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0TmFtZWRE
ZWxldGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNU
ZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29y
ZTo6SlNUZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVyOjp0b1dyYXBwZWQpOgorICAgICAgICAq
IGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2Vw
dGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4
Y2VwdGlvbkNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE5hbWVkRGVs
ZXRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6SlNU
ZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNlcHRpb246OnRvV3JhcHBlZCk6CisgICAgICAgICog
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklETE9wZXJhdGlvbjxKU1Rlc3ROYW1lZERlbGV0ZXJX
aXRoSWRlbnRpZmllcj46OmNhc3QpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0TmFtZWREZWxl
dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rl
c3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNv
cmU6OkpTVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyOjp0b1dyYXBwZWQpOgorICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSW5kZXhl
ZEdldHRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3ROYW1lZERlbGV0ZXJXaXRoSW5k
ZXhlZEdldHRlckNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE5hbWVk
RGVsZXRlcldpdGhJbmRleGVkR2V0dGVyQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6
SlNUZXN0TmFtZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXI6OnRvV3JhcHBlZCk6CisgICAgICAg
ICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkR2V0dGVyQ2FsbFdpdGguY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aENvbnN0cnVjdG9y
KToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE5hbWVkR2V0dGVyQ2FsbFdpdGhDb25zdHJ1
Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3ROYW1lZEdldHRlckNhbGxXaXRoOjp0b1dy
YXBwZWQpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEdl
dHRlck5vSWRlbnRpZmllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3ROYW1lZEdldHRl
ck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE5h
bWVkR2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6SlNU
ZXN0TmFtZWRHZXR0ZXJOb0lkZW50aWZpZXI6OnRvV3JhcHBlZCk6CisgICAgICAgICogYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkR2V0dGVyV2l0aElkZW50aWZpZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SURMT3BlcmF0aW9uPEpTVGVzdE5hbWVkR2V0dGVyV2l0aElkZW50
aWZpZXI+OjpjYXN0KToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE5hbWVkR2V0dGVyV2l0aElk
ZW50aWZpZXJDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3ROYW1lZEdl
dHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0
TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllcjo6dG9XcmFwcGVkKToKKyAgICAgICAgKiBiaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6anNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3Rvcik6
CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllckNvbnN0
cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVy
Ojp0b1dyYXBwZWQpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RO
YW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVz
dE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJD
b3JlOjpzZXRKU1Rlc3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IpOgor
ICAgICAgICAoV2ViQ29yZTo6SlNUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbjo6dG9X
cmFwcGVkKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRT
ZXR0ZXJXaXRoSWRlbnRpZmllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJRExPcGVyYXRpb248
SlNUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllcj46OmNhc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6anNUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKToKKyAgICAgICAg
KFdlYkNvcmU6OnNldEpTVGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3Rvcik6
CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyOjp0b1dy
YXBwZWQpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNl
dHRlcldpdGhJbmRleGVkR2V0dGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklETE9wZXJhdGlv
bjxKU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyPjo6Y2FzdCk6CisgICAgICAgIChX
ZWJDb3JlOjpqc1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQ29uc3RydWN0b3IpOgor
ICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckNv
bnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4
ZWRHZXR0ZXI6OnRvV3JhcHBlZCk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SURMT3BlcmF0aW9uPEpTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0
ZXJBbmRTZXR0ZXI+OjpjYXN0KToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE5hbWVkU2V0dGVy
V2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXJDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3Jl
OjpzZXRKU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyQ29uc3RydWN0
b3IpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRl
ckFuZFNldHRlcjo6dG9XcmFwcGVkKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoT3ZlcnJpZGVCdWlsdGlucy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpqc1Rlc3ROYW1lZFNldHRlcldpdGhPdmVycmlkZUJ1aWx0aW5zQ29uc3RydWN0b3Ip
OgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0TmFtZWRTZXR0ZXJXaXRoT3ZlcnJpZGVCdWls
dGluc0NvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdE5hbWVkU2V0dGVyV2l0
aE92ZXJyaWRlQnVpbHRpbnM6OnRvV3JhcHBlZCk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVzLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OklETEF0dHJpYnV0ZTxKU1Rlc3ROYW1lZFNldHRlcldpdGhVbmZv
cmdhYmxlUHJvcGVydGllcz46OmNhc3QpOgorICAgICAgICAoV2ViQ29yZTo6SURMT3BlcmF0aW9u
PEpTVGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVzPjo6Y2FzdCk6CisgICAg
ICAgIChXZWJDb3JlOjpqc1Rlc3ROYW1lZFNldHRlcldpdGhVbmZvcmdhYmxlUHJvcGVydGllc0Nv
bnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE5hbWVkU2V0dGVyV2l0aFVu
Zm9yZ2FibGVQcm9wZXJ0aWVzQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0
TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRpZXM6OnRvV3JhcHBlZCk6CisgICAgICAg
ICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2Fi
bGVQcm9wZXJ0aWVzQW5kT3ZlcnJpZGVCdWlsdGlucy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
RExBdHRyaWJ1dGU8SlNUZXN0TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRpZXNBbmRP
dmVycmlkZUJ1aWx0aW5zPjo6Y2FzdCk6CisgICAgICAgIChXZWJDb3JlOjpJRExPcGVyYXRpb248
SlNUZXN0TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRpZXNBbmRPdmVycmlkZUJ1aWx0
aW5zPjo6Y2FzdCk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3ROYW1lZFNldHRlcldpdGhVbmZv
cmdhYmxlUHJvcGVydGllc0FuZE92ZXJyaWRlQnVpbHRpbnNDb25zdHJ1Y3Rvcik6CisgICAgICAg
IChXZWJDb3JlOjpzZXRKU1Rlc3ROYW1lZFNldHRlcldpdGhVbmZvcmdhYmxlUHJvcGVydGllc0Fu
ZE92ZXJyaWRlQnVpbHRpbnNDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RO
YW1lZFNldHRlcldpdGhVbmZvcmdhYmxlUHJvcGVydGllc0FuZE92ZXJyaWRlQnVpbHRpbnM6OnRv
V3JhcHBlZCk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vZGUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SURMQXR0cmlidXRlPEpTVGVzdE5vZGU+OjpjYXN0KToK
KyAgICAgICAgKFdlYkNvcmU6OklETE9wZXJhdGlvbjxKU1Rlc3ROb2RlPjo6Y2FzdCk6CisgICAg
ICAgIChXZWJDb3JlOjpqc1Rlc3ROb2RlQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6
c2V0SlNUZXN0Tm9kZUNvbnN0cnVjdG9yKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0T2JqLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklETEF0dHJpYnV0ZTxKU1Rl
c3RPYmo+OjpjYXN0KToKKyAgICAgICAgKFdlYkNvcmU6OklETE9wZXJhdGlvbjxKU1Rlc3RPYmo+
OjpjYXN0KToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9iakNvbnN0cnVjdG9yKToKKyAgICAg
ICAgKFdlYkNvcmU6OnNldEpTVGVzdE9iakNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6
OkpTVGVzdE9iajo6dG9XcmFwcGVkKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpq
c1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29y
ZTo6c2V0SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc0NvbnN0cnVjdG9yKToKKyAgICAgICAg
KFdlYkNvcmU6OkpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnM6OnRvV3JhcHBlZCk6CisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3Rv
cnNXaXRoU2VxdWVuY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T3ZlcmxvYWRlZENv
bnN0cnVjdG9yc1dpdGhTZXF1ZW5jZUNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNl
dEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2VDb25zdHJ1Y3Rvcik6Cisg
ICAgICAgIChXZWJDb3JlOjpKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbmNl
Ojp0b1dyYXBwZWQpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RP
dmVycmlkZUJ1aWx0aW5zLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklETE9wZXJhdGlvbjxKU1Rl
c3RPdmVycmlkZUJ1aWx0aW5zPjo6Y2FzdCk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPdmVy
cmlkZUJ1aWx0aW5zQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T3Zl
cnJpZGVCdWlsdGluc0NvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdE92ZXJy
aWRlQnVpbHRpbnM6OnRvV3JhcHBlZCk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdFBsdWdpbkludGVyZmFjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RQ
bHVnaW5JbnRlcmZhY2VDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RQ
bHVnaW5JbnRlcmZhY2VDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RQbHVn
aW5JbnRlcmZhY2U6OnRvV3JhcHBlZCk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdFByb21pc2VSZWplY3Rpb25FdmVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
RExBdHRyaWJ1dGU8SlNUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50Pjo6Y2FzdCk6CisgICAgICAg
IChXZWJDb3JlOjpqc1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnRDb25zdHJ1Y3Rvcik6CisgICAg
ICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnRDb25zdHJ1Y3Rvcik6
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6YXRpb24u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SURMQXR0cmlidXRlPEpTVGVzdFNlcmlhbGl6YXRpb24+
OjpjYXN0KToKKyAgICAgICAgKFdlYkNvcmU6OklETE9wZXJhdGlvbjxKU1Rlc3RTZXJpYWxpemF0
aW9uPjo6Y2FzdCk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RTZXJpYWxpemF0aW9uQ29uc3Ry
dWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0U2VyaWFsaXphdGlvbkNvbnN0cnVj
dG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdFNlcmlhbGl6YXRpb246OnRvV3JhcHBlZCk6
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6YXRpb25J
bmRpcmVjdEluaGVyaXRhbmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdFNlcmlhbGl6
YXRpb25JbmRpcmVjdEluaGVyaXRhbmNlQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6
c2V0SlNUZXN0U2VyaWFsaXphdGlvbkluZGlyZWN0SW5oZXJpdGFuY2VDb25zdHJ1Y3Rvcik6Cisg
ICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6YXRpb25Jbmhl
cml0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklETEF0dHJpYnV0ZTxKU1Rlc3RTZXJpYWxpemF0
aW9uSW5oZXJpdD46OmNhc3QpOgorICAgICAgICAoV2ViQ29yZTo6SURMT3BlcmF0aW9uPEpTVGVz
dFNlcmlhbGl6YXRpb25Jbmhlcml0Pjo6Y2FzdCk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RT
ZXJpYWxpemF0aW9uSW5oZXJpdENvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpT
VGVzdFNlcmlhbGl6YXRpb25Jbmhlcml0Q29uc3RydWN0b3IpOgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemF0aW9uSW5oZXJpdEZpbmFsLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OklETEF0dHJpYnV0ZTxKU1Rlc3RTZXJpYWxpemF0aW9uSW5oZXJpdEZp
bmFsPjo6Y2FzdCk6CisgICAgICAgIChXZWJDb3JlOjpJRExPcGVyYXRpb248SlNUZXN0U2VyaWFs
aXphdGlvbkluaGVyaXRGaW5hbD46OmNhc3QpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0U2Vy
aWFsaXphdGlvbkluaGVyaXRGaW5hbENvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNl
dEpTVGVzdFNlcmlhbGl6YXRpb25Jbmhlcml0RmluYWxDb25zdHJ1Y3Rvcik6CisgICAgICAgICog
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVy
ZmFjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJRExBdHRyaWJ1dGU8SlNUZXN0U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlSW50ZXJmYWNlPjo6Y2FzdCk6CisgICAgICAgIChXZWJDb3JlOjpJRExPcGVy
YXRpb248SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlPjo6Y2FzdCk6CisgICAg
ICAgIChXZWJDb3JlOjpqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDb25zdHJ1
Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJ
bnRlcmZhY2VDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RTZXJpYWxpemVk
U2NyaXB0VmFsdWVJbnRlcmZhY2U6OnRvV3JhcHBlZCk6CisgICAgICAgICogYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklE
TE9wZXJhdGlvbjxKU1Rlc3RTdHJpbmdpZmllcj46OmNhc3QpOgorICAgICAgICAoV2ViQ29yZTo6
anNUZXN0U3RyaW5naWZpZXJDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rl
c3RTdHJpbmdpZmllckNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdFN0cmlu
Z2lmaWVyOjp0b1dyYXBwZWQpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RTdHJpbmdpZmllckFub255bW91c09wZXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJRExPcGVyYXRpb248SlNUZXN0U3RyaW5naWZpZXJBbm9ueW1vdXNPcGVyYXRpb24+OjpjYXN0
KToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9u
Q29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0U3RyaW5naWZpZXJBbm9u
eW1vdXNPcGVyYXRpb25Db25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RTdHJp
bmdpZmllckFub255bW91c09wZXJhdGlvbjo6dG9XcmFwcGVkKToKKyAgICAgICAgKiBiaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvbi5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpJRExPcGVyYXRpb248SlNUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJh
dGlvbj46OmNhc3QpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0U3RyaW5naWZpZXJOYW1lZE9w
ZXJhdGlvbkNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdFN0cmluZ2lm
aWVyTmFtZWRPcGVyYXRpb25Db25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RT
dHJpbmdpZmllck5hbWVkT3BlcmF0aW9uOjp0b1dyYXBwZWQpOgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVudGVkQXMu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SURMT3BlcmF0aW9uPEpTVGVzdFN0cmluZ2lmaWVyT3Bl
cmF0aW9uSW1wbGVtZW50ZWRBcz46OmNhc3QpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0U3Ry
aW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzQ29uc3RydWN0b3IpOgorICAgICAgICAoV2Vi
Q29yZTo6c2V0SlNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzQ29uc3RydWN0
b3IpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1l
bnRlZEFzOjp0b1dyYXBwZWQpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmcuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SURMT3BlcmF0aW9uPEpTVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0cmlu
Zz46OmNhc3QpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25O
YW1lZFRvU3RyaW5nQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0U3Ry
aW5naWZpZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5nQ29uc3RydWN0b3IpOgorICAgICAgICAoV2Vi
Q29yZTo6SlNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5nOjp0b1dyYXBwZWQp
OgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllclJl
YWRPbmx5QXR0cmlidXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklETEF0dHJpYnV0ZTxKU1Rl
c3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRlPjo6Y2FzdCk6CisgICAgICAgIChXZWJDb3Jl
OjpJRExPcGVyYXRpb248SlNUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZT46OmNhc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZUNv
bnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdFN0cmluZ2lmaWVyUmVhZE9u
bHlBdHRyaWJ1dGVDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RTdHJpbmdp
ZmllclJlYWRPbmx5QXR0cmlidXRlOjp0b1dyYXBwZWQpOgorICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpJRExBdHRyaWJ1dGU8SlNUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVB
dHRyaWJ1dGU+OjpjYXN0KToKKyAgICAgICAgKFdlYkNvcmU6OklETE9wZXJhdGlvbjxKU1Rlc3RT
dHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZT46OmNhc3QpOgorICAgICAgICAoV2ViQ29yZTo6
anNUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGVDb25zdHJ1Y3Rvcik6CisgICAgICAg
IChXZWJDb3JlOjpzZXRKU1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZUNvbnN0cnVj
dG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmli
dXRlOjp0b1dyYXBwZWQpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RUeXBlZGVmcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJRExBdHRyaWJ1dGU8SlNUZXN0VHlw
ZWRlZnM+OjpjYXN0KToKKyAgICAgICAgKFdlYkNvcmU6OklETE9wZXJhdGlvbjxKU1Rlc3RUeXBl
ZGVmcz46OmNhc3QpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0VHlwZWRlZnNDb25zdHJ1Y3Rv
cik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RUeXBlZGVmc0NvbnN0cnVjdG9yKToKKyAg
ICAgICAgKFdlYkNvcmU6OkpTVGVzdFR5cGVkZWZzOjp0b1dyYXBwZWQpOgorICAgICAgICAqIGJy
aWRnZS9vYmpjL1dlYlNjcmlwdE9iamVjdC5tbToKKyAgICAgICAgKC1bV2ViU2NyaXB0T2JqZWN0
IHNldFZhbHVlOmZvcktleTpdKToKKyAgICAgICAgKiBicmlkZ2UvcnVudGltZV9hcnJheS5jcHA6
CisgICAgICAgIChKU0M6OlJ1bnRpbWVBcnJheTo6bGVuZ3RoR2V0dGVyKToKKyAgICAgICAgKiBi
cmlkZ2UvcnVudGltZV9tZXRob2QuY3BwOgorICAgICAgICAoSlNDOjpSdW50aW1lTWV0aG9kOjps
ZW5ndGhHZXR0ZXIpOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpjb250cm9sbGVySlNWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
TWVkaWFFbGVtZW50Ojp1cGRhdGVDYXB0aW9uQ29udGFpbmVyKToKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxNZWRpYUVsZW1lbnQ6OmRpZEFkZFVzZXJBZ2VudFNoYWRvd1Jvb3QpOgorICAgICAgICAq
IGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OmJ1aWxkT2JqZWN0Rm9yRXZlbnRMaXN0ZW5lcik6CisKKzIw
MTgtMDMtMDggIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKICAgICAg
ICAgW0pTQ10gQWRkIGluaGVyaXRzPFQ+KFZNJikgbGV2ZXJhZ2luZyBKU0Nhc3QgZmFzdCBwYXRo
CiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODM0MjkK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwppbmRleCA5YTIxMzEzNGRlNDc0Y2JiMGNkMGYyYjVlMTEzYWE1ODIwMGY4ZGY2Li4x
MGNkMDEzYjgxZWJhYmEzNGE5NzMwY2FmMTBiY2ZhYmNlNjA3YTk3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSw1
ICsxLDE3IEBACiAyMDE4LTAzLTA4ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwu
Y29tPgogCisgICAgICAgIFtKU0NdW1dlYkNvcmVdIEV4dGVuZCBqc0R5bmFtaWNDYXN0IGZvciBX
ZWJDb3JlIHR5cGVzIGluIFdlYkNvcmUgYW5kIHJlbW92ZSBqc0R5bmFtaWNEb3duY2FzdAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgzNDQ5CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJQcm9jZXNz
L0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OmVsZW1lbnRGb3JOb2RlSGFuZGxlKToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJGcmFtZTo6ZnJhbWVGb3JDb250ZXh0KToKKworMjAxOC0wMy0wOCAgWXVzdWtlIFN1enVr
aSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KKwogICAgICAgICBbSlNDXSBBZGQgaW5oZXJpdHM8
VD4oVk0mKSBsZXZlcmFnaW5nIEpTQ2FzdCBmYXN0IHBhdGgKICAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MzQyOQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMjEzOTA0ODc1NjRkYmM3
Nzg5YWM1MGEyYzgzYjEzOTJkZDU1ZTRkZS4uYzA5MzFhMTkwYThjYzY2YmNiYzlhYTUzN2Y2YmU0
NGQxZDBjY2EyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtNDYyMyw3ICs0NjIzLDYgQEAKIAkJRTMwN0RFRDExRDgxRTRDQjAw
MTQxQ0FGIC8qIENhY2hlZE1vZHVsZVNjcmlwdExvYWRlckNsaWVudC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTMwN0RFQzgxRDgxRTQ0ODAwMTQxQ0FG
IC8qIENhY2hlZE1vZHVsZVNjcmlwdExvYWRlckNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUzMDdERUQ1MUQ4MUU0RjIwMDE0MUNBRiAv
KiBMb2FkYWJsZU1vZHVsZVNjcmlwdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRTMwN0RFRDMxRDgxRTRFRDAwMTQxQ0FGIC8qIExvYWRhYmxlTW9kdWxl
U2NyaXB0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJRTMxNTBFQTcxREE3MjE5MzAwMTk0MDEyIC8qIERPTUpJVEhlbHBlcnMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzMTUwRUE1MURBNzIxOEQwMDE5
NDAxMiAvKiBET01KSVRIZWxwZXJzLmggKi87IH07Ci0JCUUzMTgwMzlEMURDNDAwOTkwMDk5MzJD
MiAvKiBKU0R5bmFtaWNEb3duY2FzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRTNBNTg3MkUxREMzRjUyNjAwRjYwN0E2IC8qIEpTRHluYW1pY0Rvd25j
YXN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
RTMyMDFDMUExRjhFODIxMzAwNzZBMDMyIC8qIE1vZHVsZUZldGNoUGFyYW1ldGVycy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM4RDA2MDkxRjhFODEx
OTAwNjQ5Q0YyIC8qIE1vZHVsZUZldGNoUGFyYW1ldGVycy5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUzMjNDRkZBMUU1QUY2QUYwMEYwQjRBMCAv
KiBKU0RPTUNvbnZlcnRQcm9taXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBFMzIzQ0ZGOTFFNUFGNkE1MDBGMEI0QTAgLyogSlNET01Db252ZXJ0UHJv
bWlzZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CUUzNTY1QjdCMURDMkQ2QzkwMDIxN0RCRCAvKiBKU0V2ZW50Q3VzdG9tLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzRFRTQ5RjFEQzJENTc1MDBFQUE5
RDMgLyogSlNFdmVudEN1c3RvbS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CkBAIC0xNDEyMyw3ICsxNDEyMiw2IEBACiAJCUUzOTc1Qjc3MUVDOUFGMzkw
MDg0NzcxNyAvKiBKU0VsZW1lbnRET01KSVQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSlNFbGVtZW50RE9NSklULmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRTM5NzVCNzgxRUM5QUYzOTAwODQ3NzE3IC8qIEpTRXZlbnRET01KSVQuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNFdmVudERPTUpJVC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzOThGQzIzMURDMzJBMUIwMDNDNDY4NCAvKiBET01K
SVRIZWxwZXJzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERPTUpJ
VEhlbHBlcnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlFM0E1ODcyRTFEQzNG
NTI2MDBGNjA3QTYgLyogSlNEeW5hbWljRG93bmNhc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSlNEeW5hbWljRG93bmNhc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRTNBNzc2NjUxREM4NUQyMjAwQjY5MEQ4IC8qIERPTUpJVElETENvbnZlcnQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NSklUSURMQ29udmVydC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlFM0E3NzY2NjFEQzg1RDIyMDBCNjkwRDggLyogRE9NSklU
SURMVHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01KSVRJRExUeXBl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzQUZBOTY0MURBNkU5MDgwMDI4NjFC
RCAvKiBKU05vZGVET01KSVQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSlNOb2RlRE9NSklULmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIzNjE3
LDcgKzIzNjE1LDYgQEAKIAkJCQk2NUUwRTk0MzExMzNDODlGMDBCNENCMTAgLyogSlNET01XcmFw
cGVyLmggKi8sCiAJCQkJN0M0NUM5Q0IxRTNFOEU0OTAwQUFCNTU4IC8qIEpTRE9NV3JhcHBlckNh
Y2hlLmNwcCAqLywKIAkJCQk3QzQ1QzlDODFFM0U4QjUxMDBBQUI1NTggLyogSlNET01XcmFwcGVy
Q2FjaGUuaCAqLywKLQkJCQlFM0E1ODcyRTFEQzNGNTI2MDBGNjA3QTYgLyogSlNEeW5hbWljRG93
bmNhc3QuaCAqLywKIAkJCQk4RjkzNEQ4NDExODlGMUVFMDA1MDhENUQgLyogSlNNYWluVGhyZWFk
RXhlY1N0YXRlLmNwcCAqLywKIAkJCQk4RjkzNEQ4MzExODlGMUVFMDA1MDhENUQgLyogSlNNYWlu
VGhyZWFkRXhlY1N0YXRlLmggKi8sCiAJCQkJQjU2NTc2RTQxN0RBNTk5RjAwQTU2QkRDIC8qIEpT
TWFpblRocmVhZEV4ZWNTdGF0ZUluc3RydW1lbnRhdGlvbi5oICovLApAQCAtMjgyMTIsNyArMjgy
MDksNiBAQAogCQkJCTY1RTBFOTQ0MTEzM0M4OUYwMEI0Q0IxMCAvKiBKU0RPTVdyYXBwZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCTdDNDVDOUQzMUUzRkNCRDcwMEFBQjU1OCAvKiBKU0RPTVdyYXBw
ZXJDYWNoZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNBODA2MUUxRTAzQjU4NTAwOEExRjI2IC8q
IEpTRG91YmxlUmFuZ2UuaCBpbiBIZWFkZXJzICovLAotCQkJCUUzMTgwMzlEMURDNDAwOTkwMDk5
MzJDMiAvKiBKU0R5bmFtaWNEb3duY2FzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkQ3ODY4QkEx
MzZCOTk5MjAwRDQwM0RGIC8qIEpTRHluYW1pY3NDb21wcmVzc29yTm9kZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNTc2ODE0NDExRTcwOUZBNDAwRTc3NzU0IC8qIEpTRWNkaEtleURlcml2ZVBhcmFt
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTdFRUFBNTUxRUEwMDFCMTAwNzAxMTI0IC8qIEpTRWNk
c2FQYXJhbXMuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvQ29tbW9uVk0uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQ29tbW9u
Vk0uY3BwCmluZGV4IDU4Y2IwMDc0MjdjMGI1Yzg1YjE3MWJiNDg1Zjk5YjhjNjU2NGU1MjIuLjU3
MzYwOGRmNzRhYjkzMzAxNDYzZmQ0ZTI5YmIzZTE4YjMyMzE4NGUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0NvbW1vblZNLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9Db21tb25WTS5jcHAKQEAgLTc0LDcgKzc0LDcgQEAgRnJhbWUqIGxleGljYWxG
cmFtZUZyb21Db21tb25WTSgpCiB7CiAgICAgaWYgKGF1dG8qIHRvcENhbGxGcmFtZSA9IGNvbW1v
blZNKCkudG9wQ2FsbEZyYW1lKSB7CiAgICAgICAgIGlmIChhdXRvKiBnbG9iYWxPYmplY3QgPSBK
U0M6OmpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KHRvcENhbGxGcmFtZS0+bGV4aWNhbEdsb2Jh
bE9iamVjdCgpKSkgewotICAgICAgICAgICAgaWYgKGF1dG8qIHdpbmRvdyA9IGpzRHluYW1pY0Rv
d25jYXN0PEpTRE9NV2luZG93Kj4oY29tbW9uVk0oKSwgZ2xvYmFsT2JqZWN0KSkgeworICAgICAg
ICAgICAgaWYgKGF1dG8qIHdpbmRvdyA9IEpTQzo6anNEeW5hbWljQ2FzdDxKU0RPTVdpbmRvdyo+
KGNvbW1vblZNKCksIGdsb2JhbE9iamVjdCkpIHsKICAgICAgICAgICAgICAgICBpZiAoYXV0byog
ZnJhbWUgPSB3aW5kb3ctPndyYXBwZWQoKS5mcmFtZSgpKQogICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gZnJhbWU7CiAgICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0RPTUNvbnZlcnRCdWZmZXJTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NQ29udmVydEJ1ZmZlclNvdXJjZS5oCmluZGV4IDQwNWE1ZjFkMThhZjkw
YjczMzg2YzE2MGZlMTJjMDE5MzIwZmNmMTEuLjIxZGU5N2Y0YTFiZjRiNDU1YTQwY2JiYzgxNjBi
NTMwYTU1ZjkxYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9N
Q29udmVydEJ1ZmZlclNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RE9NQ29udmVydEJ1ZmZlclNvdXJjZS5oCkBAIC0yOSw3ICsyOSw2IEBACiAjaW5jbHVkZSAiSURM
VHlwZXMuaCIKICNpbmNsdWRlICJKU0RPTUNvbnZlcnRCYXNlLmgiCiAjaW5jbHVkZSAiSlNET01X
cmFwcGVyQ2FjaGUuaCIKLSNpbmNsdWRlICJKU0R5bmFtaWNEb3duY2FzdC5oIgogI2luY2x1ZGUg
PEphdmFTY3JpcHRDb3JlL0pTVHlwZWRBcnJheXMuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpA
QCAtOTQsNyArOTMsNyBAQCBpbmxpbmUgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUq
IHN0YXRlLCBKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplYwogCiBpbmxpbmUgUmVmUHRy
PEpTQzo6QXJyYXlCdWZmZXJWaWV3PiB0b1Bvc3NpYmx5U2hhcmVkQXJyYXlCdWZmZXJWaWV3KEpT
Qzo6Vk0mIHZtLCBKU0M6OkpTVmFsdWUgdmFsdWUpCiB7Ci0gICAgYXV0byogd3JhcHBlciA9IGpz
RHluYW1pY0Rvd25jYXN0PEpTQzo6SlNBcnJheUJ1ZmZlclZpZXcqPih2bSwgdmFsdWUpOworICAg
IGF1dG8qIHdyYXBwZXIgPSBKU0M6OmpzRHluYW1pY0Nhc3Q8SlNDOjpKU0FycmF5QnVmZmVyVmll
dyo+KHZtLCB2YWx1ZSk7CiAgICAgaWYgKCF3cmFwcGVyKQogICAgICAgICByZXR1cm4gbnVsbHB0
cjsKICAgICByZXR1cm4gd3JhcHBlci0+cG9zc2libHlTaGFyZWRJbXBsKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnZlcnRQcm9taXNlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnZlcnRQcm9taXNlLmgKaW5kZXggN2QzNGRm
ODQ3M2RkOWIwZDlhOWMyNWZkNTNjNjgxMmRmMGFkY2Y2Ni4uZjYwYjAzM2RmMzUzYmMzOGQ2YTNh
N2RmN2RkZjlmNjRhNDdmMzhlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNET01Db252ZXJ0UHJvbWlzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRE9NQ29udmVydFByb21pc2UuaApAQCAtNDAsNyArNDAsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFt
ZSBUPiBzdHJ1Y3QgQ29udmVydGVyPElETFByb21pc2U8VD4+IDogRGVmYXVsdENvbnZlcnRlcjxJ
RExQcm9taQogICAgIHsKICAgICAgICAgSlNDOjpWTSYgdm0gPSBzdGF0ZS52bSgpOwogICAgICAg
ICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgICAgIGF1dG8qIGds
b2JhbE9iamVjdCA9IGpzRHluYW1pY0Rvd25jYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4odm0sIHN0
YXRlLmxleGljYWxHbG9iYWxPYmplY3QoKSk7CisgICAgICAgIGF1dG8qIGdsb2JhbE9iamVjdCA9
IEpTQzo6anNEeW5hbWljQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KHZtLCBzdGF0ZS5sZXhpY2Fs
R2xvYmFsT2JqZWN0KCkpOwogICAgICAgICBpZiAoIWdsb2JhbE9iamVjdCkKICAgICAgICAgICAg
IHJldHVybiBudWxscHRyOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRE9NRXhjZXB0aW9uSGFuZGxpbmcuY3BwCmluZGV4IDgwOGU4ZmY3YjkzZjYzYmMyOWI3ZDRj
YjkyZWVjMDU5ZGM4NTM4N2MuLjg5NWEzMDA0MmNkOWFjZDg3NzgzNGJjZGQ4Yjk3Yzk5MTA0MDc0
MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NRXhjZXB0aW9u
SGFuZGxpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NRXhjZXB0
aW9uSGFuZGxpbmcuY3BwCkBAIC0yOCw3ICsyOCw2IEBACiAjaW5jbHVkZSAiSlNET01FeGNlcHRp
b24uaCIKICNpbmNsdWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5oIgogI2luY2x1ZGUgIkpTRE9N
V2luZG93LmgiCi0jaW5jbHVkZSAiSlNEeW5hbWljRG93bmNhc3QuaCIKICNpbmNsdWRlICJTY3Jp
cHRFeGVjdXRpb25Db250ZXh0LmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvRXJyb3JIYW5k
bGluZ1Njb3BlLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvRXhjZXB0aW9uLmg+CkBAIC00
NCw3ICs0Myw3IEBAIHZvaWQgcmVwb3J0RXhjZXB0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1
ZSBleGNlcHRpb25WYWx1ZSwgQ2FjaGVkU2NyaXB0KiBjYWNoCiB7CiAgICAgVk0mIHZtID0gZXhl
Yy0+dm0oKTsKICAgICBSRUxFQVNFX0FTU0VSVCh2bS5jdXJyZW50VGhyZWFkSXNIb2xkaW5nQVBJ
TG9jaygpKTsKLSAgICBhdXRvKiBleGNlcHRpb24gPSBqc0R5bmFtaWNEb3duY2FzdDxKU0M6OkV4
Y2VwdGlvbio+KHZtLCBleGNlcHRpb25WYWx1ZSk7CisgICAgYXV0byogZXhjZXB0aW9uID0ganNE
eW5hbWljQ2FzdDxKU0M6OkV4Y2VwdGlvbio+KHZtLCBleGNlcHRpb25WYWx1ZSk7CiAgICAgaWYg
KCFleGNlcHRpb24pIHsKICAgICAgICAgZXhjZXB0aW9uID0gdm0ubGFzdEV4Y2VwdGlvbigpOwog
ICAgICAgICBpZiAoIWV4Y2VwdGlvbikKQEAgLTU5LDcgKzU4LDcgQEAgU3RyaW5nIHJldHJpZXZl
RXJyb3JNZXNzYWdlKEV4ZWNTdGF0ZSYgc3RhdGUsIFZNJiB2bSwgSlNWYWx1ZSBleGNlcHRpb24s
IENhdGNoU2MKICAgICAvLyBGSVhNRTogPGh0dHA6Ly93ZWJraXQub3JnL2IvMTE1MDg3PiBXZWIg
SW5zcGVjdG9yOiBXZWJDb3JlOjpyZXBvcnRFeGNlcHRpb24gc2hvdWxkIG5vdCBldmFsdWF0ZSBK
YXZhU2NyaXB0IGhhbmRsaW5nIGV4Y2VwdGlvbnMKICAgICAvLyBJZiB0aGlzIGlzIGEgY3VzdG9t
IGV4Y2VwdGlvbiBvYmplY3QsIGNhbGwgdG9TdHJpbmcgb24gaXQgdG8gdHJ5IGFuZCBnZXQgYSBu
aWNlIHN0cmluZyByZXByZXNlbnRhdGlvbiBmb3IgdGhlIGV4Y2VwdGlvbi4KICAgICBTdHJpbmcg
ZXJyb3JNZXNzYWdlOwotICAgIGlmIChhdXRvKiBlcnJvciA9IGpzRHluYW1pY0Rvd25jYXN0PEVy
cm9ySW5zdGFuY2UqPih2bSwgZXhjZXB0aW9uKSkKKyAgICBpZiAoYXV0byogZXJyb3IgPSBqc0R5
bmFtaWNDYXN0PEVycm9ySW5zdGFuY2UqPih2bSwgZXhjZXB0aW9uKSkKICAgICAgICAgZXJyb3JN
ZXNzYWdlID0gZXJyb3ItPnNhbml0aXplZFRvU3RyaW5nKCZzdGF0ZSk7CiAgICAgZWxzZQogICAg
ICAgICBlcnJvck1lc3NhZ2UgPSBleGNlcHRpb24udG9XVEZTdHJpbmcoJnN0YXRlKTsKQEAgLTg3
LDcgKzg2LDcgQEAgdm9pZCByZXBvcnRFeGNlcHRpb24oRXhlY1N0YXRlKiBleGVjLCBKU0M6OkV4
Y2VwdGlvbiogZXhjZXB0aW9uLCBDYWNoZWRTY3JpcHQqIGMKICAgICB2bS5jbGVhckxhc3RFeGNl
cHRpb24oKTsKIAogICAgIGF1dG8qIGdsb2JhbE9iamVjdCA9IGpzQ2FzdDxKU0RPTUdsb2JhbE9i
amVjdCo+KGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSk7Ci0gICAgaWYgKGF1dG8qIHdpbmRv
dyA9IGpzRHluYW1pY0Rvd25jYXN0PEpTRE9NV2luZG93Kj4odm0sIGdsb2JhbE9iamVjdCkpIHsK
KyAgICBpZiAoYXV0byogd2luZG93ID0ganNEeW5hbWljQ2FzdDxKU0RPTVdpbmRvdyo+KHZtLCBn
bG9iYWxPYmplY3QpKSB7CiAgICAgICAgIGlmICghd2luZG93LT53cmFwcGVkKCkuaXNDdXJyZW50
bHlEaXNwbGF5ZWRJbkZyYW1lKCkpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01JdGVyYXRvci5oIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01JdGVyYXRvci5oCmluZGV4IDUxNjE0ZGUxZDI4ZDY3
NmE0ZmEyZTU1ZDVhOGJlZGRhZWE2NDUzMWMuLmYyZWQ3MjRmZDliOGI4MzhjMDZhY2JjNjE0NDY4
MzliM2Q5ZjllZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9N
SXRlcmF0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUl0ZXJhdG9y
LmgKQEAgLTI1MSw3ICsyNTEsNyBAQCBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
SlNET01JdGVyYXRvclByb3RvdHlwZTxKU1dyYXBwZXIsIEl0ZXJhdG9yVHJhaQogICAgIEpTQzo6
Vk0mIHZtID0gc3RhdGUtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOwogCi0gICAgYXV0byBpdGVyYXRvciA9IGpzRHluYW1pY0Rvd25jYXN0PEpTRE9NSXRl
cmF0b3I8SlNXcmFwcGVyLCBJdGVyYXRvclRyYWl0cz4qPih2bSwgc3RhdGUtPnRoaXNWYWx1ZSgp
KTsKKyAgICBhdXRvIGl0ZXJhdG9yID0gSlNDOjpqc0R5bmFtaWNDYXN0PEpTRE9NSXRlcmF0b3I8
SlNXcmFwcGVyLCBJdGVyYXRvclRyYWl0cz4qPih2bSwgc3RhdGUtPnRoaXNWYWx1ZSgpKTsKICAg
ICBpZiAoIWl0ZXJhdG9yKQogICAgICAgICByZXR1cm4gSlNDOjpKU1ZhbHVlOjplbmNvZGUodGhy
b3dUeXBlRXJyb3Ioc3RhdGUsIHNjb3BlLCBBU0NJSUxpdGVyYWwoIkNhbm5vdCBjYWxsIG5leHQo
KSBvbiBhIG5vbi1JdGVyYXRvciBvYmplY3QiKSkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NV2luZG93UHJveHkuY3BwCmluZGV4IDUxZTA5ZTIzY2UzMjkyOWIzNjRm
NzJhNDQwZmM1NGViYjllY2EyZjYuLjQ4NzUxM2FhMzUxODM2NjA0MTNkM2E2N2VhODRkZjI0OWNl
YTFhNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93
UHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93UHJv
eHkuY3BwCkBAIC0xMTIsNyArMTEyLDcgQEAgRE9NV2luZG93JiBKU0RPTVdpbmRvd1Byb3h5Ojp3
cmFwcGVkKCkgY29uc3QKIAogRE9NV2luZG93KiBKU0RPTVdpbmRvd1Byb3h5Ojp0b1dyYXBwZWQo
Vk0mIHZtLCBKU09iamVjdCogdmFsdWUpCiB7Ci0gICAgYXV0byogd3JhcHBlciA9IGpzRHluYW1p
Y0Rvd25jYXN0PEpTRE9NV2luZG93UHJveHkqPih2bSwgdmFsdWUpOworICAgIGF1dG8qIHdyYXBw
ZXIgPSBqc0R5bmFtaWNDYXN0PEpTRE9NV2luZG93UHJveHkqPih2bSwgdmFsdWUpOwogICAgIHJl
dHVybiB3cmFwcGVyID8gJndyYXBwZXItPndpbmRvdygpLT53cmFwcGVkKCkgOiBudWxscHRyOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdyYXBwZXJD
YWNoZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XcmFwcGVyQ2FjaGUuaApp
bmRleCAzYmRjNjkwMTVjOWMyMmYwN2Q5OWE0YTkwMDkxYjYwYTQ5NzU0NmE0Li4wMjYwZTQ0NTZm
NzgwY2U0NTE4OThhNjBhN2ZjMjUxNDU2OTkxNDljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0RPTVdyYXBwZXJDYWNoZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NV3JhcHBlckNhY2hlLmgKQEAgLTI2LDcgKzI2LDYgQEAKICNpbmNsdWRl
ICJET01XcmFwcGVyV29ybGQuaCIKICNpbmNsdWRlICJKU0RPTUdsb2JhbE9iamVjdC5oIgogI2lu
Y2x1ZGUgIkpTRE9NV3JhcHBlci5oIgotI2luY2x1ZGUgIkpTRHluYW1pY0Rvd25jYXN0LmgiCiAj
aW5jbHVkZSAiU2NyaXB0V3JhcHBhYmxlLmgiCiAjaW5jbHVkZSAiU2NyaXB0V3JhcHBhYmxlSW5s
aW5lcy5oIgogI2luY2x1ZGUgIldlYkNvcmVUeXBlZEFycmF5Q29udHJvbGxlci5oIgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEb2N1bWVudEN1c3RvbS5oIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEb2N1bWVudEN1c3RvbS5oCmluZGV4IDViNjBmNTQ0
MmYyNmU5NzdmYzUwY2E2ZjRiZjRhODYxMTQxYTc4ZjkuLmFmNTRmM2VlZjhiMjVjM2MzMGE2Njc4
OTg5MmIwN2I5NDczMDQ2MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRG9jdW1lbnRDdXN0b20uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Rv
Y3VtZW50Q3VzdG9tLmgKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDE1
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxOCBZ
dXN1a2UgU3V6dWtpIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+LgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC0yOCwxMyArMjksMjIgQEAKICNpbmNsdWRlICJKU0RPTUJpbmRpbmcu
aCIKICNpbmNsdWRlICJKU0RvY3VtZW50LmgiCiAKLW5hbWVzcGFjZSBXZWJDb3JlIHsKK25hbWVz
cGFjZSBKU0MgeworbmFtZXNwYWNlIEpTQ2FzdGluZ0hlbHBlcnMgeworCit0ZW1wbGF0ZTw+Citz
dHJ1Y3QgSW5oZXJpdHNUcmFpdHM8V2ViQ29yZTo6SlNEb2N1bWVudD4geworICAgIHRlbXBsYXRl
PHR5cGVuYW1lIEZyb20+CisgICAgc3RhdGljIGlubGluZSBib29sIGluaGVyaXRzKFZNJiwgRnJv
bSogZnJvbSkKKyAgICB7CisgICAgICAgIHJldHVybiBmcm9tLT50eXBlKCkgPT0gV2ViQ29yZTo6
SlNEb2N1bWVudFdyYXBwZXJUeXBlOworICAgIH0KK307CiAKLXRlbXBsYXRlPHR5cGVuYW1lIEZy
b20+Ci1BTFdBWVNfSU5MSU5FIEpTRHluYW1pY0Nhc3RSZXN1bHQ8SlNEb2N1bWVudCwgRnJvbT4g
anNEb2N1bWVudENhc3QoRnJvbSogdmFsdWUpCi17Ci0gICAgcmV0dXJuIHZhbHVlLT50eXBlKCkg
PT0gSlNEb2N1bWVudFdyYXBwZXJUeXBlID8gSlNDOjpqc0Nhc3Q8SlNEeW5hbWljQ2FzdFJlc3Vs
dDxKU0RvY3VtZW50LCBGcm9tPj4odmFsdWUpIDogbnVsbHB0cjsKLX0KK30gLy8gbmFtZXNwYWNl
IEpTQ2FzdGluZ0hlbHBlcnMKK30gLy8gbmFtZXNwYWNlIEpTQworCituYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIEpTQzo6SlNPYmplY3QqIGNhY2hlZERvY3VtZW50V3JhcHBlcihKU0M6OkV4ZWNTdGF0
ZSYsIEpTRE9NR2xvYmFsT2JqZWN0JiwgRG9jdW1lbnQmKTsKIHZvaWQgcmVwb3J0TWVtb3J5Rm9y
RG9jdW1lbnRJZkZyYW1lbGVzcyhKU0M6OkV4ZWNTdGF0ZSYsIERvY3VtZW50Jik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0R5bmFtaWNEb3duY2FzdC5oIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEeW5hbWljRG93bmNhc3QuaApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggODBhOTRjM2E4OGE4Y2U5YWUzNzA1OTI4MmEzOTAzM2IwZjczMmQ4
Yi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0R5bmFtaWNEb3duY2FzdC5oCisrKyAvZGV2L251bGwKQEAg
LTEsMTEwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUg
bWV0OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5Z
Ci0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
Ci0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSA8SmF2YVNjcmlw
dENvcmUvSlNDSlNWYWx1ZUlubGluZXMuaD4KLSNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0Nl
bGxJbmxpbmVzLmg+Ci0jaW5jbHVkZSA8dHlwZV90cmFpdHM+Ci0KLW5hbWVzcGFjZSBXZWJDb3Jl
IHsKLQotdGVtcGxhdGU8dHlwZW5hbWUgVG8sIHR5cGVuYW1lIEZyb20+Ci11c2luZyBKU0R5bmFt
aWNDYXN0UmVzdWx0ID0gdHlwZW5hbWUgc3RkOjpjb25kaXRpb25hbDxzdGQ6OmlzX2NvbnN0PEZy
b20+Ojp2YWx1ZSwgY29uc3QgVG8sIFRvPjo6dHlwZSo7Ci0KLWNsYXNzIEpTTm9kZTsKLXRlbXBs
YXRlPHR5cGVuYW1lIEZyb20+Ci1KU0R5bmFtaWNDYXN0UmVzdWx0PEpTTm9kZSwgRnJvbT4ganNO
b2RlQ2FzdChGcm9tKiB2YWx1ZSk7Ci1jbGFzcyBKU0VsZW1lbnQ7Ci10ZW1wbGF0ZTx0eXBlbmFt
ZSBGcm9tPgotSlNEeW5hbWljQ2FzdFJlc3VsdDxKU0VsZW1lbnQsIEZyb20+IGpzRWxlbWVudENh
c3QoRnJvbSogdmFsdWUpOwotY2xhc3MgSlNEb2N1bWVudDsKLXRlbXBsYXRlPHR5cGVuYW1lIEZy
b20+Ci1KU0R5bmFtaWNDYXN0UmVzdWx0PEpTRG9jdW1lbnQsIEZyb20+IGpzRG9jdW1lbnRDYXN0
KEZyb20qIHZhbHVlKTsKLWNsYXNzIEpTRXZlbnQ7Ci10ZW1wbGF0ZTx0eXBlbmFtZSBGcm9tPgot
SlNEeW5hbWljQ2FzdFJlc3VsdDxKU0V2ZW50LCBGcm9tPiBqc0V2ZW50Q2FzdChGcm9tKiB2YWx1
ZSk7Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIFNlbGVjdD4KLXN0cnVjdCBKU0R5bmFtaWNDYXN0VHJh
aXQgewotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFRvLCB0eXBlbmFtZSBGcm9tPgotICAgIEFMV0FZ
U19JTkxJTkUgc3RhdGljIFRvIGNhc3QoSlNDOjpWTSYgdm0sIEZyb20qIGZyb20pCi0gICAgewot
ICAgICAgICByZXR1cm4gSlNDOjpqc0R5bmFtaWNDYXN0PFRvPih2bSwgZnJvbSk7Ci0gICAgfQot
fTsKLQotdGVtcGxhdGU8Pgotc3RydWN0IEpTRHluYW1pY0Nhc3RUcmFpdDxKU05vZGU+IHsKLSAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBUbywgdHlwZW5hbWUgRnJvbT4KLSAgICBBTFdBWVNfSU5MSU5F
IHN0YXRpYyBUbyBjYXN0KEpTQzo6Vk0mLCBGcm9tKiBmcm9tKQotICAgIHsKLSAgICAgICAgcmV0
dXJuIGpzTm9kZUNhc3QoZnJvbSk7Ci0gICAgfQotfTsKLQotdGVtcGxhdGU8Pgotc3RydWN0IEpT
RHluYW1pY0Nhc3RUcmFpdDxKU0VsZW1lbnQ+IHsKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUbywg
dHlwZW5hbWUgRnJvbT4KLSAgICBBTFdBWVNfSU5MSU5FIHN0YXRpYyBUbyBjYXN0KEpTQzo6Vk0m
LCBGcm9tKiBmcm9tKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGpzRWxlbWVudENhc3QoZnJvbSk7
Ci0gICAgfQotfTsKLQotdGVtcGxhdGU8Pgotc3RydWN0IEpTRHluYW1pY0Nhc3RUcmFpdDxKU0Rv
Y3VtZW50PiB7Ci0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVG8sIHR5cGVuYW1lIEZyb20+Ci0gICAg
QUxXQVlTX0lOTElORSBzdGF0aWMgVG8gY2FzdChKU0M6OlZNJiwgRnJvbSogZnJvbSkKLSAgICB7
Ci0gICAgICAgIHJldHVybiBqc0RvY3VtZW50Q2FzdChmcm9tKTsKLSAgICB9Ci19OwotCi10ZW1w
bGF0ZTw+Ci1zdHJ1Y3QgSlNEeW5hbWljQ2FzdFRyYWl0PEpTRXZlbnQ+IHsKLSAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBUbywgdHlwZW5hbWUgRnJvbT4KLSAgICBBTFdBWVNfSU5MSU5FIHN0YXRpYyBU
byBjYXN0KEpTQzo6Vk0mLCBGcm9tKiBmcm9tKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGpzRXZl
bnRDYXN0KGZyb20pOwotICAgIH0KLX07Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIFRvLCB0eXBlbmFt
ZSBGcm9tPgotQUxXQVlTX0lOTElORSBUbyBqc0R5bmFtaWNEb3duY2FzdChKU0M6OlZNJiB2bSwg
RnJvbSogZnJvbSkKLXsKLSAgICB0eXBlZGVmIEpTRHluYW1pY0Nhc3RUcmFpdDx0eXBlbmFtZSBz
dGQ6OnJlbW92ZV9jdjx0eXBlbmFtZSBzdGQ6OnJlbW92ZV9wb2ludGVyPFRvPjo6dHlwZT46OnR5
cGU+IERpc3BhdGNoZXI7Ci0gICAgcmV0dXJuIERpc3BhdGNoZXI6OnRlbXBsYXRlIGNhc3Q8VG8+
KHZtLCBmcm9tKTsKLX0KLQotdGVtcGxhdGU8dHlwZW5hbWUgVG8+Ci1BTFdBWVNfSU5MSU5FIFRv
IGpzRHluYW1pY0Rvd25jYXN0KEpTQzo6Vk0mIHZtLCBKU0M6OkpTVmFsdWUgZnJvbSkKLXsKLSAg
ICBpZiAoVU5MSUtFTFkoIWZyb20uaXNDZWxsKCkpKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsK
LSAgICByZXR1cm4ganNEeW5hbWljRG93bmNhc3Q8VG8+KHZtLCBmcm9tLmFzQ2VsbCgpKTsKLX0K
LQotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFbGVtZW50Q3Vz
dG9tLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0VsZW1lbnRDdXN0b20uaAppbmRl
eCBiMmI2NWY1M2FiZTk0ZTQ5M2I0YTZiYjI1ZTMxMDI2ZjRiMjEwNjI5Li43OWZjOTQzMGJjNDRh
OTljMTNhMTllNWVlMWJjYzNiNGI2OTVmM2ZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0VsZW1lbnRDdXN0b20uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0VsZW1lbnRDdXN0b20uaApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQg
KEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDE4IFl1c3VrZSBTdXp1a2kgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4uCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI4LDEyICsyOSwxNyBAQAogI2luY2x1ZGUgIkpTRE9N
QmluZGluZy5oIgogI2luY2x1ZGUgIkpTRWxlbWVudC5oIgogCi1uYW1lc3BhY2UgV2ViQ29yZSB7
CituYW1lc3BhY2UgSlNDIHsKK25hbWVzcGFjZSBKU0Nhc3RpbmdIZWxwZXJzIHsKIAotdGVtcGxh
dGU8dHlwZW5hbWUgRnJvbT4KLUFMV0FZU19JTkxJTkUgSlNEeW5hbWljQ2FzdFJlc3VsdDxKU0Vs
ZW1lbnQsIEZyb20+IGpzRWxlbWVudENhc3QoRnJvbSogdmFsdWUpCi17Ci0gICAgcmV0dXJuIHZh
bHVlLT50eXBlKCkgPj0gSlNFbGVtZW50VHlwZSA/IEpTQzo6anNDYXN0PEpTRHluYW1pY0Nhc3RS
ZXN1bHQ8SlNFbGVtZW50LCBGcm9tPj4odmFsdWUpIDogbnVsbHB0cjsKLX0KK3RlbXBsYXRlPD4K
K3N0cnVjdCBJbmhlcml0c1RyYWl0czxXZWJDb3JlOjpKU0VsZW1lbnQ+IHsKKyAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBGcm9tPgorICAgIHN0YXRpYyBpbmxpbmUgYm9vbCBpbmhlcml0cyhWTSYsIEZy
b20qIGZyb20pCisgICAgeworICAgICAgICByZXR1cm4gZnJvbS0+dHlwZSgpID49IFdlYkNvcmU6
OkpTRWxlbWVudFR5cGU7CisgICAgfQorfTsKIAotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorfSAv
LyBuYW1lc3BhY2UgSlNDYXN0aW5nSGVscGVycworfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50Q3VzdG9tLmggYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50Q3VzdG9tLmgKaW5kZXggMmI4NTI5M2M0ZjIzYjRh
NzFiZDQ0YzA4YTlhYWUzZGI2NTczNDYzZC4uMmU2NWEzMTIyYWNiZDZkY2M2Y2NmMDY3MDE1MmJh
NTUzZTk0ZTY2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVu
dEN1c3RvbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRDdXN0b20u
aApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE4IFl1c3VrZSBTdXp1a2kg
PHV0YXRhbmUudGVhQGdtYWlsLmNvbT4uCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
QEAgLTI2LDEzICsyNywxOSBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJKU0RPTUJpbmRp
bmcuaCIKKyNpbmNsdWRlICJKU0V2ZW50LmgiCiAKLW5hbWVzcGFjZSBXZWJDb3JlIHsKK25hbWVz
cGFjZSBKU0MgeworbmFtZXNwYWNlIEpTQ2FzdGluZ0hlbHBlcnMgewogCi10ZW1wbGF0ZTx0eXBl
bmFtZSBGcm9tPgotQUxXQVlTX0lOTElORSBKU0R5bmFtaWNDYXN0UmVzdWx0PEpTRXZlbnQsIEZy
b20+IGpzRXZlbnRDYXN0KEZyb20qIHZhbHVlKQotewotICAgIHJldHVybiB2YWx1ZS0+dHlwZSgp
ID09IEpTRXZlbnRUeXBlID8gSlNDOjpqc0Nhc3Q8SlNEeW5hbWljQ2FzdFJlc3VsdDxKU0V2ZW50
LCBGcm9tPj4odmFsdWUpIDogbnVsbHB0cjsKLX0KK3RlbXBsYXRlPD4KK3N0cnVjdCBJbmhlcml0
c1RyYWl0czxXZWJDb3JlOjpKU0V2ZW50PiB7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRnJvbT4K
KyAgICBzdGF0aWMgaW5saW5lIGJvb2wgaW5oZXJpdHMoVk0mLCBGcm9tKiBmcm9tKQorICAgIHsK
KyAgICAgICAgcmV0dXJuIGZyb20tPnR5cGUoKSA9PSBXZWJDb3JlOjpKU0V2ZW50VHlwZTsKKyAg
ICB9Cit9OwogCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCit9IC8vIG5hbWVzcGFjZSBKU0Nhc3Rp
bmdIZWxwZXJzCit9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRXZlbnRUYXJnZXRDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNFdmVudFRhcmdldEN1c3RvbS5jcHAKaW5kZXggYjRmMGNjZWFmOTVkYTBhYTE3
ZjFkZmIwOTQ0ZTk4MDU5YTNjYWY1Ny4uODliZGYxY2JlMWQ4ZjRmNTA2NDk1YmU5NjRiMGMxOWE5
OGM2N2M1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudFRh
cmdldEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudFRh
cmdldEN1c3RvbS5jcHAKQEAgLTczLDcgKzczLDcgQEAgRXZlbnRUYXJnZXQqIEpTRXZlbnRUYXJn
ZXQ6OnRvV3JhcHBlZChWTSYgdm0sIEpTVmFsdWUgdmFsdWUpCiAKIHN0ZDo6dW5pcXVlX3B0cjxK
U0V2ZW50VGFyZ2V0V3JhcHBlcj4ganNFdmVudFRhcmdldENhc3QoVk0mIHZtLCBKU1ZhbHVlIHRo
aXNWYWx1ZSkKIHsKLSAgICBpZiAoYXV0byogdGFyZ2V0ID0ganNEeW5hbWljRG93bmNhc3Q8SlNF
dmVudFRhcmdldCo+KHZtLCB0aGlzVmFsdWUpKQorICAgIGlmIChhdXRvKiB0YXJnZXQgPSBqc0R5
bmFtaWNDYXN0PEpTRXZlbnRUYXJnZXQqPih2bSwgdGhpc1ZhbHVlKSkKICAgICAgICAgcmV0dXJu
IHN0ZDo6bWFrZV91bmlxdWU8SlNFdmVudFRhcmdldFdyYXBwZXI+KHRhcmdldC0+d3JhcHBlZCgp
LCAqdGFyZ2V0KTsKICAgICBpZiAoYXV0byogd2luZG93ID0gdG9KU0RPTVdpbmRvdyh2bSwgdGhp
c1ZhbHVlKSkKICAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8SlNFdmVudFRhcmdldFdy
YXBwZXI+KHdpbmRvdy0+d3JhcHBlZCgpLCAqd2luZG93KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUN1c3RvbS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNOb2RlQ3VzdG9tLmgKaW5kZXggMmJmYzY2NDQwNzNkNzI1ZjA4ZmI3OWJjMDY1NmI4
ZjY4Zjg4MzE5Yy4uY2I1YjI2NzE0YjY1YTBiNjRmMzAxMTQ3ZWMzNzVkMzg5YjRkYWEwOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlQ3VzdG9tLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlQ3VzdG9tLmgKQEAgLTEsNSArMSw2IEBA
CiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA3LCAyMDA5LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxOCBZdXN1a2UgU3V6dWtpIDx1dGF0
YW5lLnRlYUBnbWFpbC5jb20+LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0y
OCw2ICsyOSwyMSBAQAogI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgogI2luY2x1ZGUgIkpTTm9k
ZS5oIgogCituYW1lc3BhY2UgSlNDIHsKK25hbWVzcGFjZSBKU0Nhc3RpbmdIZWxwZXJzIHsKKwor
dGVtcGxhdGU8Pgorc3RydWN0IEluaGVyaXRzVHJhaXRzPFdlYkNvcmU6OkpTTm9kZT4geworICAg
IHRlbXBsYXRlPHR5cGVuYW1lIEZyb20+CisgICAgc3RhdGljIGlubGluZSBib29sIGluaGVyaXRz
KFZNJiwgRnJvbSogZnJvbSkKKyAgICB7CisgICAgICAgIHJldHVybiBmcm9tLT50eXBlKCkgPj0g
V2ViQ29yZTo6SlNOb2RlVHlwZTsKKyAgICB9Cit9OworCit9IC8vIG5hbWVzcGFjZSBKU0Nhc3Rp
bmdIZWxwZXJzCit9IC8vIG5hbWVzcGFjZSBKU0MKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBX
RUJDT1JFX0VYUE9SVCBKU0M6OkpTVmFsdWUgY3JlYXRlV3JhcHBlcihKU0M6OkV4ZWNTdGF0ZSos
IEpTRE9NR2xvYmFsT2JqZWN0KiwgUmVmPE5vZGU+JiYpOwpAQCAtNzIsMTIgKzg4LDYgQEAgaW5s
aW5lIHZvaWQqIHJvb3QoTm9kZSYgbm9kZSkKICAgICByZXR1cm4gcm9vdCgmbm9kZSk7CiB9CiAK
LXRlbXBsYXRlPHR5cGVuYW1lIEZyb20+Ci1BTFdBWVNfSU5MSU5FIEpTRHluYW1pY0Nhc3RSZXN1
bHQ8SlNOb2RlLCBGcm9tPiBqc05vZGVDYXN0KEZyb20qIHZhbHVlKQotewotICAgIHJldHVybiB2
YWx1ZS0+dHlwZSgpID49IEpTTm9kZVR5cGUgPyBKU0M6OmpzQ2FzdDxKU0R5bmFtaWNDYXN0UmVz
dWx0PEpTTm9kZSwgRnJvbT4+KHZhbHVlKSA6IG51bGxwdHI7Ci19Ci0KIEFMV0FZU19JTkxJTkUg
SlNDOjpKU1ZhbHVlIEpTTm9kZTo6bm9kZVR5cGUoSlNDOjpFeGVjU3RhdGUmKSBjb25zdAogewog
ICAgIHJldHVybiBKU0M6OmpzTnVtYmVyKHN0YXRpY19jYXN0PHVpbnQ4X3Q+KHR5cGUoKSkgJiBK
U05vZGVUeXBlTWFzayk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNQbHVnaW5FbGVtZW50RnVuY3Rpb25zLmNwcAppbmRleCA0MGI1MThmNTUwZTdlZWJjMmRjOTJh
MzQ0OTg5OTU5OGY5ZmMyYjEwLi40ZTEzNmMxMTBlNDliYmNiN2E5ZWJmZDYxYzBiMjc2Yjg1NWQ4
ZmQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1BsdWdpbkVsZW1l
bnRGdW5jdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUGx1Z2lu
RWxlbWVudEZ1bmN0aW9ucy5jcHAKQEAgLTk5LDcgKzk5LDcgQEAgc3RhdGljIEVuY29kZWRKU1Zh
bHVlIHBsdWdpbkVsZW1lbnRQcm9wZXJ0eUdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRK
U1ZhbHUKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJF
X1RIUk9XX1NDT1BFKHZtKTsKIAotICAgIEpTSFRNTEVsZW1lbnQqIHRoaXNPYmplY3QgPSBqc0R5
bmFtaWNEb3duY2FzdDxKU0hUTUxFbGVtZW50Kj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFs
dWUpKTsKKyAgICBKU0hUTUxFbGVtZW50KiB0aGlzT2JqZWN0ID0ganNEeW5hbWljQ2FzdDxKU0hU
TUxFbGVtZW50Kj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoIXRo
aXNPYmplY3QpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIHNjb3BlKTsK
ICAgICBKU09iamVjdCogc2NyaXB0T2JqZWN0ID0gcGx1Z2luU2NyaXB0T2JqZWN0KGV4ZWMsIHRo
aXNPYmplY3QpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNSZWFk
YWJsZVN0cmVhbVNvdXJjZUN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U1JlYWRhYmxlU3RyZWFtU291cmNlQ3VzdG9tLmNwcAppbmRleCA4NGZhNWM0Y2VkYTA1MTI1OTQz
YjhhY2RjYjA3ZjY0NzMwNTZmNWNjLi5mZTk3NWZiMGQ1NmI0YWI1NzNjMGQyY2NjY2EwNmVhZWNm
NTUxYzViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1JlYWRhYmxl
U3RyZWFtU291cmNlQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U1JlYWRhYmxlU3RyZWFtU291cmNlQ3VzdG9tLmNwcApAQCAtNDEsNyArNDEsNyBAQCBKU1ZhbHVl
IEpTUmVhZGFibGVTdHJlYW1Tb3VyY2U6OnN0YXJ0KEV4ZWNTdGF0ZSYgc3RhdGUsIFJlZjxEZWZl
cnJlZFByb21pc2U+JiYgcAogICAgIAogICAgIC8vIEZJWE1FOiBXaHkgaXMgaXQgb2sgdG8gQVNT
RVJUIHRoZSBhcmd1bWVudCBjb3VudCBoZXJlPwogICAgIEFTU0VSVChzdGF0ZS5hcmd1bWVudENv
dW50KCkpOwotICAgIEpTUmVhZGFibGVTdHJlYW1EZWZhdWx0Q29udHJvbGxlciogY29udHJvbGxl
ciA9IGpzRHluYW1pY0Rvd25jYXN0PEpTUmVhZGFibGVTdHJlYW1EZWZhdWx0Q29udHJvbGxlcio+
KHZtLCBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgwKSk7CisgICAgSlNSZWFkYWJsZVN0cmVhbURl
ZmF1bHRDb250cm9sbGVyKiBjb250cm9sbGVyID0ganNEeW5hbWljQ2FzdDxKU1JlYWRhYmxlU3Ry
ZWFtRGVmYXVsdENvbnRyb2xsZXIqPih2bSwgc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMCkpOwog
ICAgIEFTU0VSVChjb250cm9sbGVyKTsKIAogICAgIG1fY29udHJvbGxlci5zZXQodm0sIHRoaXMs
IGNvbnRyb2xsZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNX
b3JrZXJHbG9iYWxTY29wZUJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNX
b3JrZXJHbG9iYWxTY29wZUJhc2UuY3BwCmluZGV4IDJmMDE1NTJjY2NjMTM0YjlhZDg1OTQ5NDE4
ZjVhMGJiOTk4YWVkNGUuLjg1YmY3NWM1MWIyYjJmZmU3YTc0NzQyZmEwZGRmYjczYzEzYjViN2Eg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyR2xvYmFsU2Nv
cGVCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckdsb2Jh
bFNjb3BlQmFzZS5jcHAKQEAgLTMxLDcgKzMxLDYgQEAKICNpbmNsdWRlICJET01XcmFwcGVyV29y
bGQuaCIKICNpbmNsdWRlICJKU0RPTUdsb2JhbE9iamVjdFRhc2suaCIKICNpbmNsdWRlICJKU0Rl
ZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlLmgiCi0jaW5jbHVkZSAiSlNEeW5hbWljRG93bmNhc3Qu
aCIKICNpbmNsdWRlICJKU1dvcmtlckdsb2JhbFNjb3BlLmgiCiAjaW5jbHVkZSAiV29ya2VyR2xv
YmFsU2NvcGUuaCIKICNpbmNsdWRlICJXb3JrZXJUaHJlYWQuaCIKQEAgLTE1NCw3ICsxNTMsNyBA
QCBKU0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlKiB0b0pTRGVkaWNhdGVkV29ya2VyR2xvYmFs
U2NvcGUoVk0mIHZtLCBKU1ZhbHVlIHZhbAogICAgIGlmIChjbGFzc0luZm8gPT0gSlNEZWRpY2F0
ZWRXb3JrZXJHbG9iYWxTY29wZTo6aW5mbygpKQogICAgICAgICByZXR1cm4ganNDYXN0PEpTRGVk
aWNhdGVkV29ya2VyR2xvYmFsU2NvcGUqPihhc09iamVjdCh2YWx1ZSkpOwogICAgIGlmIChjbGFz
c0luZm8gPT0gSlNQcm94eTo6aW5mbygpKQotICAgICAgICByZXR1cm4ganNEeW5hbWljRG93bmNh
c3Q8SlNEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZSo+KHZtLCBqc0Nhc3Q8SlNQcm94eSo+KGFz
T2JqZWN0KHZhbHVlKSktPnRhcmdldCgpKTsKKyAgICAgICAgcmV0dXJuIGpzRHluYW1pY0Nhc3Q8
SlNEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZSo+KHZtLCBqc0Nhc3Q8SlNQcm94eSo+KGFzT2Jq
ZWN0KHZhbHVlKSktPnRhcmdldCgpKTsKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIApAQCAtMTcy
LDcgKzE3MSw3IEBAIEpTV29ya2VyR2xvYmFsU2NvcGUqIHRvSlNXb3JrZXJHbG9iYWxTY29wZShW
TSYgdm0sIEpTVmFsdWUgdmFsdWUpCiAjZW5kaWYKIAogICAgIGlmIChjbGFzc0luZm8gPT0gSlNQ
cm94eTo6aW5mbygpKQotICAgICAgICByZXR1cm4ganNEeW5hbWljRG93bmNhc3Q8SlNXb3JrZXJH
bG9iYWxTY29wZSo+KHZtLCBqc0Nhc3Q8SlNQcm94eSo+KGFzT2JqZWN0KHZhbHVlKSktPnRhcmdl
dCgpKTsKKyAgICAgICAgcmV0dXJuIGpzRHluYW1pY0Nhc3Q8SlNXb3JrZXJHbG9iYWxTY29wZSo+
KHZtLCBqc0Nhc3Q8SlNQcm94eSo+KGFzT2JqZWN0KHZhbHVlKSktPnRhcmdldCgpKTsKIAogICAg
IHJldHVybiBudWxscHRyOwogfQpAQCAtMTg2LDcgKzE4NSw3IEBAIEpTU2VydmljZVdvcmtlckds
b2JhbFNjb3BlKiB0b0pTU2VydmljZVdvcmtlckdsb2JhbFNjb3BlKFZNJiB2bSwgSlNWYWx1ZSB2
YWx1ZSkKICAgICBpZiAoY2xhc3NJbmZvID09IEpTU2VydmljZVdvcmtlckdsb2JhbFNjb3BlOjpp
bmZvKCkpCiAgICAgICAgIHJldHVybiBqc0Nhc3Q8SlNTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUq
Pihhc09iamVjdCh2YWx1ZSkpOwogICAgIGlmIChjbGFzc0luZm8gPT0gSlNQcm94eTo6aW5mbygp
KQotICAgICAgICByZXR1cm4ganNEeW5hbWljRG93bmNhc3Q8SlNTZXJ2aWNlV29ya2VyR2xvYmFs
U2NvcGUqPih2bSwganNDYXN0PEpTUHJveHkqPihhc09iamVjdCh2YWx1ZSkpLT50YXJnZXQoKSk7
CisgICAgICAgIHJldHVybiBqc0R5bmFtaWNDYXN0PEpTU2VydmljZVdvcmtlckdsb2JhbFNjb3Bl
Kj4odm0sIGpzQ2FzdDxKU1Byb3h5Kj4oYXNPYmplY3QodmFsdWUpKS0+dGFyZ2V0KCkpOwogICAg
IHJldHVybiBudWxscHRyOwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9SZWFkYWJsZVN0cmVhbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9SZWFkYWJsZVN0cmVhbS5jcHAKaW5kZXggYTZjZmFhYzVmZTk4NWI4NzZmODJkODljYzAyYjEw
NDk4YjZmODY0Ni4uNDQ2YWFiNTQ5NjgwNTAxMjUwM2YwYmE0YzEwMDljNmIyZTE0ODY3MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvUmVhZGFibGVTdHJlYW0uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1JlYWRhYmxlU3RyZWFtLmNwcApAQCAtNTMs
NyArNTMsNyBAQCBSZWY8UmVhZGFibGVTdHJlYW0+IFJlYWRhYmxlU3RyZWFtOjpjcmVhdGUoSlND
OjpFeGVjU3RhdGUmIGV4ZWNTdGF0ZSwgUmVmUHRyPFJlYQogICAgIGFyZ3MuYXBwZW5kKHNvdXJj
ZSA/IHRvSlNOZXdseUNyZWF0ZWQoJmV4ZWNTdGF0ZSwgJmdsb2JhbE9iamVjdCwgc291cmNlLnJl
bGVhc2VOb25OdWxsKCkpIDogSlNDOjpqc1VuZGVmaW5lZCgpKTsKICAgICBBU1NFUlQoIWFyZ3Mu
aGFzT3ZlcmZsb3dlZCgpKTsKIAotICAgIGF1dG8gbmV3UmVhZGFibGVTdHJlYW0gPSBqc0R5bmFt
aWNEb3duY2FzdDxKU1JlYWRhYmxlU3RyZWFtKj4odm0sIEpTQzo6Y29uc3RydWN0KCZleGVjU3Rh
dGUsIGNvbnN0cnVjdG9yLCBjb25zdHJ1Y3RUeXBlLCBjb25zdHJ1Y3REYXRhLCBhcmdzKSk7Cisg
ICAgYXV0byBuZXdSZWFkYWJsZVN0cmVhbSA9IGpzRHluYW1pY0Nhc3Q8SlNSZWFkYWJsZVN0cmVh
bSo+KHZtLCBKU0M6OmNvbnN0cnVjdCgmZXhlY1N0YXRlLCBjb25zdHJ1Y3RvciwgY29uc3RydWN0
VHlwZSwgY29uc3RydWN0RGF0YSwgYXJncykpOwogICAgIHNjb3BlLmFzc2VydE5vRXhjZXB0aW9u
KCk7CiAKICAgICByZXR1cm4gY3JlYXRlKGdsb2JhbE9iamVjdCwgKm5ld1JlYWRhYmxlU3RyZWFt
KTsKQEAgLTE1NSw4ICsxNTUsOCBAQCBib29sIFJlYWRhYmxlU3RyZWFtOjppc0Rpc3R1cmJlZCgp
IGNvbnN0CiBib29sIFJlYWRhYmxlU3RyZWFtOjppc0Rpc3R1cmJlZChFeGVjU3RhdGUmIHN0YXRl
LCBKU1ZhbHVlIHZhbHVlKQogewogICAgIGF1dG8mIHZtID0gc3RhdGUudm0oKTsKLSAgICBhdXRv
JiBnbG9iYWxPYmplY3QgPSAqanNEeW5hbWljRG93bmNhc3Q8SlNET01HbG9iYWxPYmplY3QqPih2
bSwgc3RhdGUubGV4aWNhbEdsb2JhbE9iamVjdCgpKTsKLSAgICBhdXRvKiByZWFkYWJsZVN0cmVh
bSA9IGpzRHluYW1pY0Rvd25jYXN0PEpTUmVhZGFibGVTdHJlYW0qPih2bSwgdmFsdWUpOworICAg
IGF1dG8mIGdsb2JhbE9iamVjdCA9ICpqc0R5bmFtaWNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4o
dm0sIHN0YXRlLmxleGljYWxHbG9iYWxPYmplY3QoKSk7CisgICAgYXV0byogcmVhZGFibGVTdHJl
YW0gPSBqc0R5bmFtaWNDYXN0PEpTUmVhZGFibGVTdHJlYW0qPih2bSwgdmFsdWUpOwogCiAgICAg
cmV0dXJuIGNoZWNrUmVhZGFibGVTdHJlYW0oZ2xvYmFsT2JqZWN0LCByZWFkYWJsZVN0cmVhbSwg
Z2xvYmFsT2JqZWN0LmJ1aWx0aW5JbnRlcm5hbEZ1bmN0aW9ucygpLnJlYWRhYmxlU3RyZWFtSW50
ZXJuYWxzKCkubV9pc1JlYWRhYmxlU3RyZWFtRGlzdHVyYmVkRnVuY3Rpb24uZ2V0KCkpOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvUmVhZGFibGVTdHJlYW0uaCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1JlYWRhYmxlU3RyZWFtLmgKaW5kZXggMGI3MGQ3
MDY2NDFhMDM3NTU2NDE1NjQ3NzM1YmJjMDc3YTJjYTNlZS4uYmU2ZDYyOWQ1NzA4YzI5MTEzNTIy
ZTVlZmNmYmUxNTYzZTY3ZDEzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvUmVhZGFibGVTdHJlYW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9SZWFk
YWJsZVN0cmVhbS5oCkBAIC02MCwxMSArNjAsMTEgQEAgc3RydWN0IEpTUmVhZGFibGVTdHJlYW1X
cmFwcGVyQ29udmVydGVyIHsKICAgICBzdGF0aWMgUmVmUHRyPFJlYWRhYmxlU3RyZWFtPiB0b1dy
YXBwZWQoSlNDOjpFeGVjU3RhdGUmIHN0YXRlLCBKU0M6OkpTVmFsdWUgdmFsdWUpCiAgICAgewog
ICAgICAgICBKU0M6OlZNJiB2bSA9IHN0YXRlLnZtKCk7Ci0gICAgICAgIGF1dG8qIGdsb2JhbE9i
amVjdCA9IGpzRHluYW1pY0Rvd25jYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4odm0sIHN0YXRlLmxl
eGljYWxHbG9iYWxPYmplY3QoKSk7CisgICAgICAgIGF1dG8qIGdsb2JhbE9iamVjdCA9IEpTQzo6
anNEeW5hbWljQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KHZtLCBzdGF0ZS5sZXhpY2FsR2xvYmFs
T2JqZWN0KCkpOwogICAgICAgICBpZiAoIWdsb2JhbE9iamVjdCkKICAgICAgICAgICAgIHJldHVy
biBudWxscHRyOwogCi0gICAgICAgIGF1dG8qIHJlYWRhYmxlU3RyZWFtID0ganNEeW5hbWljRG93
bmNhc3Q8SlNSZWFkYWJsZVN0cmVhbSo+KHZtLCB2YWx1ZSk7CisgICAgICAgIGF1dG8qIHJlYWRh
YmxlU3RyZWFtID0gSlNDOjpqc0R5bmFtaWNDYXN0PEpTUmVhZGFibGVTdHJlYW0qPih2bSwgdmFs
dWUpOwogICAgICAgICBpZiAoIXJlYWRhYmxlU3RyZWFtKQogICAgICAgICAgICAgcmV0dXJuIG51
bGxwdHI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE1v
ZHVsZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVM
b2FkZXIuY3BwCmluZGV4IDIzMjdmYmM0ZTkwOWFiMWFiNjRkOGJkYzQwYWQ0YmZhNjdkYzBiOWMu
LmQwNGM2ZjlhMmRlZmMwNTM0MzFmYjI5MzBkNDgxY2QxM2YyODAxNzcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0TW9kdWxlTG9hZGVyLmNwcApAQCAtMTk5LDcg
KzE5OSw3IEBAIEpTQzo6SlNWYWx1ZSBTY3JpcHRNb2R1bGVMb2FkZXI6OmV2YWx1YXRlKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSoKICAgICAvLyBGSVhNRTogQ3VycmVudGx5
LCB3ZSBvbmx5IHN1cHBvcnQgSlNNb2R1bGVSZWNvcmQuCiAgICAgLy8gT25jZSB0aGUgcmVmbGVj
dGl2ZSBwYXJ0IG9mIHRoZSBtb2R1bGUgbG9hZGVyIGlzIHN1cHBvcnRlZCwgd2Ugd2lsbCBoYW5k
bGUgYXJiaXRyYXJ5IHZhbHVlcy4KICAgICAvLyBodHRwczovL3doYXR3Zy5naXRodWIuaW8vbG9h
ZGVyLyNyZWdpc3RyeS1wcm90b3R5cGUtcHJvdmlkZQotICAgIGF1dG8qIG1vZHVsZVJlY29yZCA9
IGpzRHluYW1pY0Rvd25jYXN0PEpTQzo6SlNNb2R1bGVSZWNvcmQqPih2bSwgbW9kdWxlUmVjb3Jk
VmFsdWUpOworICAgIGF1dG8qIG1vZHVsZVJlY29yZCA9IGpzRHluYW1pY0Nhc3Q8SlNDOjpKU01v
ZHVsZVJlY29yZCo+KHZtLCBtb2R1bGVSZWNvcmRWYWx1ZSk7CiAgICAgaWYgKCFtb2R1bGVSZWNv
cmQpCiAgICAgICAgIHJldHVybiBKU0M6OmpzVW5kZWZpbmVkKCk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCmluZGV4IDUz
MmM3MTdkYzg3ZTA2ZDdlNTgzMzVhMDNhYThkNWRmZmRjY2I2MzkuLjdhNDRmOTMwYTRmNDg0YWIz
ZjA4ZjczMWIzZmVmNjY5NTI5MWViNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcApAQCAtMTAzNyw3ICsxMDM3LDcgQEAg
Y2xhc3MgQ2xvbmVTZXJpYWxpemVyIDogQ2xvbmVCYXNlIHsKICNlbmRpZgogCiAjaWYgRU5BQkxF
KFdFQkFTU0VNQkxZKQotICAgICAgICAgICAgaWYgKEpTV2ViQXNzZW1ibHlNb2R1bGUqIG1vZHVs
ZSA9IGpzRHluYW1pY0Rvd25jYXN0PEpTV2ViQXNzZW1ibHlNb2R1bGUqPih2bSwgb2JqKSkgewor
ICAgICAgICAgICAgaWYgKEpTV2ViQXNzZW1ibHlNb2R1bGUqIG1vZHVsZSA9IGpzRHluYW1pY0Nh
c3Q8SlNXZWJBc3NlbWJseU1vZHVsZSo+KHZtLCBvYmopKSB7CiAgICAgICAgICAgICAgICAgaWYg
KG1fY29udGV4dCAhPSBTZXJpYWxpemF0aW9uQ29udGV4dDo6V29ya2VyUG9zdE1lc3NhZ2UgJiYg
bV9jb250ZXh0ICE9IFNlcmlhbGl6YXRpb25Db250ZXh0OjpXaW5kb3dQb3N0TWVzc2FnZSkKICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCkBAIC0xNTc0LDcgKzE1NzQsNyBAQCBT
ZXJpYWxpemF0aW9uUmV0dXJuQ29kZSBDbG9uZVNlcmlhbGl6ZXI6OnNlcmlhbGl6ZShKU1ZhbHVl
IGluKQogICAgICAgICAgICAgICAgIGlmICghaXRlcmF0b3ItPm5leHRLZXlWYWx1ZShtX2V4ZWMs
IGtleSwgdmFsdWUpKSB7CiAgICAgICAgICAgICAgICAgICAgIG1hcEl0ZXJhdG9yU3RhY2sucmVt
b3ZlTGFzdCgpOwogICAgICAgICAgICAgICAgICAgICBKU09iamVjdCogb2JqZWN0ID0gaW5wdXRP
YmplY3RTdGFjay5sYXN0KCk7Ci0gICAgICAgICAgICAgICAgICAgIEFTU0VSVChqc0R5bmFtaWNE
b3duY2FzdDxKU01hcCo+KHZtLCBvYmplY3QpKTsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJU
KGpzRHluYW1pY0Nhc3Q8SlNNYXAqPih2bSwgb2JqZWN0KSk7CiAgICAgICAgICAgICAgICAgICAg
IHByb3BlcnR5U3RhY2suYXBwZW5kKFByb3BlcnR5TmFtZUFycmF5KCZ2bSwgUHJvcGVydHlOYW1l
TW9kZTo6U3RyaW5ncywgUHJpdmF0ZVN5bWJvbE1vZGU6OkV4Y2x1ZGUpKTsKICAgICAgICAgICAg
ICAgICAgICAgb2JqZWN0LT5tZXRob2RUYWJsZSh2bSktPmdldE93blByb3BlcnR5TmFtZXMob2Jq
ZWN0LCBtX2V4ZWMsIHByb3BlcnR5U3RhY2subGFzdCgpLCBFbnVtZXJhdGlvbk1vZGUoKSk7CiAg
ICAgICAgICAgICAgICAgICAgIHdyaXRlKE5vbk1hcFByb3BlcnRpZXNUYWcpOwpAQCAtMTYxOCw3
ICsxNjE4LDcgQEAgU2VyaWFsaXphdGlvblJldHVybkNvZGUgQ2xvbmVTZXJpYWxpemVyOjpzZXJp
YWxpemUoSlNWYWx1ZSBpbikKICAgICAgICAgICAgICAgICBpZiAoIWl0ZXJhdG9yLT5uZXh0KG1f
ZXhlYywga2V5KSkgewogICAgICAgICAgICAgICAgICAgICBzZXRJdGVyYXRvclN0YWNrLnJlbW92
ZUxhc3QoKTsKICAgICAgICAgICAgICAgICAgICAgSlNPYmplY3QqIG9iamVjdCA9IGlucHV0T2Jq
ZWN0U3RhY2subGFzdCgpOwotICAgICAgICAgICAgICAgICAgICBBU1NFUlQoanNEeW5hbWljRG93
bmNhc3Q8SlNTZXQqPih2bSwgb2JqZWN0KSk7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVChq
c0R5bmFtaWNDYXN0PEpTU2V0Kj4odm0sIG9iamVjdCkpOwogICAgICAgICAgICAgICAgICAgICBw
cm9wZXJ0eVN0YWNrLmFwcGVuZChQcm9wZXJ0eU5hbWVBcnJheSgmdm0sIFByb3BlcnR5TmFtZU1v
ZGU6OlN0cmluZ3MsIFByaXZhdGVTeW1ib2xNb2RlOjpFeGNsdWRlKSk7CiAgICAgICAgICAgICAg
ICAgICAgIG9iamVjdC0+bWV0aG9kVGFibGUodm0pLT5nZXRPd25Qcm9wZXJ0eU5hbWVzKG9iamVj
dCwgbV9leGVjLCBwcm9wZXJ0eVN0YWNrLmxhc3QoKSwgRW51bWVyYXRpb25Nb2RlKCkpOwogICAg
ICAgICAgICAgICAgICAgICB3cml0ZShOb25TZXRQcm9wZXJ0aWVzVGFnKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1N0cnVjdHVyZWRDbG9uZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9TdHJ1Y3R1cmVkQ2xvbmUuY3BwCmluZGV4IDY1MmQ2YjM5NWE0
NzEzM2ZiZmNlZGQ0N2U3Y2NjYjQyNGU4NWY0OGEuLmVlZDIyMTIzNWRjMDdkMWFjN2Y0Njc2ZGNk
MDhmMTZjNzg2Y2IwYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1N0
cnVjdHVyZWRDbG9uZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU3RydWN0
dXJlZENsb25lLmNwcApAQCAtODAsNyArODAsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIHN0cnVjdHVyZWRDbG9uZUFycmF5QnVmZmVyVmlldyhFeGVjU3RhdGUqIHN0YXRlKQogCiAg
ICAgSlNWYWx1ZSB2YWx1ZSA9IHN0YXRlLT51bmNoZWNrZWRBcmd1bWVudCgwKTsKICAgICBWTSYg
dm0gPSBzdGF0ZS0+dm0oKTsKLSAgICBhdXRvKiBidWZmZXJWaWV3ID0ganNEeW5hbWljRG93bmNh
c3Q8SlNBcnJheUJ1ZmZlclZpZXcqPih2bSwgdmFsdWUpOworICAgIGF1dG8qIGJ1ZmZlclZpZXcg
PSBqc0R5bmFtaWNDYXN0PEpTQXJyYXlCdWZmZXJWaWV3Kj4odm0sIHZhbHVlKTsKICAgICBBU1NF
UlQoYnVmZmVyVmlldyk7CiAKICAgICBhdXRvKiBidWZmZXIgPSBidWZmZXJWaWV3LT51bnNoYXJl
ZEJ1ZmZlcigpOwpAQCAtOTEsMjUgKzkxLDI1IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgc3RydWN0dXJlZENsb25lQXJyYXlCdWZmZXJWaWV3KEV4ZWNTdGF0ZSogc3RhdGUpCiAgICAg
fQogICAgIGF1dG8gYnVmZmVyQ2xvbmUgPSBBcnJheUJ1ZmZlcjo6dHJ5Q3JlYXRlKGJ1ZmZlci0+
ZGF0YSgpLCBidWZmZXItPmJ5dGVMZW5ndGgoKSk7CiAKLSAgICBpZiAoanNEeW5hbWljRG93bmNh
c3Q8SlNJbnQ4QXJyYXkqPih2bSwgdmFsdWUpKQorICAgIGlmIChqc0R5bmFtaWNDYXN0PEpTSW50
OEFycmF5Kj4odm0sIHZhbHVlKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU0lu
dDhBcnJheTo6Y3JlYXRlKHN0YXRlLCBidWZmZXJWaWV3LT5zdHJ1Y3R1cmUoKSwgV1RGTW92ZShi
dWZmZXJDbG9uZSksIGJ1ZmZlclZpZXctPmJ5dGVPZmZzZXQoKSwgYnVmZmVyVmlldy0+bGVuZ3Ro
KCkpKTsKLSAgICBpZiAoanNEeW5hbWljRG93bmNhc3Q8SlNJbnQxNkFycmF5Kj4odm0sIHZhbHVl
KSkKKyAgICBpZiAoanNEeW5hbWljQ2FzdDxKU0ludDE2QXJyYXkqPih2bSwgdmFsdWUpKQogICAg
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTSW50MTZBcnJheTo6Y3JlYXRlKHN0YXRlLCBi
dWZmZXJWaWV3LT5zdHJ1Y3R1cmUoKSwgV1RGTW92ZShidWZmZXJDbG9uZSksIGJ1ZmZlclZpZXct
PmJ5dGVPZmZzZXQoKSwgYnVmZmVyVmlldy0+bGVuZ3RoKCkpKTsKLSAgICBpZiAoanNEeW5hbWlj
RG93bmNhc3Q8SlNJbnQzMkFycmF5Kj4odm0sIHZhbHVlKSkKKyAgICBpZiAoanNEeW5hbWljQ2Fz
dDxKU0ludDMyQXJyYXkqPih2bSwgdmFsdWUpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKEpTSW50MzJBcnJheTo6Y3JlYXRlKHN0YXRlLCBidWZmZXJWaWV3LT5zdHJ1Y3R1cmUoKSwg
V1RGTW92ZShidWZmZXJDbG9uZSksIGJ1ZmZlclZpZXctPmJ5dGVPZmZzZXQoKSwgYnVmZmVyVmll
dy0+bGVuZ3RoKCkpKTsKLSAgICBpZiAoanNEeW5hbWljRG93bmNhc3Q8SlNVaW50OEFycmF5Kj4o
dm0sIHZhbHVlKSkKKyAgICBpZiAoanNEeW5hbWljQ2FzdDxKU1VpbnQ4QXJyYXkqPih2bSwgdmFs
dWUpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVWludDhBcnJheTo6Y3JlYXRl
KHN0YXRlLCBidWZmZXJWaWV3LT5zdHJ1Y3R1cmUoKSwgV1RGTW92ZShidWZmZXJDbG9uZSksIGJ1
ZmZlclZpZXctPmJ5dGVPZmZzZXQoKSwgYnVmZmVyVmlldy0+bGVuZ3RoKCkpKTsKLSAgICBpZiAo
anNEeW5hbWljRG93bmNhc3Q8SlNVaW50OENsYW1wZWRBcnJheSo+KHZtLCB2YWx1ZSkpCisgICAg
aWYgKGpzRHluYW1pY0Nhc3Q8SlNVaW50OENsYW1wZWRBcnJheSo+KHZtLCB2YWx1ZSkpCiAgICAg
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNVaW50OENsYW1wZWRBcnJheTo6Y3JlYXRlKHN0
YXRlLCBidWZmZXJWaWV3LT5zdHJ1Y3R1cmUoKSwgV1RGTW92ZShidWZmZXJDbG9uZSksIGJ1ZmZl
clZpZXctPmJ5dGVPZmZzZXQoKSwgYnVmZmVyVmlldy0+bGVuZ3RoKCkpKTsKLSAgICBpZiAoanNE
eW5hbWljRG93bmNhc3Q8SlNVaW50MTZBcnJheSo+KHZtLCB2YWx1ZSkpCisgICAgaWYgKGpzRHlu
YW1pY0Nhc3Q8SlNVaW50MTZBcnJheSo+KHZtLCB2YWx1ZSkpCiAgICAgICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoSlNVaW50MTZBcnJheTo6Y3JlYXRlKHN0YXRlLCBidWZmZXJWaWV3LT5zdHJ1
Y3R1cmUoKSwgV1RGTW92ZShidWZmZXJDbG9uZSksIGJ1ZmZlclZpZXctPmJ5dGVPZmZzZXQoKSwg
YnVmZmVyVmlldy0+bGVuZ3RoKCkpKTsKLSAgICBpZiAoanNEeW5hbWljRG93bmNhc3Q8SlNVaW50
MzJBcnJheSo+KHZtLCB2YWx1ZSkpCisgICAgaWYgKGpzRHluYW1pY0Nhc3Q8SlNVaW50MzJBcnJh
eSo+KHZtLCB2YWx1ZSkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNVaW50MzJB
cnJheTo6Y3JlYXRlKHN0YXRlLCBidWZmZXJWaWV3LT5zdHJ1Y3R1cmUoKSwgV1RGTW92ZShidWZm
ZXJDbG9uZSksIGJ1ZmZlclZpZXctPmJ5dGVPZmZzZXQoKSwgYnVmZmVyVmlldy0+bGVuZ3RoKCkp
KTsKLSAgICBpZiAoanNEeW5hbWljRG93bmNhc3Q8SlNGbG9hdDMyQXJyYXkqPih2bSwgdmFsdWUp
KQorICAgIGlmIChqc0R5bmFtaWNDYXN0PEpTRmxvYXQzMkFycmF5Kj4odm0sIHZhbHVlKSkKICAg
ICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU0Zsb2F0MzJBcnJheTo6Y3JlYXRlKHN0YXRl
LCBidWZmZXJWaWV3LT5zdHJ1Y3R1cmUoKSwgV1RGTW92ZShidWZmZXJDbG9uZSksIGJ1ZmZlclZp
ZXctPmJ5dGVPZmZzZXQoKSwgYnVmZmVyVmlldy0+bGVuZ3RoKCkpKTsKLSAgICBpZiAoanNEeW5h
bWljRG93bmNhc3Q8SlNGbG9hdDY0QXJyYXkqPih2bSwgdmFsdWUpKQorICAgIGlmIChqc0R5bmFt
aWNDYXN0PEpTRmxvYXQ2NEFycmF5Kj4odm0sIHZhbHVlKSkKICAgICAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShKU0Zsb2F0NjRBcnJheTo6Y3JlYXRlKHN0YXRlLCBidWZmZXJWaWV3LT5zdHJ1
Y3R1cmUoKSwgV1RGTW92ZShidWZmZXJDbG9uZSksIGJ1ZmZlclZpZXctPmJ5dGVPZmZzZXQoKSwg
YnVmZmVyVmlldy0+bGVuZ3RoKCkpKTsKLSAgICBpZiAoanNEeW5hbWljRG93bmNhc3Q8SlNEYXRh
Vmlldyo+KHZtLCB2YWx1ZSkpCisgICAgaWYgKGpzRHluYW1pY0Nhc3Q8SlNEYXRhVmlldyo+KHZt
LCB2YWx1ZSkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNEYXRhVmlldzo6Y3Jl
YXRlKHN0YXRlLCBidWZmZXJWaWV3LT5zdHJ1Y3R1cmUoKSwgV1RGTW92ZShidWZmZXJDbG9uZSks
IGJ1ZmZlclZpZXctPmJ5dGVPZmZzZXQoKSwgYnVmZmVyVmlldy0+bGVuZ3RoKCkpKTsKIAogICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQppbmRleCBjNTk3ZDVhMTMzMTI3OGEzMzVhMmMxYTAy
Nzk1MDYyY2Q0NDEwNzMwLi4yMjQyOTlkY2JiMTE2OTgwODljYzk3MmVmNmViYTQ1OWJmNzJhMWNh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JKUy5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JKUy5wbQpAQCAtMzcxOSw3ICszNzE5LDcgQEAgc3ViIEdldENhc3RpbmdIZWxwZXJGb3JUaGlz
T2JqZWN0CiB7CiAgICAgbXkgJGludGVyZmFjZSA9IHNoaWZ0OwogICAgIG15ICRpbnRlcmZhY2VO
YW1lID0gJGludGVyZmFjZS0+dHlwZS0+bmFtZTsKLSAgICByZXR1cm4gImpzRHluYW1pY0Rvd25j
YXN0PEpTJGludGVyZmFjZU5hbWUqPiI7CisgICAgcmV0dXJuICJqc0R5bmFtaWNDYXN0PEpTJGlu
dGVyZmFjZU5hbWUqPiI7CiB9CiAKICMgaHR0cDovL2hleWNhbS5naXRodWIuaW8vd2ViaWRsLyNV
bnNjb3BhYmxlCkBAIC00NDIyLDcgKzQ0MjIsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlv
bgogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOwogICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIiAgICBWTSYgdm0gPSBzdGF0ZS0+dm0oKTtcbiIpOwogICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgIiAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZt
KTtcbiIpOwotICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBhdXRvKiBwcm90b3R5cGUg
PSBqc0R5bmFtaWNEb3duY2FzdDwke2NsYXNzTmFtZX1Qcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6
ZGVjb2RlKHRoaXNWYWx1ZSkpO1xuIik7CisgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAg
IGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Nhc3Q8JHtjbGFzc05hbWV9UHJvdG90eXBlKj4o
dm0sIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTtcbiIpOwogICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIiAgICBpZiAoVU5MSUtFTFkoIXByb3RvdHlwZSkpXG4iKTsKICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICIgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKHN0YXRlLCB0
aHJvd1Njb3BlKTtcbiIpOwogCkBAIC00NDQyLDcgKzQ0NDIsNyBAQCBzdWIgR2VuZXJhdGVJbXBs
ZW1lbnRhdGlvbgogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOwogICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIiAgICBWTSYgdm0gPSBzdGF0ZS0+dm0oKTtcbiIpOwogICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTtcbiIpOwotICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBhdXRvKiBw
cm90b3R5cGUgPSBqc0R5bmFtaWNEb3duY2FzdDwke2NsYXNzTmFtZX1Qcm90b3R5cGUqPih2bSwg
SlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpO1xuIik7CisgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAiICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Nhc3Q8JHtjbGFzc05hbWV9UHJv
dG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTtcbiIpOwogICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAoVU5MSUtFTFkoIXByb3RvdHlwZSkpIHtcbiIpOwog
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgdGhyb3dWTVR5cGVFcnJvcihzdGF0
ZSwgdGhyb3dTY29wZSk7XG4iKTsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAg
IHJldHVybiBmYWxzZTtcbiIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTSW50ZXJmYWNlTmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNJbnRlcmZhY2VOYW1lLmNwcAppbmRleCBiMDI4MzgzNTll
OTY5YjUyNTMzYTgzMjZlN2MxY2MyZDZlZTVlNWYzLi40YmY1NDZmOThiMDRkNDE1OWU1ZDM1Yzhj
NTRmMWNkMDAzNTM3MzliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNJbnRlcmZhY2VOYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNJbnRlcmZhY2VOYW1lLmNwcApAQCAtMTM1LDcgKzEzNSw3
IEBAIEVuY29kZWRKU1ZhbHVlIGpzSW50ZXJmYWNlTmFtZUNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSog
c3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWCiB7CiAgICAgVk0mIHZtID0gc3RhdGUtPnZtKCk7
CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgYXV0
byogcHJvdG90eXBlID0ganNEeW5hbWljRG93bmNhc3Q8SlNJbnRlcmZhY2VOYW1lUHJvdG90eXBl
Kj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKKyAgICBhdXRvKiBwcm90b3R5cGUg
PSBqc0R5bmFtaWNDYXN0PEpTSW50ZXJmYWNlTmFtZVByb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpk
ZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFwcm90b3R5cGUpKQogICAgICAg
ICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihzdGF0ZSwgdGhyb3dTY29wZSk7CiAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShKU0ludGVyZmFjZU5hbWU6OmdldENvbnN0cnVjdG9yKHN0YXRlLT52
bSgpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CkBAIC0xNDUsNyArMTQ1LDcgQEAgYm9v
bCBzZXRKU0ludGVyZmFjZU5hbWVDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIEUKIHsKICAgICBWTSYgdm0gPSBzdGF0ZS0+dm0oKTsKICAgICBh
dXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAgICBhdXRvKiBwcm90
b3R5cGUgPSBqc0R5bmFtaWNEb3duY2FzdDxKU0ludGVyZmFjZU5hbWVQcm90b3R5cGUqPih2bSwg
SlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOworICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHlu
YW1pY0Nhc3Q8SlNJbnRlcmZhY2VOYW1lUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0
aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIXByb3RvdHlwZSkpIHsKICAgICAgICAgdGhy
b3dWTVR5cGVFcnJvcihzdGF0ZSwgdGhyb3dTY29wZSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsK
QEAgLTIyMyw3ICsyMjMsNyBAQCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSogc3Rh
dGUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEludGVyZgogCiBJbnRlcmZhY2VO
YW1lKiBKU0ludGVyZmFjZU5hbWU6OnRvV3JhcHBlZChKU0M6OlZNJiB2bSwgSlNDOjpKU1ZhbHVl
IHZhbHVlKQogewotICAgIGlmIChhdXRvKiB3cmFwcGVyID0ganNEeW5hbWljRG93bmNhc3Q8SlNJ
bnRlcmZhY2VOYW1lKj4odm0sIHZhbHVlKSkKKyAgICBpZiAoYXV0byogd3JhcHBlciA9IGpzRHlu
YW1pY0Nhc3Q8SlNJbnRlcmZhY2VOYW1lKj4odm0sIHZhbHVlKSkKICAgICAgICAgcmV0dXJuICZ3
cmFwcGVyLT53cmFwcGVkKCk7CiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNNYXBMaWtlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU01hcExpa2UuY3BwCmluZGV4
IGQwZjM1ZjI3MDU0OTZhMmY1ZDQxMzMyYjRhYmZlMmZjZjhhYWE3ZWQuLmI5ZmY5YzNkZjA5OWEz
ZmZiMGExZWUxZmEyZjgzZWIxZmQwYmY0NzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU01hcExpa2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU01hcExpa2UuY3BwCkBAIC0xNjQsMTkgKzE2NCwx
OSBAQCB2b2lkIEpTTWFwTGlrZTo6ZGVzdHJveShKU0M6OkpTQ2VsbCogY2VsbCkKIAogdGVtcGxh
dGU8PiBpbmxpbmUgSlNNYXBMaWtlKiBJRExBdHRyaWJ1dGU8SlNNYXBMaWtlPjo6Y2FzdChFeGVj
U3RhdGUmIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUpCiB7Ci0gICAgcmV0dXJuIGpz
RHluYW1pY0Rvd25jYXN0PEpTTWFwTGlrZSo+KHN0YXRlLnZtKCksIEpTVmFsdWU6OmRlY29kZSh0
aGlzVmFsdWUpKTsKKyAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU01hcExpa2UqPihzdGF0ZS52
bSgpLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5l
IEpTTWFwTGlrZSogSURMT3BlcmF0aW9uPEpTTWFwTGlrZT46OmNhc3QoRXhlY1N0YXRlJiBzdGF0
ZSkKIHsKLSAgICByZXR1cm4ganNEeW5hbWljRG93bmNhc3Q8SlNNYXBMaWtlKj4oc3RhdGUudm0o
KSwgc3RhdGUudGhpc1ZhbHVlKCkpOworICAgIHJldHVybiBqc0R5bmFtaWNDYXN0PEpTTWFwTGlr
ZSo+KHN0YXRlLnZtKCksIHN0YXRlLnRoaXNWYWx1ZSgpKTsKIH0KIAogRW5jb2RlZEpTVmFsdWUg
anNNYXBMaWtlQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVk0mIHZtID0gc3RhdGUtPnZtKCk7CiAgICAg
YXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgYXV0byogcHJv
dG90eXBlID0ganNEeW5hbWljRG93bmNhc3Q8SlNNYXBMaWtlUHJvdG90eXBlKj4odm0sIEpTVmFs
dWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKKyAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWND
YXN0PEpTTWFwTGlrZVByb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7
CiAgICAgaWYgKFVOTElLRUxZKCFwcm90b3R5cGUpKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5
cGVFcnJvcihzdGF0ZSwgdGhyb3dTY29wZSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShK
U01hcExpa2U6OmdldENvbnN0cnVjdG9yKHN0YXRlLT52bSgpLCBwcm90b3R5cGUtPmdsb2JhbE9i
amVjdCgpKSk7CkBAIC0xODYsNyArMTg2LDcgQEAgYm9vbCBzZXRKU01hcExpa2VDb25zdHJ1Y3Rv
cihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWQKIHsK
ICAgICBWTSYgdm0gPSBzdGF0ZS0+dm0oKTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJF
X1RIUk9XX1NDT1BFKHZtKTsKLSAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNEb3duY2Fz
dDxKU01hcExpa2VQcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwor
ICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Nhc3Q8SlNNYXBMaWtlUHJvdG90eXBlKj4o
dm0sIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIXByb3Rv
dHlwZSkpIHsKICAgICAgICAgdGhyb3dWTVR5cGVFcnJvcihzdGF0ZSwgdGhyb3dTY29wZSk7CiAg
ICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTM5MSw3ICszOTEsNyBAQCBKU0M6OkpTVmFsdWUgdG9K
UyhKU0M6OkV4ZWNTdGF0ZSogc3RhdGUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IE1hcExpawogCiBNYXBMaWtlKiBKU01hcExpa2U6OnRvV3JhcHBlZChKU0M6OlZNJiB2bSwgSlND
OjpKU1ZhbHVlIHZhbHVlKQogewotICAgIGlmIChhdXRvKiB3cmFwcGVyID0ganNEeW5hbWljRG93
bmNhc3Q8SlNNYXBMaWtlKj4odm0sIHZhbHVlKSkKKyAgICBpZiAoYXV0byogd3JhcHBlciA9IGpz
RHluYW1pY0Nhc3Q8SlNNYXBMaWtlKj4odm0sIHZhbHVlKSkKICAgICAgICAgcmV0dXJuICZ3cmFw
cGVyLT53cmFwcGVkKCk7CiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNSZWFkT25seU1hcExpa2UuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTUmVhZE9ubHlNYXBM
aWtlLmNwcAppbmRleCBkM2E5ZjI4MThkZTFkODVlYzAxZjQ2NWQxZGJkZjM1Y2ZjYzI0MmMzLi4x
Y2M0OGI0MjY2NzUxZDZkNDQ1NTkxMmY3NzBjYWYwYjk2MDU5M2FlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNSZWFkT25seU1hcExpa2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1JlYWRPbmx5
TWFwTGlrZS5jcHAKQEAgLTE1OCwxOSArMTU4LDE5IEBAIHZvaWQgSlNSZWFkT25seU1hcExpa2U6
OmRlc3Ryb3koSlNDOjpKU0NlbGwqIGNlbGwpCiAKIHRlbXBsYXRlPD4gaW5saW5lIEpTUmVhZE9u
bHlNYXBMaWtlKiBJRExBdHRyaWJ1dGU8SlNSZWFkT25seU1hcExpa2U+OjpjYXN0KEV4ZWNTdGF0
ZSYgc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSkKIHsKLSAgICByZXR1cm4ganNEeW5h
bWljRG93bmNhc3Q8SlNSZWFkT25seU1hcExpa2UqPihzdGF0ZS52bSgpLCBKU1ZhbHVlOjpkZWNv
ZGUodGhpc1ZhbHVlKSk7CisgICAgcmV0dXJuIGpzRHluYW1pY0Nhc3Q8SlNSZWFkT25seU1hcExp
a2UqPihzdGF0ZS52bSgpLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiB9CiAKIHRlbXBs
YXRlPD4gaW5saW5lIEpTUmVhZE9ubHlNYXBMaWtlKiBJRExPcGVyYXRpb248SlNSZWFkT25seU1h
cExpa2U+OjpjYXN0KEV4ZWNTdGF0ZSYgc3RhdGUpCiB7Ci0gICAgcmV0dXJuIGpzRHluYW1pY0Rv
d25jYXN0PEpTUmVhZE9ubHlNYXBMaWtlKj4oc3RhdGUudm0oKSwgc3RhdGUudGhpc1ZhbHVlKCkp
OworICAgIHJldHVybiBqc0R5bmFtaWNDYXN0PEpTUmVhZE9ubHlNYXBMaWtlKj4oc3RhdGUudm0o
KSwgc3RhdGUudGhpc1ZhbHVlKCkpOwogfQogCiBFbmNvZGVkSlNWYWx1ZSBqc1JlYWRPbmx5TWFw
TGlrZUNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFZNJiB2bSA9IHN0YXRlLT52bSgpOwogICAgIGF1dG8g
dGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAgIGF1dG8qIHByb3RvdHlw
ZSA9IGpzRHluYW1pY0Rvd25jYXN0PEpTUmVhZE9ubHlNYXBMaWtlUHJvdG90eXBlKj4odm0sIEpT
VmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKKyAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFt
aWNDYXN0PEpTUmVhZE9ubHlNYXBMaWtlUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0
aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIXByb3RvdHlwZSkpCiAgICAgICAgIHJldHVy
biB0aHJvd1ZNVHlwZUVycm9yKHN0YXRlLCB0aHJvd1Njb3BlKTsKICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKEpTUmVhZE9ubHlNYXBMaWtlOjpnZXRDb25zdHJ1Y3RvcihzdGF0ZS0+dm0oKSwg
cHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOwpAQCAtMTgwLDcgKzE4MCw3IEBAIGJvb2wgc2V0
SlNSZWFkT25seU1hcExpa2VDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsCiB7CiAgICAgVk0mIHZtID0gc3RhdGUtPnZtKCk7CiAgICAgYXV0byB0
aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgYXV0byogcHJvdG90eXBl
ID0ganNEeW5hbWljRG93bmNhc3Q8SlNSZWFkT25seU1hcExpa2VQcm90b3R5cGUqPih2bSwgSlNW
YWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOworICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1p
Y0Nhc3Q8SlNSZWFkT25seU1hcExpa2VQcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRo
aXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghcHJvdG90eXBlKSkgewogICAgICAgICB0aHJv
d1ZNVHlwZUVycm9yKHN0YXRlLCB0aHJvd1Njb3BlKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwpA
QCAtMzQwLDcgKzM0MCw3IEBAIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiBzdGF0
ZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUmVhZE9uCiAKIFJlYWRPbmx5TWFw
TGlrZSogSlNSZWFkT25seU1hcExpa2U6OnRvV3JhcHBlZChKU0M6OlZNJiB2bSwgSlNDOjpKU1Zh
bHVlIHZhbHVlKQogewotICAgIGlmIChhdXRvKiB3cmFwcGVyID0ganNEeW5hbWljRG93bmNhc3Q8
SlNSZWFkT25seU1hcExpa2UqPih2bSwgdmFsdWUpKQorICAgIGlmIChhdXRvKiB3cmFwcGVyID0g
anNEeW5hbWljQ2FzdDxKU1JlYWRPbmx5TWFwTGlrZSo+KHZtLCB2YWx1ZSkpCiAgICAgICAgIHJl
dHVybiAmd3JhcHBlci0+d3JhcHBlZCgpOwogICAgIHJldHVybiBudWxscHRyOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEFjdGl2
ZURPTU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0QWN0aXZlRE9NT2JqZWN0LmNwcAppbmRleCBjMGMwMWE4OWEyYTQ1MDYxYmI5NWU5MjFj
YmJjOWViNzJkZWEyYjY4Li44MTVhMDNlMmRmNzFmMjhiMGNmNzkzMjllMTAxZjg4NjNkYzM0OTVl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0QWN0aXZlRE9NT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0QWN0aXZlRE9NT2JqZWN0LmNwcApAQCAtMTYyLDE5ICsxNjIsMTkg
QEAgdm9pZCBKU1Rlc3RBY3RpdmVET01PYmplY3Q6OmRlc3Ryb3koSlNDOjpKU0NlbGwqIGNlbGwp
CiAKIHRlbXBsYXRlPD4gaW5saW5lIEpTVGVzdEFjdGl2ZURPTU9iamVjdCogSURMQXR0cmlidXRl
PEpTVGVzdEFjdGl2ZURPTU9iamVjdD46OmNhc3QoRXhlY1N0YXRlJiBzdGF0ZSwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlKQogewotICAgIHJldHVybiBqc0R5bmFtaWNEb3duY2FzdDxKU1Rlc3RB
Y3RpdmVET01PYmplY3QqPihzdGF0ZS52bSgpLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7
CisgICAgcmV0dXJuIGpzRHluYW1pY0Nhc3Q8SlNUZXN0QWN0aXZlRE9NT2JqZWN0Kj4oc3RhdGUu
dm0oKSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogfQogCiB0ZW1wbGF0ZTw+IGlubGlu
ZSBKU1Rlc3RBY3RpdmVET01PYmplY3QqIElETE9wZXJhdGlvbjxKU1Rlc3RBY3RpdmVET01PYmpl
Y3Q+OjpjYXN0KEV4ZWNTdGF0ZSYgc3RhdGUpCiB7Ci0gICAgcmV0dXJuIGpzRHluYW1pY0Rvd25j
YXN0PEpTVGVzdEFjdGl2ZURPTU9iamVjdCo+KHN0YXRlLnZtKCksIHN0YXRlLnRoaXNWYWx1ZSgp
KTsKKyAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3RBY3RpdmVET01PYmplY3QqPihzdGF0
ZS52bSgpLCBzdGF0ZS50aGlzVmFsdWUoKSk7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIGpzVGVzdEFj
dGl2ZURPTU9iamVjdENvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFZNJiB2bSA9IHN0YXRlLT52bSgpOwog
ICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAgIGF1dG8q
IHByb3RvdHlwZSA9IGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdEFjdGl2ZURPTU9iamVjdFByb3Rv
dHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CisgICAgYXV0byogcHJvdG90
eXBlID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RBY3RpdmVET01PYmplY3RQcm90b3R5cGUqPih2bSwg
SlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghcHJvdG90eXBl
KSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3Ioc3RhdGUsIHRocm93U2NvcGUpOwog
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0QWN0aXZlRE9NT2JqZWN0OjpnZXRDb25z
dHJ1Y3RvcihzdGF0ZS0+dm0oKSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOwpAQCAtMTg0
LDcgKzE4NCw3IEBAIGJvb2wgc2V0SlNUZXN0QWN0aXZlRE9NT2JqZWN0Q29uc3RydWN0b3IoRXhl
Y1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhCiB7CiAgICAgVk0mIHZtID0gc3Rh
dGUtPnZtKCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
Ci0gICAgYXV0byogcHJvdG90eXBlID0ganNEeW5hbWljRG93bmNhc3Q8SlNUZXN0QWN0aXZlRE9N
T2JqZWN0UHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKKyAgICBh
dXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdEFjdGl2ZURPTU9iamVjdFByb3Rv
dHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZ
KCFwcm90b3R5cGUpKSB7CiAgICAgICAgIHRocm93Vk1UeXBlRXJyb3Ioc3RhdGUsIHRocm93U2Nv
cGUpOwogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0zMDEsNyArMzAxLDcgQEAgSlNDOjpKU1Zh
bHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqIHN0YXRlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBUZXN0QWMKIAogVGVzdEFjdGl2ZURPTU9iamVjdCogSlNUZXN0QWN0aXZlRE9NT2Jq
ZWN0Ojp0b1dyYXBwZWQoSlNDOjpWTSYgdm0sIEpTQzo6SlNWYWx1ZSB2YWx1ZSkKIHsKLSAgICBp
ZiAoYXV0byogd3JhcHBlciA9IGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdEFjdGl2ZURPTU9iamVj
dCo+KHZtLCB2YWx1ZSkpCisgICAgaWYgKGF1dG8qIHdyYXBwZXIgPSBqc0R5bmFtaWNDYXN0PEpT
VGVzdEFjdGl2ZURPTU9iamVjdCo+KHZtLCB2YWx1ZSkpCiAgICAgICAgIHJldHVybiAmd3JhcHBl
ci0+d3JhcHBlZCgpOwogICAgIHJldHVybiBudWxscHRyOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENFUmVhY3Rpb25zLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDRVJlYWN0aW9u
cy5jcHAKaW5kZXggNjVlZTBiYmZiZThhYTk5OTc0ZDA1NzM1ZmExOTUwOTI4OTA3YzhhYS4uZDI0
OWM5YjE1MmQ3MTAxMGZiMzBkNDdiOGE4NTA1ZTI5ODE0YTdhYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENFUmVhY3Rpb25zLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q0VSZWFj
dGlvbnMuY3BwCkBAIC0xNTUsMTkgKzE1NSwxOSBAQCB2b2lkIEpTVGVzdENFUmVhY3Rpb25zOjpk
ZXN0cm95KEpTQzo6SlNDZWxsKiBjZWxsKQogCiB0ZW1wbGF0ZTw+IGlubGluZSBKU1Rlc3RDRVJl
YWN0aW9ucyogSURMQXR0cmlidXRlPEpTVGVzdENFUmVhY3Rpb25zPjo6Y2FzdChFeGVjU3RhdGUm
IHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUpCiB7Ci0gICAgcmV0dXJuIGpzRHluYW1p
Y0Rvd25jYXN0PEpTVGVzdENFUmVhY3Rpb25zKj4oc3RhdGUudm0oKSwgSlNWYWx1ZTo6ZGVjb2Rl
KHRoaXNWYWx1ZSkpOworICAgIHJldHVybiBqc0R5bmFtaWNDYXN0PEpTVGVzdENFUmVhY3Rpb25z
Kj4oc3RhdGUudm0oKSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogfQogCiB0ZW1wbGF0
ZTw+IGlubGluZSBKU1Rlc3RDRVJlYWN0aW9ucyogSURMT3BlcmF0aW9uPEpTVGVzdENFUmVhY3Rp
b25zPjo6Y2FzdChFeGVjU3RhdGUmIHN0YXRlKQogewotICAgIHJldHVybiBqc0R5bmFtaWNEb3du
Y2FzdDxKU1Rlc3RDRVJlYWN0aW9ucyo+KHN0YXRlLnZtKCksIHN0YXRlLnRoaXNWYWx1ZSgpKTsK
KyAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3RDRVJlYWN0aW9ucyo+KHN0YXRlLnZtKCks
IHN0YXRlLnRoaXNWYWx1ZSgpKTsKIH0KIAogRW5jb2RlZEpTVmFsdWUganNUZXN0Q0VSZWFjdGlv
bnNDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkKIHsKICAgICBWTSYgdm0gPSBzdGF0ZS0+dm0oKTsKICAgICBhdXRvIHRo
cm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAgICBhdXRvKiBwcm90b3R5cGUg
PSBqc0R5bmFtaWNEb3duY2FzdDxKU1Rlc3RDRVJlYWN0aW9uc1Byb3RvdHlwZSo+KHZtLCBKU1Zh
bHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CisgICAgYXV0byogcHJvdG90eXBlID0ganNEeW5hbWlj
Q2FzdDxKU1Rlc3RDRVJlYWN0aW9uc1Byb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhp
c1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFwcm90b3R5cGUpKQogICAgICAgICByZXR1cm4g
dGhyb3dWTVR5cGVFcnJvcihzdGF0ZSwgdGhyb3dTY29wZSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShKU1Rlc3RDRVJlYWN0aW9uczo6Z2V0Q29uc3RydWN0b3Ioc3RhdGUtPnZtKCksIHBy
b3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKQEAgLTE3Nyw3ICsxNzcsNyBAQCBib29sIHNldEpT
VGVzdENFUmVhY3Rpb25zQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLAogewogICAgIFZNJiB2bSA9IHN0YXRlLT52bSgpOwogICAgIGF1dG8gdGhy
b3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAgIGF1dG8qIHByb3RvdHlwZSA9
IGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdENFUmVhY3Rpb25zUHJvdG90eXBlKj4odm0sIEpTVmFs
dWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKKyAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWND
YXN0PEpTVGVzdENFUmVhY3Rpb25zUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlz
VmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIXByb3RvdHlwZSkpIHsKICAgICAgICAgdGhyb3dW
TVR5cGVFcnJvcihzdGF0ZSwgdGhyb3dTY29wZSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAg
LTM1NSw3ICszNTUsNyBAQCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSogc3RhdGUs
IEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRlc3RDRQogCiBUZXN0Q0VSZWFjdGlv
bnMqIEpTVGVzdENFUmVhY3Rpb25zOjp0b1dyYXBwZWQoSlNDOjpWTSYgdm0sIEpTQzo6SlNWYWx1
ZSB2YWx1ZSkKIHsKLSAgICBpZiAoYXV0byogd3JhcHBlciA9IGpzRHluYW1pY0Rvd25jYXN0PEpT
VGVzdENFUmVhY3Rpb25zKj4odm0sIHZhbHVlKSkKKyAgICBpZiAoYXV0byogd3JhcHBlciA9IGpz
RHluYW1pY0Nhc3Q8SlNUZXN0Q0VSZWFjdGlvbnMqPih2bSwgdmFsdWUpKQogICAgICAgICByZXR1
cm4gJndyYXBwZXItPndyYXBwZWQoKTsKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDRVJlYWN0
aW9uc1N0cmluZ2lmaWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyLmNwcAppbmRleCBiY2JlODdlNTUyZGJi
NzU1OGU5OTA2OWRhYjY1NTVlNjUwZTkxN2RiLi5kMTc1MzljYzVjYWViYmMxNDFmOTJhNDBkYmU4
Yjg0YWY2MjVhM2ZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENFUmVhY3Rpb25zU3RyaW5naWZp
ZXIuY3BwCkBAIC0xNDUsMTkgKzE0NSwxOSBAQCB2b2lkIEpTVGVzdENFUmVhY3Rpb25zU3RyaW5n
aWZpZXI6OmRlc3Ryb3koSlNDOjpKU0NlbGwqIGNlbGwpCiAKIHRlbXBsYXRlPD4gaW5saW5lIEpT
VGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXIqIElETEF0dHJpYnV0ZTxKU1Rlc3RDRVJlYWN0aW9u
c1N0cmluZ2lmaWVyPjo6Y2FzdChFeGVjU3RhdGUmIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUpCiB7Ci0gICAgcmV0dXJuIGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdENFUmVhY3Rpb25z
U3RyaW5naWZpZXIqPihzdGF0ZS52bSgpLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7Cisg
ICAgcmV0dXJuIGpzRHluYW1pY0Nhc3Q8SlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllcio+KHN0
YXRlLnZtKCksIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKIH0KIAogdGVtcGxhdGU8PiBp
bmxpbmUgSlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllciogSURMT3BlcmF0aW9uPEpTVGVzdENF
UmVhY3Rpb25zU3RyaW5naWZpZXI+OjpjYXN0KEV4ZWNTdGF0ZSYgc3RhdGUpCiB7Ci0gICAgcmV0
dXJuIGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXIqPihzdGF0
ZS52bSgpLCBzdGF0ZS50aGlzVmFsdWUoKSk7CisgICAgcmV0dXJuIGpzRHluYW1pY0Nhc3Q8SlNU
ZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllcio+KHN0YXRlLnZtKCksIHN0YXRlLnRoaXNWYWx1ZSgp
KTsKIH0KIAogRW5jb2RlZEpTVmFsdWUganNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllckNvbnN0
cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKQogewogICAgIFZNJiB2bSA9IHN0YXRlLT52bSgpOwogICAgIGF1dG8gdGhyb3dTY29w
ZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHlu
YW1pY0Rvd25jYXN0PEpTVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJQcm90b3R5cGUqPih2bSwg
SlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOworICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHlu
YW1pY0Nhc3Q8SlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllclByb3RvdHlwZSo+KHZtLCBKU1Zh
bHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFwcm90b3R5cGUpKQog
ICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihzdGF0ZSwgdGhyb3dTY29wZSk7CiAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyOjpnZXRD
b25zdHJ1Y3RvcihzdGF0ZS0+dm0oKSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOwpAQCAt
MTY3LDcgKzE2Nyw3IEBAIGJvb2wgc2V0SlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllckNvbnN0
cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlCiB7CiAgICAgVk0mIHZtID0g
c3RhdGUtPnZtKCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7Ci0gICAgYXV0byogcHJvdG90eXBlID0ganNEeW5hbWljRG93bmNhc3Q8SlNUZXN0Q0VSZWFj
dGlvbnNTdHJpbmdpZmllclByb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVl
KSk7CisgICAgYXV0byogcHJvdG90eXBlID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RDRVJlYWN0aW9u
c1N0cmluZ2lmaWVyUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsK
ICAgICBpZiAoVU5MSUtFTFkoIXByb3RvdHlwZSkpIHsKICAgICAgICAgdGhyb3dWTVR5cGVFcnJv
cihzdGF0ZSwgdGhyb3dTY29wZSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTI3NSw3ICsy
NzUsNyBAQCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSogc3RhdGUsIEpTRE9NR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRlc3RDRQogCiBUZXN0Q0VSZWFjdGlvbnNTdHJpbmdp
ZmllciogSlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllcjo6dG9XcmFwcGVkKEpTQzo6Vk0mIHZt
LCBKU0M6OkpTVmFsdWUgdmFsdWUpCiB7Ci0gICAgaWYgKGF1dG8qIHdyYXBwZXIgPSBqc0R5bmFt
aWNEb3duY2FzdDxKU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyKj4odm0sIHZhbHVlKSkKKyAg
ICBpZiAoYXV0byogd3JhcHBlciA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0Q0VSZWFjdGlvbnNTdHJp
bmdpZmllcio+KHZtLCB2YWx1ZSkpCiAgICAgICAgIHJldHVybiAmd3JhcHBlci0+d3JhcHBlZCgp
OwogICAgIHJldHVybiBudWxscHRyOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENhbGxUcmFjZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENhbGxUcmFjZXIuY3BwCmluZGV4IDA2
YTY0ZjQ4MjJiOGI4YjExYjg4M2UzMDMyZjE0M2YyMDg2YzYxNGEuLmM4YTFjODA3YTUzMDkyOGEz
MDIyOWY2MjE4ZmVlMzhhZjA4ZWI1YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDYWxsVHJhY2VyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2FsbFRyYWNlci5jcHAKQEAgLTE4
NiwxOSArMTg2LDE5IEBAIHZvaWQgSlNUZXN0Q2FsbFRyYWNlcjo6ZGVzdHJveShKU0M6OkpTQ2Vs
bCogY2VsbCkKIAogdGVtcGxhdGU8PiBpbmxpbmUgSlNUZXN0Q2FsbFRyYWNlciogSURMQXR0cmli
dXRlPEpTVGVzdENhbGxUcmFjZXI+OjpjYXN0KEV4ZWNTdGF0ZSYgc3RhdGUsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSkKIHsKLSAgICByZXR1cm4ganNEeW5hbWljRG93bmNhc3Q8SlNUZXN0Q2Fs
bFRyYWNlcio+KHN0YXRlLnZtKCksIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKKyAgICBy
ZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3RDYWxsVHJhY2VyKj4oc3RhdGUudm0oKSwgSlNWYWx1
ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBKU1Rlc3RDYWxs
VHJhY2VyKiBJRExPcGVyYXRpb248SlNUZXN0Q2FsbFRyYWNlcj46OmNhc3QoRXhlY1N0YXRlJiBz
dGF0ZSkKIHsKLSAgICByZXR1cm4ganNEeW5hbWljRG93bmNhc3Q8SlNUZXN0Q2FsbFRyYWNlcio+
KHN0YXRlLnZtKCksIHN0YXRlLnRoaXNWYWx1ZSgpKTsKKyAgICByZXR1cm4ganNEeW5hbWljQ2Fz
dDxKU1Rlc3RDYWxsVHJhY2VyKj4oc3RhdGUudm0oKSwgc3RhdGUudGhpc1ZhbHVlKCkpOwogfQog
CiBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RDYWxsVHJhY2VyQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBz
dGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVk0m
IHZtID0gc3RhdGUtPnZtKCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7Ci0gICAgYXV0byogcHJvdG90eXBlID0ganNEeW5hbWljRG93bmNhc3Q8SlNUZXN0
Q2FsbFRyYWNlclByb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7Cisg
ICAgYXV0byogcHJvdG90eXBlID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RDYWxsVHJhY2VyUHJvdG90
eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFko
IXByb3RvdHlwZSkpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKHN0YXRlLCB0aHJv
d1Njb3BlKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdENhbGxUcmFjZXI6Omdl
dENvbnN0cnVjdG9yKHN0YXRlLT52bSgpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CkBA
IC0yMDgsNyArMjA4LDcgQEAgYm9vbCBzZXRKU1Rlc3RDYWxsVHJhY2VyQ29uc3RydWN0b3IoRXhl
Y1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLAogewogICAgIFZNJiB2bSA9
IHN0YXRlLT52bSgpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwotICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdENhbGxU
cmFjZXJQcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOworICAgIGF1
dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0Q2FsbFRyYWNlclByb3RvdHlwZSo+
KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFwcm90
b3R5cGUpKSB7CiAgICAgICAgIHRocm93Vk1UeXBlRXJyb3Ioc3RhdGUsIHRocm93U2NvcGUpOwog
ICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC01NzQsNyArNTc0LDcgQEAgSlNDOjpKU1ZhbHVlIHRv
SlMoSlNDOjpFeGVjU3RhdGUqIHN0YXRlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBUZXN0Q2EKIAogVGVzdENhbGxUcmFjZXIqIEpTVGVzdENhbGxUcmFjZXI6OnRvV3JhcHBlZChK
U0M6OlZNJiB2bSwgSlNDOjpKU1ZhbHVlIHZhbHVlKQogewotICAgIGlmIChhdXRvKiB3cmFwcGVy
ID0ganNEeW5hbWljRG93bmNhc3Q8SlNUZXN0Q2FsbFRyYWNlcio+KHZtLCB2YWx1ZSkpCisgICAg
aWYgKGF1dG8qIHdyYXBwZXIgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdENhbGxUcmFjZXIqPih2bSwg
dmFsdWUpKQogICAgICAgICByZXR1cm4gJndyYXBwZXItPndyYXBwZWQoKTsKICAgICByZXR1cm4g
bnVsbHB0cjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2xhc3NXaXRoSlNCdWlsdGlu
Q29uc3RydWN0b3IuY3BwCmluZGV4IDg2MDA1MTQ2OWVkNjc5OTg4OTdkYzNjNjQzNWM2ZjA3ZTQ1
NmFlODAuLjE1ZTJlNDAwNWU1ZTVkOTQ0M2IzZTY5YWIwNjA4ZmJmNjQyMzYzNjggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDbGFzc1dp
dGhKU0J1aWx0aW5Db25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yLmNwcApA
QCAtMTQxLDcgKzE0MSw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdENsYXNzV2l0aEpTQnVpbHRp
bkNvbnN0cnVjdG9yQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwKIHsKICAgICBWTSYgdm0g
PSBzdGF0ZS0+dm0oKTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTsKLSAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNEb3duY2FzdDxKU1Rlc3RDbGFz
c1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3RvclByb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUo
dGhpc1ZhbHVlKSk7CisgICAgYXV0byogcHJvdG90eXBlID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RD
bGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3RvclByb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNv
ZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFwcm90b3R5cGUpKQogICAgICAgICBy
ZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihzdGF0ZSwgdGhyb3dTY29wZSk7CiAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShKU1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3Rvcjo6Z2V0Q29u
c3RydWN0b3Ioc3RhdGUtPnZtKCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKQEAgLTE1
MSw3ICsxNTEsNyBAQCBib29sIHNldEpTVGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9y
Q29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZAogewogICAgIFZNJiB2bSA9IHN0
YXRlLT52bSgpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0p
OwotICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdENsYXNzV2l0
aEpTQnVpbHRpbkNvbnN0cnVjdG9yUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlz
VmFsdWUpKTsKKyAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdENsYXNz
V2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0
aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIXByb3RvdHlwZSkpIHsKICAgICAgICAgdGhy
b3dWTVR5cGVFcnJvcihzdGF0ZSwgdGhyb3dTY29wZSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsK
QEAgLTIxNCw3ICsyMTQsNyBAQCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSogc3Rh
dGUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRlc3RDbAogCiBUZXN0Q2xhc3NX
aXRoSlNCdWlsdGluQ29uc3RydWN0b3IqIEpTVGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVj
dG9yOjp0b1dyYXBwZWQoSlNDOjpWTSYgdm0sIEpTQzo6SlNWYWx1ZSB2YWx1ZSkKIHsKLSAgICBp
ZiAoYXV0byogd3JhcHBlciA9IGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdENsYXNzV2l0aEpTQnVp
bHRpbkNvbnN0cnVjdG9yKj4odm0sIHZhbHVlKSkKKyAgICBpZiAoYXV0byogd3JhcHBlciA9IGpz
RHluYW1pY0Nhc3Q8SlNUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3IqPih2bSwgdmFs
dWUpKQogICAgICAgICByZXR1cm4gJndyYXBwZXItPndyYXBwZWQoKTsKICAgICByZXR1cm4gbnVs
bHB0cjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RDdXN0b21Db25zdHJ1Y3RvcldpdGhOb0ludGVyZmFjZU9iamVjdC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q3VzdG9tQ29uc3Ry
dWN0b3JXaXRoTm9JbnRlcmZhY2VPYmplY3QuY3BwCmluZGV4IGJkZjkyZTM3YTAxMzdlMWI4NDk1
MWM2MmFmNGFhMGQ2Y2JhM2ZiYmQuLjMxYTBjMTlkMjAzMmM5NGFkODhiM2EyNTc0NDFhNWRjOWEy
YmRjM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RDdXN0b21Db25zdHJ1Y3RvcldpdGhOb0ludGVyZmFjZU9iamVjdC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1c3RvbUNvbnN0
cnVjdG9yV2l0aE5vSW50ZXJmYWNlT2JqZWN0LmNwcApAQCAtMTM2LDcgKzEzNiw3IEBAIEVuY29k
ZWRKU1ZhbHVlIGpzVGVzdEN1c3RvbUNvbnN0cnVjdG9yV2l0aE5vSW50ZXJmYWNlT2JqZWN0Q29u
c3RydWN0b3IoRXhlY1N0YXRlCiB7CiAgICAgVk0mIHZtID0gc3RhdGUtPnZtKCk7CiAgICAgYXV0
byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgYXV0byogcHJvdG90
eXBlID0ganNEeW5hbWljRG93bmNhc3Q8SlNUZXN0Q3VzdG9tQ29uc3RydWN0b3JXaXRoTm9JbnRl
cmZhY2VPYmplY3RQcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwor
ICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0Q3VzdG9tQ29uc3RydWN0
b3JXaXRoTm9JbnRlcmZhY2VPYmplY3RQcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRo
aXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghcHJvdG90eXBlKSkKICAgICAgICAgcmV0dXJu
IHRocm93Vk1UeXBlRXJyb3Ioc3RhdGUsIHRocm93U2NvcGUpOwogICAgIEpTVmFsdWUgY29uc3Ry
dWN0b3IgPSBKU1Rlc3RDdXN0b21Db25zdHJ1Y3RvcldpdGhOb0ludGVyZmFjZU9iamVjdENvbnN0
cnVjdG9yOjpjcmVhdGUoc3RhdGUtPnZtKCksIEpTVGVzdEN1c3RvbUNvbnN0cnVjdG9yV2l0aE5v
SW50ZXJmYWNlT2JqZWN0Q29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShzdGF0ZS0+dm0oKSwg
KnByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCktPm9i
amVjdFByb3RvdHlwZSgpKSwgKmpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KHByb3RvdHlwZS0+
Z2xvYmFsT2JqZWN0KCkpKTsKQEAgLTE0OSw3ICsxNDksNyBAQCBib29sIHNldEpTVGVzdEN1c3Rv
bUNvbnN0cnVjdG9yV2l0aE5vSW50ZXJmYWNlT2JqZWN0Q29uc3RydWN0b3IoRXhlY1N0YXRlKiBz
dGF0ZQogewogICAgIFZNJiB2bSA9IHN0YXRlLT52bSgpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1p
Y0Rvd25jYXN0PEpTVGVzdEN1c3RvbUNvbnN0cnVjdG9yV2l0aE5vSW50ZXJmYWNlT2JqZWN0UHJv
dG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKKyAgICBhdXRvKiBwcm90
b3R5cGUgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdEN1c3RvbUNvbnN0cnVjdG9yV2l0aE5vSW50ZXJm
YWNlT2JqZWN0UHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAg
ICBpZiAoVU5MSUtFTFkoIXByb3RvdHlwZSkpIHsKICAgICAgICAgdGhyb3dWTVR5cGVFcnJvcihz
dGF0ZSwgdGhyb3dTY29wZSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTIxMiw3ICsyMTIs
NyBAQCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSogc3RhdGUsIEpTRE9NR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIFRlc3RDdQogCiBUZXN0Q3VzdG9tQ29uc3RydWN0b3JXaXRo
Tm9JbnRlcmZhY2VPYmplY3QqIEpTVGVzdEN1c3RvbUNvbnN0cnVjdG9yV2l0aE5vSW50ZXJmYWNl
T2JqZWN0Ojp0b1dyYXBwZWQoSlNDOjpWTSYgdm0sIEpTQzo6SlNWYWx1ZSB2YWx1ZSkKIHsKLSAg
ICBpZiAoYXV0byogd3JhcHBlciA9IGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdEN1c3RvbUNvbnN0
cnVjdG9yV2l0aE5vSW50ZXJmYWNlT2JqZWN0Kj4odm0sIHZhbHVlKSkKKyAgICBpZiAoYXV0byog
d3JhcHBlciA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0Q3VzdG9tQ29uc3RydWN0b3JXaXRoTm9JbnRl
cmZhY2VPYmplY3QqPih2bSwgdmFsdWUpKQogICAgICAgICByZXR1cm4gJndyYXBwZXItPndyYXBw
ZWQoKTsKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RET01KSVQuY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdERPTUpJVC5jcHAKaW5kZXggNzBiNjRm
N2JmYWFlYWNjZDMyZWU5ODI0ODg0YzhlYjc2NTJiMzRlNC4uNmU1ODVmNDllMTFjNWM0MzAzMTIz
Y2JmZTRhNzRhOWM5YmNiZmI0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdERPTUpJVC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdERPTUpJVC5jcHAKQEAgLTU4OSwxOSArNTg5LDE5
IEBAIEpTVmFsdWUgSlNUZXN0RE9NSklUOjpnZXRDb25zdHJ1Y3RvcihWTSYgdm0sIGNvbnN0IEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiAKIHRlbXBsYXRlPD4gaW5saW5lIEpTVGVzdERP
TUpJVCogSURMQXR0cmlidXRlPEpTVGVzdERPTUpJVD46OmNhc3QoRXhlY1N0YXRlJiBzdGF0ZSwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlKQogewotICAgIHJldHVybiBqc0R5bmFtaWNEb3duY2Fz
dDxKU1Rlc3RET01KSVQqPihzdGF0ZS52bSgpLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7
CisgICAgcmV0dXJuIGpzRHluYW1pY0Nhc3Q8SlNUZXN0RE9NSklUKj4oc3RhdGUudm0oKSwgSlNW
YWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBKU1Rlc3RE
T01KSVQqIElETE9wZXJhdGlvbjxKU1Rlc3RET01KSVQ+OjpjYXN0KEV4ZWNTdGF0ZSYgc3RhdGUp
CiB7Ci0gICAgcmV0dXJuIGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdERPTUpJVCo+KHN0YXRlLnZt
KCksIHN0YXRlLnRoaXNWYWx1ZSgpKTsKKyAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3RE
T01KSVQqPihzdGF0ZS52bSgpLCBzdGF0ZS50aGlzVmFsdWUoKSk7CiB9CiAKIEVuY29kZWRKU1Zh
bHVlIGpzVGVzdERPTUpJVENvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFZNJiB2bSA9IHN0YXRlLT52bSgp
OwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAgIGF1
dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdERPTUpJVFByb3RvdHlwZSo+
KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CisgICAgYXV0byogcHJvdG90eXBlID0g
anNEeW5hbWljQ2FzdDxKU1Rlc3RET01KSVRQcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2Rl
KHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghcHJvdG90eXBlKSkKICAgICAgICAgcmV0
dXJuIHRocm93Vk1UeXBlRXJyb3Ioc3RhdGUsIHRocm93U2NvcGUpOwogICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoSlNUZXN0RE9NSklUOjpnZXRDb25zdHJ1Y3RvcihzdGF0ZS0+dm0oKSwgcHJv
dG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOwpAQCAtNjExLDcgKzYxMSw3IEBAIGJvb2wgc2V0SlNU
ZXN0RE9NSklUQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBFbmNvCiB7CiAgICAgVk0mIHZtID0gc3RhdGUtPnZtKCk7CiAgICAgYXV0byB0aHJv
d1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgYXV0byogcHJvdG90eXBlID0g
anNEeW5hbWljRG93bmNhc3Q8SlNUZXN0RE9NSklUUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRl
Y29kZSh0aGlzVmFsdWUpKTsKKyAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNDYXN0PEpT
VGVzdERPTUpJVFByb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAg
ICAgaWYgKFVOTElLRUxZKCFwcm90b3R5cGUpKSB7CiAgICAgICAgIHRocm93Vk1UeXBlRXJyb3Io
c3RhdGUsIHRocm93U2NvcGUpOwogICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RW5hYmxlZEJ5U2V0
dGluZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
RW5hYmxlZEJ5U2V0dGluZy5jcHAKaW5kZXggMzU0ODEzYjc2NGFmODQ5Y2Y2NzA2ODc0NTcwZTRk
ODVjMTk3NjQ1YS4uYTJlMWFjNzA0ZDk4YTgxZTZkMjQzNDQ1NTI3MWJhMTg5OTBmZWI2OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEVu
YWJsZWRCeVNldHRpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RFbmFibGVkQnlTZXR0aW5nLmNwcApAQCAtMTgxLDE5ICsxODEsMTkgQEAg
dm9pZCBKU1Rlc3RFbmFibGVkQnlTZXR0aW5nOjpkZXN0cm95KEpTQzo6SlNDZWxsKiBjZWxsKQog
CiB0ZW1wbGF0ZTw+IGlubGluZSBKU1Rlc3RFbmFibGVkQnlTZXR0aW5nKiBJRExBdHRyaWJ1dGU8
SlNUZXN0RW5hYmxlZEJ5U2V0dGluZz46OmNhc3QoRXhlY1N0YXRlJiBzdGF0ZSwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlKQogewotICAgIHJldHVybiBqc0R5bmFtaWNEb3duY2FzdDxKU1Rlc3RF
bmFibGVkQnlTZXR0aW5nKj4oc3RhdGUudm0oKSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkp
OworICAgIHJldHVybiBqc0R5bmFtaWNDYXN0PEpTVGVzdEVuYWJsZWRCeVNldHRpbmcqPihzdGF0
ZS52bSgpLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiB9CiAKIHRlbXBsYXRlPD4gaW5s
aW5lIEpTVGVzdEVuYWJsZWRCeVNldHRpbmcqIElETE9wZXJhdGlvbjxKU1Rlc3RFbmFibGVkQnlT
ZXR0aW5nPjo6Y2FzdChFeGVjU3RhdGUmIHN0YXRlKQogewotICAgIHJldHVybiBqc0R5bmFtaWNE
b3duY2FzdDxKU1Rlc3RFbmFibGVkQnlTZXR0aW5nKj4oc3RhdGUudm0oKSwgc3RhdGUudGhpc1Zh
bHVlKCkpOworICAgIHJldHVybiBqc0R5bmFtaWNDYXN0PEpTVGVzdEVuYWJsZWRCeVNldHRpbmcq
PihzdGF0ZS52bSgpLCBzdGF0ZS50aGlzVmFsdWUoKSk7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIGpz
VGVzdEVuYWJsZWRCeVNldHRpbmdDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBWTSYgdm0gPSBzdGF0ZS0+
dm0oKTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAg
ICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNEb3duY2FzdDxKU1Rlc3RFbmFibGVkQnlTZXR0
aW5nUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKKyAgICBhdXRv
KiBwcm90b3R5cGUgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdEVuYWJsZWRCeVNldHRpbmdQcm90b3R5
cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSgh
cHJvdG90eXBlKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3Ioc3RhdGUsIHRocm93
U2NvcGUpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0RW5hYmxlZEJ5U2V0dGlu
Zzo6Z2V0Q29uc3RydWN0b3Ioc3RhdGUtPnZtKCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkp
KTsKQEAgLTIwMyw3ICsyMDMsNyBAQCBib29sIHNldEpTVGVzdEVuYWJsZWRCeVNldHRpbmdDb25z
dHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVgogewogICAgIFZN
JiB2bSA9IHN0YXRlLT52bSgpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwotICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Rvd25jYXN0PEpTVGVz
dEVuYWJsZWRCeVNldHRpbmdQcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1
ZSkpOworICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0RW5hYmxlZEJ5
U2V0dGluZ1Byb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAg
aWYgKFVOTElLRUxZKCFwcm90b3R5cGUpKSB7CiAgICAgICAgIHRocm93Vk1UeXBlRXJyb3Ioc3Rh
dGUsIHRocm93U2NvcGUpOwogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0zNDgsNyArMzQ4LDcg
QEAgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqIHN0YXRlLCBKU0RPTUdsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBUZXN0RW4KIAogVGVzdEVuYWJsZWRCeVNldHRpbmcqIEpTVGVz
dEVuYWJsZWRCeVNldHRpbmc6OnRvV3JhcHBlZChKU0M6OlZNJiB2bSwgSlNDOjpKU1ZhbHVlIHZh
bHVlKQogewotICAgIGlmIChhdXRvKiB3cmFwcGVyID0ganNEeW5hbWljRG93bmNhc3Q8SlNUZXN0
RW5hYmxlZEJ5U2V0dGluZyo+KHZtLCB2YWx1ZSkpCisgICAgaWYgKGF1dG8qIHdyYXBwZXIgPSBq
c0R5bmFtaWNDYXN0PEpTVGVzdEVuYWJsZWRCeVNldHRpbmcqPih2bSwgdmFsdWUpKQogICAgICAg
ICByZXR1cm4gJndyYXBwZXItPndyYXBwZWQoKTsKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RF
dmVudENvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RFdmVudENvbnN0cnVjdG9yLmNwcAppbmRleCAzNjNlZmFkZjFkMDdmOTgyMTAw
NWQ2YjczYjMyZWJjZWFlZTg2NWI5Li4zNzUyMjhjYjU0ODUxNDhiZTYxYzJhMjE1MGY1ZmQyNzMy
M2QyN2FlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50Q29uc3RydWN0b3IuY3BwCkBAIC0yMzIsMTQg
KzIzMiwxNCBAQCBKU1ZhbHVlIEpTVGVzdEV2ZW50Q29uc3RydWN0b3I6OmdldENvbnN0cnVjdG9y
KFZNJiB2bSwgY29uc3QgSlNHbG9iYWxPYmplY3QqIGdsbwogCiB0ZW1wbGF0ZTw+IGlubGluZSBK
U1Rlc3RFdmVudENvbnN0cnVjdG9yKiBJRExBdHRyaWJ1dGU8SlNUZXN0RXZlbnRDb25zdHJ1Y3Rv
cj46OmNhc3QoRXhlY1N0YXRlJiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlKQogewot
ICAgIHJldHVybiBqc0R5bmFtaWNEb3duY2FzdDxKU1Rlc3RFdmVudENvbnN0cnVjdG9yKj4oc3Rh
dGUudm0oKSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOworICAgIHJldHVybiBqc0R5bmFt
aWNDYXN0PEpTVGVzdEV2ZW50Q29uc3RydWN0b3IqPihzdGF0ZS52bSgpLCBKU1ZhbHVlOjpkZWNv
ZGUodGhpc1ZhbHVlKSk7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIGpzVGVzdEV2ZW50Q29uc3RydWN0
b3JDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkKIHsKICAgICBWTSYgdm0gPSBzdGF0ZS0+dm0oKTsKICAgICBhdXRvIHRo
cm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAgICBhdXRvKiBwcm90b3R5cGUg
PSBqc0R5bmFtaWNEb3duY2FzdDxKU1Rlc3RFdmVudENvbnN0cnVjdG9yUHJvdG90eXBlKj4odm0s
IEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKKyAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5
bmFtaWNDYXN0PEpTVGVzdEV2ZW50Q29uc3RydWN0b3JQcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6
ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghcHJvdG90eXBlKSkKICAgICAg
ICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3Ioc3RhdGUsIHRocm93U2NvcGUpOwogICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0b3Io
c3RhdGUtPnZtKCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKQEAgLTI0OSw3ICsyNDks
NyBAQCBib29sIHNldEpTVGVzdEV2ZW50Q29uc3RydWN0b3JDb25zdHJ1Y3RvcihFeGVjU3RhdGUq
IHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVgogewogICAgIFZNJiB2bSA9IHN0YXRlLT52bSgp
OwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAgIGF1
dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdEV2ZW50Q29uc3RydWN0b3JQ
cm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOworICAgIGF1dG8qIHBy
b3RvdHlwZSA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0RXZlbnRDb25zdHJ1Y3RvclByb3RvdHlwZSo+
KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFwcm90
b3R5cGUpKSB7CiAgICAgICAgIHRocm93Vk1UeXBlRXJyb3Ioc3RhdGUsIHRocm93U2NvcGUpOwog
ICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRUYXJnZXQuY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0LmNwcAppbmRleCA3NjZk
YTU2NTBhOGExMWU5MjgwODkxYjkyODY0ZjAyOWFhNDk5ZjdhLi43OWFmNDlkMzgwZThiNzExMTk5
NDJhOWZkNTFlMzc3NmVlZjg4MDZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRUYXJnZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudFRhcmdldC5jcHAKQEAgLTIw
MywxNCArMjAzLDE0IEBAIHZvaWQgSlNUZXN0RXZlbnRUYXJnZXQ6OmdldE93blByb3BlcnR5TmFt
ZXMoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBzdGF0ZSwKIAogdGVtcGxhdGU8PiBpbmxp
bmUgSlNUZXN0RXZlbnRUYXJnZXQqIElETE9wZXJhdGlvbjxKU1Rlc3RFdmVudFRhcmdldD46OmNh
c3QoRXhlY1N0YXRlJiBzdGF0ZSkKIHsKLSAgICByZXR1cm4ganNEeW5hbWljRG93bmNhc3Q8SlNU
ZXN0RXZlbnRUYXJnZXQqPihzdGF0ZS52bSgpLCBzdGF0ZS50aGlzVmFsdWUoKSk7CisgICAgcmV0
dXJuIGpzRHluYW1pY0Nhc3Q8SlNUZXN0RXZlbnRUYXJnZXQqPihzdGF0ZS52bSgpLCBzdGF0ZS50
aGlzVmFsdWUoKSk7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIGpzVGVzdEV2ZW50VGFyZ2V0Q29uc3Ry
dWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpCiB7CiAgICAgVk0mIHZtID0gc3RhdGUtPnZtKCk7CiAgICAgYXV0byB0aHJvd1Njb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgYXV0byogcHJvdG90eXBlID0ganNEeW5h
bWljRG93bmNhc3Q8SlNUZXN0RXZlbnRUYXJnZXRQcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVj
b2RlKHRoaXNWYWx1ZSkpOworICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Nhc3Q8SlNU
ZXN0RXZlbnRUYXJnZXRQcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkp
OwogICAgIGlmIChVTkxJS0VMWSghcHJvdG90eXBlKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1U
eXBlRXJyb3Ioc3RhdGUsIHRocm93U2NvcGUpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
SlNUZXN0RXZlbnRUYXJnZXQ6OmdldENvbnN0cnVjdG9yKHN0YXRlLT52bSgpLCBwcm90b3R5cGUt
Pmdsb2JhbE9iamVjdCgpKSk7CkBAIC0yMjAsNyArMjIwLDcgQEAgYm9vbCBzZXRKU1Rlc3RFdmVu
dFRhcmdldENvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwKIHsKICAgICBWTSYgdm0gPSBzdGF0ZS0+dm0oKTsKICAgICBhdXRvIHRocm93U2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFt
aWNEb3duY2FzdDxKU1Rlc3RFdmVudFRhcmdldFByb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNv
ZGUodGhpc1ZhbHVlKSk7CisgICAgYXV0byogcHJvdG90eXBlID0ganNEeW5hbWljQ2FzdDxKU1Rl
c3RFdmVudFRhcmdldFByb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7
CiAgICAgaWYgKFVOTElLRUxZKCFwcm90b3R5cGUpKSB7CiAgICAgICAgIHRocm93Vk1UeXBlRXJy
b3Ioc3RhdGUsIHRocm93U2NvcGUpOwogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0yODYsNyAr
Mjg2LDcgQEAgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqIHN0YXRlLCBKU0RPTUds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBUZXN0RXYKIAogVGVzdEV2ZW50VGFyZ2V0KiBKU1Rl
c3RFdmVudFRhcmdldDo6dG9XcmFwcGVkKEpTQzo6Vk0mIHZtLCBKU0M6OkpTVmFsdWUgdmFsdWUp
CiB7Ci0gICAgaWYgKGF1dG8qIHdyYXBwZXIgPSBqc0R5bmFtaWNEb3duY2FzdDxKU1Rlc3RFdmVu
dFRhcmdldCo+KHZtLCB2YWx1ZSkpCisgICAgaWYgKGF1dG8qIHdyYXBwZXIgPSBqc0R5bmFtaWND
YXN0PEpTVGVzdEV2ZW50VGFyZ2V0Kj4odm0sIHZhbHVlKSkKICAgICAgICAgcmV0dXJuICZ3cmFw
cGVyLT53cmFwcGVkKCk7CiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXhjZXB0aW9uLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFeGNlcHRpb24u
Y3BwCmluZGV4IGNmZTRhNDAxNjE1NGFiMzRlZGIwYTY3OTQxNTYxNzY3NmY0YzQzMzcuLmVmZTMx
NzRjNDU0OWI4ZDcyOGUxYjhhOWZjODA4MDVkODY3N2E4ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFeGNlcHRpb24uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFeGNlcHRpb24u
Y3BwCkBAIC0xMzcsMTQgKzEzNywxNCBAQCB2b2lkIEpTVGVzdEV4Y2VwdGlvbjo6ZGVzdHJveShK
U0M6OkpTQ2VsbCogY2VsbCkKIAogdGVtcGxhdGU8PiBpbmxpbmUgSlNUZXN0RXhjZXB0aW9uKiBJ
RExBdHRyaWJ1dGU8SlNUZXN0RXhjZXB0aW9uPjo6Y2FzdChFeGVjU3RhdGUmIHN0YXRlLCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUpCiB7Ci0gICAgcmV0dXJuIGpzRHluYW1pY0Rvd25jYXN0PEpT
VGVzdEV4Y2VwdGlvbio+KHN0YXRlLnZtKCksIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsK
KyAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3RFeGNlcHRpb24qPihzdGF0ZS52bSgpLCBK
U1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIGpzVGVzdEV4
Y2VwdGlvbkNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFZNJiB2bSA9IHN0YXRlLT52bSgpOwogICAgIGF1
dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAgIGF1dG8qIHByb3Rv
dHlwZSA9IGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdEV4Y2VwdGlvblByb3RvdHlwZSo+KHZtLCBK
U1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CisgICAgYXV0byogcHJvdG90eXBlID0ganNEeW5h
bWljQ2FzdDxKU1Rlc3RFeGNlcHRpb25Qcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRo
aXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghcHJvdG90eXBlKSkKICAgICAgICAgcmV0dXJu
IHRocm93Vk1UeXBlRXJyb3Ioc3RhdGUsIHRocm93U2NvcGUpOwogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoSlNUZXN0RXhjZXB0aW9uOjpnZXRDb25zdHJ1Y3RvcihzdGF0ZS0+dm0oKSwgcHJv
dG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOwpAQCAtMTU0LDcgKzE1NCw3IEBAIGJvb2wgc2V0SlNU
ZXN0RXhjZXB0aW9uQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBFCiB7CiAgICAgVk0mIHZtID0gc3RhdGUtPnZtKCk7CiAgICAgYXV0byB0aHJv
d1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgYXV0byogcHJvdG90eXBlID0g
anNEeW5hbWljRG93bmNhc3Q8SlNUZXN0RXhjZXB0aW9uUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6
OmRlY29kZSh0aGlzVmFsdWUpKTsKKyAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNDYXN0
PEpTVGVzdEV4Y2VwdGlvblByb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVl
KSk7CiAgICAgaWYgKFVOTElLRUxZKCFwcm90b3R5cGUpKSB7CiAgICAgICAgIHRocm93Vk1UeXBl
RXJyb3Ioc3RhdGUsIHRocm93U2NvcGUpOwogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0yMzEs
NyArMjMxLDcgQEAgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqIHN0YXRlLCBKU0RP
TUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBUZXN0RXgKIAogVGVzdEV4Y2VwdGlvbiogSlNU
ZXN0RXhjZXB0aW9uOjp0b1dyYXBwZWQoSlNDOjpWTSYgdm0sIEpTQzo6SlNWYWx1ZSB2YWx1ZSkK
IHsKLSAgICBpZiAoYXV0byogd3JhcHBlciA9IGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdEV4Y2Vw
dGlvbio+KHZtLCB2YWx1ZSkpCisgICAgaWYgKGF1dG8qIHdyYXBwZXIgPSBqc0R5bmFtaWNDYXN0
PEpTVGVzdEV4Y2VwdGlvbio+KHZtLCB2YWx1ZSkpCiAgICAgICAgIHJldHVybiAmd3JhcHBlci0+
d3JhcHBlZCgpOwogICAgIHJldHVybiBudWxscHRyOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdlbmVy
YXRlSXNSZWFjaGFibGUuY3BwCmluZGV4IGNkNGVhNWFkMmE5MDAxNDg2NzhiY2NjNTQzOTU1NzY5
MzA2Y2FjMjYuLmY2NGM1ODVhZjE5MzNjZDNlNGRjNWI2NGVjYWZkYTAwN2M3Y2Q0NjEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RHZW5l
cmF0ZUlzUmVhY2hhYmxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZS5jcHAKQEAgLTE0MywxNCArMTQzLDE0
IEBAIHZvaWQgSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZTo6ZGVzdHJveShKU0M6OkpTQ2VsbCog
Y2VsbCkKIAogdGVtcGxhdGU8PiBpbmxpbmUgSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZSogSURM
QXR0cmlidXRlPEpTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGU+OjpjYXN0KEV4ZWNTdGF0ZSYgc3Rh
dGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSkKIHsKLSAgICByZXR1cm4ganNEeW5hbWljRG93
bmNhc3Q8SlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZSo+KHN0YXRlLnZtKCksIEpTVmFsdWU6OmRl
Y29kZSh0aGlzVmFsdWUpKTsKKyAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3RHZW5lcmF0
ZUlzUmVhY2hhYmxlKj4oc3RhdGUudm0oKSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwog
fQogCiBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlQ29uc3RydWN0b3Io
RXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
CiB7CiAgICAgVk0mIHZtID0gc3RhdGUtPnZtKCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgYXV0byogcHJvdG90eXBlID0ganNEeW5hbWljRG93
bmNhc3Q8SlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZVByb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpk
ZWNvZGUodGhpc1ZhbHVlKSk7CisgICAgYXV0byogcHJvdG90eXBlID0ganNEeW5hbWljQ2FzdDxK
U1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0
aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIXByb3RvdHlwZSkpCiAgICAgICAgIHJldHVy
biB0aHJvd1ZNVHlwZUVycm9yKHN0YXRlLCB0aHJvd1Njb3BlKTsKICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKEpTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGU6OmdldENvbnN0cnVjdG9yKHN0YXRl
LT52bSgpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CkBAIC0xNjAsNyArMTYwLDcgQEAg
Ym9vbCBzZXRKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBz
dGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGgKIHsKICAgICBWTSYgdm0gPSBzdGF0ZS0+dm0oKTsKICAg
ICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAgICBhdXRvKiBw
cm90b3R5cGUgPSBqc0R5bmFtaWNEb3duY2FzdDxKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlUHJv
dG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKKyAgICBhdXRvKiBwcm90
b3R5cGUgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGVQcm90b3R5cGUq
Pih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghcHJv
dG90eXBlKSkgewogICAgICAgICB0aHJvd1ZNVHlwZUVycm9yKHN0YXRlLCB0aHJvd1Njb3BlKTsK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMjM3LDcgKzIzNyw3IEBAIEpTQzo6SlNWYWx1ZSB0
b0pTKEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgVGVzdEdlCiAKIFRlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlKiBKU1Rlc3RHZW5lcmF0ZUlzUmVh
Y2hhYmxlOjp0b1dyYXBwZWQoSlNDOjpWTSYgdm0sIEpTQzo6SlNWYWx1ZSB2YWx1ZSkKIHsKLSAg
ICBpZiAoYXV0byogd3JhcHBlciA9IGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdEdlbmVyYXRlSXNS
ZWFjaGFibGUqPih2bSwgdmFsdWUpKQorICAgIGlmIChhdXRvKiB3cmFwcGVyID0ganNEeW5hbWlj
Q2FzdDxKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlKj4odm0sIHZhbHVlKSkKICAgICAgICAgcmV0
dXJuICZ3cmFwcGVyLT53cmFwcGVkKCk7CiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2xvYmFs
T2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RHbG9iYWxPYmplY3QuY3BwCmluZGV4IGQzOGYyMzJjZmY5MTcwYjUyNWQ5YzNmYTNjODE4ZWY3
ZjdlZmUxOWIuLjRkMmRjNzYxZTUwNDQ4MWE0MzlmODA5ODNkMjc2YTg5MDMzZTk2ODkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RHbG9i
YWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RHbG9iYWxPYmplY3QuY3BwCkBAIC0yMTIsMTkgKzIxMiwxOSBAQCB2b2lkIEpTVGVz
dEdsb2JhbE9iamVjdDo6ZGVzdHJveShKU0M6OkpTQ2VsbCogY2VsbCkKIAogdGVtcGxhdGU8PiBp
bmxpbmUgSlNUZXN0R2xvYmFsT2JqZWN0KiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0
Pjo6Y2FzdChFeGVjU3RhdGUmIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUpCiB7Ci0g
ICAgcmV0dXJuIGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdEdsb2JhbE9iamVjdCo+KHN0YXRlLnZt
KCksIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKKyAgICByZXR1cm4ganNEeW5hbWljQ2Fz
dDxKU1Rlc3RHbG9iYWxPYmplY3QqPihzdGF0ZS52bSgpLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1Zh
bHVlKSk7CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5lIEpTVGVzdEdsb2JhbE9iamVjdCogSURMT3Bl
cmF0aW9uPEpTVGVzdEdsb2JhbE9iamVjdD46OmNhc3QoRXhlY1N0YXRlJiBzdGF0ZSkKIHsKLSAg
ICByZXR1cm4ganNEeW5hbWljRG93bmNhc3Q8SlNUZXN0R2xvYmFsT2JqZWN0Kj4oc3RhdGUudm0o
KSwgc3RhdGUudGhpc1ZhbHVlKCkpOworICAgIHJldHVybiBqc0R5bmFtaWNDYXN0PEpTVGVzdEds
b2JhbE9iamVjdCo+KHN0YXRlLnZtKCksIHN0YXRlLnRoaXNWYWx1ZSgpKTsKIH0KIAogRW5jb2Rl
ZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0Q29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVk0mIHZtID0g
c3RhdGUtPnZtKCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7Ci0gICAgYXV0byogcHJvdG90eXBlID0ganNEeW5hbWljRG93bmNhc3Q8SlNUZXN0R2xvYmFs
T2JqZWN0UHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKKyAgICBh
dXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdEdsb2JhbE9iamVjdFByb3RvdHlw
ZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFw
cm90b3R5cGUpKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihzdGF0ZSwgdGhyb3dT
Y29wZSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3RHbG9iYWxPYmplY3Q6Omdl
dENvbnN0cnVjdG9yKHN0YXRlLT52bSgpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CkBA
IC0yMzQsNyArMjM0LDcgQEAgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RDb25zdHJ1Y3RvcihF
eGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUKIHsKICAgICBWTSYgdm0g
PSBzdGF0ZS0+dm0oKTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTsKLSAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNEb3duY2FzdDxKU1Rlc3RHbG9i
YWxPYmplY3RQcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOworICAg
IGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0R2xvYmFsT2JqZWN0UHJvdG90
eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFko
IXByb3RvdHlwZSkpIHsKICAgICAgICAgdGhyb3dWTVR5cGVFcnJvcihzdGF0ZSwgdGhyb3dTY29w
ZSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTYyMiw3ICs2MjIsNyBAQCBKU0M6OkpTVmFs
dWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSogc3RhdGUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIFRlc3RHbAogCiBUZXN0R2xvYmFsT2JqZWN0KiBKU1Rlc3RHbG9iYWxPYmplY3Q6OnRv
V3JhcHBlZChKU0M6OlZNJiB2bSwgSlNDOjpKU1ZhbHVlIHZhbHVlKQogewotICAgIGlmIChhdXRv
KiB3cmFwcGVyID0ganNEeW5hbWljRG93bmNhc3Q8SlNUZXN0R2xvYmFsT2JqZWN0Kj4odm0sIHZh
bHVlKSkKKyAgICBpZiAoYXV0byogd3JhcHBlciA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0R2xvYmFs
T2JqZWN0Kj4odm0sIHZhbHVlKSkKICAgICAgICAgcmV0dXJuICZ3cmFwcGVyLT53cmFwcGVkKCk7
CiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmllci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW5kZXhlZFNl
dHRlck5vSWRlbnRpZmllci5jcHAKaW5kZXggYjk0M2RjYjljZGY4OTlkNDY4MTQ3MjE4YzU0YTJl
NzZjZWI2Y2Y3ZS4uNDdmMDg3OGViZDkxNjhhNWU3ZDI0YTBlNWU3MzYwZmU3YWM2N2I0MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdElu
ZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyLmNwcApAQCAt
MjI3LDcgKzIyNyw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50
aWZpZXJDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvCiB7CiAgICAgVk0mIHZtID0g
c3RhdGUtPnZtKCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7Ci0gICAgYXV0byogcHJvdG90eXBlID0ganNEeW5hbWljRG93bmNhc3Q8SlNUZXN0SW5kZXhl
ZFNldHRlck5vSWRlbnRpZmllclByb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1Zh
bHVlKSk7CisgICAgYXV0byogcHJvdG90eXBlID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RJbmRleGVk
U2V0dGVyTm9JZGVudGlmaWVyUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFs
dWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIXByb3RvdHlwZSkpCiAgICAgICAgIHJldHVybiB0aHJv
d1ZNVHlwZUVycm9yKHN0YXRlLCB0aHJvd1Njb3BlKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKEpTVGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXI6OmdldENvbnN0cnVjdG9yKHN0YXRl
LT52bSgpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CkBAIC0yMzcsNyArMjM3LDcgQEAg
Ym9vbCBzZXRKU1Rlc3RJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IoRXhlY1N0
YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmEKIHsKICAgICBWTSYgdm0gPSBzdGF0ZS0+dm0oKTsKICAg
ICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAgICBhdXRvKiBw
cm90b3R5cGUgPSBqc0R5bmFtaWNEb3duY2FzdDxKU1Rlc3RJbmRleGVkU2V0dGVyTm9JZGVudGlm
aWVyUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKKyAgICBhdXRv
KiBwcm90b3R5cGUgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZp
ZXJQcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChV
TkxJS0VMWSghcHJvdG90eXBlKSkgewogICAgICAgICB0aHJvd1ZNVHlwZUVycm9yKHN0YXRlLCB0
aHJvd1Njb3BlKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMzAwLDcgKzMwMCw3IEBAIEpT
Qzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSwgSlNET01HbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgVGVzdEluCiAKIFRlc3RJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyKiBK
U1Rlc3RJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyOjp0b1dyYXBwZWQoSlNDOjpWTSYgdm0sIEpT
Qzo6SlNWYWx1ZSB2YWx1ZSkKIHsKLSAgICBpZiAoYXV0byogd3JhcHBlciA9IGpzRHluYW1pY0Rv
d25jYXN0PEpTVGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXIqPih2bSwgdmFsdWUpKQorICAg
IGlmIChhdXRvKiB3cmFwcGVyID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RJbmRleGVkU2V0dGVyTm9J
ZGVudGlmaWVyKj4odm0sIHZhbHVlKSkKICAgICAgICAgcmV0dXJuICZ3cmFwcGVyLT53cmFwcGVk
KCk7CiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0
aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJ
bmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24uY3BwCmluZGV4IDVjYWU1MDdmOTM4YjlhZmY0
OGJiNGYxMzYxNmY2MDlkN2NhMjMzNzIuLjQwYmVlZmY2MGNiMmRmY2Q0NmRlOTM1MjNhMzJiMTU2
Y2VmMTRiMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbmRleGVkU2V0dGVyVGhy
b3dpbmdFeGNlcHRpb24uY3BwCkBAIC0yMjcsNyArMjI3LDcgQEAgRW5jb2RlZEpTVmFsdWUganNU
ZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBz
dGF0ZSwKIHsKICAgICBWTSYgdm0gPSBzdGF0ZS0+dm0oKTsKICAgICBhdXRvIHRocm93U2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFt
aWNEb3duY2FzdDxKU1Rlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Qcm90b3R5cGUq
Pih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOworICAgIGF1dG8qIHByb3RvdHlwZSA9
IGpzRHluYW1pY0Nhc3Q8SlNUZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uUHJvdG90
eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFko
IXByb3RvdHlwZSkpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKHN0YXRlLCB0aHJv
d1Njb3BlKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdEluZGV4ZWRTZXR0ZXJU
aHJvd2luZ0V4Y2VwdGlvbjo6Z2V0Q29uc3RydWN0b3Ioc3RhdGUtPnZtKCksIHByb3RvdHlwZS0+
Z2xvYmFsT2JqZWN0KCkpKTsKQEAgLTIzNyw3ICsyMzcsNyBAQCBib29sIHNldEpTVGVzdEluZGV4
ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVu
Y29kZQogewogICAgIFZNJiB2bSA9IHN0YXRlLT52bSgpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1p
Y0Rvd25jYXN0PEpTVGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvblByb3RvdHlwZSo+
KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CisgICAgYXV0byogcHJvdG90eXBlID0g
anNEeW5hbWljQ2FzdDxKU1Rlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Qcm90b3R5
cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSgh
cHJvdG90eXBlKSkgewogICAgICAgICB0aHJvd1ZNVHlwZUVycm9yKHN0YXRlLCB0aHJvd1Njb3Bl
KTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMzAwLDcgKzMwMCw3IEBAIEpTQzo6SlNWYWx1
ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgVGVzdEluCiAKIFRlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24qIEpTVGVz
dEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbjo6dG9XcmFwcGVkKEpTQzo6Vk0mIHZtLCBK
U0M6OkpTVmFsdWUgdmFsdWUpCiB7Ci0gICAgaWYgKGF1dG8qIHdyYXBwZXIgPSBqc0R5bmFtaWNE
b3duY2FzdDxKU1Rlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24qPih2bSwgdmFsdWUp
KQorICAgIGlmIChhdXRvKiB3cmFwcGVyID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RJbmRleGVkU2V0
dGVyVGhyb3dpbmdFeGNlcHRpb24qPih2bSwgdmFsdWUpKQogICAgICAgICByZXR1cm4gJndyYXBw
ZXItPndyYXBwZWQoKTsKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbmRleGVkU2V0dGVyV2l0
aElkZW50aWZpZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllci5jcHAKaW5kZXggYTAxM2ZiNDAxYzIy
ZWZkMWI0NWZiZjk2NTE0YzQ2YWU1M2ViNWQ1ZC4uYjkxOTIwNTU2ZTA5NjFkM2EzMGE3ZTljZjAy
ZDVkZTNlMjRkNzMyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEluZGV4ZWRTZXR0ZXJX
aXRoSWRlbnRpZmllci5jcHAKQEAgLTIzMiwxNCArMjMyLDE0IEBAIGJvb2wgSlNUZXN0SW5kZXhl
ZFNldHRlcldpdGhJZGVudGlmaWVyOjpkZWZpbmVPd25Qcm9wZXJ0eShKU09iamVjdCogb2JqZWN0
LCBFeGVjCiAKIHRlbXBsYXRlPD4gaW5saW5lIEpTVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRp
ZmllciogSURMT3BlcmF0aW9uPEpTVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllcj46OmNh
c3QoRXhlY1N0YXRlJiBzdGF0ZSkKIHsKLSAgICByZXR1cm4ganNEeW5hbWljRG93bmNhc3Q8SlNU
ZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyKj4oc3RhdGUudm0oKSwgc3RhdGUudGhpc1Zh
bHVlKCkpOworICAgIHJldHVybiBqc0R5bmFtaWNDYXN0PEpTVGVzdEluZGV4ZWRTZXR0ZXJXaXRo
SWRlbnRpZmllcio+KHN0YXRlLnZtKCksIHN0YXRlLnRoaXNWYWx1ZSgpKTsKIH0KIAogRW5jb2Rl
ZEpTVmFsdWUganNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IoRXhl
Y1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7
CiAgICAgVk0mIHZtID0gc3RhdGUtPnZtKCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7Ci0gICAgYXV0byogcHJvdG90eXBlID0ganNEeW5hbWljRG93bmNh
c3Q8SlNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyUHJvdG90eXBlKj4odm0sIEpTVmFs
dWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKKyAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWND
YXN0PEpTVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllclByb3RvdHlwZSo+KHZtLCBKU1Zh
bHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFwcm90b3R5cGUpKQog
ICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihzdGF0ZSwgdGhyb3dTY29wZSk7CiAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXI6
OmdldENvbnN0cnVjdG9yKHN0YXRlLT52bSgpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7
CkBAIC0yNDksNyArMjQ5LDcgQEAgYm9vbCBzZXRKU1Rlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50
aWZpZXJDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlMKIHsKICAgICBWTSYg
dm0gPSBzdGF0ZS0+dm0oKTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKHZtKTsKLSAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNEb3duY2FzdDxKU1Rlc3RJ
bmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJQcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2Rl
KHRoaXNWYWx1ZSkpOworICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0
SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29k
ZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIXByb3RvdHlwZSkpIHsKICAgICAgICAg
dGhyb3dWTVR5cGVFcnJvcihzdGF0ZSwgdGhyb3dTY29wZSk7CiAgICAgICAgIHJldHVybiBmYWxz
ZTsKQEAgLTMzMiw3ICszMzIsNyBAQCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSog
c3RhdGUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRlc3RJbgogCiBUZXN0SW5k
ZXhlZFNldHRlcldpdGhJZGVudGlmaWVyKiBKU1Rlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZp
ZXI6OnRvV3JhcHBlZChKU0M6OlZNJiB2bSwgSlNDOjpKU1ZhbHVlIHZhbHVlKQogewotICAgIGlm
IChhdXRvKiB3cmFwcGVyID0ganNEeW5hbWljRG93bmNhc3Q8SlNUZXN0SW5kZXhlZFNldHRlcldp
dGhJZGVudGlmaWVyKj4odm0sIHZhbHVlKSkKKyAgICBpZiAoYXV0byogd3JhcHBlciA9IGpzRHlu
YW1pY0Nhc3Q8SlNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyKj4odm0sIHZhbHVlKSkK
ICAgICAgICAgcmV0dXJuICZ3cmFwcGVyLT53cmFwcGVkKCk7CiAgICAgcmV0dXJuIG51bGxwdHI7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0SW50ZXJmYWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RJbnRlcmZhY2UuY3BwCmluZGV4IDQwYmE2OTBmNDRmOWEwMWQ2MTYxMmU3ZTVh
ZWQ3ZDYzZWEzYWM5YzUuLmRjMjU5OTQ2ZTkzYTU3OWQ4NjVjYmU3ZDc3NGUxODkyZTU2YzU2Yjgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RJbnRlcmZhY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RJbnRlcmZhY2UuY3BwCkBAIC00MjYsMTkgKzQyNiwxOSBAQCB2b2lkIEpTVGVz
dEludGVyZmFjZTo6ZGVzdHJveShKU0M6OkpTQ2VsbCogY2VsbCkKIAogdGVtcGxhdGU8PiBpbmxp
bmUgSlNUZXN0SW50ZXJmYWNlKiBJRExBdHRyaWJ1dGU8SlNUZXN0SW50ZXJmYWNlPjo6Y2FzdChF
eGVjU3RhdGUmIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUpCiB7Ci0gICAgcmV0dXJu
IGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdEludGVyZmFjZSo+KHN0YXRlLnZtKCksIEpTVmFsdWU6
OmRlY29kZSh0aGlzVmFsdWUpKTsKKyAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3RJbnRl
cmZhY2UqPihzdGF0ZS52bSgpLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiB9CiAKIHRl
bXBsYXRlPD4gaW5saW5lIEpTVGVzdEludGVyZmFjZSogSURMT3BlcmF0aW9uPEpTVGVzdEludGVy
ZmFjZT46OmNhc3QoRXhlY1N0YXRlJiBzdGF0ZSkKIHsKLSAgICByZXR1cm4ganNEeW5hbWljRG93
bmNhc3Q8SlNUZXN0SW50ZXJmYWNlKj4oc3RhdGUudm0oKSwgc3RhdGUudGhpc1ZhbHVlKCkpOwor
ICAgIHJldHVybiBqc0R5bmFtaWNDYXN0PEpTVGVzdEludGVyZmFjZSo+KHN0YXRlLnZtKCksIHN0
YXRlLnRoaXNWYWx1ZSgpKTsKIH0KIAogRW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlQ29u
c3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCiB7CiAgICAgVk0mIHZtID0gc3RhdGUtPnZtKCk7CiAgICAgYXV0byB0aHJvd1Nj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgYXV0byogcHJvdG90eXBlID0ganNE
eW5hbWljRG93bmNhc3Q8SlNUZXN0SW50ZXJmYWNlUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRl
Y29kZSh0aGlzVmFsdWUpKTsKKyAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNDYXN0PEpT
VGVzdEludGVyZmFjZVByb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7
CiAgICAgaWYgKFVOTElLRUxZKCFwcm90b3R5cGUpKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5
cGVFcnJvcihzdGF0ZSwgdGhyb3dTY29wZSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShK
U1Rlc3RJbnRlcmZhY2U6OmdldENvbnN0cnVjdG9yKHN0YXRlLT52bSgpLCBwcm90b3R5cGUtPmds
b2JhbE9iamVjdCgpKSk7CkBAIC00NDgsNyArNDQ4LDcgQEAgYm9vbCBzZXRKU1Rlc3RJbnRlcmZh
Y2VDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IEUKIHsKICAgICBWTSYgdm0gPSBzdGF0ZS0+dm0oKTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBE
RUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNE
b3duY2FzdDxKU1Rlc3RJbnRlcmZhY2VQcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRo
aXNWYWx1ZSkpOworICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0SW50
ZXJmYWNlUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBp
ZiAoVU5MSUtFTFkoIXByb3RvdHlwZSkpIHsKICAgICAgICAgdGhyb3dWTVR5cGVFcnJvcihzdGF0
ZSwgdGhyb3dTY29wZSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTEwMTcsNyArMTAxNyw3
IEBAIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSwgSlNET01HbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgVGVzdEluCiAKIFRlc3RJbnRlcmZhY2UqIEpTVGVzdEludGVy
ZmFjZTo6dG9XcmFwcGVkKEpTQzo6Vk0mIHZtLCBKU0M6OkpTVmFsdWUgdmFsdWUpCiB7Ci0gICAg
aWYgKGF1dG8qIHdyYXBwZXIgPSBqc0R5bmFtaWNEb3duY2FzdDxKU1Rlc3RJbnRlcmZhY2UqPih2
bSwgdmFsdWUpKQorICAgIGlmIChhdXRvKiB3cmFwcGVyID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RJ
bnRlcmZhY2UqPih2bSwgdmFsdWUpKQogICAgICAgICByZXR1cm4gJndyYXBwZXItPndyYXBwZWQo
KTsKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJm
YWNlTGVhZGluZ1VuZGVyc2NvcmUuY3BwCmluZGV4IDFmZTk0ZWM3NTc0Yjc2ZTM5MTQwMTNjZGEz
OTllMzg2NGNjODZkYTguLjA0NjNjNTExYzNmMDZkZjdjZDk1OTAyMjFkOGE3MGQxNDE3NTliYTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlLmNw
cApAQCAtMTM3LDE0ICsxMzcsMTQgQEAgdm9pZCBKU1Rlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJz
Y29yZTo6ZGVzdHJveShKU0M6OkpTQ2VsbCogY2VsbCkKIAogdGVtcGxhdGU8PiBpbmxpbmUgSlNU
ZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmUqIElETEF0dHJpYnV0ZTxKU1Rlc3RJbnRlcmZh
Y2VMZWFkaW5nVW5kZXJzY29yZT46OmNhc3QoRXhlY1N0YXRlJiBzdGF0ZSwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlKQogewotICAgIHJldHVybiBqc0R5bmFtaWNEb3duY2FzdDxKU1Rlc3RJbnRl
cmZhY2VMZWFkaW5nVW5kZXJzY29yZSo+KHN0YXRlLnZtKCksIEpTVmFsdWU6OmRlY29kZSh0aGlz
VmFsdWUpKTsKKyAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3RJbnRlcmZhY2VMZWFkaW5n
VW5kZXJzY29yZSo+KHN0YXRlLnZtKCksIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKIH0K
IAogRW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmVDb25zdHJ1
Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkKIHsKICAgICBWTSYgdm0gPSBzdGF0ZS0+dm0oKTsKICAgICBhdXRvIHRocm93U2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFt
aWNEb3duY2FzdDxKU1Rlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZVByb3RvdHlwZSo+KHZt
LCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CisgICAgYXV0byogcHJvdG90eXBlID0ganNE
eW5hbWljQ2FzdDxKU1Rlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZVByb3RvdHlwZSo+KHZt
LCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFwcm90b3R5
cGUpKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihzdGF0ZSwgdGhyb3dTY29wZSk7
CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJz
Y29yZTo6Z2V0Q29uc3RydWN0b3Ioc3RhdGUtPnZtKCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0
KCkpKTsKQEAgLTE1NCw3ICsxNTQsNyBAQCBib29sIHNldEpTVGVzdEludGVyZmFjZUxlYWRpbmdV
bmRlcnNjb3JlQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVgogewogICAg
IFZNJiB2bSA9IHN0YXRlLT52bSgpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUodm0pOwotICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Rvd25jYXN0PEpT
VGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRl
Y29kZSh0aGlzVmFsdWUpKTsKKyAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNDYXN0PEpT
VGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRl
Y29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIXByb3RvdHlwZSkpIHsKICAgICAg
ICAgdGhyb3dWTVR5cGVFcnJvcihzdGF0ZSwgdGhyb3dTY29wZSk7CiAgICAgICAgIHJldHVybiBm
YWxzZTsKQEAgLTIwOCw3ICsyMDgsNyBAQCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0
ZSogc3RhdGUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRlc3RJbgogCiBUZXN0
SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmUqIEpTVGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNj
b3JlOjp0b1dyYXBwZWQoSlNDOjpWTSYgdm0sIEpTQzo6SlNWYWx1ZSB2YWx1ZSkKIHsKLSAgICBp
ZiAoYXV0byogd3JhcHBlciA9IGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdEludGVyZmFjZUxlYWRp
bmdVbmRlcnNjb3JlKj4odm0sIHZhbHVlKSkKKyAgICBpZiAoYXV0byogd3JhcHBlciA9IGpzRHlu
YW1pY0Nhc3Q8SlNUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmUqPih2bSwgdmFsdWUpKQog
ICAgICAgICByZXR1cm4gJndyYXBwZXItPndyYXBwZWQoKTsKICAgICByZXR1cm4gbnVsbHB0cjsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RJdGVyYWJsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0SXRlcmFibGUuY3BwCmluZGV4IDMyYjNkMTRiZTg2OTZjOTFmZGUzNTE1OGY3MTI1
MzMzNjYxY2Q5MmUuLmNhYTFkOTM4ZGJjODM4YzUxZmJlNmQxYjhmMWMyNWVjOWMxM2I4NjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJ
dGVyYWJsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdEl0ZXJhYmxlLmNwcApAQCAtMTQ5LDE0ICsxNDksMTQgQEAgdm9pZCBKU1Rlc3RJdGVy
YWJsZTo6ZGVzdHJveShKU0M6OkpTQ2VsbCogY2VsbCkKIAogdGVtcGxhdGU8PiBpbmxpbmUgSlNU
ZXN0SXRlcmFibGUqIElETE9wZXJhdGlvbjxKU1Rlc3RJdGVyYWJsZT46OmNhc3QoRXhlY1N0YXRl
JiBzdGF0ZSkKIHsKLSAgICByZXR1cm4ganNEeW5hbWljRG93bmNhc3Q8SlNUZXN0SXRlcmFibGUq
PihzdGF0ZS52bSgpLCBzdGF0ZS50aGlzVmFsdWUoKSk7CisgICAgcmV0dXJuIGpzRHluYW1pY0Nh
c3Q8SlNUZXN0SXRlcmFibGUqPihzdGF0ZS52bSgpLCBzdGF0ZS50aGlzVmFsdWUoKSk7CiB9CiAK
IEVuY29kZWRKU1ZhbHVlIGpzVGVzdEl0ZXJhYmxlQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0
ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVk0mIHZt
ID0gc3RhdGUtPnZtKCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7Ci0gICAgYXV0byogcHJvdG90eXBlID0ganNEeW5hbWljRG93bmNhc3Q8SlNUZXN0SXRl
cmFibGVQcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOworICAgIGF1
dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0SXRlcmFibGVQcm90b3R5cGUqPih2
bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghcHJvdG90
eXBlKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3Ioc3RhdGUsIHRocm93U2NvcGUp
OwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0SXRlcmFibGU6OmdldENvbnN0cnVj
dG9yKHN0YXRlLT52bSgpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CkBAIC0xNjYsNyAr
MTY2LDcgQEAgYm9vbCBzZXRKU1Rlc3RJdGVyYWJsZUNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3Rh
dGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW4KIHsKICAgICBWTSYgdm0gPSBzdGF0ZS0+
dm0oKTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAg
ICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNEb3duY2FzdDxKU1Rlc3RJdGVyYWJsZVByb3Rv
dHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CisgICAgYXV0byogcHJvdG90
eXBlID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RJdGVyYWJsZVByb3RvdHlwZSo+KHZtLCBKU1ZhbHVl
OjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFwcm90b3R5cGUpKSB7CiAg
ICAgICAgIHRocm93Vk1UeXBlRXJyb3Ioc3RhdGUsIHRocm93U2NvcGUpOwogICAgICAgICByZXR1
cm4gZmFsc2U7CkBAIC0yODQsNyArMjg0LDcgQEAgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVj
U3RhdGUqIHN0YXRlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBUZXN0SXQKIAog
VGVzdEl0ZXJhYmxlKiBKU1Rlc3RJdGVyYWJsZTo6dG9XcmFwcGVkKEpTQzo6Vk0mIHZtLCBKU0M6
OkpTVmFsdWUgdmFsdWUpCiB7Ci0gICAgaWYgKGF1dG8qIHdyYXBwZXIgPSBqc0R5bmFtaWNEb3du
Y2FzdDxKU1Rlc3RJdGVyYWJsZSo+KHZtLCB2YWx1ZSkpCisgICAgaWYgKGF1dG8qIHdyYXBwZXIg
PSBqc0R5bmFtaWNDYXN0PEpTVGVzdEl0ZXJhYmxlKj4odm0sIHZhbHVlKSkKICAgICAgICAgcmV0
dXJuICZ3cmFwcGVyLT53cmFwcGVkKCk7CiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SlNCdWls
dGluQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yLmNwcAppbmRleCBhMTU3MjczODhiOTU2ZDA0
ZTllOWU2NTY4M2ZkNzNjMTliMzM5NjgwLi4zOGNiNWMyMDU4ZmQwODI2MDcyNzM3NmZiZTJkMzU2
MmMzODgyMzIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3Rvci5jcHAK
QEAgLTE1MSwxOSArMTUxLDE5IEBAIHZvaWQgSlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3I6OmRl
c3Ryb3koSlNDOjpKU0NlbGwqIGNlbGwpCiAKIHRlbXBsYXRlPD4gaW5saW5lIEpTVGVzdEpTQnVp
bHRpbkNvbnN0cnVjdG9yKiBJRExBdHRyaWJ1dGU8SlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3I+
OjpjYXN0KEV4ZWNTdGF0ZSYgc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSkKIHsKLSAg
ICByZXR1cm4ganNEeW5hbWljRG93bmNhc3Q8SlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3IqPihz
dGF0ZS52bSgpLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CisgICAgcmV0dXJuIGpzRHlu
YW1pY0Nhc3Q8SlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3IqPihzdGF0ZS52bSgpLCBKU1ZhbHVl
OjpkZWNvZGUodGhpc1ZhbHVlKSk7CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5lIEpTVGVzdEpTQnVp
bHRpbkNvbnN0cnVjdG9yKiBJRExPcGVyYXRpb248SlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3I+
OjpjYXN0KEV4ZWNTdGF0ZSYgc3RhdGUpCiB7Ci0gICAgcmV0dXJuIGpzRHluYW1pY0Rvd25jYXN0
PEpTVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yKj4oc3RhdGUudm0oKSwgc3RhdGUudGhpc1ZhbHVl
KCkpOworICAgIHJldHVybiBqc0R5bmFtaWNDYXN0PEpTVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9y
Kj4oc3RhdGUudm0oKSwgc3RhdGUudGhpc1ZhbHVlKCkpOwogfQogCiBFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvckNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFZNJiB2bSA9IHN0
YXRlLT52bSgpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0p
OwotICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdEpTQnVpbHRp
bkNvbnN0cnVjdG9yUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsK
KyAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdEpTQnVpbHRpbkNvbnN0
cnVjdG9yUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBp
ZiAoVU5MSUtFTFkoIXByb3RvdHlwZSkpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9y
KHN0YXRlLCB0aHJvd1Njb3BlKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdEpT
QnVpbHRpbkNvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3RvcihzdGF0ZS0+dm0oKSwgcHJvdG90eXBl
LT5nbG9iYWxPYmplY3QoKSkpOwpAQCAtMTczLDcgKzE3Myw3IEBAIGJvb2wgc2V0SlNUZXN0SlNC
dWlsdGluQ29uc3RydWN0b3JDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNW
YWx1ZSB0CiB7CiAgICAgVk0mIHZtID0gc3RhdGUtPnZtKCk7CiAgICAgYXV0byB0aHJvd1Njb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgYXV0byogcHJvdG90eXBlID0ganNEeW5h
bWljRG93bmNhc3Q8SlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JQcm90b3R5cGUqPih2bSwgSlNW
YWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOworICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1p
Y0Nhc3Q8SlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JQcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6
ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghcHJvdG90eXBlKSkgewogICAg
ICAgICB0aHJvd1ZNVHlwZUVycm9yKHN0YXRlLCB0aHJvd1Njb3BlKTsKICAgICAgICAgcmV0dXJu
IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwCmlu
ZGV4IDAwYzAyN2U5ZDJjZDJkM2U2YzlhMDZjNDNmOGNmZmQxNDE2ODYxMjAuLjAyZmJhNjM4Njhh
M2E2ZDQ4ZWYwZTI3MzZlOTE2ZjVlNjg3YmM5NzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVk
aWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAKQEAgLTE0MiwxNCArMTQyLDE0IEBAIHZvaWQgSlNUZXN0
TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcjo6ZGVzdHJveShKU0M6OkpTQ2VsbCogY2VsbCkKIAogdGVt
cGxhdGU8PiBpbmxpbmUgSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lciogSURMT3BlcmF0aW9u
PEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI+OjpjYXN0KEV4ZWNTdGF0ZSYgc3RhdGUpCiB7
Ci0gICAgcmV0dXJuIGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVu
ZXIqPihzdGF0ZS52bSgpLCBzdGF0ZS50aGlzVmFsdWUoKSk7CisgICAgcmV0dXJuIGpzRHluYW1p
Y0Nhc3Q8SlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcio+KHN0YXRlLnZtKCksIHN0YXRlLnRo
aXNWYWx1ZSgpKTsKIH0KIAogRW5jb2RlZEpTVmFsdWUganNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0
ZW5lckNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFZNJiB2bSA9IHN0YXRlLT52bSgpOwogICAgIGF1dG8g
dGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAgIGF1dG8qIHByb3RvdHlw
ZSA9IGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJQcm90b3R5
cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOworICAgIGF1dG8qIHByb3RvdHlw
ZSA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lclByb3RvdHlwZSo+
KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFwcm90
b3R5cGUpKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihzdGF0ZSwgdGhyb3dTY29w
ZSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3Rl
bmVyOjpnZXRDb25zdHJ1Y3RvcihzdGF0ZS0+dm0oKSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3Qo
KSkpOwpAQCAtMTU5LDcgKzE1OSw3IEBAIGJvb2wgc2V0SlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0
ZW5lckNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlCiB7CiAgICAg
Vk0mIHZtID0gc3RhdGUtPnZtKCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7Ci0gICAgYXV0byogcHJvdG90eXBlID0ganNEeW5hbWljRG93bmNhc3Q8SlNU
ZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lclByb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUo
dGhpc1ZhbHVlKSk7CisgICAgYXV0byogcHJvdG90eXBlID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RN
ZWRpYVF1ZXJ5TGlzdExpc3RlbmVyUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlz
VmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIXByb3RvdHlwZSkpIHsKICAgICAgICAgdGhyb3dW
TVR5cGVFcnJvcihzdGF0ZSwgdGhyb3dTY29wZSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAg
LTI0MCw3ICsyNDAsNyBAQCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSogc3RhdGUs
IEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRlc3RNZQogCiBUZXN0TWVkaWFRdWVy
eUxpc3RMaXN0ZW5lciogSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcjo6dG9XcmFwcGVkKEpT
Qzo6Vk0mIHZtLCBKU0M6OkpTVmFsdWUgdmFsdWUpCiB7Ci0gICAgaWYgKGF1dG8qIHdyYXBwZXIg
PSBqc0R5bmFtaWNEb3duY2FzdDxKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKj4odm0sIHZh
bHVlKSkKKyAgICBpZiAoYXV0byogd3JhcHBlciA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0TWVkaWFR
dWVyeUxpc3RMaXN0ZW5lcio+KHZtLCB2YWx1ZSkpCiAgICAgICAgIHJldHVybiAmd3JhcHBlci0+
d3JhcHBlZCgpOwogICAgIHJldHVybiBudWxscHRyOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRl
ck5vSWRlbnRpZmllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyLmNwcAppbmRleCA2MzA3
YTU1ODQ5NjI5NDVjZTQ1YTcyYzlhNTM1OWQ2YjE5YWRlNzhlLi5hYWRhNDhjMDRlNmVkZTlhOGU0
NzY2N2FmM2U1MTJmMzI3NTczYzg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyLmNwcApAQCAtMjkzLDcgKzI5Myw3IEBA
IEVuY29kZWRKU1ZhbHVlIGpzVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlck5vSWRlbnRpZmllckNv
bnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhCiB7CiAgICAgVk0mIHZtID0gc3RhdGUtPnZtKCk7CiAg
ICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgYXV0byog
cHJvdG90eXBlID0ganNEeW5hbWljRG93bmNhc3Q8SlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVy
Tm9JZGVudGlmaWVyUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsK
KyAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE5hbWVkQW5kSW5kZXhl
ZFNldHRlck5vSWRlbnRpZmllclByb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1Zh
bHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFwcm90b3R5cGUpKQogICAgICAgICByZXR1cm4gdGhy
b3dWTVR5cGVFcnJvcihzdGF0ZSwgdGhyb3dTY29wZSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXI6OmdldENvbnN0cnVj
dG9yKHN0YXRlLT52bSgpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CkBAIC0zMDMsNyAr
MzAzLDcgQEAgYm9vbCBzZXRKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXJD
b25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBFbmMKIHsKICAgICBWTSYgdm0gPSBzdGF0ZS0+
dm0oKTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAg
ICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNEb3duY2FzdDxKU1Rlc3ROYW1lZEFuZEluZGV4
ZWRTZXR0ZXJOb0lkZW50aWZpZXJQcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNW
YWx1ZSkpOworICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0TmFtZWRB
bmRJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29k
ZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIXByb3RvdHlwZSkpIHsKICAgICAgICAg
dGhyb3dWTVR5cGVFcnJvcihzdGF0ZSwgdGhyb3dTY29wZSk7CiAgICAgICAgIHJldHVybiBmYWxz
ZTsKQEAgLTM2Niw3ICszNjYsNyBAQCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSog
c3RhdGUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRlc3ROYQogCiBUZXN0TmFt
ZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyKiBKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0
ZXJOb0lkZW50aWZpZXI6OnRvV3JhcHBlZChKU0M6OlZNJiB2bSwgSlNDOjpKU1ZhbHVlIHZhbHVl
KQogewotICAgIGlmIChhdXRvKiB3cmFwcGVyID0ganNEeW5hbWljRG93bmNhc3Q8SlNUZXN0TmFt
ZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyKj4odm0sIHZhbHVlKSkKKyAgICBpZiAoYXV0
byogd3JhcHBlciA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9J
ZGVudGlmaWVyKj4odm0sIHZhbHVlKSkKICAgICAgICAgcmV0dXJuICZ3cmFwcGVyLT53cmFwcGVk
KCk7CiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dp
bmdFeGNlcHRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmNwcAppbmRleCA0
NDc3MWJlZDM4YWFhN2U0MTRkYzY5Y2ZkYzJlYmRhZmVmZTFkMWI2Li5jMjdmYmJhZDA1MjQ4Zjk5
OGYyMzZkMjlkNDIyNDA5MmEyNWUyNjk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdF
eGNlcHRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHAKQEAgLTI5
Myw3ICsyOTMsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJU
aHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yKEV4ZWNTdGF0ZQogewogICAgIFZNJiB2bSA9IHN0
YXRlLT52bSgpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0p
OwotICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdE5hbWVkQW5k
SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRl
Y29kZSh0aGlzVmFsdWUpKTsKKyAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNDYXN0PEpT
VGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uUHJvdG90eXBlKj4odm0s
IEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIXByb3RvdHlw
ZSkpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKHN0YXRlLCB0aHJvd1Njb3BlKTsK
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRo
cm93aW5nRXhjZXB0aW9uOjpnZXRDb25zdHJ1Y3RvcihzdGF0ZS0+dm0oKSwgcHJvdG90eXBlLT5n
bG9iYWxPYmplY3QoKSkpOwpAQCAtMzAzLDcgKzMwMyw3IEBAIGJvb2wgc2V0SlNUZXN0TmFtZWRB
bmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0
YXRlCiB7CiAgICAgVk0mIHZtID0gc3RhdGUtPnZtKCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgYXV0byogcHJvdG90eXBlID0ganNEeW5hbWlj
RG93bmNhc3Q8SlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Qcm90
b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOworICAgIGF1dG8qIHByb3Rv
dHlwZSA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdF
eGNlcHRpb25Qcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAg
IGlmIChVTkxJS0VMWSghcHJvdG90eXBlKSkgewogICAgICAgICB0aHJvd1ZNVHlwZUVycm9yKHN0
YXRlLCB0aHJvd1Njb3BlKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMzY2LDcgKzM2Niw3
IEBAIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSwgSlNET01HbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgVGVzdE5hCiAKIFRlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJU
aHJvd2luZ0V4Y2VwdGlvbiogSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNl
cHRpb246OnRvV3JhcHBlZChKU0M6OlZNJiB2bSwgSlNDOjpKU1ZhbHVlIHZhbHVlKQogewotICAg
IGlmIChhdXRvKiB3cmFwcGVyID0ganNEeW5hbWljRG93bmNhc3Q8SlNUZXN0TmFtZWRBbmRJbmRl
eGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24qPih2bSwgdmFsdWUpKQorICAgIGlmIChhdXRvKiB3
cmFwcGVyID0ganNEeW5hbWljQ2FzdDxKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2lu
Z0V4Y2VwdGlvbio+KHZtLCB2YWx1ZSkpCiAgICAgICAgIHJldHVybiAmd3JhcHBlci0+d3JhcHBl
ZCgpOwogICAgIHJldHVybiBudWxscHRyOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJ
ZGVudGlmaWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllci5jcHAKaW5kZXggOGJkODEy
NGQ0NGJkYmYzNjY3YTcyZWY2Y2U0YTRiNjUyMjY5M2ZkZS4uNDllZmJjMDA4ODU3MjZkY2IyZDcy
OGM4MzI3YmZmMmE4MGRjMDc2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXIuY3BwCkBAIC0zMDAsMTQgKzMwMCwx
NCBAQCBib29sIEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyOjpkZWZp
bmVPd25Qcm9wZXJ0eShKU09iamVjdCogb2JqZQogCiB0ZW1wbGF0ZTw+IGlubGluZSBKU1Rlc3RO
YW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllciogSURMT3BlcmF0aW9uPEpTVGVzdE5h
bWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyPjo6Y2FzdChFeGVjU3RhdGUmIHN0YXRl
KQogewotICAgIHJldHVybiBqc0R5bmFtaWNEb3duY2FzdDxKU1Rlc3ROYW1lZEFuZEluZGV4ZWRT
ZXR0ZXJXaXRoSWRlbnRpZmllcio+KHN0YXRlLnZtKCksIHN0YXRlLnRoaXNWYWx1ZSgpKTsKKyAg
ICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRl
bnRpZmllcio+KHN0YXRlLnZtKCksIHN0YXRlLnRoaXNWYWx1ZSgpKTsKIH0KIAogRW5jb2RlZEpT
VmFsdWUganNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3Rv
cihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkKIHsKICAgICBWTSYgdm0gPSBzdGF0ZS0+dm0oKTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBE
RUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNE
b3duY2FzdDxKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllclByb3RvdHlw
ZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CisgICAgYXV0byogcHJvdG90eXBl
ID0ganNEeW5hbWljQ2FzdDxKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmll
clByb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVO
TElLRUxZKCFwcm90b3R5cGUpKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihzdGF0
ZSwgdGhyb3dTY29wZSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3ROYW1lZEFu
ZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllcjo6Z2V0Q29uc3RydWN0b3Ioc3RhdGUtPnZtKCks
IHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKQEAgLTMxNyw3ICszMTcsNyBAQCBib29sIHNl
dEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IoRXhl
Y1N0YXRlKiBzdGF0ZSwgRQogewogICAgIFZNJiB2bSA9IHN0YXRlLT52bSgpOwogICAgIGF1dG8g
dGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAgIGF1dG8qIHByb3RvdHlw
ZSA9IGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVu
dGlmaWVyUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKKyAgICBh
dXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRl
cldpdGhJZGVudGlmaWVyUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUp
KTsKICAgICBpZiAoVU5MSUtFTFkoIXByb3RvdHlwZSkpIHsKICAgICAgICAgdGhyb3dWTVR5cGVF
cnJvcihzdGF0ZSwgdGhyb3dTY29wZSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTQyMCw3
ICs0MjAsNyBAQCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSogc3RhdGUsIEpTRE9N
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRlc3ROYQogCiBUZXN0TmFtZWRBbmRJbmRleGVk
U2V0dGVyV2l0aElkZW50aWZpZXIqIEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVu
dGlmaWVyOjp0b1dyYXBwZWQoSlNDOjpWTSYgdm0sIEpTQzo6SlNWYWx1ZSB2YWx1ZSkKIHsKLSAg
ICBpZiAoYXV0byogd3JhcHBlciA9IGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdE5hbWVkQW5kSW5k
ZXhlZFNldHRlcldpdGhJZGVudGlmaWVyKj4odm0sIHZhbHVlKSkKKyAgICBpZiAoYXV0byogd3Jh
cHBlciA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50
aWZpZXIqPih2bSwgdmFsdWUpKQogICAgICAgICByZXR1cm4gJndyYXBwZXItPndyYXBwZWQoKTsK
ICAgICByZXR1cm4gbnVsbHB0cjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZENvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZENvbnN0cnVjdG9yLmNw
cAppbmRleCBkOGE3MGRjM2I3ZWMzZWRiN2E0NTU3Nzk1MzQwMGIwNTRkM2RhNGViLi4zNzMzYTc4
YTNhM2M0OTBlYTNjMmQ3NmU1ODhjNDI0MWI3NTNjYzYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVk
Q29uc3RydWN0b3IuY3BwCkBAIC0xNzgsNyArMTc4LDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0
TmFtZWRDb25zdHJ1Y3RvckNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1Zh
bHUKIHsKICAgICBWTSYgdm0gPSBzdGF0ZS0+dm0oKTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBE
RUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNE
b3duY2FzdDxKU1Rlc3ROYW1lZENvbnN0cnVjdG9yUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRl
Y29kZSh0aGlzVmFsdWUpKTsKKyAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNDYXN0PEpT
VGVzdE5hbWVkQ29uc3RydWN0b3JQcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNW
YWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghcHJvdG90eXBlKSkKICAgICAgICAgcmV0dXJuIHRo
cm93Vk1UeXBlRXJyb3Ioc3RhdGUsIHRocm93U2NvcGUpOwogICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0b3Ioc3RhdGUtPnZtKCks
IHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKQEAgLTE4OCw3ICsxODgsNyBAQCBib29sIHNl
dEpTVGVzdE5hbWVkQ29uc3RydWN0b3JDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVgogewogICAgIFZNJiB2bSA9IHN0YXRlLT52bSgpOwogICAgIGF1dG8g
dGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAgIGF1dG8qIHByb3RvdHlw
ZSA9IGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdE5hbWVkQ29uc3RydWN0b3JQcm90b3R5cGUqPih2
bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOworICAgIGF1dG8qIHByb3RvdHlwZSA9IGpz
RHluYW1pY0Nhc3Q8SlNUZXN0TmFtZWRDb25zdHJ1Y3RvclByb3RvdHlwZSo+KHZtLCBKU1ZhbHVl
OjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFwcm90b3R5cGUpKSB7CiAg
ICAgICAgIHRocm93Vk1UeXBlRXJyb3Ioc3RhdGUsIHRocm93U2NvcGUpOwogICAgICAgICByZXR1
cm4gZmFsc2U7CkBAIC0yNTMsNyArMjUzLDcgQEAgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVj
U3RhdGUqIHN0YXRlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBUZXN0TmEKIAog
VGVzdE5hbWVkQ29uc3RydWN0b3IqIEpTVGVzdE5hbWVkQ29uc3RydWN0b3I6OnRvV3JhcHBlZChK
U0M6OlZNJiB2bSwgSlNDOjpKU1ZhbHVlIHZhbHVlKQogewotICAgIGlmIChhdXRvKiB3cmFwcGVy
ID0ganNEeW5hbWljRG93bmNhc3Q8SlNUZXN0TmFtZWRDb25zdHJ1Y3Rvcio+KHZtLCB2YWx1ZSkp
CisgICAgaWYgKGF1dG8qIHdyYXBwZXIgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE5hbWVkQ29uc3Ry
dWN0b3IqPih2bSwgdmFsdWUpKQogICAgICAgICByZXR1cm4gJndyYXBwZXItPndyYXBwZWQoKTsK
ICAgICByZXR1cm4gbnVsbHB0cjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJOb0lkZW50aWZpZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRl
ck5vSWRlbnRpZmllci5jcHAKaW5kZXggMDNhOWMxODE4NjE2MzdhYzhjYWUyNWU5MGJiNTQ2ZmMy
N2RiNDQ3MS4uODI1Njc2MjQyZTUzM2I3YTlmMTM3ZGNmN2U3MDQzODQwOWExNzYzYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVk
RGVsZXRlck5vSWRlbnRpZmllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlck5vSWRlbnRpZmllci5jcHAKQEAgLTIwNiw3
ICsyMDYsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROYW1lZERlbGV0ZXJOb0lkZW50aWZpZXJD
b25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZAogewogICAgIFZNJiB2bSA9IHN0YXRl
LT52bSgpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwot
ICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdE5hbWVkRGVsZXRl
ck5vSWRlbnRpZmllclByb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7
CisgICAgYXV0byogcHJvdG90eXBlID0ganNEeW5hbWljQ2FzdDxKU1Rlc3ROYW1lZERlbGV0ZXJO
b0lkZW50aWZpZXJQcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwog
ICAgIGlmIChVTkxJS0VMWSghcHJvdG90eXBlKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBl
RXJyb3Ioc3RhdGUsIHRocm93U2NvcGUpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNU
ZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVyOjpnZXRDb25zdHJ1Y3RvcihzdGF0ZS0+dm0oKSwg
cHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOwpAQCAtMjE2LDcgKzIxNiw3IEBAIGJvb2wgc2V0
SlNUZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0
ZSwgRW5jb2RlZEpTVmFsCiB7CiAgICAgVk0mIHZtID0gc3RhdGUtPnZtKCk7CiAgICAgYXV0byB0
aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgYXV0byogcHJvdG90eXBl
ID0ganNEeW5hbWljRG93bmNhc3Q8SlNUZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVyUHJvdG90
eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKKyAgICBhdXRvKiBwcm90b3R5
cGUgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE5hbWVkRGVsZXRlck5vSWRlbnRpZmllclByb3RvdHlw
ZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFw
cm90b3R5cGUpKSB7CiAgICAgICAgIHRocm93Vk1UeXBlRXJyb3Ioc3RhdGUsIHRocm93U2NvcGUp
OwogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0yNzksNyArMjc5LDcgQEAgSlNDOjpKU1ZhbHVl
IHRvSlMoSlNDOjpFeGVjU3RhdGUqIHN0YXRlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBUZXN0TmEKIAogVGVzdE5hbWVkRGVsZXRlck5vSWRlbnRpZmllciogSlNUZXN0TmFtZWRE
ZWxldGVyTm9JZGVudGlmaWVyOjp0b1dyYXBwZWQoSlNDOjpWTSYgdm0sIEpTQzo6SlNWYWx1ZSB2
YWx1ZSkKIHsKLSAgICBpZiAoYXV0byogd3JhcHBlciA9IGpzRHluYW1pY0Rvd25jYXN0PEpTVGVz
dE5hbWVkRGVsZXRlck5vSWRlbnRpZmllcio+KHZtLCB2YWx1ZSkpCisgICAgaWYgKGF1dG8qIHdy
YXBwZXIgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE5hbWVkRGVsZXRlck5vSWRlbnRpZmllcio+KHZt
LCB2YWx1ZSkpCiAgICAgICAgIHJldHVybiAmd3JhcHBlci0+d3JhcHBlZCgpOwogICAgIHJldHVy
biBudWxscHRyOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJUaHJv
d2luZ0V4Y2VwdGlvbi5jcHAKaW5kZXggMmQ5OTA5MjM0ZjM2YTIyYjk0ZjI4ZGY4M2I0ZjcwYzky
OGE3YWY4YS4uOGYxNzE3MmFmMWQ5NDk1MDFjOTA2MjQzYTFiZGUwYWI5ZTY0MWJjMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVk
RGVsZXRlclRocm93aW5nRXhjZXB0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNlcHRpb24uY3Bw
CkBAIC0yMjAsNyArMjIwLDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0TmFtZWREZWxldGVyVGhy
b3dpbmdFeGNlcHRpb25Db25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLAogewogICAgIFZNJiB2
bSA9IHN0YXRlLT52bSgpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOwotICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdE5h
bWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29k
ZSh0aGlzVmFsdWUpKTsKKyAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNDYXN0PEpTVGVz
dE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRl
Y29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIXByb3RvdHlwZSkpCiAgICAgICAg
IHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKHN0YXRlLCB0aHJvd1Njb3BlKTsKICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uOjpnZXRD
b25zdHJ1Y3RvcihzdGF0ZS0+dm0oKSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOwpAQCAt
MjMwLDcgKzIzMCw3IEBAIGJvb2wgc2V0SlNUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNlcHRp
b25Db25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkCiB7CiAgICAgVk0mIHZtID0g
c3RhdGUtPnZtKCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7Ci0gICAgYXV0byogcHJvdG90eXBlID0ganNEeW5hbWljRG93bmNhc3Q8SlNUZXN0TmFtZWRE
ZWxldGVyVGhyb3dpbmdFeGNlcHRpb25Qcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRo
aXNWYWx1ZSkpOworICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0TmFt
ZWREZWxldGVyVGhyb3dpbmdFeGNlcHRpb25Qcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2Rl
KHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghcHJvdG90eXBlKSkgewogICAgICAgICB0
aHJvd1ZNVHlwZUVycm9yKHN0YXRlLCB0aHJvd1Njb3BlKTsKICAgICAgICAgcmV0dXJuIGZhbHNl
OwpAQCAtMjkzLDcgKzI5Myw3IEBAIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiBz
dGF0ZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVGVzdE5hCiAKIFRlc3ROYW1l
ZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbiogSlNUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNl
cHRpb246OnRvV3JhcHBlZChKU0M6OlZNJiB2bSwgSlNDOjpKU1ZhbHVlIHZhbHVlKQogewotICAg
IGlmIChhdXRvKiB3cmFwcGVyID0ganNEeW5hbWljRG93bmNhc3Q8SlNUZXN0TmFtZWREZWxldGVy
VGhyb3dpbmdFeGNlcHRpb24qPih2bSwgdmFsdWUpKQorICAgIGlmIChhdXRvKiB3cmFwcGVyID0g
anNEeW5hbWljQ2FzdDxKU1Rlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbio+KHZtLCB2
YWx1ZSkpCiAgICAgICAgIHJldHVybiAmd3JhcHBlci0+d3JhcHBlZCgpOwogICAgIHJldHVybiBu
dWxscHRyOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRp
Zmllci5jcHAKaW5kZXggMjExMzMyMzJlMWU5NTY4YThiNmZkMjJiYWMxNzc1YTY5MzY0NmFkZS4u
MWRiNjlmMWI2OWMxZmMyNGIxYWQ2MTE2YWFlMTYwMjRjNTk1NGRhZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlcldp
dGhJZGVudGlmaWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXIuY3BwCkBAIC0yMTIsMTQgKzIx
MiwxNCBAQCBib29sIEpTVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyOjpkZWxldGVQcm9w
ZXJ0eUJ5SW5kZXgoSlNDZWxsKiBjZWxsLCBFeGVjUwogCiB0ZW1wbGF0ZTw+IGlubGluZSBKU1Rl
c3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllciogSURMT3BlcmF0aW9uPEpTVGVzdE5hbWVkRGVs
ZXRlcldpdGhJZGVudGlmaWVyPjo6Y2FzdChFeGVjU3RhdGUmIHN0YXRlKQogewotICAgIHJldHVy
biBqc0R5bmFtaWNEb3duY2FzdDxKU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllcio+KHN0
YXRlLnZtKCksIHN0YXRlLnRoaXNWYWx1ZSgpKTsKKyAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxK
U1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllcio+KHN0YXRlLnZtKCksIHN0YXRlLnRoaXNW
YWx1ZSgpKTsKIH0KIAogRW5jb2RlZEpTVmFsdWUganNUZXN0TmFtZWREZWxldGVyV2l0aElkZW50
aWZpZXJDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBWTSYgdm0gPSBzdGF0ZS0+dm0oKTsKICAgICBhdXRv
IHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAgICBhdXRvKiBwcm90b3R5
cGUgPSBqc0R5bmFtaWNEb3duY2FzdDxKU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllclBy
b3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CisgICAgYXV0byogcHJv
dG90eXBlID0ganNEeW5hbWljQ2FzdDxKU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllclBy
b3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElL
RUxZKCFwcm90b3R5cGUpKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihzdGF0ZSwg
dGhyb3dTY29wZSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3ROYW1lZERlbGV0
ZXJXaXRoSWRlbnRpZmllcjo6Z2V0Q29uc3RydWN0b3Ioc3RhdGUtPnZtKCksIHByb3RvdHlwZS0+
Z2xvYmFsT2JqZWN0KCkpKTsKQEAgLTIyOSw3ICsyMjksNyBAQCBib29sIHNldEpTVGVzdE5hbWVk
RGVsZXRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2Rl
ZEpTVgogewogICAgIFZNJiB2bSA9IHN0YXRlLT52bSgpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1p
Y0Rvd25jYXN0PEpTVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyUHJvdG90eXBlKj4odm0s
IEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKKyAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5
bmFtaWNDYXN0PEpTVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyUHJvdG90eXBlKj4odm0s
IEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIXByb3RvdHlw
ZSkpIHsKICAgICAgICAgdGhyb3dWTVR5cGVFcnJvcihzdGF0ZSwgdGhyb3dTY29wZSk7CiAgICAg
ICAgIHJldHVybiBmYWxzZTsKQEAgLTMxMCw3ICszMTAsNyBAQCBKU0M6OkpTVmFsdWUgdG9KUyhK
U0M6OkV4ZWNTdGF0ZSogc3RhdGUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRl
c3ROYQogCiBUZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXIqIEpTVGVzdE5hbWVkRGVsZXRl
cldpdGhJZGVudGlmaWVyOjp0b1dyYXBwZWQoSlNDOjpWTSYgdm0sIEpTQzo6SlNWYWx1ZSB2YWx1
ZSkKIHsKLSAgICBpZiAoYXV0byogd3JhcHBlciA9IGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdE5h
bWVkRGVsZXRlcldpdGhJZGVudGlmaWVyKj4odm0sIHZhbHVlKSkKKyAgICBpZiAoYXV0byogd3Jh
cHBlciA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXIqPih2
bSwgdmFsdWUpKQogICAgICAgICByZXR1cm4gJndyYXBwZXItPndyYXBwZWQoKTsKICAgICByZXR1
cm4gbnVsbHB0cjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdldHRlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxldGVyV2l0
aEluZGV4ZWRHZXR0ZXIuY3BwCmluZGV4IGQ4ZGRkM2NkMDMwODZmZjY3YTk0MTAzZGYzYzZlNGQ3
ZDFkZTI3ODguLmUzZmZhNzgzMzhiYmVjY2E1MWU3YTFlMWYxNzFhYmMzNmFjYmUwYmMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1l
ZERlbGV0ZXJXaXRoSW5kZXhlZEdldHRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlcldpdGhJbmRleGVkR2V0dGVyLmNw
cApAQCAtMjI0LDcgKzIyNCw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE5hbWVkRGVsZXRlcldp
dGhJbmRleGVkR2V0dGVyQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwKIHsKICAgICBWTSYg
dm0gPSBzdGF0ZS0+dm0oKTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKHZtKTsKLSAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNEb3duY2FzdDxKU1Rlc3RO
YW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdldHRlclByb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNv
ZGUodGhpc1ZhbHVlKSk7CisgICAgYXV0byogcHJvdG90eXBlID0ganNEeW5hbWljQ2FzdDxKU1Rl
c3ROYW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdldHRlclByb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpk
ZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFwcm90b3R5cGUpKQogICAgICAg
ICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihzdGF0ZSwgdGhyb3dTY29wZSk7CiAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShKU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdldHRlcjo6Z2V0
Q29uc3RydWN0b3Ioc3RhdGUtPnZtKCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKQEAg
LTIzNCw3ICsyMzQsNyBAQCBib29sIHNldEpTVGVzdE5hbWVkRGVsZXRlcldpdGhJbmRleGVkR2V0
dGVyQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZAogewogICAgIFZNJiB2bSA9
IHN0YXRlLT52bSgpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwotICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdE5hbWVk
RGVsZXRlcldpdGhJbmRleGVkR2V0dGVyUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0
aGlzVmFsdWUpKTsKKyAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE5h
bWVkRGVsZXRlcldpdGhJbmRleGVkR2V0dGVyUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29k
ZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIXByb3RvdHlwZSkpIHsKICAgICAgICAg
dGhyb3dWTVR5cGVFcnJvcihzdGF0ZSwgdGhyb3dTY29wZSk7CiAgICAgICAgIHJldHVybiBmYWxz
ZTsKQEAgLTI5Nyw3ICsyOTcsNyBAQCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSog
c3RhdGUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRlc3ROYQogCiBUZXN0TmFt
ZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXIqIEpTVGVzdE5hbWVkRGVsZXRlcldpdGhJbmRleGVk
R2V0dGVyOjp0b1dyYXBwZWQoSlNDOjpWTSYgdm0sIEpTQzo6SlNWYWx1ZSB2YWx1ZSkKIHsKLSAg
ICBpZiAoYXV0byogd3JhcHBlciA9IGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdE5hbWVkRGVsZXRl
cldpdGhJbmRleGVkR2V0dGVyKj4odm0sIHZhbHVlKSkKKyAgICBpZiAoYXV0byogd3JhcHBlciA9
IGpzRHluYW1pY0Nhc3Q8SlNUZXN0TmFtZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXIqPih2bSwg
dmFsdWUpKQogICAgICAgICByZXR1cm4gJndyYXBwZXItPndyYXBwZWQoKTsKICAgICByZXR1cm4g
bnVsbHB0cjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3ROYW1lZEdldHRlckNhbGxXaXRoLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEdldHRlckNhbGxXaXRoLmNwcAppbmRl
eCBjMmZmMzAyNWQ5NWM3YmI5YzBjM2QzMTQzNzQxYWFjNTNjZDE4Mzg2Li5jMTE4MjBlZjhhZGNi
ZTdjNDc0OTdhODA0NTUzODQxNTIzYjhjZTBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkR2V0
dGVyQ2FsbFdpdGguY3BwCkBAIC0xODUsNyArMTg1LDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0
TmFtZWRHZXR0ZXJDYWxsV2l0aENvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRK
U1YKIHsKICAgICBWTSYgdm0gPSBzdGF0ZS0+dm0oKTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBE
RUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNE
b3duY2FzdDxKU1Rlc3ROYW1lZEdldHRlckNhbGxXaXRoUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6
OmRlY29kZSh0aGlzVmFsdWUpKTsKKyAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNDYXN0
PEpTVGVzdE5hbWVkR2V0dGVyQ2FsbFdpdGhQcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2Rl
KHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghcHJvdG90eXBlKSkKICAgICAgICAgcmV0
dXJuIHRocm93Vk1UeXBlRXJyb3Ioc3RhdGUsIHRocm93U2NvcGUpOwogICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoSlNUZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aDo6Z2V0Q29uc3RydWN0b3Ioc3Rh
dGUtPnZtKCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKQEAgLTE5NSw3ICsxOTUsNyBA
QCBib29sIHNldEpTVGVzdE5hbWVkR2V0dGVyQ2FsbFdpdGhDb25zdHJ1Y3RvcihFeGVjU3RhdGUq
IHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aAogewogICAgIFZNJiB2bSA9IHN0YXRlLT52bSgpOwog
ICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAgIGF1dG8q
IHByb3RvdHlwZSA9IGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdE5hbWVkR2V0dGVyQ2FsbFdpdGhQ
cm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOworICAgIGF1dG8qIHBy
b3RvdHlwZSA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aFByb3RvdHlw
ZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFw
cm90b3R5cGUpKSB7CiAgICAgICAgIHRocm93Vk1UeXBlRXJyb3Ioc3RhdGUsIHRocm93U2NvcGUp
OwogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0yNTgsNyArMjU4LDcgQEAgSlNDOjpKU1ZhbHVl
IHRvSlMoSlNDOjpFeGVjU3RhdGUqIHN0YXRlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBUZXN0TmEKIAogVGVzdE5hbWVkR2V0dGVyQ2FsbFdpdGgqIEpTVGVzdE5hbWVkR2V0dGVy
Q2FsbFdpdGg6OnRvV3JhcHBlZChKU0M6OlZNJiB2bSwgSlNDOjpKU1ZhbHVlIHZhbHVlKQogewot
ICAgIGlmIChhdXRvKiB3cmFwcGVyID0ganNEeW5hbWljRG93bmNhc3Q8SlNUZXN0TmFtZWRHZXR0
ZXJDYWxsV2l0aCo+KHZtLCB2YWx1ZSkpCisgICAgaWYgKGF1dG8qIHdyYXBwZXIgPSBqc0R5bmFt
aWNDYXN0PEpTVGVzdE5hbWVkR2V0dGVyQ2FsbFdpdGgqPih2bSwgdmFsdWUpKQogICAgICAgICBy
ZXR1cm4gJndyYXBwZXItPndyYXBwZWQoKTsKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1l
ZEdldHRlck5vSWRlbnRpZmllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0TmFtZWRHZXR0ZXJOb0lkZW50aWZpZXIuY3BwCmluZGV4IDcyNzdiZTE3
NjRiM2Q1YTE3N2VjNDc3NjFmMzQ5YWU2MmY3MWVjZjUuLjYzZGJjNjNkYmU5NmRmMmUwY2MwZmRi
ZGUxOTI1NzI3MGY1ZGVmNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEdldHRlck5vSWRlbnRpZmllci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkR2V0dGVyTm9J
ZGVudGlmaWVyLmNwcApAQCAtMTg1LDcgKzE4NSw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE5h
bWVkR2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2Rl
CiB7CiAgICAgVk0mIHZtID0gc3RhdGUtPnZtKCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgYXV0byogcHJvdG90eXBlID0ganNEeW5hbWljRG93
bmNhc3Q8SlNUZXN0TmFtZWRHZXR0ZXJOb0lkZW50aWZpZXJQcm90b3R5cGUqPih2bSwgSlNWYWx1
ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOworICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Nh
c3Q8SlNUZXN0TmFtZWRHZXR0ZXJOb0lkZW50aWZpZXJQcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6
ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghcHJvdG90eXBlKSkKICAgICAg
ICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3Ioc3RhdGUsIHRocm93U2NvcGUpOwogICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0TmFtZWRHZXR0ZXJOb0lkZW50aWZpZXI6OmdldENvbnN0
cnVjdG9yKHN0YXRlLT52bSgpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CkBAIC0xOTUs
NyArMTk1LDcgQEAgYm9vbCBzZXRKU1Rlc3ROYW1lZEdldHRlck5vSWRlbnRpZmllckNvbnN0cnVj
dG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHUKIHsKICAgICBWTSYgdm0gPSBzdGF0
ZS0+dm0oKTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
LSAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNEb3duY2FzdDxKU1Rlc3ROYW1lZEdldHRl
ck5vSWRlbnRpZmllclByb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7
CisgICAgYXV0byogcHJvdG90eXBlID0ganNEeW5hbWljQ2FzdDxKU1Rlc3ROYW1lZEdldHRlck5v
SWRlbnRpZmllclByb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAg
ICAgaWYgKFVOTElLRUxZKCFwcm90b3R5cGUpKSB7CiAgICAgICAgIHRocm93Vk1UeXBlRXJyb3Io
c3RhdGUsIHRocm93U2NvcGUpOwogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0yNTgsNyArMjU4
LDcgQEAgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqIHN0YXRlLCBKU0RPTUdsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBUZXN0TmEKIAogVGVzdE5hbWVkR2V0dGVyTm9JZGVudGlm
aWVyKiBKU1Rlc3ROYW1lZEdldHRlck5vSWRlbnRpZmllcjo6dG9XcmFwcGVkKEpTQzo6Vk0mIHZt
LCBKU0M6OkpTVmFsdWUgdmFsdWUpCiB7Ci0gICAgaWYgKGF1dG8qIHdyYXBwZXIgPSBqc0R5bmFt
aWNEb3duY2FzdDxKU1Rlc3ROYW1lZEdldHRlck5vSWRlbnRpZmllcio+KHZtLCB2YWx1ZSkpCisg
ICAgaWYgKGF1dG8qIHdyYXBwZXIgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE5hbWVkR2V0dGVyTm9J
ZGVudGlmaWVyKj4odm0sIHZhbHVlKSkKICAgICAgICAgcmV0dXJuICZ3cmFwcGVyLT53cmFwcGVk
KCk7CiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRH
ZXR0ZXJXaXRoSWRlbnRpZmllci5jcHAKaW5kZXggODBkZjVkNjk3OTgwYmY4YTcxNTQ5NzNlNmI0
NmJiNzVjZjhkNzA1Ni4uY2I3ZjkwNjgwNjQ5NTNjN2JlYmM2N2E3MjIyYzg2NTc4MmE0N2RjMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE5hbWVkR2V0dGVyV2l0aElkZW50aWZpZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEdldHRlcldpdGhJZGVudGlmaWVyLmNwcApA
QCAtMTg5LDE0ICsxODksMTQgQEAgdm9pZCBKU1Rlc3ROYW1lZEdldHRlcldpdGhJZGVudGlmaWVy
OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKEpTT2JqZWN0KiBvYmplY3QsIEV4ZWMKIAogdGVtcGxhdGU8
PiBpbmxpbmUgSlNUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllciogSURMT3BlcmF0aW9uPEpT
VGVzdE5hbWVkR2V0dGVyV2l0aElkZW50aWZpZXI+OjpjYXN0KEV4ZWNTdGF0ZSYgc3RhdGUpCiB7
Ci0gICAgcmV0dXJuIGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdE5hbWVkR2V0dGVyV2l0aElkZW50
aWZpZXIqPihzdGF0ZS52bSgpLCBzdGF0ZS50aGlzVmFsdWUoKSk7CisgICAgcmV0dXJuIGpzRHlu
YW1pY0Nhc3Q8SlNUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllcio+KHN0YXRlLnZtKCksIHN0
YXRlLnRoaXNWYWx1ZSgpKTsKIH0KIAogRW5jb2RlZEpTVmFsdWUganNUZXN0TmFtZWRHZXR0ZXJX
aXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFZNJiB2bSA9IHN0YXRlLT52bSgpOwog
ICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAgIGF1dG8q
IHByb3RvdHlwZSA9IGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdE5hbWVkR2V0dGVyV2l0aElkZW50
aWZpZXJQcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOworICAgIGF1
dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRp
ZmllclByb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYg
KFVOTElLRUxZKCFwcm90b3R5cGUpKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihz
dGF0ZSwgdGhyb3dTY29wZSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3ROYW1l
ZEdldHRlcldpdGhJZGVudGlmaWVyOjpnZXRDb25zdHJ1Y3RvcihzdGF0ZS0+dm0oKSwgcHJvdG90
eXBlLT5nbG9iYWxPYmplY3QoKSkpOwpAQCAtMjA2LDcgKzIwNiw3IEBAIGJvb2wgc2V0SlNUZXN0
TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVu
Y29kZWRKU1ZhCiB7CiAgICAgVk0mIHZtID0gc3RhdGUtPnZtKCk7CiAgICAgYXV0byB0aHJvd1Nj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgYXV0byogcHJvdG90eXBlID0ganNE
eW5hbWljRG93bmNhc3Q8SlNUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllclByb3RvdHlwZSo+
KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CisgICAgYXV0byogcHJvdG90eXBlID0g
anNEeW5hbWljQ2FzdDxKU1Rlc3ROYW1lZEdldHRlcldpdGhJZGVudGlmaWVyUHJvdG90eXBlKj4o
dm0sIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIXByb3Rv
dHlwZSkpIHsKICAgICAgICAgdGhyb3dWTVR5cGVFcnJvcihzdGF0ZSwgdGhyb3dTY29wZSk7CiAg
ICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTI4Niw3ICsyODYsNyBAQCBKU0M6OkpTVmFsdWUgdG9K
UyhKU0M6OkV4ZWNTdGF0ZSogc3RhdGUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IFRlc3ROYQogCiBUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllciogSlNUZXN0TmFtZWRHZXR0
ZXJXaXRoSWRlbnRpZmllcjo6dG9XcmFwcGVkKEpTQzo6Vk0mIHZtLCBKU0M6OkpTVmFsdWUgdmFs
dWUpCiB7Ci0gICAgaWYgKGF1dG8qIHdyYXBwZXIgPSBqc0R5bmFtaWNEb3duY2FzdDxKU1Rlc3RO
YW1lZEdldHRlcldpdGhJZGVudGlmaWVyKj4odm0sIHZhbHVlKSkKKyAgICBpZiAoYXV0byogd3Jh
cHBlciA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllcio+KHZt
LCB2YWx1ZSkpCiAgICAgICAgIHJldHVybiAmd3JhcHBlci0+d3JhcHBlZCgpOwogICAgIHJldHVy
biBudWxscHRyOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlck5vSWRlbnRpZmll
ci5jcHAKaW5kZXggMGM5OTRjODJhZmYzNzU2MzIzZWM3Y2U0YWQ4OGU4YWNjZTFjOTFiZi4uYzg5
YjIzYmZkOWFiZjRmODUzODFlNDhhYzZiYWY5M2FhM2M3Y2Y2NSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyTm9JZGVu
dGlmaWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXIuY3BwCkBAIC0yNDcsNyArMjQ3LDcgQEAgRW5j
b2RlZEpTVmFsdWUganNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvcihFeGVj
U3RhdGUqIHN0YXRlLCBFbmNvZGUKIHsKICAgICBWTSYgdm0gPSBzdGF0ZS0+dm0oKTsKICAgICBh
dXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAgICBhdXRvKiBwcm90
b3R5cGUgPSBqc0R5bmFtaWNEb3duY2FzdDxKU1Rlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllclBy
b3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CisgICAgYXV0byogcHJv
dG90eXBlID0ganNEeW5hbWljQ2FzdDxKU1Rlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllclByb3Rv
dHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZ
KCFwcm90b3R5cGUpKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihzdGF0ZSwgdGhy
b3dTY29wZSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3ROYW1lZFNldHRlck5v
SWRlbnRpZmllcjo6Z2V0Q29uc3RydWN0b3Ioc3RhdGUtPnZtKCksIHByb3RvdHlwZS0+Z2xvYmFs
T2JqZWN0KCkpKTsKQEAgLTI1Nyw3ICsyNTcsNyBAQCBib29sIHNldEpTVGVzdE5hbWVkU2V0dGVy
Tm9JZGVudGlmaWVyQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdQog
ewogICAgIFZNJiB2bSA9IHN0YXRlLT52bSgpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xB
UkVfVEhST1dfU0NPUEUodm0pOwotICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Rvd25j
YXN0PEpTVGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6
OmRlY29kZSh0aGlzVmFsdWUpKTsKKyAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNDYXN0
PEpTVGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRl
Y29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIXByb3RvdHlwZSkpIHsKICAgICAg
ICAgdGhyb3dWTVR5cGVFcnJvcihzdGF0ZSwgdGhyb3dTY29wZSk7CiAgICAgICAgIHJldHVybiBm
YWxzZTsKQEAgLTMyMCw3ICszMjAsNyBAQCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0
ZSogc3RhdGUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRlc3ROYQogCiBUZXN0
TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXIqIEpTVGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyOjp0
b1dyYXBwZWQoSlNDOjpWTSYgdm0sIEpTQzo6SlNWYWx1ZSB2YWx1ZSkKIHsKLSAgICBpZiAoYXV0
byogd3JhcHBlciA9IGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdE5hbWVkU2V0dGVyTm9JZGVudGlm
aWVyKj4odm0sIHZhbHVlKSkKKyAgICBpZiAoYXV0byogd3JhcHBlciA9IGpzRHluYW1pY0Nhc3Q8
SlNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXIqPih2bSwgdmFsdWUpKQogICAgICAgICByZXR1
cm4gJndyYXBwZXItPndyYXBwZWQoKTsKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNl
dHRlclRocm93aW5nRXhjZXB0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmNwcAppbmRleCA4
Y2FlYzZmYmE5ZjEyYjM5MzlkNDVkYWFjOTdiNTA2MzI1OTFlYTllLi4zYWZhMTFkMGFlM2U4OWYz
Y2JmMGVlODk0NGYxZDZiZWYxMTRkOGU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5h
bWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24uY3BwCkBAIC0yNDcsNyArMjQ3LDcgQEAgRW5jb2Rl
ZEpTVmFsdWUganNUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yKEV4
ZWNTdGF0ZSogc3RhdGUsIEUKIHsKICAgICBWTSYgdm0gPSBzdGF0ZS0+dm0oKTsKICAgICBhdXRv
IHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAgICBhdXRvKiBwcm90b3R5
cGUgPSBqc0R5bmFtaWNEb3duY2FzdDxKU1Rlc3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9u
UHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKKyAgICBhdXRvKiBw
cm90b3R5cGUgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRp
b25Qcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChV
TkxJS0VMWSghcHJvdG90eXBlKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3Ioc3Rh
dGUsIHRocm93U2NvcGUpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0TmFtZWRT
ZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbjo6Z2V0Q29uc3RydWN0b3Ioc3RhdGUtPnZtKCksIHByb3Rv
dHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKQEAgLTI1Nyw3ICsyNTcsNyBAQCBib29sIHNldEpTVGVz
dE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRl
LCBFbmNvZGVkSgogewogICAgIFZNJiB2bSA9IHN0YXRlLT52bSgpOwogICAgIGF1dG8gdGhyb3dT
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAgIGF1dG8qIHByb3RvdHlwZSA9IGpz
RHluYW1pY0Rvd25jYXN0PEpTVGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Qcm90b3R5
cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOworICAgIGF1dG8qIHByb3RvdHlw
ZSA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvblByb3Rv
dHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZ
KCFwcm90b3R5cGUpKSB7CiAgICAgICAgIHRocm93Vk1UeXBlRXJyb3Ioc3RhdGUsIHRocm93U2Nv
cGUpOwogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0zMjAsNyArMzIwLDcgQEAgSlNDOjpKU1Zh
bHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqIHN0YXRlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBUZXN0TmEKIAogVGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24qIEpTVGVz
dE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb246OnRvV3JhcHBlZChKU0M6OlZNJiB2bSwgSlND
OjpKU1ZhbHVlIHZhbHVlKQogewotICAgIGlmIChhdXRvKiB3cmFwcGVyID0ganNEeW5hbWljRG93
bmNhc3Q8SlNUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbio+KHZtLCB2YWx1ZSkpCisg
ICAgaWYgKGF1dG8qIHdyYXBwZXIgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE5hbWVkU2V0dGVyVGhy
b3dpbmdFeGNlcHRpb24qPih2bSwgdmFsdWUpKQogICAgICAgICByZXR1cm4gJndyYXBwZXItPndy
YXBwZWQoKTsKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlm
aWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RO
YW1lZFNldHRlcldpdGhJZGVudGlmaWVyLmNwcAppbmRleCBmNmE3NTE1Njc2MGMwODgzNjAwNzk4
ZjI5YzM1ZWNkYTcwZjlhYTZmLi5mZmJhZTA2MzIwZjdiNmJhMjU1ZTg5N2RkNTczNDViNzY0M2Uw
NGViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXIu
Y3BwCkBAIC0yNTEsMTQgKzI1MSwxNCBAQCBib29sIEpTVGVzdE5hbWVkU2V0dGVyV2l0aElkZW50
aWZpZXI6OmRlZmluZU93blByb3BlcnR5KEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdAogCiB0ZW1w
bGF0ZTw+IGlubGluZSBKU1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyKiBJRExPcGVyYXRp
b248SlNUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllcj46OmNhc3QoRXhlY1N0YXRlJiBzdGF0
ZSkKIHsKLSAgICByZXR1cm4ganNEeW5hbWljRG93bmNhc3Q8SlNUZXN0TmFtZWRTZXR0ZXJXaXRo
SWRlbnRpZmllcio+KHN0YXRlLnZtKCksIHN0YXRlLnRoaXNWYWx1ZSgpKTsKKyAgICByZXR1cm4g
anNEeW5hbWljQ2FzdDxKU1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyKj4oc3RhdGUudm0o
KSwgc3RhdGUudGhpc1ZhbHVlKCkpOwogfQogCiBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROYW1lZFNl
dHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVk0mIHZtID0gc3RhdGUtPnZt
KCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAg
YXV0byogcHJvdG90eXBlID0ganNEeW5hbWljRG93bmNhc3Q8SlNUZXN0TmFtZWRTZXR0ZXJXaXRo
SWRlbnRpZmllclByb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7Cisg
ICAgYXV0byogcHJvdG90eXBlID0ganNEeW5hbWljQ2FzdDxKU1Rlc3ROYW1lZFNldHRlcldpdGhJ
ZGVudGlmaWVyUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAg
ICBpZiAoVU5MSUtFTFkoIXByb3RvdHlwZSkpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVy
cm9yKHN0YXRlLCB0aHJvd1Njb3BlKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVz
dE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXI6OmdldENvbnN0cnVjdG9yKHN0YXRlLT52bSgpLCBw
cm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CkBAIC0yNjgsNyArMjY4LDcgQEAgYm9vbCBzZXRK
U1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0
ZSwgRW5jb2RlZEpTVmEKIHsKICAgICBWTSYgdm0gPSBzdGF0ZS0+dm0oKTsKICAgICBhdXRvIHRo
cm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAgICBhdXRvKiBwcm90b3R5cGUg
PSBqc0R5bmFtaWNEb3duY2FzdDxKU1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyUHJvdG90
eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKKyAgICBhdXRvKiBwcm90b3R5
cGUgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXJQcm90b3R5
cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSgh
cHJvdG90eXBlKSkgewogICAgICAgICB0aHJvd1ZNVHlwZUVycm9yKHN0YXRlLCB0aHJvd1Njb3Bl
KTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMzUxLDcgKzM1MSw3IEBAIEpTQzo6SlNWYWx1
ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgVGVzdE5hCiAKIFRlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyKiBKU1Rlc3ROYW1l
ZFNldHRlcldpdGhJZGVudGlmaWVyOjp0b1dyYXBwZWQoSlNDOjpWTSYgdm0sIEpTQzo6SlNWYWx1
ZSB2YWx1ZSkKIHsKLSAgICBpZiAoYXV0byogd3JhcHBlciA9IGpzRHluYW1pY0Rvd25jYXN0PEpT
VGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXIqPih2bSwgdmFsdWUpKQorICAgIGlmIChhdXRv
KiB3cmFwcGVyID0ganNEeW5hbWljQ2FzdDxKU1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVy
Kj4odm0sIHZhbHVlKSkKICAgICAgICAgcmV0dXJuICZ3cmFwcGVyLT53cmFwcGVkKCk7CiAgICAg
cmV0dXJuIG51bGxwdHI7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJX
aXRoSW5kZXhlZEdldHRlci5jcHAKaW5kZXggNDI1OTE5ZThmZDQ3MTU3ODQzMGU4ZjliOWNhNDMx
YjYwNzhjYzNlYy4uOTY2ZmI0NGY1Njc5ZmQ0ZmVjZTMxNTExZTM4MTBiMzQ3OWQ1ODI0YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5h
bWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyLmNw
cApAQCAtMjc3LDE0ICsyNzcsMTQgQEAgYm9vbCBKU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVk
R2V0dGVyOjpkZWZpbmVPd25Qcm9wZXJ0eShKU09iamVjdCogb2JqZWN0LCBFeGUKIAogdGVtcGxh
dGU8PiBpbmxpbmUgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlciogSURMT3BlcmF0
aW9uPEpTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXI+OjpjYXN0KEV4ZWNTdGF0ZSYg
c3RhdGUpCiB7Ci0gICAgcmV0dXJuIGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdE5hbWVkU2V0dGVy
V2l0aEluZGV4ZWRHZXR0ZXIqPihzdGF0ZS52bSgpLCBzdGF0ZS50aGlzVmFsdWUoKSk7CisgICAg
cmV0dXJuIGpzRHluYW1pY0Nhc3Q8SlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlcio+
KHN0YXRlLnZtKCksIHN0YXRlLnRoaXNWYWx1ZSgpKTsKIH0KIAogRW5jb2RlZEpTVmFsdWUganNU
ZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3Rh
dGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFZNJiB2
bSA9IHN0YXRlLT52bSgpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOwotICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdE5h
bWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJQcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2Rl
KHRoaXNWYWx1ZSkpOworICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0
TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlclByb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNv
ZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFwcm90b3R5cGUpKQogICAgICAgICBy
ZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihzdGF0ZSwgdGhyb3dTY29wZSk7CiAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShKU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyOjpnZXRDb25z
dHJ1Y3RvcihzdGF0ZS0+dm0oKSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOwpAQCAtMjk0
LDcgKzI5NCw3IEBAIGJvb2wgc2V0SlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckNv
bnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKCiB7CiAgICAgVk0mIHZtID0gc3Rh
dGUtPnZtKCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
Ci0gICAgYXV0byogcHJvdG90eXBlID0ganNEeW5hbWljRG93bmNhc3Q8SlNUZXN0TmFtZWRTZXR0
ZXJXaXRoSW5kZXhlZEdldHRlclByb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1Zh
bHVlKSk7CisgICAgYXV0byogcHJvdG90eXBlID0ganNEeW5hbWljQ2FzdDxKU1Rlc3ROYW1lZFNl
dHRlcldpdGhJbmRleGVkR2V0dGVyUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlz
VmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIXByb3RvdHlwZSkpIHsKICAgICAgICAgdGhyb3dW
TVR5cGVFcnJvcihzdGF0ZSwgdGhyb3dTY29wZSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAg
LTM5NCw3ICszOTQsNyBAQCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSogc3RhdGUs
IEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRlc3ROYQogCiBUZXN0TmFtZWRTZXR0
ZXJXaXRoSW5kZXhlZEdldHRlciogSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlcjo6
dG9XcmFwcGVkKEpTQzo6Vk0mIHZtLCBKU0M6OkpTVmFsdWUgdmFsdWUpCiB7Ci0gICAgaWYgKGF1
dG8qIHdyYXBwZXIgPSBqc0R5bmFtaWNEb3duY2FzdDxKU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRl
eGVkR2V0dGVyKj4odm0sIHZhbHVlKSkKKyAgICBpZiAoYXV0byogd3JhcHBlciA9IGpzRHluYW1p
Y0Nhc3Q8SlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlcio+KHZtLCB2YWx1ZSkpCiAg
ICAgICAgIHJldHVybiAmd3JhcHBlci0+d3JhcHBlZCgpOwogICAgIHJldHVybiBudWxscHRyOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4
ZWRHZXR0ZXJBbmRTZXR0ZXIuY3BwCmluZGV4IGVmYjU1NmEzYjIwNWJkOTAwOTZhMDdmNjFmZmFm
MzBlZTA2ZmMyZjcuLjBkOGZmYzA3NzI2MWMyMWRiMThmYTIyNjY2MzgyZGI5YTNiNWEyMjcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RO
YW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhl
ZEdldHRlckFuZFNldHRlci5jcHAKQEAgLTMwMCwxNCArMzAwLDE0IEBAIGJvb2wgSlNUZXN0TmFt
ZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlcjo6ZGVmaW5lT3duUHJvcGVydHkoSlNP
YmplY3QqIG9iCiAKIHRlbXBsYXRlPD4gaW5saW5lIEpTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4
ZWRHZXR0ZXJBbmRTZXR0ZXIqIElETE9wZXJhdGlvbjxKU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRl
eGVkR2V0dGVyQW5kU2V0dGVyPjo6Y2FzdChFeGVjU3RhdGUmIHN0YXRlKQogewotICAgIHJldHVy
biBqc0R5bmFtaWNEb3duY2FzdDxKU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5k
U2V0dGVyKj4oc3RhdGUudm0oKSwgc3RhdGUudGhpc1ZhbHVlKCkpOworICAgIHJldHVybiBqc0R5
bmFtaWNDYXN0PEpTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXIqPihz
dGF0ZS52bSgpLCBzdGF0ZS50aGlzVmFsdWUoKSk7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIGpzVGVz
dE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXJDb25zdHJ1Y3RvcihFeGVjU3Rh
dGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAg
ICBWTSYgdm0gPSBzdGF0ZS0+dm0oKTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKLSAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNEb3duY2FzdDxK
U1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyUHJvdG90eXBlKj4odm0s
IEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKKyAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5
bmFtaWNDYXN0PEpTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXJQcm90
b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VM
WSghcHJvdG90eXBlKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3Ioc3RhdGUsIHRo
cm93U2NvcGUpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0TmFtZWRTZXR0ZXJX
aXRoSW5kZXhlZEdldHRlckFuZFNldHRlcjo6Z2V0Q29uc3RydWN0b3Ioc3RhdGUtPnZtKCksIHBy
b3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKQEAgLTMxNyw3ICszMTcsNyBAQCBib29sIHNldEpT
VGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXJDb25zdHJ1Y3RvcihFeGVj
U3RhdGUqIHN0YXRlLAogewogICAgIFZNJiB2bSA9IHN0YXRlLT52bSgpOwogICAgIGF1dG8gdGhy
b3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAgIGF1dG8qIHByb3RvdHlwZSA9
IGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRT
ZXR0ZXJQcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOworICAgIGF1
dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhl
ZEdldHRlckFuZFNldHRlclByb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVl
KSk7CiAgICAgaWYgKFVOTElLRUxZKCFwcm90b3R5cGUpKSB7CiAgICAgICAgIHRocm93Vk1UeXBl
RXJyb3Ioc3RhdGUsIHRocm93U2NvcGUpOwogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC00NDQs
NyArNDQ0LDcgQEAgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqIHN0YXRlLCBKU0RP
TUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBUZXN0TmEKIAogVGVzdE5hbWVkU2V0dGVyV2l0
aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXIqIEpTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0
ZXJBbmRTZXR0ZXI6OnRvV3JhcHBlZChKU0M6OlZNJiB2bSwgSlNDOjpKU1ZhbHVlIHZhbHVlKQog
ewotICAgIGlmIChhdXRvKiB3cmFwcGVyID0ganNEeW5hbWljRG93bmNhc3Q8SlNUZXN0TmFtZWRT
ZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlcio+KHZtLCB2YWx1ZSkpCisgICAgaWYgKGF1
dG8qIHdyYXBwZXIgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRH
ZXR0ZXJBbmRTZXR0ZXIqPih2bSwgdmFsdWUpKQogICAgICAgICByZXR1cm4gJndyYXBwZXItPndy
YXBwZWQoKTsKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhPdmVycmlk
ZUJ1aWx0aW5zLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3ROYW1lZFNldHRlcldpdGhPdmVycmlkZUJ1aWx0aW5zLmNwcAppbmRleCBmYWMxMDJkYWEz
OWU2NDE5NTA0MzI5NzBhZTVlMjk4Mjg3Y2I0N2RjLi5jMzNmZDhlZDc1MTAyYTA2ZGViNDYxODM0
MzI0NWMxOWMxNGY2MDM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoT3ZlcnJpZGVCdWlsdGlucy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0
dGVyV2l0aE92ZXJyaWRlQnVpbHRpbnMuY3BwCkBAIC0yMzQsNyArMjM0LDcgQEAgRW5jb2RlZEpT
VmFsdWUganNUZXN0TmFtZWRTZXR0ZXJXaXRoT3ZlcnJpZGVCdWlsdGluc0NvbnN0cnVjdG9yKEV4
ZWNTdGF0ZSogc3RhdGUKIHsKICAgICBWTSYgdm0gPSBzdGF0ZS0+dm0oKTsKICAgICBhdXRvIHRo
cm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAgICBhdXRvKiBwcm90b3R5cGUg
PSBqc0R5bmFtaWNEb3duY2FzdDxKU1Rlc3ROYW1lZFNldHRlcldpdGhPdmVycmlkZUJ1aWx0aW5z
UHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKKyAgICBhdXRvKiBw
cm90b3R5cGUgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE5hbWVkU2V0dGVyV2l0aE92ZXJyaWRlQnVp
bHRpbnNQcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlm
IChVTkxJS0VMWSghcHJvdG90eXBlKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3Io
c3RhdGUsIHRocm93U2NvcGUpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0TmFt
ZWRTZXR0ZXJXaXRoT3ZlcnJpZGVCdWlsdGluczo6Z2V0Q29uc3RydWN0b3Ioc3RhdGUtPnZtKCks
IHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKQEAgLTI0NCw3ICsyNDQsNyBAQCBib29sIHNl
dEpTVGVzdE5hbWVkU2V0dGVyV2l0aE92ZXJyaWRlQnVpbHRpbnNDb25zdHJ1Y3RvcihFeGVjU3Rh
dGUqIHN0YXRlLCBFbmNvZAogewogICAgIFZNJiB2bSA9IHN0YXRlLT52bSgpOwogICAgIGF1dG8g
dGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAgIGF1dG8qIHByb3RvdHlw
ZSA9IGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdE5hbWVkU2V0dGVyV2l0aE92ZXJyaWRlQnVpbHRp
bnNQcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOworICAgIGF1dG8q
IHByb3RvdHlwZSA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0TmFtZWRTZXR0ZXJXaXRoT3ZlcnJpZGVC
dWlsdGluc1Byb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAg
aWYgKFVOTElLRUxZKCFwcm90b3R5cGUpKSB7CiAgICAgICAgIHRocm93Vk1UeXBlRXJyb3Ioc3Rh
dGUsIHRocm93U2NvcGUpOwogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0zMDcsNyArMzA3LDcg
QEAgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqIHN0YXRlLCBKU0RPTUdsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBUZXN0TmEKIAogVGVzdE5hbWVkU2V0dGVyV2l0aE92ZXJyaWRl
QnVpbHRpbnMqIEpTVGVzdE5hbWVkU2V0dGVyV2l0aE92ZXJyaWRlQnVpbHRpbnM6OnRvV3JhcHBl
ZChKU0M6OlZNJiB2bSwgSlNDOjpKU1ZhbHVlIHZhbHVlKQogewotICAgIGlmIChhdXRvKiB3cmFw
cGVyID0ganNEeW5hbWljRG93bmNhc3Q8SlNUZXN0TmFtZWRTZXR0ZXJXaXRoT3ZlcnJpZGVCdWls
dGlucyo+KHZtLCB2YWx1ZSkpCisgICAgaWYgKGF1dG8qIHdyYXBwZXIgPSBqc0R5bmFtaWNDYXN0
PEpTVGVzdE5hbWVkU2V0dGVyV2l0aE92ZXJyaWRlQnVpbHRpbnMqPih2bSwgdmFsdWUpKQogICAg
ICAgICByZXR1cm4gJndyYXBwZXItPndyYXBwZWQoKTsKICAgICByZXR1cm4gbnVsbHB0cjsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3ROYW1lZFNldHRlcldpdGhVbmZvcmdhYmxlUHJvcGVydGllcy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJs
ZVByb3BlcnRpZXMuY3BwCmluZGV4IDc5MmQzMjU2N2I5NjdiOWMxMjUwNjlmYjMxYTk5YmE1OWQy
Mjg4ZTguLjBkYWJlMmExYjFmZjllZWIxYWY1OGRhN2QwMzMyMDJlNzU5ZmY2OTggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNl
dHRlcldpdGhVbmZvcmdhYmxlUHJvcGVydGllcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9w
ZXJ0aWVzLmNwcApAQCAtMjc2LDE5ICsyNzYsMTkgQEAgc3RhdGljIGJvb2wgaXNVbmZvcmdlYWJs
ZVByb3BlcnR5TmFtZShQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKQogCiB0ZW1wbGF0ZTw+IGlu
bGluZSBKU1Rlc3ROYW1lZFNldHRlcldpdGhVbmZvcmdhYmxlUHJvcGVydGllcyogSURMQXR0cmli
dXRlPEpTVGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVzPjo6Y2FzdChFeGVj
U3RhdGUmIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUpCiB7Ci0gICAgcmV0dXJuIGpz
RHluYW1pY0Rvd25jYXN0PEpTVGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVz
Kj4oc3RhdGUudm0oKSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOworICAgIHJldHVybiBq
c0R5bmFtaWNDYXN0PEpTVGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVzKj4o
c3RhdGUudm0oKSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogfQogCiB0ZW1wbGF0ZTw+
IGlubGluZSBKU1Rlc3ROYW1lZFNldHRlcldpdGhVbmZvcmdhYmxlUHJvcGVydGllcyogSURMT3Bl
cmF0aW9uPEpTVGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVzPjo6Y2FzdChF
eGVjU3RhdGUmIHN0YXRlKQogewotICAgIHJldHVybiBqc0R5bmFtaWNEb3duY2FzdDxKU1Rlc3RO
YW1lZFNldHRlcldpdGhVbmZvcmdhYmxlUHJvcGVydGllcyo+KHN0YXRlLnZtKCksIHN0YXRlLnRo
aXNWYWx1ZSgpKTsKKyAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3ROYW1lZFNldHRlcldp
dGhVbmZvcmdhYmxlUHJvcGVydGllcyo+KHN0YXRlLnZtKCksIHN0YXRlLnRoaXNWYWx1ZSgpKTsK
IH0KIAogRW5jb2RlZEpTVmFsdWUganNUZXN0TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3Bl
cnRpZXNDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBWTSYgdm0gPSBzdGF0ZS0+dm0oKTsKICAgICBhdXRv
IHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAgICBhdXRvKiBwcm90b3R5
cGUgPSBqc0R5bmFtaWNEb3duY2FzdDxKU1Rlc3ROYW1lZFNldHRlcldpdGhVbmZvcmdhYmxlUHJv
cGVydGllc1Byb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CisgICAg
YXV0byogcHJvdG90eXBlID0ganNEeW5hbWljQ2FzdDxKU1Rlc3ROYW1lZFNldHRlcldpdGhVbmZv
cmdhYmxlUHJvcGVydGllc1Byb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVl
KSk7CiAgICAgaWYgKFVOTElLRUxZKCFwcm90b3R5cGUpKQogICAgICAgICByZXR1cm4gdGhyb3dW
TVR5cGVFcnJvcihzdGF0ZSwgdGhyb3dTY29wZSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShKU1Rlc3ROYW1lZFNldHRlcldpdGhVbmZvcmdhYmxlUHJvcGVydGllczo6Z2V0Q29uc3RydWN0
b3Ioc3RhdGUtPnZtKCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKQEAgLTI5OCw3ICsy
OTgsNyBAQCBib29sIHNldEpTVGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVz
Q29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgRQogewogICAgIFZNJiB2bSA9IHN0YXRlLT52
bSgpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAg
IGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdE5hbWVkU2V0dGVyV2l0
aFVuZm9yZ2FibGVQcm9wZXJ0aWVzUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlz
VmFsdWUpKTsKKyAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE5hbWVk
U2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVzUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRl
Y29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIXByb3RvdHlwZSkpIHsKICAgICAg
ICAgdGhyb3dWTVR5cGVFcnJvcihzdGF0ZSwgdGhyb3dTY29wZSk7CiAgICAgICAgIHJldHVybiBm
YWxzZTsKQEAgLTM4OSw3ICszODksNyBAQCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0
ZSogc3RhdGUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRlc3ROYQogCiBUZXN0
TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRpZXMqIEpTVGVzdE5hbWVkU2V0dGVyV2l0
aFVuZm9yZ2FibGVQcm9wZXJ0aWVzOjp0b1dyYXBwZWQoSlNDOjpWTSYgdm0sIEpTQzo6SlNWYWx1
ZSB2YWx1ZSkKIHsKLSAgICBpZiAoYXV0byogd3JhcHBlciA9IGpzRHluYW1pY0Rvd25jYXN0PEpT
VGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVzKj4odm0sIHZhbHVlKSkKKyAg
ICBpZiAoYXV0byogd3JhcHBlciA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0TmFtZWRTZXR0ZXJXaXRo
VW5mb3JnYWJsZVByb3BlcnRpZXMqPih2bSwgdmFsdWUpKQogICAgICAgICByZXR1cm4gJndyYXBw
ZXItPndyYXBwZWQoKTsKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhV
bmZvcmdhYmxlUHJvcGVydGllc0FuZE92ZXJyaWRlQnVpbHRpbnMuY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2Fi
bGVQcm9wZXJ0aWVzQW5kT3ZlcnJpZGVCdWlsdGlucy5jcHAKaW5kZXggYjhmMWIzMTg4NzU0OWI5
OWFjZTM2YTYxZDY3YjlkMGRkYmQ5OGZhOC4uNTg2Y2UzZjYwMjVhZDViNTNhOGVkZjY5MTllNjgw
M2U4NzIxMmQ1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVzQW5kT3ZlcnJp
ZGVCdWlsdGlucy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVzQW5kT3ZlcnJpZGVC
dWlsdGlucy5jcHAKQEAgLTI2MywxOSArMjYzLDE5IEBAIHN0YXRpYyBib29sIGlzVW5mb3JnZWFi
bGVQcm9wZXJ0eU5hbWUoUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkKIAogdGVtcGxhdGU8PiBp
bmxpbmUgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRpZXNBbmRPdmVycmlk
ZUJ1aWx0aW5zKiBJRExBdHRyaWJ1dGU8SlNUZXN0TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVBy
b3BlcnRpZXNBbmRPdmVycmlkZUJ1aWx0aW5zPjo6Y2FzdChFeGVjU3RhdGUmIHN0YXRlLCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUpCiB7Ci0gICAgcmV0dXJuIGpzRHluYW1pY0Rvd25jYXN0PEpT
VGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVzQW5kT3ZlcnJpZGVCdWlsdGlu
cyo+KHN0YXRlLnZtKCksIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKKyAgICByZXR1cm4g
anNEeW5hbWljQ2FzdDxKU1Rlc3ROYW1lZFNldHRlcldpdGhVbmZvcmdhYmxlUHJvcGVydGllc0Fu
ZE92ZXJyaWRlQnVpbHRpbnMqPihzdGF0ZS52bSgpLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVl
KSk7CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5lIEpTVGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2Fi
bGVQcm9wZXJ0aWVzQW5kT3ZlcnJpZGVCdWlsdGlucyogSURMT3BlcmF0aW9uPEpTVGVzdE5hbWVk
U2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVzQW5kT3ZlcnJpZGVCdWlsdGlucz46OmNhc3Qo
RXhlY1N0YXRlJiBzdGF0ZSkKIHsKLSAgICByZXR1cm4ganNEeW5hbWljRG93bmNhc3Q8SlNUZXN0
TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRpZXNBbmRPdmVycmlkZUJ1aWx0aW5zKj4o
c3RhdGUudm0oKSwgc3RhdGUudGhpc1ZhbHVlKCkpOworICAgIHJldHVybiBqc0R5bmFtaWNDYXN0
PEpTVGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVzQW5kT3ZlcnJpZGVCdWls
dGlucyo+KHN0YXRlLnZtKCksIHN0YXRlLnRoaXNWYWx1ZSgpKTsKIH0KIAogRW5jb2RlZEpTVmFs
dWUganNUZXN0TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRpZXNBbmRPdmVycmlkZUJ1
aWx0aW5zQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVk0mIHZtID0gc3RhdGUtPnZtKCk7CiAgICAgYXV0
byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgYXV0byogcHJvdG90
eXBlID0ganNEeW5hbWljRG93bmNhc3Q8SlNUZXN0TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVBy
b3BlcnRpZXNBbmRPdmVycmlkZUJ1aWx0aW5zUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29k
ZSh0aGlzVmFsdWUpKTsKKyAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNDYXN0PEpTVGVz
dE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVzQW5kT3ZlcnJpZGVCdWlsdGluc1By
b3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElL
RUxZKCFwcm90b3R5cGUpKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihzdGF0ZSwg
dGhyb3dTY29wZSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3ROYW1lZFNldHRl
cldpdGhVbmZvcmdhYmxlUHJvcGVydGllc0FuZE92ZXJyaWRlQnVpbHRpbnM6OmdldENvbnN0cnVj
dG9yKHN0YXRlLT52bSgpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CkBAIC0yODUsNyAr
Mjg1LDcgQEAgYm9vbCBzZXRKU1Rlc3ROYW1lZFNldHRlcldpdGhVbmZvcmdhYmxlUHJvcGVydGll
c0FuZE92ZXJyaWRlQnVpbHRpbnNDb25zdHJ1Y3RvcigKIHsKICAgICBWTSYgdm0gPSBzdGF0ZS0+
dm0oKTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAg
ICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNEb3duY2FzdDxKU1Rlc3ROYW1lZFNldHRlcldp
dGhVbmZvcmdhYmxlUHJvcGVydGllc0FuZE92ZXJyaWRlQnVpbHRpbnNQcm90b3R5cGUqPih2bSwg
SlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOworICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHlu
YW1pY0Nhc3Q8SlNUZXN0TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRpZXNBbmRPdmVy
cmlkZUJ1aWx0aW5zUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsK
ICAgICBpZiAoVU5MSUtFTFkoIXByb3RvdHlwZSkpIHsKICAgICAgICAgdGhyb3dWTVR5cGVFcnJv
cihzdGF0ZSwgdGhyb3dTY29wZSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTM3Niw3ICsz
NzYsNyBAQCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSogc3RhdGUsIEpTRE9NR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRlc3ROYQogCiBUZXN0TmFtZWRTZXR0ZXJXaXRoVW5m
b3JnYWJsZVByb3BlcnRpZXNBbmRPdmVycmlkZUJ1aWx0aW5zKiBKU1Rlc3ROYW1lZFNldHRlcldp
dGhVbmZvcmdhYmxlUHJvcGVydGllc0FuZE92ZXJyaWRlQnVpbHRpbnM6OnRvV3JhcHBlZChKU0M6
OlZNJiB2bSwgSlNDOjpKU1ZhbHVlIHZhbHVlKQogewotICAgIGlmIChhdXRvKiB3cmFwcGVyID0g
anNEeW5hbWljRG93bmNhc3Q8SlNUZXN0TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRp
ZXNBbmRPdmVycmlkZUJ1aWx0aW5zKj4odm0sIHZhbHVlKSkKKyAgICBpZiAoYXV0byogd3JhcHBl
ciA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRp
ZXNBbmRPdmVycmlkZUJ1aWx0aW5zKj4odm0sIHZhbHVlKSkKICAgICAgICAgcmV0dXJuICZ3cmFw
cGVyLT53cmFwcGVkKCk7CiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9kZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9kZS5jcHAKaW5kZXgg
YThhM2I0ZTIwODVmMTQ3NTAzNmJlZDdkZDU4ODFjMWY2ODE5YWNlYS4uOTI1Y2RhMDEzNWZhNmVh
NjQ0ZWQyNjFlMjU5NWIwNDZlYmUwMDMyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb2RlLmNwcApAQCAtMjE2LDE5ICsyMTYs
MTkgQEAgSlNWYWx1ZSBKU1Rlc3ROb2RlOjpnZXRDb25zdHJ1Y3RvcihWTSYgdm0sIGNvbnN0IEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiAKIHRlbXBsYXRlPD4gaW5saW5lIEpTVGVzdE5v
ZGUqIElETEF0dHJpYnV0ZTxKU1Rlc3ROb2RlPjo6Y2FzdChFeGVjU3RhdGUmIHN0YXRlLCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUpCiB7Ci0gICAgcmV0dXJuIGpzRHluYW1pY0Rvd25jYXN0PEpT
VGVzdE5vZGUqPihzdGF0ZS52bSgpLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CisgICAg
cmV0dXJuIGpzRHluYW1pY0Nhc3Q8SlNUZXN0Tm9kZSo+KHN0YXRlLnZtKCksIEpTVmFsdWU6OmRl
Y29kZSh0aGlzVmFsdWUpKTsKIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgSlNUZXN0Tm9kZSogSURM
T3BlcmF0aW9uPEpTVGVzdE5vZGU+OjpjYXN0KEV4ZWNTdGF0ZSYgc3RhdGUpCiB7Ci0gICAgcmV0
dXJuIGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdE5vZGUqPihzdGF0ZS52bSgpLCBzdGF0ZS50aGlz
VmFsdWUoKSk7CisgICAgcmV0dXJuIGpzRHluYW1pY0Nhc3Q8SlNUZXN0Tm9kZSo+KHN0YXRlLnZt
KCksIHN0YXRlLnRoaXNWYWx1ZSgpKTsKIH0KIAogRW5jb2RlZEpTVmFsdWUganNUZXN0Tm9kZUNv
bnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQogewogICAgIFZNJiB2bSA9IHN0YXRlLT52bSgpOwogICAgIGF1dG8gdGhyb3dT
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAgIGF1dG8qIHByb3RvdHlwZSA9IGpz
RHluYW1pY0Rvd25jYXN0PEpTVGVzdE5vZGVQcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2Rl
KHRoaXNWYWx1ZSkpOworICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0
Tm9kZVByb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYg
KFVOTElLRUxZKCFwcm90b3R5cGUpKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihz
dGF0ZSwgdGhyb3dTY29wZSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3ROb2Rl
OjpnZXRDb25zdHJ1Y3RvcihzdGF0ZS0+dm0oKSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkp
OwpAQCAtMjM4LDcgKzIzOCw3IEBAIGJvb2wgc2V0SlNUZXN0Tm9kZUNvbnN0cnVjdG9yKEV4ZWNT
dGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlCiB7CiAgICAgVk0m
IHZtID0gc3RhdGUtPnZtKCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7Ci0gICAgYXV0byogcHJvdG90eXBlID0ganNEeW5hbWljRG93bmNhc3Q8SlNUZXN0
Tm9kZVByb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CisgICAgYXV0
byogcHJvdG90eXBlID0ganNEeW5hbWljQ2FzdDxKU1Rlc3ROb2RlUHJvdG90eXBlKj4odm0sIEpT
VmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIXByb3RvdHlwZSkp
IHsKICAgICAgICAgdGhyb3dWTVR5cGVFcnJvcihzdGF0ZSwgdGhyb3dTY29wZSk7CiAgICAgICAg
IHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKaW5kZXggOWNlYmI3NzU3NTc5ZmRmOWY3NzAyNWFjNzky
MjljMGQ2NTgyNzJhYi4uNTUyZjc4YmU5NDQ1MjM0NGVlNjk4ZjU1MGVjZmVjODY4NDU1NmRkMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE9iai5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE9iai5jcHAKQEAgLTI0OTEsMTkgKzI0OTEsMTkgQEAgQ2FsbFR5cGUgSlNUZXN0T2JqOjpn
ZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYgY2FsbERhdGEpCiAKIHRlbXBsYXRlPD4gaW5s
aW5lIEpTVGVzdE9iaiogSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmNhc3QoRXhlY1N0YXRlJiBz
dGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlKQogewotICAgIHJldHVybiBqc0R5bmFtaWNE
b3duY2FzdDxKU1Rlc3RPYmoqPihzdGF0ZS52bSgpLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVl
KSk7CisgICAgcmV0dXJuIGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oc3RhdGUudm0oKSwgSlNW
YWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBKU1Rlc3RP
YmoqIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYXN0KEV4ZWNTdGF0ZSYgc3RhdGUpCiB7Ci0g
ICAgcmV0dXJuIGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdE9iaio+KHN0YXRlLnZtKCksIHN0YXRl
LnRoaXNWYWx1ZSgpKTsKKyAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihzdGF0
ZS52bSgpLCBzdGF0ZS50aGlzVmFsdWUoKSk7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9i
akNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKQogewogICAgIFZNJiB2bSA9IHN0YXRlLT52bSgpOwogICAgIGF1dG8gdGhy
b3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAgIGF1dG8qIHByb3RvdHlwZSA9
IGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdE9ialByb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNv
ZGUodGhpc1ZhbHVlKSk7CisgICAgYXV0byogcHJvdG90eXBlID0ganNEeW5hbWljQ2FzdDxKU1Rl
c3RPYmpQcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlm
IChVTkxJS0VMWSghcHJvdG90eXBlKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3Io
c3RhdGUsIHRocm93U2NvcGUpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0T2Jq
OjpnZXRDb25zdHJ1Y3RvcihzdGF0ZS0+dm0oKSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkp
OwpAQCAtMjUxMyw3ICsyNTEzLDcgQEAgYm9vbCBzZXRKU1Rlc3RPYmpDb25zdHJ1Y3RvcihFeGVj
U3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWQKIHsKICAgICBW
TSYgdm0gPSBzdGF0ZS0+dm0oKTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKLSAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNEb3duY2FzdDxKU1Rl
c3RPYmpQcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOworICAgIGF1
dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqUHJvdG90eXBlKj4odm0sIEpT
VmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIXByb3RvdHlwZSkp
IHsKICAgICAgICAgdGhyb3dWTVR5cGVFcnJvcihzdGF0ZSwgdGhyb3dTY29wZSk7CiAgICAgICAg
IHJldHVybiBmYWxzZTsKQEAgLTg0NDQsNyArODQ0NCw3IEBAIEpTQzo6SlNWYWx1ZSB0b0pTKEpT
Qzo6RXhlY1N0YXRlKiBzdGF0ZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVGVz
dE9iCiAKIFRlc3RPYmoqIEpTVGVzdE9iajo6dG9XcmFwcGVkKEpTQzo6Vk0mIHZtLCBKU0M6OkpT
VmFsdWUgdmFsdWUpCiB7Ci0gICAgaWYgKGF1dG8qIHdyYXBwZXIgPSBqc0R5bmFtaWNEb3duY2Fz
dDxKU1Rlc3RPYmoqPih2bSwgdmFsdWUpKQorICAgIGlmIChhdXRvKiB3cmFwcGVyID0ganNEeW5h
bWljQ2FzdDxKU1Rlc3RPYmoqPih2bSwgdmFsdWUpKQogICAgICAgICByZXR1cm4gJndyYXBwZXIt
PndyYXBwZWQoKTsKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0
b3JzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RP
dmVybG9hZGVkQ29uc3RydWN0b3JzLmNwcAppbmRleCAxOTdlY2Y5Nzg3YmQxM2FiM2ZhMjAwN2Vk
YzRiNTQ2OTYxOGVjNmIxLi40MTgxMWI5Zjc3MWY3MmVlNjYxNGEzNzUwNjIzNDI5ZjE1YTYyNzM5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMuY3BwCkBAIC0y
MzAsNyArMjMwLDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9y
c0NvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWQKIHsKICAgICBWTSYgdm0gPSBz
dGF0ZS0+dm0oKTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZt
KTsKLSAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNEb3duY2FzdDxKU1Rlc3RPdmVybG9h
ZGVkQ29uc3RydWN0b3JzUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUp
KTsKKyAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE92ZXJsb2FkZWRD
b25zdHJ1Y3RvcnNQcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwog
ICAgIGlmIChVTkxJS0VMWSghcHJvdG90eXBlKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBl
RXJyb3Ioc3RhdGUsIHRocm93U2NvcGUpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNU
ZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yczo6Z2V0Q29uc3RydWN0b3Ioc3RhdGUtPnZtKCksIHBy
b3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKQEAgLTI0MCw3ICsyNDAsNyBAQCBib29sIHNldEpT
VGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBF
bmNvZGVkSlNWYWx1ZQogewogICAgIFZNJiB2bSA9IHN0YXRlLT52bSgpOwogICAgIGF1dG8gdGhy
b3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAgIGF1dG8qIHByb3RvdHlwZSA9
IGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNQcm90b3R5cGUq
Pih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOworICAgIGF1dG8qIHByb3RvdHlwZSA9
IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1Byb3RvdHlwZSo+KHZt
LCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFwcm90b3R5
cGUpKSB7CiAgICAgICAgIHRocm93Vk1UeXBlRXJyb3Ioc3RhdGUsIHRocm93U2NvcGUpOwogICAg
ICAgICByZXR1cm4gZmFsc2U7CkBAIC0zMDMsNyArMzAzLDcgQEAgSlNDOjpKU1ZhbHVlIHRvSlMo
SlNDOjpFeGVjU3RhdGUqIHN0YXRlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBU
ZXN0T3YKIAogVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMqIEpTVGVzdE92ZXJsb2FkZWRDb25z
dHJ1Y3RvcnM6OnRvV3JhcHBlZChKU0M6OlZNJiB2bSwgSlNDOjpKU1ZhbHVlIHZhbHVlKQogewot
ICAgIGlmIChhdXRvKiB3cmFwcGVyID0ganNEeW5hbWljRG93bmNhc3Q8SlNUZXN0T3ZlcmxvYWRl
ZENvbnN0cnVjdG9ycyo+KHZtLCB2YWx1ZSkpCisgICAgaWYgKGF1dG8qIHdyYXBwZXIgPSBqc0R5
bmFtaWNDYXN0PEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMqPih2bSwgdmFsdWUpKQogICAg
ICAgICByZXR1cm4gJndyYXBwZXItPndyYXBwZWQoKTsKICAgICByZXR1cm4gbnVsbHB0cjsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbmNlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0
aFNlcXVlbmNlLmNwcAppbmRleCAzMGM4YmRhZmVmNzEyYTViZGI3YmE1NTczMWFjZTE4ZjE3MDJl
NTNmLi45MGNlOTBkNTAyMGJiMTg4NjE3ZGMxNDY0YTA3MTA3N2E3OTEzZTYyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRl
ZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVu
Y2UuY3BwCkBAIC0xODYsNyArMTg2LDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0T3ZlcmxvYWRl
ZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZUNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3QKIHsKICAg
ICBWTSYgdm0gPSBzdGF0ZS0+dm0oKTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKLSAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNEb3duY2FzdDxK
U1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbmNlUHJvdG90eXBlKj4odm0sIEpT
VmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKKyAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFt
aWNDYXN0PEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2VQcm90b3R5cGUq
Pih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghcHJv
dG90eXBlKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3Ioc3RhdGUsIHRocm93U2Nv
cGUpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVj
dG9yc1dpdGhTZXF1ZW5jZTo6Z2V0Q29uc3RydWN0b3Ioc3RhdGUtPnZtKCksIHByb3RvdHlwZS0+
Z2xvYmFsT2JqZWN0KCkpKTsKQEAgLTE5Niw3ICsxOTYsNyBAQCBib29sIHNldEpTVGVzdE92ZXJs
b2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2VDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRl
LCBFbgogewogICAgIFZNJiB2bSA9IHN0YXRlLT52bSgpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1p
Y0Rvd25jYXN0PEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2VQcm90b3R5
cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOworICAgIGF1dG8qIHByb3RvdHlw
ZSA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5j
ZVByb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVO
TElLRUxZKCFwcm90b3R5cGUpKSB7CiAgICAgICAgIHRocm93Vk1UeXBlRXJyb3Ioc3RhdGUsIHRo
cm93U2NvcGUpOwogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0yNTksNyArMjU5LDcgQEAgSlND
OjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqIHN0YXRlLCBKU0RPTUdsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBUZXN0T3YKIAogVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2Vx
dWVuY2UqIEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2U6OnRvV3JhcHBl
ZChKU0M6OlZNJiB2bSwgSlNDOjpKU1ZhbHVlIHZhbHVlKQogewotICAgIGlmIChhdXRvKiB3cmFw
cGVyID0ganNEeW5hbWljRG93bmNhc3Q8SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhT
ZXF1ZW5jZSo+KHZtLCB2YWx1ZSkpCisgICAgaWYgKGF1dG8qIHdyYXBwZXIgPSBqc0R5bmFtaWND
YXN0PEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2UqPih2bSwgdmFsdWUp
KQogICAgICAgICByZXR1cm4gJndyYXBwZXItPndyYXBwZWQoKTsKICAgICByZXR1cm4gbnVsbHB0
cjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RPdmVycmlkZUJ1aWx0aW5zLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVycmlkZUJ1aWx0aW5zLmNwcAppbmRleCA3YjA2ZTg2MTg5
Y2Q0ZWU4ZTQwMTAzMWIxZGVjZGM1M2VlZjk3YzhmLi5mZjdlMjAwZDk3ZTQxNzNhMjM0ZmU0YjRl
ZDc1MDAyNjIyYmQ4ODJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcnJpZGVCdWlsdGlucy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJyaWRlQnVpbHRpbnMuY3BwCkBA
IC0xOTIsMTQgKzE5MiwxNCBAQCB2b2lkIEpTVGVzdE92ZXJyaWRlQnVpbHRpbnM6OmdldE93blBy
b3BlcnR5TmFtZXMoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBzdAogCiB0ZW1wbGF0ZTw+
IGlubGluZSBKU1Rlc3RPdmVycmlkZUJ1aWx0aW5zKiBJRExPcGVyYXRpb248SlNUZXN0T3ZlcnJp
ZGVCdWlsdGlucz46OmNhc3QoRXhlY1N0YXRlJiBzdGF0ZSkKIHsKLSAgICByZXR1cm4ganNEeW5h
bWljRG93bmNhc3Q8SlNUZXN0T3ZlcnJpZGVCdWlsdGlucyo+KHN0YXRlLnZtKCksIHN0YXRlLnRo
aXNWYWx1ZSgpKTsKKyAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3RPdmVycmlkZUJ1aWx0
aW5zKj4oc3RhdGUudm0oKSwgc3RhdGUudGhpc1ZhbHVlKCkpOwogfQogCiBFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RPdmVycmlkZUJ1aWx0aW5zQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVk0mIHZtID0gc3Rh
dGUtPnZtKCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
Ci0gICAgYXV0byogcHJvdG90eXBlID0ganNEeW5hbWljRG93bmNhc3Q8SlNUZXN0T3ZlcnJpZGVC
dWlsdGluc1Byb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CisgICAg
YXV0byogcHJvdG90eXBlID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPdmVycmlkZUJ1aWx0aW5zUHJv
dG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtF
TFkoIXByb3RvdHlwZSkpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKHN0YXRlLCB0
aHJvd1Njb3BlKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdE92ZXJyaWRlQnVp
bHRpbnM6OmdldENvbnN0cnVjdG9yKHN0YXRlLT52bSgpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVj
dCgpKSk7CkBAIC0yMDksNyArMjA5LDcgQEAgYm9vbCBzZXRKU1Rlc3RPdmVycmlkZUJ1aWx0aW5z
Q29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1YKIHsKICAg
ICBWTSYgdm0gPSBzdGF0ZS0+dm0oKTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKLSAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNEb3duY2FzdDxK
U1Rlc3RPdmVycmlkZUJ1aWx0aW5zUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlz
VmFsdWUpKTsKKyAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE92ZXJy
aWRlQnVpbHRpbnNQcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwog
ICAgIGlmIChVTkxJS0VMWSghcHJvdG90eXBlKSkgewogICAgICAgICB0aHJvd1ZNVHlwZUVycm9y
KHN0YXRlLCB0aHJvd1Njb3BlKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMjg5LDcgKzI4
OSw3IEBAIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSwgSlNET01HbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVGVzdE92CiAKIFRlc3RPdmVycmlkZUJ1aWx0aW5zKiBK
U1Rlc3RPdmVycmlkZUJ1aWx0aW5zOjp0b1dyYXBwZWQoSlNDOjpWTSYgdm0sIEpTQzo6SlNWYWx1
ZSB2YWx1ZSkKIHsKLSAgICBpZiAoYXV0byogd3JhcHBlciA9IGpzRHluYW1pY0Rvd25jYXN0PEpT
VGVzdE92ZXJyaWRlQnVpbHRpbnMqPih2bSwgdmFsdWUpKQorICAgIGlmIChhdXRvKiB3cmFwcGVy
ID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPdmVycmlkZUJ1aWx0aW5zKj4odm0sIHZhbHVlKSkKICAg
ICAgICAgcmV0dXJuICZ3cmFwcGVyLT53cmFwcGVkKCk7CiAgICAgcmV0dXJuIG51bGxwdHI7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0UGx1Z2luSW50ZXJmYWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RQbHVnaW5JbnRlcmZhY2UuY3BwCmluZGV4IGQxZjExZmUwZjM4NTdjZTcz
NGEyZGNjMGM2ZWY1MTkxMmE1ZDJmMzIuLmIwNGMzNWJkMTUyNDBhODA2ODg2MWIyNWVmMmM3Nzhh
OGI0NWM1MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RQbHVnaW5JbnRlcmZhY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RQbHVnaW5JbnRlcmZhY2UuY3BwCkBAIC0xODksNyAr
MTg5LDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0UGx1Z2luSW50ZXJmYWNlQ29uc3RydWN0b3Io
RXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUKIHsKICAgICBWTSYgdm0gPSBzdGF0ZS0+
dm0oKTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAg
ICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNEb3duY2FzdDxKU1Rlc3RQbHVnaW5JbnRlcmZh
Y2VQcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOworICAgIGF1dG8q
IHByb3RvdHlwZSA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0UGx1Z2luSW50ZXJmYWNlUHJvdG90eXBl
Kj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIXBy
b3RvdHlwZSkpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKHN0YXRlLCB0aHJvd1Nj
b3BlKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdFBsdWdpbkludGVyZmFjZTo6
Z2V0Q29uc3RydWN0b3Ioc3RhdGUtPnZtKCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsK
QEAgLTE5OSw3ICsxOTksNyBAQCBib29sIHNldEpTVGVzdFBsdWdpbkludGVyZmFjZUNvbnN0cnVj
dG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYQogewogICAgIFZNJiB2
bSA9IHN0YXRlLT52bSgpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOwotICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdFBs
dWdpbkludGVyZmFjZVByb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7
CisgICAgYXV0byogcHJvdG90eXBlID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RQbHVnaW5JbnRlcmZh
Y2VQcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChV
TkxJS0VMWSghcHJvdG90eXBlKSkgewogICAgICAgICB0aHJvd1ZNVHlwZUVycm9yKHN0YXRlLCB0
aHJvd1Njb3BlKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMjYyLDcgKzI2Miw3IEBAIEpT
Qzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSwgSlNET01HbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgVGVzdFBsCiAKIFRlc3RQbHVnaW5JbnRlcmZhY2UqIEpTVGVzdFBsdWdp
bkludGVyZmFjZTo6dG9XcmFwcGVkKEpTQzo6Vk0mIHZtLCBKU0M6OkpTVmFsdWUgdmFsdWUpCiB7
Ci0gICAgaWYgKGF1dG8qIHdyYXBwZXIgPSBqc0R5bmFtaWNEb3duY2FzdDxKU1Rlc3RQbHVnaW5J
bnRlcmZhY2UqPih2bSwgdmFsdWUpKQorICAgIGlmIChhdXRvKiB3cmFwcGVyID0ganNEeW5hbWlj
Q2FzdDxKU1Rlc3RQbHVnaW5JbnRlcmZhY2UqPih2bSwgdmFsdWUpKQogICAgICAgICByZXR1cm4g
JndyYXBwZXItPndyYXBwZWQoKTsKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RQcm9taXNlUmVq
ZWN0aW9uRXZlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdFByb21pc2VSZWplY3Rpb25FdmVudC5jcHAKaW5kZXggMDdkMTY1M2E4YWQ4MTM2OTVm
YjIxNDgzZTI1MzU2MGMyZmY1NDU0Mi4uMTQ5Y2M5YjdjNjBiZWIxYWIxYmUyNzFiNmI0NTFkYWYx
OGI2ZjQyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdFByb21pc2VSZWplY3Rpb25FdmVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFByb21pc2VSZWplY3Rpb25FdmVudC5jcHAK
QEAgLTIzMSwxNCArMjMxLDE0IEBAIEpTVmFsdWUgSlNUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50
OjpnZXRDb25zdHJ1Y3RvcihWTSYgdm0sIGNvbnN0IEpTR2xvYmFsT2JqZWN0CiAKIHRlbXBsYXRl
PD4gaW5saW5lIEpTVGVzdFByb21pc2VSZWplY3Rpb25FdmVudCogSURMQXR0cmlidXRlPEpTVGVz
dFByb21pc2VSZWplY3Rpb25FdmVudD46OmNhc3QoRXhlY1N0YXRlJiBzdGF0ZSwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlKQogewotICAgIHJldHVybiBqc0R5bmFtaWNEb3duY2FzdDxKU1Rlc3RQ
cm9taXNlUmVqZWN0aW9uRXZlbnQqPihzdGF0ZS52bSgpLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1Zh
bHVlKSk7CisgICAgcmV0dXJuIGpzRHluYW1pY0Nhc3Q8SlNUZXN0UHJvbWlzZVJlamVjdGlvbkV2
ZW50Kj4oc3RhdGUudm0oKSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogfQogCiBFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnRDb25zdHJ1Y3RvcihFeGVjU3Rh
dGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAg
ICBWTSYgdm0gPSBzdGF0ZS0+dm0oKTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKLSAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNEb3duY2FzdDxK
U1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnRQcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2Rl
KHRoaXNWYWx1ZSkpOworICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0
UHJvbWlzZVJlamVjdGlvbkV2ZW50UHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlz
VmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIXByb3RvdHlwZSkpCiAgICAgICAgIHJldHVybiB0
aHJvd1ZNVHlwZUVycm9yKHN0YXRlLCB0aHJvd1Njb3BlKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKEpTVGVzdFByb21pc2VSZWplY3Rpb25FdmVudDo6Z2V0Q29uc3RydWN0b3Ioc3RhdGUt
PnZtKCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKQEAgLTI0OCw3ICsyNDgsNyBAQCBi
b29sIHNldEpTVGVzdFByb21pc2VSZWplY3Rpb25FdmVudENvbnN0cnVjdG9yKEV4ZWNTdGF0ZSog
c3RhdGUsIEVuY29kZWRKU1ZhbHVlCiB7CiAgICAgVk0mIHZtID0gc3RhdGUtPnZtKCk7CiAgICAg
YXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgYXV0byogcHJv
dG90eXBlID0ganNEeW5hbWljRG93bmNhc3Q8SlNUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50UHJv
dG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKKyAgICBhdXRvKiBwcm90
b3R5cGUgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdFByb21pc2VSZWplY3Rpb25FdmVudFByb3RvdHlw
ZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFw
cm90b3R5cGUpKSB7CiAgICAgICAgIHRocm93Vk1UeXBlRXJyb3Ioc3RhdGUsIHRocm93U2NvcGUp
OwogICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXphdGlvbi5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXphdGlvbi5jcHAKaW5k
ZXggZDc3YzUwNzZhYjJlZDI2OGFiYTUxMGZiN2E1Nzg5NDk5OWMwNWJhYS4uOGY4YzRkZjY5MzU2
YmU4MzAwMzEzOTk1Y2E2MjViNDMyZWY0NGFkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6YXRpb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemF0aW9u
LmNwcApAQCAtMTc2LDE5ICsxNzYsMTkgQEAgdm9pZCBKU1Rlc3RTZXJpYWxpemF0aW9uOjpkZXN0
cm95KEpTQzo6SlNDZWxsKiBjZWxsKQogCiB0ZW1wbGF0ZTw+IGlubGluZSBKU1Rlc3RTZXJpYWxp
emF0aW9uKiBJRExBdHRyaWJ1dGU8SlNUZXN0U2VyaWFsaXphdGlvbj46OmNhc3QoRXhlY1N0YXRl
JiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlKQogewotICAgIHJldHVybiBqc0R5bmFt
aWNEb3duY2FzdDxKU1Rlc3RTZXJpYWxpemF0aW9uKj4oc3RhdGUudm0oKSwgSlNWYWx1ZTo6ZGVj
b2RlKHRoaXNWYWx1ZSkpOworICAgIHJldHVybiBqc0R5bmFtaWNDYXN0PEpTVGVzdFNlcmlhbGl6
YXRpb24qPihzdGF0ZS52bSgpLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiB9CiAKIHRl
bXBsYXRlPD4gaW5saW5lIEpTVGVzdFNlcmlhbGl6YXRpb24qIElETE9wZXJhdGlvbjxKU1Rlc3RT
ZXJpYWxpemF0aW9uPjo6Y2FzdChFeGVjU3RhdGUmIHN0YXRlKQogewotICAgIHJldHVybiBqc0R5
bmFtaWNEb3duY2FzdDxKU1Rlc3RTZXJpYWxpemF0aW9uKj4oc3RhdGUudm0oKSwgc3RhdGUudGhp
c1ZhbHVlKCkpOworICAgIHJldHVybiBqc0R5bmFtaWNDYXN0PEpTVGVzdFNlcmlhbGl6YXRpb24q
PihzdGF0ZS52bSgpLCBzdGF0ZS50aGlzVmFsdWUoKSk7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIGpz
VGVzdFNlcmlhbGl6YXRpb25Db25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBWTSYgdm0gPSBzdGF0ZS0+dm0o
KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAgICBh
dXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNEb3duY2FzdDxKU1Rlc3RTZXJpYWxpemF0aW9uUHJv
dG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKKyAgICBhdXRvKiBwcm90
b3R5cGUgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdFNlcmlhbGl6YXRpb25Qcm90b3R5cGUqPih2bSwg
SlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghcHJvdG90eXBl
KSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3Ioc3RhdGUsIHRocm93U2NvcGUpOwog
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0U2VyaWFsaXphdGlvbjo6Z2V0Q29uc3Ry
dWN0b3Ioc3RhdGUtPnZtKCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKQEAgLTE5OCw3
ICsxOTgsNyBAQCBib29sIHNldEpTVGVzdFNlcmlhbGl6YXRpb25Db25zdHJ1Y3RvcihFeGVjU3Rh
dGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdQogewogICAgIFZNJiB2bSA9IHN0YXRl
LT52bSgpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwot
ICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdFNlcmlhbGl6YXRp
b25Qcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOworICAgIGF1dG8q
IHByb3RvdHlwZSA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0U2VyaWFsaXphdGlvblByb3RvdHlwZSo+
KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFwcm90
b3R5cGUpKSB7CiAgICAgICAgIHRocm93Vk1UeXBlRXJyb3Ioc3RhdGUsIHRocm93U2NvcGUpOwog
ICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC01OTYsNyArNTk2LDcgQEAgSlNDOjpKU1ZhbHVlIHRv
SlMoSlNDOjpFeGVjU3RhdGUqIHN0YXRlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBUZXN0U2UKIAogVGVzdFNlcmlhbGl6YXRpb24qIEpTVGVzdFNlcmlhbGl6YXRpb246OnRvV3Jh
cHBlZChKU0M6OlZNJiB2bSwgSlNDOjpKU1ZhbHVlIHZhbHVlKQogewotICAgIGlmIChhdXRvKiB3
cmFwcGVyID0ganNEeW5hbWljRG93bmNhc3Q8SlNUZXN0U2VyaWFsaXphdGlvbio+KHZtLCB2YWx1
ZSkpCisgICAgaWYgKGF1dG8qIHdyYXBwZXIgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdFNlcmlhbGl6
YXRpb24qPih2bSwgdmFsdWUpKQogICAgICAgICByZXR1cm4gJndyYXBwZXItPndyYXBwZWQoKTsK
ICAgICByZXR1cm4gbnVsbHB0cjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemF0aW9uSW5kaXJlY3RJbmhlcml0YW5j
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2Vy
aWFsaXphdGlvbkluZGlyZWN0SW5oZXJpdGFuY2UuY3BwCmluZGV4IDAwMGQ3YzAyNWQ5OTIwZjk3
MWFkYzVlZWE4YmFjYjgxNWJjZmE4ZDQuLmRmNjRlYWRjNDczNmFjMjgzM2JjNThhZjQ3MTU5NTQ2
NDA0ZTBmMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RTZXJpYWxpemF0aW9uSW5kaXJlY3RJbmhlcml0YW5jZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6YXRpb25J
bmRpcmVjdEluaGVyaXRhbmNlLmNwcApAQCAtMTI3LDcgKzEyNyw3IEBAIEVuY29kZWRKU1ZhbHVl
IGpzVGVzdFNlcmlhbGl6YXRpb25JbmRpcmVjdEluaGVyaXRhbmNlQ29uc3RydWN0b3IoRXhlY1N0
YXRlKiBzdGF0CiB7CiAgICAgVk0mIHZtID0gc3RhdGUtPnZtKCk7CiAgICAgYXV0byB0aHJvd1Nj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgYXV0byogcHJvdG90eXBlID0ganNE
eW5hbWljRG93bmNhc3Q8SlNUZXN0U2VyaWFsaXphdGlvbkluZGlyZWN0SW5oZXJpdGFuY2VQcm90
b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOworICAgIGF1dG8qIHByb3Rv
dHlwZSA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0U2VyaWFsaXphdGlvbkluZGlyZWN0SW5oZXJpdGFu
Y2VQcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChV
TkxJS0VMWSghcHJvdG90eXBlKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3Ioc3Rh
dGUsIHRocm93U2NvcGUpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0U2VyaWFs
aXphdGlvbkluZGlyZWN0SW5oZXJpdGFuY2U6OmdldENvbnN0cnVjdG9yKHN0YXRlLT52bSgpLCBw
cm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CkBAIC0xMzcsNyArMTM3LDcgQEAgYm9vbCBzZXRK
U1Rlc3RTZXJpYWxpemF0aW9uSW5kaXJlY3RJbmhlcml0YW5jZUNvbnN0cnVjdG9yKEV4ZWNTdGF0
ZSogc3RhdGUsIEVuY28KIHsKICAgICBWTSYgdm0gPSBzdGF0ZS0+dm0oKTsKICAgICBhdXRvIHRo
cm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAgICBhdXRvKiBwcm90b3R5cGUg
PSBqc0R5bmFtaWNEb3duY2FzdDxKU1Rlc3RTZXJpYWxpemF0aW9uSW5kaXJlY3RJbmhlcml0YW5j
ZVByb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CisgICAgYXV0byog
cHJvdG90eXBlID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RTZXJpYWxpemF0aW9uSW5kaXJlY3RJbmhl
cml0YW5jZVByb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAg
aWYgKFVOTElLRUxZKCFwcm90b3R5cGUpKSB7CiAgICAgICAgIHRocm93Vk1UeXBlRXJyb3Ioc3Rh
dGUsIHRocm93U2NvcGUpOwogICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXphdGlvbklu
aGVyaXQuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dFNlcmlhbGl6YXRpb25Jbmhlcml0LmNwcAppbmRleCAzMWFjY2U1MzMxZDIxZGE3NzQyMTA5NDJh
MjA2MzRhZDEyNGQxZmYyLi5jZWVmYzhhNTFjZjRjY2U5YzI4MDE5YTJmNjMyY2FlMmMzOTQ2MTc3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0U2VyaWFsaXphdGlvbkluaGVyaXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemF0aW9uSW5oZXJpdC5jcHAKQEAgLTEzNywx
OSArMTM3LDE5IEBAIEpTVmFsdWUgSlNUZXN0U2VyaWFsaXphdGlvbkluaGVyaXQ6OmdldENvbnN0
cnVjdG9yKFZNJiB2bSwgY29uc3QgSlNHbG9iYWxPYmplY3QqCiAKIHRlbXBsYXRlPD4gaW5saW5l
IEpTVGVzdFNlcmlhbGl6YXRpb25Jbmhlcml0KiBJRExBdHRyaWJ1dGU8SlNUZXN0U2VyaWFsaXph
dGlvbkluaGVyaXQ+OjpjYXN0KEV4ZWNTdGF0ZSYgc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSkKIHsKLSAgICByZXR1cm4ganNEeW5hbWljRG93bmNhc3Q8SlNUZXN0U2VyaWFsaXphdGlv
bkluaGVyaXQqPihzdGF0ZS52bSgpLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CisgICAg
cmV0dXJuIGpzRHluYW1pY0Nhc3Q8SlNUZXN0U2VyaWFsaXphdGlvbkluaGVyaXQqPihzdGF0ZS52
bSgpLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5l
IEpTVGVzdFNlcmlhbGl6YXRpb25Jbmhlcml0KiBJRExPcGVyYXRpb248SlNUZXN0U2VyaWFsaXph
dGlvbkluaGVyaXQ+OjpjYXN0KEV4ZWNTdGF0ZSYgc3RhdGUpCiB7Ci0gICAgcmV0dXJuIGpzRHlu
YW1pY0Rvd25jYXN0PEpTVGVzdFNlcmlhbGl6YXRpb25Jbmhlcml0Kj4oc3RhdGUudm0oKSwgc3Rh
dGUudGhpc1ZhbHVlKCkpOworICAgIHJldHVybiBqc0R5bmFtaWNDYXN0PEpTVGVzdFNlcmlhbGl6
YXRpb25Jbmhlcml0Kj4oc3RhdGUudm0oKSwgc3RhdGUudGhpc1ZhbHVlKCkpOwogfQogCiBFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RTZXJpYWxpemF0aW9uSW5oZXJpdENvbnN0cnVjdG9yKEV4ZWNTdGF0
ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAg
IFZNJiB2bSA9IHN0YXRlLT52bSgpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUodm0pOwotICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Rvd25jYXN0PEpT
VGVzdFNlcmlhbGl6YXRpb25Jbmhlcml0UHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0
aGlzVmFsdWUpKTsKKyAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdFNl
cmlhbGl6YXRpb25Jbmhlcml0UHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFs
dWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIXByb3RvdHlwZSkpCiAgICAgICAgIHJldHVybiB0aHJv
d1ZNVHlwZUVycm9yKHN0YXRlLCB0aHJvd1Njb3BlKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKEpTVGVzdFNlcmlhbGl6YXRpb25Jbmhlcml0OjpnZXRDb25zdHJ1Y3RvcihzdGF0ZS0+dm0o
KSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOwpAQCAtMTU5LDcgKzE1OSw3IEBAIGJvb2wg
c2V0SlNUZXN0U2VyaWFsaXphdGlvbkluaGVyaXRDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRl
LCBFbmNvZGVkSlNWYWx1ZSB0CiB7CiAgICAgVk0mIHZtID0gc3RhdGUtPnZtKCk7CiAgICAgYXV0
byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgYXV0byogcHJvdG90
eXBlID0ganNEeW5hbWljRG93bmNhc3Q8SlNUZXN0U2VyaWFsaXphdGlvbkluaGVyaXRQcm90b3R5
cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOworICAgIGF1dG8qIHByb3RvdHlw
ZSA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0U2VyaWFsaXphdGlvbkluaGVyaXRQcm90b3R5cGUqPih2
bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghcHJvdG90
eXBlKSkgewogICAgICAgICB0aHJvd1ZNVHlwZUVycm9yKHN0YXRlLCB0aHJvd1Njb3BlKTsKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6YXRpb25Jbmhlcml0RmluYWwuY3BwIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6YXRpb25J
bmhlcml0RmluYWwuY3BwCmluZGV4IDZlMGVlOTI4NmI1YzBmYjdiMGEzZWY3MDNhZjk4ZTY3MGY5
NzBlNjUuLmMwMGJkY2M0MDc0MmMwNzA1MjY4YmEzNTQwNTVlYTg1NDliMjdiOTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxp
emF0aW9uSW5oZXJpdEZpbmFsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXphdGlvbkluaGVyaXRGaW5hbC5jcHAKQEAgLTE0MCwx
OSArMTQwLDE5IEBAIEpTVmFsdWUgSlNUZXN0U2VyaWFsaXphdGlvbkluaGVyaXRGaW5hbDo6Z2V0
Q29uc3RydWN0b3IoVk0mIHZtLCBjb25zdCBKU0dsb2JhbE9iCiAKIHRlbXBsYXRlPD4gaW5saW5l
IEpTVGVzdFNlcmlhbGl6YXRpb25Jbmhlcml0RmluYWwqIElETEF0dHJpYnV0ZTxKU1Rlc3RTZXJp
YWxpemF0aW9uSW5oZXJpdEZpbmFsPjo6Y2FzdChFeGVjU3RhdGUmIHN0YXRlLCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUpCiB7Ci0gICAgcmV0dXJuIGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdFNl
cmlhbGl6YXRpb25Jbmhlcml0RmluYWwqPihzdGF0ZS52bSgpLCBKU1ZhbHVlOjpkZWNvZGUodGhp
c1ZhbHVlKSk7CisgICAgcmV0dXJuIGpzRHluYW1pY0Nhc3Q8SlNUZXN0U2VyaWFsaXphdGlvbklu
aGVyaXRGaW5hbCo+KHN0YXRlLnZtKCksIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKIH0K
IAogdGVtcGxhdGU8PiBpbmxpbmUgSlNUZXN0U2VyaWFsaXphdGlvbkluaGVyaXRGaW5hbCogSURM
T3BlcmF0aW9uPEpTVGVzdFNlcmlhbGl6YXRpb25Jbmhlcml0RmluYWw+OjpjYXN0KEV4ZWNTdGF0
ZSYgc3RhdGUpCiB7Ci0gICAgcmV0dXJuIGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdFNlcmlhbGl6
YXRpb25Jbmhlcml0RmluYWwqPihzdGF0ZS52bSgpLCBzdGF0ZS50aGlzVmFsdWUoKSk7CisgICAg
cmV0dXJuIGpzRHluYW1pY0Nhc3Q8SlNUZXN0U2VyaWFsaXphdGlvbkluaGVyaXRGaW5hbCo+KHN0
YXRlLnZtKCksIHN0YXRlLnRoaXNWYWx1ZSgpKTsKIH0KIAogRW5jb2RlZEpTVmFsdWUganNUZXN0
U2VyaWFsaXphdGlvbkluaGVyaXRGaW5hbENvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFZNJiB2bSA9IHN0
YXRlLT52bSgpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0p
OwotICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdFNlcmlhbGl6
YXRpb25Jbmhlcml0RmluYWxQcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1
ZSkpOworICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0U2VyaWFsaXph
dGlvbkluaGVyaXRGaW5hbFByb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVl
KSk7CiAgICAgaWYgKFVOTElLRUxZKCFwcm90b3R5cGUpKQogICAgICAgICByZXR1cm4gdGhyb3dW
TVR5cGVFcnJvcihzdGF0ZSwgdGhyb3dTY29wZSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShKU1Rlc3RTZXJpYWxpemF0aW9uSW5oZXJpdEZpbmFsOjpnZXRDb25zdHJ1Y3RvcihzdGF0ZS0+
dm0oKSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOwpAQCAtMTYyLDcgKzE2Miw3IEBAIGJv
b2wgc2V0SlNUZXN0U2VyaWFsaXphdGlvbkluaGVyaXRGaW5hbENvbnN0cnVjdG9yKEV4ZWNTdGF0
ZSogc3RhdGUsIEVuY29kZWRKU1ZhCiB7CiAgICAgVk0mIHZtID0gc3RhdGUtPnZtKCk7CiAgICAg
YXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgYXV0byogcHJv
dG90eXBlID0ganNEeW5hbWljRG93bmNhc3Q8SlNUZXN0U2VyaWFsaXphdGlvbkluaGVyaXRGaW5h
bFByb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CisgICAgYXV0byog
cHJvdG90eXBlID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RTZXJpYWxpemF0aW9uSW5oZXJpdEZpbmFs
UHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5M
SUtFTFkoIXByb3RvdHlwZSkpIHsKICAgICAgICAgdGhyb3dWTVR5cGVFcnJvcihzdGF0ZSwgdGhy
b3dTY29wZSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJ
bnRlcmZhY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHAKaW5kZXggODZhODZkZTYyNzY0
MWZkYmY4NWEyNDIxYzkyM2QyYzI0M2UwZDBiNS4uYTYxNzcxYTE1ZDQ2ZGYzY2UzNTY4MTMwY2Vi
Yjc0ZmIyOWE4YWY3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZUludGVyZmFjZS5jcHAKQEAgLTE2NCwxOSArMTY0LDE5IEBAIHZvaWQgSlNUZXN0
U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlOjpkZXN0cm95KEpTQzo6SlNDZWxsKiBjZWxs
KQogCiB0ZW1wbGF0ZTw+IGlubGluZSBKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZh
Y2UqIElETEF0dHJpYnV0ZTxKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2U+Ojpj
YXN0KEV4ZWNTdGF0ZSYgc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSkKIHsKLSAgICBy
ZXR1cm4ganNEeW5hbWljRG93bmNhc3Q8SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJm
YWNlKj4oc3RhdGUudm0oKSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOworICAgIHJldHVy
biBqc0R5bmFtaWNDYXN0PEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSo+KHN0
YXRlLnZtKCksIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKIH0KIAogdGVtcGxhdGU8PiBp
bmxpbmUgSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlKiBJRExPcGVyYXRpb248
SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlPjo6Y2FzdChFeGVjU3RhdGUmIHN0
YXRlKQogewotICAgIHJldHVybiBqc0R5bmFtaWNEb3duY2FzdDxKU1Rlc3RTZXJpYWxpemVkU2Ny
aXB0VmFsdWVJbnRlcmZhY2UqPihzdGF0ZS52bSgpLCBzdGF0ZS50aGlzVmFsdWUoKSk7CisgICAg
cmV0dXJuIGpzRHluYW1pY0Nhc3Q8SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNl
Kj4oc3RhdGUudm0oKSwgc3RhdGUudGhpc1ZhbHVlKCkpOwogfQogCiBFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDb25zdHJ1Y3RvcihFeGVjU3RhdGUq
IHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBW
TSYgdm0gPSBzdGF0ZS0+dm0oKTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKLSAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNEb3duY2FzdDxKU1Rl
c3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VQcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6
ZGVjb2RlKHRoaXNWYWx1ZSkpOworICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Nhc3Q8
SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlUHJvdG90eXBlKj4odm0sIEpTVmFs
dWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIXByb3RvdHlwZSkpCiAg
ICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKHN0YXRlLCB0aHJvd1Njb3BlKTsKICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFj
ZTo6Z2V0Q29uc3RydWN0b3Ioc3RhdGUtPnZtKCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkp
KTsKQEAgLTE4Niw3ICsxODYsNyBAQCBib29sIHNldEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZUludGVyZmFjZUNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZQogewogICAgIFZN
JiB2bSA9IHN0YXRlLT52bSgpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwotICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Rvd25jYXN0PEpTVGVz
dFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVByb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpk
ZWNvZGUodGhpc1ZhbHVlKSk7CisgICAgYXV0byogcHJvdG90eXBlID0ganNEeW5hbWljQ2FzdDxK
U1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VQcm90b3R5cGUqPih2bSwgSlNWYWx1
ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghcHJvdG90eXBlKSkgewog
ICAgICAgICB0aHJvd1ZNVHlwZUVycm9yKHN0YXRlLCB0aHJvd1Njb3BlKTsKICAgICAgICAgcmV0
dXJuIGZhbHNlOwpAQCAtMzk5LDcgKzM5OSw3IEBAIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhl
Y1N0YXRlKiBzdGF0ZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVGVzdFNlCiAK
IFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UqIEpTVGVzdFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZUludGVyZmFjZTo6dG9XcmFwcGVkKEpTQzo6Vk0mIHZtLCBKU0M6OkpTVmFsdWUgdmFs
dWUpCiB7Ci0gICAgaWYgKGF1dG8qIHdyYXBwZXIgPSBqc0R5bmFtaWNEb3duY2FzdDxKU1Rlc3RT
ZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UqPih2bSwgdmFsdWUpKQorICAgIGlmIChhdXRv
KiB3cmFwcGVyID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRl
cmZhY2UqPih2bSwgdmFsdWUpKQogICAgICAgICByZXR1cm4gJndyYXBwZXItPndyYXBwZWQoKTsK
ICAgICByZXR1cm4gbnVsbHB0cjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXIuY3BwCmluZGV4IDQw
NzJhMDk2MjI0ZDBiMDQwMzJkYTkwZmZhZTMzYjJmZDk1YjgxNWYuLmQzY2VkNzViOWUyYTdhNjUy
ZDNlZWJkYjc3OGFlNTk1MjExN2ZiZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyLmNwcApAQCAt
MTQwLDE0ICsxNDAsMTQgQEAgdm9pZCBKU1Rlc3RTdHJpbmdpZmllcjo6ZGVzdHJveShKU0M6OkpT
Q2VsbCogY2VsbCkKIAogdGVtcGxhdGU8PiBpbmxpbmUgSlNUZXN0U3RyaW5naWZpZXIqIElETE9w
ZXJhdGlvbjxKU1Rlc3RTdHJpbmdpZmllcj46OmNhc3QoRXhlY1N0YXRlJiBzdGF0ZSkKIHsKLSAg
ICByZXR1cm4ganNEeW5hbWljRG93bmNhc3Q8SlNUZXN0U3RyaW5naWZpZXIqPihzdGF0ZS52bSgp
LCBzdGF0ZS50aGlzVmFsdWUoKSk7CisgICAgcmV0dXJuIGpzRHluYW1pY0Nhc3Q8SlNUZXN0U3Ry
aW5naWZpZXIqPihzdGF0ZS52bSgpLCBzdGF0ZS50aGlzVmFsdWUoKSk7CiB9CiAKIEVuY29kZWRK
U1ZhbHVlIGpzVGVzdFN0cmluZ2lmaWVyQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVk0mIHZtID0gc3Rh
dGUtPnZtKCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
Ci0gICAgYXV0byogcHJvdG90eXBlID0ganNEeW5hbWljRG93bmNhc3Q8SlNUZXN0U3RyaW5naWZp
ZXJQcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOworICAgIGF1dG8q
IHByb3RvdHlwZSA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0U3RyaW5naWZpZXJQcm90b3R5cGUqPih2
bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghcHJvdG90
eXBlKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3Ioc3RhdGUsIHRocm93U2NvcGUp
OwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0U3RyaW5naWZpZXI6OmdldENvbnN0
cnVjdG9yKHN0YXRlLT52bSgpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CkBAIC0xNTcs
NyArMTU3LDcgQEAgYm9vbCBzZXRKU1Rlc3RTdHJpbmdpZmllckNvbnN0cnVjdG9yKEV4ZWNTdGF0
ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwKIHsKICAgICBWTSYgdm0gPSBzdGF0
ZS0+dm0oKTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
LSAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNEb3duY2FzdDxKU1Rlc3RTdHJpbmdpZmll
clByb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CisgICAgYXV0byog
cHJvdG90eXBlID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RTdHJpbmdpZmllclByb3RvdHlwZSo+KHZt
LCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFwcm90b3R5
cGUpKSB7CiAgICAgICAgIHRocm93Vk1UeXBlRXJyb3Ioc3RhdGUsIHRocm93U2NvcGUpOwogICAg
ICAgICByZXR1cm4gZmFsc2U7CkBAIC0yMzMsNyArMjMzLDcgQEAgSlNDOjpKU1ZhbHVlIHRvSlMo
SlNDOjpFeGVjU3RhdGUqIHN0YXRlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBU
ZXN0U3QKIAogVGVzdFN0cmluZ2lmaWVyKiBKU1Rlc3RTdHJpbmdpZmllcjo6dG9XcmFwcGVkKEpT
Qzo6Vk0mIHZtLCBKU0M6OkpTVmFsdWUgdmFsdWUpCiB7Ci0gICAgaWYgKGF1dG8qIHdyYXBwZXIg
PSBqc0R5bmFtaWNEb3duY2FzdDxKU1Rlc3RTdHJpbmdpZmllcio+KHZtLCB2YWx1ZSkpCisgICAg
aWYgKGF1dG8qIHdyYXBwZXIgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdFN0cmluZ2lmaWVyKj4odm0s
IHZhbHVlKSkKICAgICAgICAgcmV0dXJuICZ3cmFwcGVyLT53cmFwcGVkKCk7CiAgICAgcmV0dXJu
IG51bGxwdHI7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJBbm9ueW1vdXNPcGVyYXRpb24uY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyQW5vbnlt
b3VzT3BlcmF0aW9uLmNwcAppbmRleCBlODUzNDU5NDhhZDQyNGMwODFhNGZhNzhmN2JkMzg4MGRl
YTViMzVhLi44ZTBiMjhhODUyNDRkYjMzMjJkOTRlZTJjYjlkMTQ0MGJjNDNiMjgyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5n
aWZpZXJBbm9ueW1vdXNPcGVyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllckFub255bW91c09wZXJhdGlvbi5jcHAK
QEAgLTE0MCwxNCArMTQwLDE0IEBAIHZvaWQgSlNUZXN0U3RyaW5naWZpZXJBbm9ueW1vdXNPcGVy
YXRpb246OmRlc3Ryb3koSlNDOjpKU0NlbGwqIGNlbGwpCiAKIHRlbXBsYXRlPD4gaW5saW5lIEpT
VGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uKiBJRExPcGVyYXRpb248SlNUZXN0U3Ry
aW5naWZpZXJBbm9ueW1vdXNPcGVyYXRpb24+OjpjYXN0KEV4ZWNTdGF0ZSYgc3RhdGUpCiB7Ci0g
ICAgcmV0dXJuIGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3Bl
cmF0aW9uKj4oc3RhdGUudm0oKSwgc3RhdGUudGhpc1ZhbHVlKCkpOworICAgIHJldHVybiBqc0R5
bmFtaWNDYXN0PEpTVGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uKj4oc3RhdGUudm0o
KSwgc3RhdGUudGhpc1ZhbHVlKCkpOwogfQogCiBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RTdHJpbmdp
ZmllckFub255bW91c09wZXJhdGlvbkNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFZNJiB2bSA9IHN0YXRl
LT52bSgpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwot
ICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdFN0cmluZ2lmaWVy
QW5vbnltb3VzT3BlcmF0aW9uUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFs
dWUpKTsKKyAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdFN0cmluZ2lm
aWVyQW5vbnltb3VzT3BlcmF0aW9uUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlz
VmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIXByb3RvdHlwZSkpCiAgICAgICAgIHJldHVybiB0
aHJvd1ZNVHlwZUVycm9yKHN0YXRlLCB0aHJvd1Njb3BlKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKEpTVGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uOjpnZXRDb25zdHJ1Y3Rv
cihzdGF0ZS0+dm0oKSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOwpAQCAtMTU3LDcgKzE1
Nyw3IEBAIGJvb2wgc2V0SlNUZXN0U3RyaW5naWZpZXJBbm9ueW1vdXNPcGVyYXRpb25Db25zdHJ1
Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkCiB7CiAgICAgVk0mIHZtID0gc3RhdGUtPnZt
KCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAg
YXV0byogcHJvdG90eXBlID0ganNEeW5hbWljRG93bmNhc3Q8SlNUZXN0U3RyaW5naWZpZXJBbm9u
eW1vdXNPcGVyYXRpb25Qcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkp
OworICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0U3RyaW5naWZpZXJB
bm9ueW1vdXNPcGVyYXRpb25Qcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1
ZSkpOwogICAgIGlmIChVTkxJS0VMWSghcHJvdG90eXBlKSkgewogICAgICAgICB0aHJvd1ZNVHlw
ZUVycm9yKHN0YXRlLCB0aHJvd1Njb3BlKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMjMz
LDcgKzIzMyw3IEBAIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSwgSlNE
T01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVGVzdFN0CiAKIFRlc3RTdHJpbmdpZmllckFu
b255bW91c09wZXJhdGlvbiogSlNUZXN0U3RyaW5naWZpZXJBbm9ueW1vdXNPcGVyYXRpb246OnRv
V3JhcHBlZChKU0M6OlZNJiB2bSwgSlNDOjpKU1ZhbHVlIHZhbHVlKQogewotICAgIGlmIChhdXRv
KiB3cmFwcGVyID0ganNEeW5hbWljRG93bmNhc3Q8SlNUZXN0U3RyaW5naWZpZXJBbm9ueW1vdXNP
cGVyYXRpb24qPih2bSwgdmFsdWUpKQorICAgIGlmIChhdXRvKiB3cmFwcGVyID0ganNEeW5hbWlj
Q2FzdDxKU1Rlc3RTdHJpbmdpZmllckFub255bW91c09wZXJhdGlvbio+KHZtLCB2YWx1ZSkpCiAg
ICAgICAgIHJldHVybiAmd3JhcHBlci0+d3JhcHBlZCgpOwogICAgIHJldHVybiBudWxscHRyOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb24uY3BwCmlu
ZGV4IDg0ZDE3NzczOTMwYzI2NjI4ODA3M2RlYTgwYzYyMjVkMjk4NWFiZGUuLmRhYTY4N2Y0Mzcz
NTJhNDY4MTFlMTgxM2FhZTM0MGRjNDQ4YjU4YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0aW9u
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvbi5jcHAKQEAgLTE0MiwxNCArMTQyLDE0IEBAIHZvaWQg
SlNUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvbjo6ZGVzdHJveShKU0M6OkpTQ2VsbCogY2Vs
bCkKIAogdGVtcGxhdGU8PiBpbmxpbmUgSlNUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvbiog
SURMT3BlcmF0aW9uPEpTVGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb24+OjpjYXN0KEV4ZWNT
dGF0ZSYgc3RhdGUpCiB7Ci0gICAgcmV0dXJuIGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdFN0cmlu
Z2lmaWVyTmFtZWRPcGVyYXRpb24qPihzdGF0ZS52bSgpLCBzdGF0ZS50aGlzVmFsdWUoKSk7Cisg
ICAgcmV0dXJuIGpzRHluYW1pY0Nhc3Q8SlNUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvbio+
KHN0YXRlLnZtKCksIHN0YXRlLnRoaXNWYWx1ZSgpKTsKIH0KIAogRW5jb2RlZEpTVmFsdWUganNU
ZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvbkNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFZNJiB2bSA9
IHN0YXRlLT52bSgpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwotICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdFN0cmlu
Z2lmaWVyTmFtZWRPcGVyYXRpb25Qcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNW
YWx1ZSkpOworICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0U3RyaW5n
aWZpZXJOYW1lZE9wZXJhdGlvblByb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1Zh
bHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFwcm90b3R5cGUpKQogICAgICAgICByZXR1cm4gdGhy
b3dWTVR5cGVFcnJvcihzdGF0ZSwgdGhyb3dTY29wZSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShKU1Rlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0aW9uOjpnZXRDb25zdHJ1Y3RvcihzdGF0
ZS0+dm0oKSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOwpAQCAtMTU5LDcgKzE1OSw3IEBA
IGJvb2wgc2V0SlNUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvbkNvbnN0cnVjdG9yKEV4ZWNT
dGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhCiB7CiAgICAgVk0mIHZtID0gc3RhdGUtPnZtKCk7CiAg
ICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgYXV0byog
cHJvdG90eXBlID0ganNEeW5hbWljRG93bmNhc3Q8SlNUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJh
dGlvblByb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CisgICAgYXV0
byogcHJvdG90eXBlID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0
aW9uUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAo
VU5MSUtFTFkoIXByb3RvdHlwZSkpIHsKICAgICAgICAgdGhyb3dWTVR5cGVFcnJvcihzdGF0ZSwg
dGhyb3dTY29wZSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTI0OCw3ICsyNDgsNyBAQCBK
U0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSogc3RhdGUsIEpTRE9NR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIFRlc3RTdAogCiBUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvbiog
SlNUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvbjo6dG9XcmFwcGVkKEpTQzo6Vk0mIHZtLCBK
U0M6OkpTVmFsdWUgdmFsdWUpCiB7Ci0gICAgaWYgKGF1dG8qIHdyYXBwZXIgPSBqc0R5bmFtaWNE
b3duY2FzdDxKU1Rlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0aW9uKj4odm0sIHZhbHVlKSkKKyAg
ICBpZiAoYXV0byogd3JhcHBlciA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0U3RyaW5naWZpZXJOYW1l
ZE9wZXJhdGlvbio+KHZtLCB2YWx1ZSkpCiAgICAgICAgIHJldHVybiAmd3JhcHBlci0+d3JhcHBl
ZCgpOwogICAgIHJldHVybiBudWxscHRyOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVt
ZW50ZWRBcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzLmNwcAppbmRleCBiNmViZjE0Y2Vj
MGMxMDcyYjY1MzdhZDFmNzMwNmMwODc2Y2U5MDMyLi45ZWI4M2JiNGUwNGU5ZTRiYjYyYmI5OGIz
MGI4MjQzMTc1NDExYTA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5n
aWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzLmNwcApAQCAtMTQyLDE0ICsxNDIsMTQgQEAgdm9p
ZCBKU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVudGVkQXM6OmRlc3Ryb3koSlNDOjpK
U0NlbGwqIGNlbGwpCiAKIHRlbXBsYXRlPD4gaW5saW5lIEpTVGVzdFN0cmluZ2lmaWVyT3BlcmF0
aW9uSW1wbGVtZW50ZWRBcyogSURMT3BlcmF0aW9uPEpTVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9u
SW1wbGVtZW50ZWRBcz46OmNhc3QoRXhlY1N0YXRlJiBzdGF0ZSkKIHsKLSAgICByZXR1cm4ganNE
eW5hbWljRG93bmNhc3Q8SlNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzKj4o
c3RhdGUudm0oKSwgc3RhdGUudGhpc1ZhbHVlKCkpOworICAgIHJldHVybiBqc0R5bmFtaWNDYXN0
PEpTVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRBcyo+KHN0YXRlLnZtKCksIHN0
YXRlLnRoaXNWYWx1ZSgpKTsKIH0KIAogRW5jb2RlZEpTVmFsdWUganNUZXN0U3RyaW5naWZpZXJP
cGVyYXRpb25JbXBsZW1lbnRlZEFzQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVk0mIHZtID0gc3RhdGUt
PnZtKCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0g
ICAgYXV0byogcHJvdG90eXBlID0ganNEeW5hbWljRG93bmNhc3Q8SlNUZXN0U3RyaW5naWZpZXJP
cGVyYXRpb25JbXBsZW1lbnRlZEFzUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlz
VmFsdWUpKTsKKyAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdFN0cmlu
Z2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRBc1Byb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNv
ZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFwcm90b3R5cGUpKQogICAgICAgICBy
ZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihzdGF0ZSwgdGhyb3dTY29wZSk7CiAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShKU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVudGVkQXM6Omdl
dENvbnN0cnVjdG9yKHN0YXRlLT52bSgpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CkBA
IC0xNTksNyArMTU5LDcgQEAgYm9vbCBzZXRKU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxl
bWVudGVkQXNDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBFbmMKIHsKICAgICBWTSYgdm0g
PSBzdGF0ZS0+dm0oKTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTsKLSAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNEb3duY2FzdDxKU1Rlc3RTdHJp
bmdpZmllck9wZXJhdGlvbkltcGxlbWVudGVkQXNQcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVj
b2RlKHRoaXNWYWx1ZSkpOworICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Nhc3Q8SlNU
ZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzUHJvdG90eXBlKj4odm0sIEpTVmFs
dWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIXByb3RvdHlwZSkpIHsK
ICAgICAgICAgdGhyb3dWTVR5cGVFcnJvcihzdGF0ZSwgdGhyb3dTY29wZSk7CiAgICAgICAgIHJl
dHVybiBmYWxzZTsKQEAgLTI0OCw3ICsyNDgsNyBAQCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4
ZWNTdGF0ZSogc3RhdGUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRlc3RTdAog
CiBUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzKiBKU1Rlc3RTdHJpbmdpZmll
ck9wZXJhdGlvbkltcGxlbWVudGVkQXM6OnRvV3JhcHBlZChKU0M6OlZNJiB2bSwgSlNDOjpKU1Zh
bHVlIHZhbHVlKQogewotICAgIGlmIChhdXRvKiB3cmFwcGVyID0ganNEeW5hbWljRG93bmNhc3Q8
SlNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzKj4odm0sIHZhbHVlKSkKKyAg
ICBpZiAoYXV0byogd3JhcHBlciA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0U3RyaW5naWZpZXJPcGVy
YXRpb25JbXBsZW1lbnRlZEFzKj4odm0sIHZhbHVlKSkKICAgICAgICAgcmV0dXJuICZ3cmFwcGVy
LT53cmFwcGVkKCk7CiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJPcGVyYXRp
b25OYW1lZFRvU3RyaW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmcuY3BwCmluZGV4IGZl
NDMyYmE1ZjUyYTlhNWU0ODMxMjc4M2JjZmNlODJkMjU1ZDI4NWQuLjI3MmIxOWZkZGFiNGRiMjYy
NTA4YmFmNzVhYzU4NTBlYjU2YzM1MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJp
bmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RTdHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmcuY3BwCkBAIC0xNDAsMTQgKzE0MCwx
NCBAQCB2b2lkIEpTVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0cmluZzo6ZGVzdHJv
eShKU0M6OkpTQ2VsbCogY2VsbCkKIAogdGVtcGxhdGU8PiBpbmxpbmUgSlNUZXN0U3RyaW5naWZp
ZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5nKiBJRExPcGVyYXRpb248SlNUZXN0U3RyaW5naWZpZXJP
cGVyYXRpb25OYW1lZFRvU3RyaW5nPjo6Y2FzdChFeGVjU3RhdGUmIHN0YXRlKQogewotICAgIHJl
dHVybiBqc0R5bmFtaWNEb3duY2FzdDxKU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9T
dHJpbmcqPihzdGF0ZS52bSgpLCBzdGF0ZS50aGlzVmFsdWUoKSk7CisgICAgcmV0dXJuIGpzRHlu
YW1pY0Nhc3Q8SlNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5nKj4oc3RhdGUu
dm0oKSwgc3RhdGUudGhpc1ZhbHVlKCkpOwogfQogCiBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RTdHJp
bmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmdDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRl
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBWTSYgdm0g
PSBzdGF0ZS0+dm0oKTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTsKLSAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNEb3duY2FzdDxKU1Rlc3RTdHJp
bmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmdQcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVj
b2RlKHRoaXNWYWx1ZSkpOworICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Nhc3Q8SlNU
ZXN0U3RyaW5naWZpZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5nUHJvdG90eXBlKj4odm0sIEpTVmFs
dWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIXByb3RvdHlwZSkpCiAg
ICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKHN0YXRlLCB0aHJvd1Njb3BlKTsKICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0
cmluZzo6Z2V0Q29uc3RydWN0b3Ioc3RhdGUtPnZtKCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0
KCkpKTsKQEAgLTE1Nyw3ICsxNTcsNyBAQCBib29sIHNldEpTVGVzdFN0cmluZ2lmaWVyT3BlcmF0
aW9uTmFtZWRUb1N0cmluZ0NvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuYwogewogICAg
IFZNJiB2bSA9IHN0YXRlLT52bSgpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUodm0pOwotICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Rvd25jYXN0PEpT
VGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0cmluZ1Byb3RvdHlwZSo+KHZtLCBKU1Zh
bHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CisgICAgYXV0byogcHJvdG90eXBlID0ganNEeW5hbWlj
Q2FzdDxKU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmdQcm90b3R5cGUqPih2
bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghcHJvdG90
eXBlKSkgewogICAgICAgICB0aHJvd1ZNVHlwZUVycm9yKHN0YXRlLCB0aHJvd1Njb3BlKTsKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMjMzLDcgKzIzMyw3IEBAIEpTQzo6SlNWYWx1ZSB0b0pT
KEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
VGVzdFN0CiAKIFRlc3RTdHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmcqIEpTVGVzdFN0
cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0cmluZzo6dG9XcmFwcGVkKEpTQzo6Vk0mIHZtLCBK
U0M6OkpTVmFsdWUgdmFsdWUpCiB7Ci0gICAgaWYgKGF1dG8qIHdyYXBwZXIgPSBqc0R5bmFtaWNE
b3duY2FzdDxKU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmcqPih2bSwgdmFs
dWUpKQorICAgIGlmIChhdXRvKiB3cmFwcGVyID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RTdHJpbmdp
Zmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmcqPih2bSwgdmFsdWUpKQogICAgICAgICByZXR1cm4g
JndyYXBwZXItPndyYXBwZWQoKTsKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmll
clJlYWRPbmx5QXR0cmlidXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRlLmNwcAppbmRleCA4N2Iz
YjE0ZjZlZWFlMWJlOGI1YzdmNmRiZjFiZGRjMWNlOTY1MmY4Li4zZWNlODYxODU3MTIwMWE4MjNj
OTcwM2ZkY2EyNjFmZDQwYmExOGI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmlu
Z2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGUuY3BwCkBAIC0xNDMsMTkgKzE0MywxOSBAQCB2b2lkIEpT
VGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGU6OmRlc3Ryb3koSlNDOjpKU0NlbGwqIGNl
bGwpCiAKIHRlbXBsYXRlPD4gaW5saW5lIEpTVGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1
dGUqIElETEF0dHJpYnV0ZTxKU1Rlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRlPjo6Y2Fz
dChFeGVjU3RhdGUmIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUpCiB7Ci0gICAgcmV0
dXJuIGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGUq
PihzdGF0ZS52bSgpLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CisgICAgcmV0dXJuIGpz
RHluYW1pY0Nhc3Q8SlNUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZSo+KHN0YXRlLnZt
KCksIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUg
SlNUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZSogSURMT3BlcmF0aW9uPEpTVGVzdFN0
cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGU+OjpjYXN0KEV4ZWNTdGF0ZSYgc3RhdGUpCiB7Ci0g
ICAgcmV0dXJuIGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRy
aWJ1dGUqPihzdGF0ZS52bSgpLCBzdGF0ZS50aGlzVmFsdWUoKSk7CisgICAgcmV0dXJuIGpzRHlu
YW1pY0Nhc3Q8SlNUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZSo+KHN0YXRlLnZtKCks
IHN0YXRlLnRoaXNWYWx1ZSgpKTsKIH0KIAogRW5jb2RlZEpTVmFsdWUganNUZXN0U3RyaW5naWZp
ZXJSZWFkT25seUF0dHJpYnV0ZUNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFZNJiB2bSA9IHN0YXRlLT52
bSgpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAg
IGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdFN0cmluZ2lmaWVyUmVh
ZE9ubHlBdHRyaWJ1dGVQcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkp
OworICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0U3RyaW5naWZpZXJS
ZWFkT25seUF0dHJpYnV0ZVByb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVl
KSk7CiAgICAgaWYgKFVOTElLRUxZKCFwcm90b3R5cGUpKQogICAgICAgICByZXR1cm4gdGhyb3dW
TVR5cGVFcnJvcihzdGF0ZSwgdGhyb3dTY29wZSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShKU1Rlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRlOjpnZXRDb25zdHJ1Y3RvcihzdGF0
ZS0+dm0oKSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOwpAQCAtMTY1LDcgKzE2NSw3IEBA
IGJvb2wgc2V0SlNUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZUNvbnN0cnVjdG9yKEV4
ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKCiB7CiAgICAgVk0mIHZtID0gc3RhdGUtPnZtKCk7CiAg
ICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgYXV0byog
cHJvdG90eXBlID0ganNEeW5hbWljRG93bmNhc3Q8SlNUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0
dHJpYnV0ZVByb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CisgICAg
YXV0byogcHJvdG90eXBlID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RTdHJpbmdpZmllclJlYWRPbmx5
QXR0cmlidXRlUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAg
ICBpZiAoVU5MSUtFTFkoIXByb3RvdHlwZSkpIHsKICAgICAgICAgdGhyb3dWTVR5cGVFcnJvcihz
dGF0ZSwgdGhyb3dTY29wZSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTI1NSw3ICsyNTUs
NyBAQCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSogc3RhdGUsIEpTRE9NR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIFRlc3RTdAogCiBUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0
dHJpYnV0ZSogSlNUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZTo6dG9XcmFwcGVkKEpT
Qzo6Vk0mIHZtLCBKU0M6OkpTVmFsdWUgdmFsdWUpCiB7Ci0gICAgaWYgKGF1dG8qIHdyYXBwZXIg
PSBqc0R5bmFtaWNEb3duY2FzdDxKU1Rlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRlKj4o
dm0sIHZhbHVlKSkKKyAgICBpZiAoYXV0byogd3JhcHBlciA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0
U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZSo+KHZtLCB2YWx1ZSkpCiAgICAgICAgIHJldHVy
biAmd3JhcHBlci0+d3JhcHBlZCgpOwogICAgIHJldHVybiBudWxscHRyOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lm
aWVyUmVhZFdyaXRlQXR0cmlidXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZS5jcHAKaW5kZXgg
ZWEwN2UzY2Y2ZTE5MTM2OGYwOGViMTk2MzE1ZmRmM2RmNjQ0MmQyNC4uYzRiN2M0MjE0ZTcyZWE2
MGFlMDMwMDkyOTRiMDE2YmI4MTYyZTZkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGUuY3BwCkBAIC0xNDQsMTkgKzE0NCwxOSBAQCB2
b2lkIEpTVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlOjpkZXN0cm95KEpTQzo6SlND
ZWxsKiBjZWxsKQogCiB0ZW1wbGF0ZTw+IGlubGluZSBKU1Rlc3RTdHJpbmdpZmllclJlYWRXcml0
ZUF0dHJpYnV0ZSogSURMQXR0cmlidXRlPEpTVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmli
dXRlPjo6Y2FzdChFeGVjU3RhdGUmIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUpCiB7
Ci0gICAgcmV0dXJuIGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRl
QXR0cmlidXRlKj4oc3RhdGUudm0oKSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOworICAg
IHJldHVybiBqc0R5bmFtaWNDYXN0PEpTVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRl
Kj4oc3RhdGUudm0oKSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogfQogCiB0ZW1wbGF0
ZTw+IGlubGluZSBKU1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZSogSURMT3BlcmF0
aW9uPEpTVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlPjo6Y2FzdChFeGVjU3RhdGUm
IHN0YXRlKQogewotICAgIHJldHVybiBqc0R5bmFtaWNEb3duY2FzdDxKU1Rlc3RTdHJpbmdpZmll
clJlYWRXcml0ZUF0dHJpYnV0ZSo+KHN0YXRlLnZtKCksIHN0YXRlLnRoaXNWYWx1ZSgpKTsKKyAg
ICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0
ZSo+KHN0YXRlLnZtKCksIHN0YXRlLnRoaXNWYWx1ZSgpKTsKIH0KIAogRW5jb2RlZEpTVmFsdWUg
anNUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGVDb25zdHJ1Y3RvcihFeGVjU3RhdGUq
IHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBW
TSYgdm0gPSBzdGF0ZS0+dm0oKTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKLSAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNEb3duY2FzdDxKU1Rl
c3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZVByb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpk
ZWNvZGUodGhpc1ZhbHVlKSk7CisgICAgYXV0byogcHJvdG90eXBlID0ganNEeW5hbWljQ2FzdDxK
U1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZVByb3RvdHlwZSo+KHZtLCBKU1ZhbHVl
OjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFwcm90b3R5cGUpKQogICAg
ICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihzdGF0ZSwgdGhyb3dTY29wZSk7CiAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZTo6
Z2V0Q29uc3RydWN0b3Ioc3RhdGUtPnZtKCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsK
QEAgLTE2Niw3ICsxNjYsNyBAQCBib29sIHNldEpTVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0
cmlidXRlQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZAogewogICAgIFZNJiB2
bSA9IHN0YXRlLT52bSgpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOwotICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdFN0
cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29k
ZSh0aGlzVmFsdWUpKTsKKyAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNDYXN0PEpTVGVz
dFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRl
Y29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIXByb3RvdHlwZSkpIHsKICAgICAg
ICAgdGhyb3dWTVR5cGVFcnJvcihzdGF0ZSwgdGhyb3dTY29wZSk7CiAgICAgICAgIHJldHVybiBm
YWxzZTsKQEAgLTI3Myw3ICsyNzMsNyBAQCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0
ZSogc3RhdGUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRlc3RTdAogCiBUZXN0
U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGUqIEpTVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRl
QXR0cmlidXRlOjp0b1dyYXBwZWQoSlNDOjpWTSYgdm0sIEpTQzo6SlNWYWx1ZSB2YWx1ZSkKIHsK
LSAgICBpZiAoYXV0byogd3JhcHBlciA9IGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdFN0cmluZ2lm
aWVyUmVhZFdyaXRlQXR0cmlidXRlKj4odm0sIHZhbHVlKSkKKyAgICBpZiAoYXV0byogd3JhcHBl
ciA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGUqPih2
bSwgdmFsdWUpKQogICAgICAgICByZXR1cm4gJndyYXBwZXItPndyYXBwZWQoKTsKICAgICByZXR1
cm4gbnVsbHB0cjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RUeXBlZGVmcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlwZWRlZnMuY3BwCmluZGV4IGRjNjFkM2M5MzcwMWQxZmJl
OGU4ODVlYzY0YjYyOTA5ZjVkOTAxOTguLjc3MmIxNjIzNzhhMTcxMzM3YWYxZmY2ODdiNmI4YTEw
OGRkYmQ3NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RUeXBlZGVmcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmNwcApAQCAtMjQ3LDE5ICsyNDcsMTkgQEAgdm9p
ZCBKU1Rlc3RUeXBlZGVmczo6ZGVzdHJveShKU0M6OkpTQ2VsbCogY2VsbCkKIAogdGVtcGxhdGU8
PiBpbmxpbmUgSlNUZXN0VHlwZWRlZnMqIElETEF0dHJpYnV0ZTxKU1Rlc3RUeXBlZGVmcz46OmNh
c3QoRXhlY1N0YXRlJiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlKQogewotICAgIHJl
dHVybiBqc0R5bmFtaWNEb3duY2FzdDxKU1Rlc3RUeXBlZGVmcyo+KHN0YXRlLnZtKCksIEpTVmFs
dWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKKyAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3RU
eXBlZGVmcyo+KHN0YXRlLnZtKCksIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKIH0KIAog
dGVtcGxhdGU8PiBpbmxpbmUgSlNUZXN0VHlwZWRlZnMqIElETE9wZXJhdGlvbjxKU1Rlc3RUeXBl
ZGVmcz46OmNhc3QoRXhlY1N0YXRlJiBzdGF0ZSkKIHsKLSAgICByZXR1cm4ganNEeW5hbWljRG93
bmNhc3Q8SlNUZXN0VHlwZWRlZnMqPihzdGF0ZS52bSgpLCBzdGF0ZS50aGlzVmFsdWUoKSk7Cisg
ICAgcmV0dXJuIGpzRHluYW1pY0Nhc3Q8SlNUZXN0VHlwZWRlZnMqPihzdGF0ZS52bSgpLCBzdGF0
ZS50aGlzVmFsdWUoKSk7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIGpzVGVzdFR5cGVkZWZzQ29uc3Ry
dWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpCiB7CiAgICAgVk0mIHZtID0gc3RhdGUtPnZtKCk7CiAgICAgYXV0byB0aHJvd1Njb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgYXV0byogcHJvdG90eXBlID0ganNEeW5h
bWljRG93bmNhc3Q8SlNUZXN0VHlwZWRlZnNQcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2Rl
KHRoaXNWYWx1ZSkpOworICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0
VHlwZWRlZnNQcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAg
IGlmIChVTkxJS0VMWSghcHJvdG90eXBlKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJy
b3Ioc3RhdGUsIHRocm93U2NvcGUpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0
VHlwZWRlZnM6OmdldENvbnN0cnVjdG9yKHN0YXRlLT52bSgpLCBwcm90b3R5cGUtPmdsb2JhbE9i
amVjdCgpKSk7CkBAIC0yNjksNyArMjY5LDcgQEAgYm9vbCBzZXRKU1Rlc3RUeXBlZGVmc0NvbnN0
cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW4KIHsK
ICAgICBWTSYgdm0gPSBzdGF0ZS0+dm0oKTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJF
X1RIUk9XX1NDT1BFKHZtKTsKLSAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNEb3duY2Fz
dDxKU1Rlc3RUeXBlZGVmc1Byb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVl
KSk7CisgICAgYXV0byogcHJvdG90eXBlID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RUeXBlZGVmc1By
b3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElL
RUxZKCFwcm90b3R5cGUpKSB7CiAgICAgICAgIHRocm93Vk1UeXBlRXJyb3Ioc3RhdGUsIHRocm93
U2NvcGUpOwogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC03OTUsNyArNzk1LDcgQEAgSlNDOjpK
U1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqIHN0YXRlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBUZXN0VHkKIAogVGVzdFR5cGVkZWZzKiBKU1Rlc3RUeXBlZGVmczo6dG9XcmFw
cGVkKEpTQzo6Vk0mIHZtLCBKU0M6OkpTVmFsdWUgdmFsdWUpCiB7Ci0gICAgaWYgKGF1dG8qIHdy
YXBwZXIgPSBqc0R5bmFtaWNEb3duY2FzdDxKU1Rlc3RUeXBlZGVmcyo+KHZtLCB2YWx1ZSkpCisg
ICAgaWYgKGF1dG8qIHdyYXBwZXIgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdFR5cGVkZWZzKj4odm0s
IHZhbHVlKSkKICAgICAgICAgcmV0dXJuICZ3cmFwcGVyLT53cmFwcGVkKCk7CiAgICAgcmV0dXJu
IG51bGxwdHI7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9XZWJT
Y3JpcHRPYmplY3QubW0gYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9XZWJTY3JpcHRPYmpl
Y3QubW0KaW5kZXggZWEyNDczZGFjZTU4NjA2ZDUzODljOWU3NTBmYWI3ODM5Zjk0NzUzZS4uNGIz
OGNiNjBkZmEwYzk3MzBhOTI4Y2U1ZDkyMTEyMzAyNjI3NTk2NSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYnJpZGdlL29iamMvV2ViU2NyaXB0T2JqZWN0Lm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JyaWRnZS9vYmpjL1dlYlNjcmlwdE9iamVjdC5tbQpAQCAtNDAxLDcgKzQwMSw3IEBAIC0g
KHZvaWQpc2V0VmFsdWU6KGlkKXZhbHVlIGZvcktleTooTlNTdHJpbmcgKilrZXkKICAgICBhdXRv
IHNjb3BlID0gREVDTEFSRV9DQVRDSF9TQ09QRSh2bSk7CiAgICAgRXhlY1N0YXRlKiBleGVjID0g
Z2xvYmFsT2JqZWN0LT5nbG9iYWxFeGVjKCk7CiAKLSAgICBKU09iamVjdCogb2JqZWN0ID0ganNE
eW5hbWljRG93bmNhc3Q8SlNPYmplY3QqPih2bSwgW3NlbGYgX2ltcF0pOworICAgIEpTT2JqZWN0
KiBvYmplY3QgPSBKU0M6OmpzRHluYW1pY0Nhc3Q8SlNPYmplY3QqPih2bSwgW3NlbGYgX2ltcF0p
OwogICAgIFB1dFByb3BlcnR5U2xvdCBzbG90KG9iamVjdCk7CiAgICAgb2JqZWN0LT5tZXRob2RU
YWJsZSh2bSktPnB1dChvYmplY3QsIGV4ZWMsIElkZW50aWZpZXI6OmZyb21TdHJpbmcoZXhlYywg
U3RyaW5nKGtleSkpLCBjb252ZXJ0T2JqY1ZhbHVlVG9WYWx1ZShleGVjLCAmdmFsdWUsIE9iamNP
YmplY3RUeXBlLCBbc2VsZiBfcm9vdE9iamVjdF0pLCBzbG90KTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwIGIvU291cmNlL1dlYkNvcmUvYnJp
ZGdlL3J1bnRpbWVfYXJyYXkuY3BwCmluZGV4IGRhNGRlN2JkMzMxZjAyOTU3MTZhMmVlMjA3ZGQy
YWQwOTA1MGY1YTguLjRkMzRjMDdhYzRjZDliNDAwN2EyNWJjYjkxOTc3YjQ0MjRlYTM0MjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5jcHAKQEAgLTY1LDcgKzY1LDcgQEAg
RW5jb2RlZEpTVmFsdWUgUnVudGltZUFycmF5OjpsZW5ndGhHZXR0ZXIoRXhlY1N0YXRlKiBleGVj
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmEKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIGF1
dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAotICAgIFJ1bnRpbWVBcnJheSog
dGhpc09iamVjdCA9IGpzRHluYW1pY0Rvd25jYXN0PFJ1bnRpbWVBcnJheSo+KHZtLCBKU1ZhbHVl
OjpkZWNvZGUodGhpc1ZhbHVlKSk7CisgICAgUnVudGltZUFycmF5KiB0aGlzT2JqZWN0ID0ganNE
eW5hbWljQ2FzdDxSdW50aW1lQXJyYXkqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkp
OwogICAgIGlmICghdGhpc09iamVjdCkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3Io
ZXhlYywgc2NvcGUpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIodGhpc09i
amVjdC0+Z2V0TGVuZ3RoKCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9y
dW50aW1lX21ldGhvZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9tZXRob2Qu
Y3BwCmluZGV4IDY3ZWU3NWQ0NGJjMTFiY2QxMGQyYWMzODcyZGEwZWVkOTFhNjNjNGYuLmM0NThk
ZjkxZDAyY2NlM2JkZTRmYmY4NzBkOGJlNjE0ODQ1NWFlODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JyaWRnZS9ydW50aW1lX21ldGhvZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYnJp
ZGdlL3J1bnRpbWVfbWV0aG9kLmNwcApAQCAtNjEsNyArNjEsNyBAQCBFbmNvZGVkSlNWYWx1ZSBS
dW50aW1lTWV0aG9kOjpsZW5ndGhHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVgogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xB
UkVfVEhST1dfU0NPUEUodm0pOwogCi0gICAgUnVudGltZU1ldGhvZCogdGhpc09iamVjdCA9IGpz
RHluYW1pY0Rvd25jYXN0PFJ1bnRpbWVNZXRob2QqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNW
YWx1ZSkpOworICAgIFJ1bnRpbWVNZXRob2QqIHRoaXNPYmplY3QgPSBqc0R5bmFtaWNDYXN0PFJ1
bnRpbWVNZXRob2QqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmICgh
dGhpc09iamVjdCkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgc2NvcGUp
OwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIodGhpc09iamVjdC0+bV9tZXRo
b2QtPm51bVBhcmFtZXRlcnMoKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTWVkaWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVu
dC5jcHAKaW5kZXggMWY0MzdiOTI4YjkwZTFiYTliY2UyYmIwMzI3NTYwYTVkYWQxYzBlNy4uMWZl
MDA1MGQ4ZDA4NzA0ZDY4Yzg2YTA0MTc1NDQ0Njk5NDczMmZiNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCkBAIC00MjUyLDcgKzQyNTIsNyBAQCBzdGF0aWMgSlND
OjpKU1ZhbHVlIGNvbnRyb2xsZXJKU1ZhbHVlKEpTQzo6RXhlY1N0YXRlJiBleGVjLCBKU0RPTUds
b2JhbE9iamVjdCYgZwogICAgIGF1dG8gbWVkaWFKU1dyYXBwZXIgPSB0b0pTKCZleGVjLCAmZ2xv
YmFsT2JqZWN0LCBtZWRpYSk7CiAKICAgICAvLyBSZXRyaWV2ZSB0aGUgY29udHJvbGxlciB0aHJv
dWdoIHRoZSBKUyBvYmplY3QgZ3JhcGgKLSAgICBKU0M6OkpTT2JqZWN0KiBtZWRpYUpTV3JhcHBl
ck9iamVjdCA9IGpzRHluYW1pY0Rvd25jYXN0PEpTQzo6SlNPYmplY3QqPih2bSwgbWVkaWFKU1dy
YXBwZXIpOworICAgIEpTQzo6SlNPYmplY3QqIG1lZGlhSlNXcmFwcGVyT2JqZWN0ID0gSlNDOjpq
c0R5bmFtaWNDYXN0PEpTQzo6SlNPYmplY3QqPih2bSwgbWVkaWFKU1dyYXBwZXIpOwogICAgIGlm
ICghbWVkaWFKU1dyYXBwZXJPYmplY3QpCiAgICAgICAgIHJldHVybiBKU0M6OmpzTnVsbCgpOwog
CkBAIC00MjYwLDcgKzQyNjAsNyBAQCBzdGF0aWMgSlNDOjpKU1ZhbHVlIGNvbnRyb2xsZXJKU1Zh
bHVlKEpTQzo6RXhlY1N0YXRlJiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCYgZwogICAgIEpTQzo6
SlNWYWx1ZSBjb250cm9sc0hvc3RKU1dyYXBwZXIgPSBtZWRpYUpTV3JhcHBlck9iamVjdC0+Z2V0
KCZleGVjLCBjb250cm9sc0hvc3QpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIEpT
Qzo6anNOdWxsKCkpOwogCi0gICAgSlNDOjpKU09iamVjdCogY29udHJvbHNIb3N0SlNXcmFwcGVy
T2JqZWN0ID0ganNEeW5hbWljRG93bmNhc3Q8SlNDOjpKU09iamVjdCo+KHZtLCBjb250cm9sc0hv
c3RKU1dyYXBwZXIpOworICAgIEpTQzo6SlNPYmplY3QqIGNvbnRyb2xzSG9zdEpTV3JhcHBlck9i
amVjdCA9IEpTQzo6anNEeW5hbWljQ2FzdDxKU0M6OkpTT2JqZWN0Kj4odm0sIGNvbnRyb2xzSG9z
dEpTV3JhcHBlcik7CiAgICAgaWYgKCFjb250cm9sc0hvc3RKU1dyYXBwZXJPYmplY3QpCiAgICAg
ICAgIHJldHVybiBKU0M6OmpzTnVsbCgpOwogCkBAIC00MzA3LDcgKzQzMDcsNyBAQCB2b2lkIEhU
TUxNZWRpYUVsZW1lbnQ6OnVwZGF0ZUNhcHRpb25Db250YWluZXIoKQogICAgIEpTQzo6RXhlY1N0
YXRlKiBleGVjID0gZ2xvYmFsT2JqZWN0LT5nbG9iYWxFeGVjKCk7CiAKICAgICBKU0M6OkpTVmFs
dWUgY29udHJvbGxlclZhbHVlID0gY29udHJvbGxlckpTVmFsdWUoKmV4ZWMsICpnbG9iYWxPYmpl
Y3QsICp0aGlzKTsKLSAgICBKU0M6OkpTT2JqZWN0KiBjb250cm9sbGVyT2JqZWN0ID0ganNEeW5h
bWljRG93bmNhc3Q8SlNDOjpKU09iamVjdCo+KHZtLCBjb250cm9sbGVyVmFsdWUpOworICAgIEpT
Qzo6SlNPYmplY3QqIGNvbnRyb2xsZXJPYmplY3QgPSBKU0M6OmpzRHluYW1pY0Nhc3Q8SlNDOjpK
U09iamVjdCo+KHZtLCBjb250cm9sbGVyVmFsdWUpOwogICAgIGlmICghY29udHJvbGxlck9iamVj
dCkKICAgICAgICAgcmV0dXJuOwogCkBAIC00MzE4LDcgKzQzMTgsNyBAQCB2b2lkIEhUTUxNZWRp
YUVsZW1lbnQ6OnVwZGF0ZUNhcHRpb25Db250YWluZXIoKQogICAgIC8vIFJldHVybiB2YWx1ZToK
ICAgICAvLyAgICAgTm9uZQogICAgIEpTQzo6SlNWYWx1ZSBtZXRob2RWYWx1ZSA9IGNvbnRyb2xs
ZXJPYmplY3QtPmdldChleGVjLCBKU0M6OklkZW50aWZpZXI6OmZyb21TdHJpbmcoZXhlYywgInVw
ZGF0ZUNhcHRpb25Db250YWluZXIiKSk7Ci0gICAgSlNDOjpKU09iamVjdCogbWV0aG9kT2JqZWN0
ID0ganNEeW5hbWljRG93bmNhc3Q8SlNDOjpKU09iamVjdCo+KHZtLCBtZXRob2RWYWx1ZSk7Cisg
ICAgSlNDOjpKU09iamVjdCogbWV0aG9kT2JqZWN0ID0gSlNDOjpqc0R5bmFtaWNDYXN0PEpTQzo6
SlNPYmplY3QqPih2bSwgbWV0aG9kVmFsdWUpOwogICAgIGlmICghbWV0aG9kT2JqZWN0KQogICAg
ICAgICByZXR1cm47CiAKQEAgLTcxNDgsNyArNzE0OCw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVu
dDo6ZGlkQWRkVXNlckFnZW50U2hhZG93Um9vdChTaGFkb3dSb290JiByb290KQogCiAgICAgSlND
OjpKU1ZhbHVlIGNvbnRyb2xsZXJWYWx1ZSA9IEpTQzo6Y2FsbChleGVjLCBmdW5jdGlvbiwgY2Fs
bFR5cGUsIGNhbGxEYXRhLCBnbG9iYWxPYmplY3QsIGFyZ0xpc3QpOwogICAgIHNjb3BlLmNsZWFy
RXhjZXB0aW9uKCk7Ci0gICAgSlNDOjpKU09iamVjdCogY29udHJvbGxlck9iamVjdCA9IGpzRHlu
YW1pY0Rvd25jYXN0PEpTQzo6SlNPYmplY3QqPih2bSwgY29udHJvbGxlclZhbHVlKTsKKyAgICBK
U0M6OkpTT2JqZWN0KiBjb250cm9sbGVyT2JqZWN0ID0gSlNDOjpqc0R5bmFtaWNDYXN0PEpTQzo6
SlNPYmplY3QqPih2bSwgY29udHJvbGxlclZhbHVlKTsKICAgICBpZiAoIWNvbnRyb2xsZXJPYmpl
Y3QpCiAgICAgICAgIHJldHVybjsKIApAQCAtNzE2MSw3ICs3MTYxLDcgQEAgdm9pZCBIVE1MTWVk
aWFFbGVtZW50OjpkaWRBZGRVc2VyQWdlbnRTaGFkb3dSb290KFNoYWRvd1Jvb3QmIHJvb3QpCiAK
ICAgICBtZWRpYUpTV3JhcHBlck9iamVjdC0+cHV0RGlyZWN0KGV4ZWMtPnZtKCksIGNvbnRyb2xz
SG9zdCwgbWVkaWFDb250cm9sc0hvc3RKU1dyYXBwZXIsIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6
OkRvbnREZWxldGUgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IEpTQzo6UHJv
cGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5KTsKIAotICAgIEpTQzo6SlNPYmplY3QqIG1lZGlhQ29u
dHJvbHNIb3N0SlNXcmFwcGVyT2JqZWN0ID0ganNEeW5hbWljRG93bmNhc3Q8SlNDOjpKU09iamVj
dCo+KHZtLCBtZWRpYUNvbnRyb2xzSG9zdEpTV3JhcHBlcik7CisgICAgSlNDOjpKU09iamVjdCog
bWVkaWFDb250cm9sc0hvc3RKU1dyYXBwZXJPYmplY3QgPSBKU0M6OmpzRHluYW1pY0Nhc3Q8SlND
OjpKU09iamVjdCo+KHZtLCBtZWRpYUNvbnRyb2xzSG9zdEpTV3JhcHBlcik7CiAgICAgaWYgKCFt
ZWRpYUNvbnRyb2xzSG9zdEpTV3JhcHBlck9iamVjdCkKICAgICAgICAgcmV0dXJuOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTUFnZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NQWdlbnQu
Y3BwCmluZGV4IDk3MjZjODA0Y2U4NWEwMjU5ZGNhZTE1ZjI3YjMwMTM2ZWEzNWIzMjEuLjAzZDA2
ZDQ4ZjMyODJmNTFmMjg1ZDJhM2ZlYzI0MGNlNGY4OWQ5N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCkBAIC0xNjEx
LDcgKzE2MTEsNyBAQCBSZWY8SW5zcGVjdG9yOjpQcm90b2NvbDo6RE9NOjpFdmVudExpc3RlbmVy
PiBJbnNwZWN0b3JET01BZ2VudDo6YnVpbGRPYmplY3RGb3JFdgogICAgICAgICBoYW5kbGVyID0g
c2NyaXB0TGlzdGVuZXIuanNGdW5jdGlvbihub2RlLT5kb2N1bWVudCgpKTsKICAgICAgICAgaWYg
KGhhbmRsZXIgJiYgc3RhdGUpIHsKICAgICAgICAgICAgIGJvZHkgPSBoYW5kbGVyLT50b1N0cmlu
ZyhzdGF0ZSktPnZhbHVlKHN0YXRlKTsKLSAgICAgICAgICAgIGlmIChhdXRvIGZ1bmN0aW9uID0g
anNEeW5hbWljRG93bmNhc3Q8SlNDOjpKU0Z1bmN0aW9uKj4oc3RhdGUtPnZtKCksIGhhbmRsZXIp
KSB7CisgICAgICAgICAgICBpZiAoYXV0byBmdW5jdGlvbiA9IEpTQzo6anNEeW5hbWljQ2FzdDxK
U0M6OkpTRnVuY3Rpb24qPihzdGF0ZS0+dm0oKSwgaGFuZGxlcikpIHsKICAgICAgICAgICAgICAg
ICBpZiAoIWZ1bmN0aW9uLT5pc0hvc3RPckJ1aWx0aW5GdW5jdGlvbigpKSB7CiAgICAgICAgICAg
ICAgICAgICAgIGlmIChhdXRvIGV4ZWN1dGFibGUgPSBmdW5jdGlvbi0+anNFeGVjdXRhYmxlKCkp
IHsKICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVOdW1iZXIgPSBleGVjdXRhYmxlLT5maXJz
dExpbmUoKSAtIDE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQXV0b21h
dGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uUHJveHkuY3BwCmluZGV4IGQxMzc4
NzZjZmUzMDBhMjk4ZjRkODAwNDZlMDZiMzdjMmI2YjA1YTMuLjJlNmNiZWIyYWM5YTJhODQxYWJi
Mjg1YWI0MjMwMjQ3Mjk4OTNlZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uUHJveHkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uUHJveHkuY3Bw
CkBAIC0yMTMsNyArMjEzLDcgQEAgV2ViQ29yZTo6RWxlbWVudCogV2ViQXV0b21hdGlvblNlc3Np
b25Qcm94eTo6ZWxlbWVudEZvck5vZGVIYW5kbGUoV2ViRnJhbWUmIGZyYW0KICAgICBpZiAoIWVs
ZW1lbnQpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgYXV0byBlbGVtZW50V3JhcHBl
ciA9IFdlYkNvcmU6OmpzRHluYW1pY0Rvd25jYXN0PFdlYkNvcmU6OkpTRWxlbWVudCo+KHRvSlMo
Y29udGV4dCktPnZtKCksIHRvSlMoZWxlbWVudCkpOworICAgIGF1dG8gZWxlbWVudFdyYXBwZXIg
PSBKU0M6OmpzRHluYW1pY0Nhc3Q8V2ViQ29yZTo6SlNFbGVtZW50Kj4odG9KUyhjb250ZXh0KS0+
dm0oKSwgdG9KUyhlbGVtZW50KSk7CiAgICAgaWYgKCFlbGVtZW50V3JhcHBlcikKICAgICAgICAg
cmV0dXJuIG51bGxwdHI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYkZyYW1lLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YkZyYW1lLmNwcAppbmRleCAxMDBmNjc0NmZkOWQ1MWRjMzAxYjNlNzIxZWYzYzhhMzQ2NjBkYmNi
Li42N2UxMzE3YjJlNzVlYTU5NDhkYjllYjM5N2ZmNmFiMDhlNDkxMGRhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwCkBAIC02OTQsNyArNjk0LDcg
QEAgV2ViRnJhbWUqIFdlYkZyYW1lOjpmcmFtZUZvckNvbnRleHQoSlNDb250ZXh0UmVmIGNvbnRl
eHQpCiB7CiAKICAgICBKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3RPYmogPSB0b0pT
KGNvbnRleHQpLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCk7Ci0gICAgSlNET01XaW5kb3cqIHdpbmRv
dyA9IGpzRHluYW1pY0Rvd25jYXN0PEpTRE9NV2luZG93Kj4oZ2xvYmFsT2JqZWN0T2JqLT52bSgp
LCBnbG9iYWxPYmplY3RPYmopOworICAgIEpTRE9NV2luZG93KiB3aW5kb3cgPSBqc0R5bmFtaWND
YXN0PEpTRE9NV2luZG93Kj4oZ2xvYmFsT2JqZWN0T2JqLT52bSgpLCBnbG9iYWxPYmplY3RPYmop
OwogICAgIGlmICghd2luZG93KQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICByZXR1cm4g
V2ViRnJhbWU6OmZyb21Db3JlRnJhbWUoKih3aW5kb3ctPndyYXBwZWQoKS5mcmFtZSgpKSk7Cg==
</data>
<flag name="review"
          id="353965"
          type_id="1"
          status="+"
          setter="mark.lam"
    />
          </attachment>
      

    </bug>

</bugzilla>