<?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>27643</bug_id>
          
          <creation_ts>2009-07-24 01:22:58 -0700</creation_ts>
          <short_desc>Update CodeGeneratorJS.pm to support passing JSDOMGlobalObject* to toJS calls</short_desc>
          <delta_ts>2009-07-24 02:15:54 -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>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>27634</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>134450</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-07-24 01:22:58 -0700</bug_when>
    <thetext>Update CodeGeneratorJS.pm to support passing JSDOMGlobalObject* to toJS calls

This is an attempt at making the patch for 27634 smaller.  It&apos;s still rather large, but hopefully more reviewable now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>134459</commentid>
    <comment_count>1</comment_count>
      <attachid>33413</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-07-24 01:45:07 -0700</bug_when>
    <thetext>Created attachment 33413
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>134460</commentid>
    <comment_count>2</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-07-24 01:49:14 -0700</bug_when>
    <thetext>Sadly I don&apos;t think I can make this patch much smaller w/o horribly complicating landing things.  Hopefully you&apos;ll find it straightforward to review.  The *only* intentionally changed files were JSDOMBinding.* and CodeGeneratorJS.pm.  The rest is the minimal amount of changes to support those to diffs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>134465</commentid>
    <comment_count>3</comment_count>
      <attachid>33413</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-07-24 02:08:44 -0700</bug_when>
    <thetext>Comment on attachment 33413
patch

Yes.  You could have put the code generator clean up in a separate patch, but it&apos;s not needed now that I&apos;ve reviewed it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>134470</commentid>
    <comment_count>4</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-07-24 02:15:54 -0700</bug_when>
    <thetext>Committing to http://svn.webkit.org/repository/webkit/trunk ...
	M	LayoutTests/ChangeLog
	M	LayoutTests/fast/dom/constructed-objects-prototypes-expected.txt
	M	LayoutTests/fast/dom/prototype-inheritance-2-expected.txt
	M	LayoutTests/fast/dom/prototype-inheritance-expected.txt
	M	WebCore/ChangeLog
	M	WebCore/bindings/js/JSCDATASectionCustom.cpp
	M	WebCore/bindings/js/JSCSSRuleCustom.cpp
	M	WebCore/bindings/js/JSCSSValueCustom.cpp
	M	WebCore/bindings/js/JSDOMBinding.cpp
	M	WebCore/bindings/js/JSDOMBinding.h
	M	WebCore/bindings/js/JSDOMWindowBase.cpp
	M	WebCore/bindings/js/JSDOMWindowBase.h
	M	WebCore/bindings/js/JSDocumentCustom.cpp
	M	WebCore/bindings/js/JSElementCustom.cpp
	M	WebCore/bindings/js/JSEventCustom.cpp
	M	WebCore/bindings/js/JSEventTarget.cpp
	M	WebCore/bindings/js/JSEventTarget.h
	M	WebCore/bindings/js/JSHTMLCollectionCustom.cpp
	M	WebCore/bindings/js/JSImageDataCustom.cpp
	M	WebCore/bindings/js/JSNodeCustom.cpp
	M	WebCore/bindings/js/JSSVGElementInstanceCustom.cpp
	M	WebCore/bindings/js/JSSVGMatrixCustom.cpp
	M	WebCore/bindings/js/JSSVGPathSegCustom.cpp
	M	WebCore/bindings/js/JSSVGPathSegListCustom.cpp
	M	WebCore/bindings/js/JSSVGPointListCustom.cpp
	M	WebCore/bindings/js/JSSVGTransformListCustom.cpp
	M	WebCore/bindings/js/JSStyleSheetCustom.cpp
	M	WebCore/bindings/js/JSTextCustom.cpp
	M	WebCore/bindings/js/JSWorkerContextBase.cpp
	M	WebCore/bindings/js/JSWorkerContextBase.h
	M	WebCore/bindings/scripts/CodeGeneratorJS.pm
Committed r46346
	M	WebCore/ChangeLog
	M	WebCore/bindings/scripts/CodeGeneratorJS.pm
	M	WebCore/bindings/js/JSTextCustom.cpp
	M	WebCore/bindings/js/JSCSSValueCustom.cpp
	M	WebCore/bindings/js/JSHTMLCollectionCustom.cpp
	M	WebCore/bindings/js/JSCSSRuleCustom.cpp
	M	WebCore/bindings/js/JSElementCustom.cpp
	M	WebCore/bindings/js/JSSVGPathSegCustom.cpp
	M	WebCore/bindings/js/JSWorkerContextBase.cpp
	M	WebCore/bindings/js/JSEventCustom.cpp
	M	WebCore/bindings/js/JSEventTarget.h
	M	WebCore/bindings/js/JSDOMWindowBase.h
	M	WebCore/bindings/js/JSImageDataCustom.cpp
	M	WebCore/bindings/js/JSWorkerContextBase.h
	M	WebCore/bindings/js/JSSVGMatrixCustom.cpp
	M	WebCore/bindings/js/JSStyleSheetCustom.cpp
	M	WebCore/bindings/js/JSSVGElementInstanceCustom.cpp
	M	WebCore/bindings/js/JSDOMWindowBase.cpp
	M	WebCore/bindings/js/JSSVGPathSegListCustom.cpp
	M	WebCore/bindings/js/JSDOMBinding.h
	M	WebCore/bindings/js/JSDOMBinding.cpp
	M	WebCore/bindings/js/JSCDATASectionCustom.cpp
	M	WebCore/bindings/js/JSSVGPointListCustom.cpp
	M	WebCore/bindings/js/JSSVGTransformListCustom.cpp
	M	WebCore/bindings/js/JSDocumentCustom.cpp
	M	WebCore/bindings/js/JSNodeCustom.cpp
	M	WebCore/bindings/js/JSEventTarget.cpp
	M	LayoutTests/ChangeLog
	M	LayoutTests/fast/dom/constructed-objects-prototypes-expected.txt
	M	LayoutTests/fast/dom/prototype-inheritance-2-expected.txt
	M	LayoutTests/fast/dom/prototype-inheritance-expected.txt
r46346 = 2495069585adfd98432c6f1344514c465d1dfcf3 (trunk)
No changes between current HEAD and refs/remotes/trunk
Resetting to the latest refs/remotes/trunk
http://trac.webkit.org/changeset/46346</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>33413</attachid>
            <date>2009-07-24 01:45:07 -0700</date>
            <delta_ts>2009-07-24 02:08:44 -0700</delta_ts>
            <desc>patch</desc>
            <filename>bug-27643-20090724014506.patch</filename>
            <type>text/plain</type>
            <size>74675</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2NDk1Yjg4Li4xN2E2N2Q0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTkgQEAKIDIwMDktMDct
MjQgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgogCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZSBDb2RlR2VuZXJhdG9ySlMucG0gdG8g
c3VwcG9ydCBwYXNzaW5nIEpTRE9NR2xvYmFsT2JqZWN0KiB0byB0b0pTIGNhbGxzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzY0MworCisgICAgICAg
IFNvbWUgb2YgdGhlIHRlc3RzIGFyZSBmaXhlZCwgYnV0IG5vdCBhbGwgeWV0LiAgTW9zdCBvZiB0
aGUgcmVzdAorICAgICAgICBvZiB0aGUgdGVzdHMgd2lsbCBiZSBmaXhlZCB3aGVuIHRoZSByZXN0
IG9mIGJ1ZyAyNzYzNCBsYW5kcy4KKworICAgICAgICAqIGZhc3QvZG9tL2NvbnN0cnVjdGVkLW9i
amVjdHMtcHJvdG90eXBlcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9kb20vcHJvdG90
eXBlLWluaGVyaXRhbmNlLTItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZG9tL3Byb3Rv
dHlwZS1pbmhlcml0YW5jZS1leHBlY3RlZC50eHQ6CisKKzIwMDktMDctMjQgIEVyaWMgU2VpZGVs
ICA8ZXJpY0B3ZWJraXQub3JnPgorCiAgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCiAK
ICAgICAgICAgeC1mcmFtZSBjb25zdHJ1Y3RvciBjYWxscyBhcmUgaW5zdGFudGlhdGVkIHdpdGgg
dGhlIHdyb25nIHByb3RvdHlwZSBjaGFpbgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9k
b20vY29uc3RydWN0ZWQtb2JqZWN0cy1wcm90b3R5cGVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2Zhc3QvZG9tL2NvbnN0cnVjdGVkLW9iamVjdHMtcHJvdG90eXBlcy1leHBlY3RlZC50eHQK
aW5kZXggNTMyOThjYy4uNjI3NDZmZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20v
Y29uc3RydWN0ZWQtb2JqZWN0cy1wcm90b3R5cGVzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9jb25zdHJ1Y3RlZC1vYmplY3RzLXByb3RvdHlwZXMtZXhwZWN0ZWQudHh0
CkBAIC01LDggKzUsOCBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogCiBGQUlMIChuZXcgaW5u
ZXIuQXVkaW8pLmlzSW5uZXIgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KIEZBSUwgKG5ldyBp
bm5lci5BdWRpbykuY29uc3RydWN0b3IuaXNJbm5lciBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNl
LgotRkFJTCAobmV3IGlubmVyLkRPTVBhcnNlcikuaXNJbm5lciBzaG91bGQgYmUgdHJ1ZS4gV2Fz
IGZhbHNlLgotRkFJTCAobmV3IGlubmVyLkRPTVBhcnNlcikuY29uc3RydWN0b3IuaXNJbm5lciBz
aG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgorUEFTUyAobmV3IGlubmVyLkRPTVBhcnNlcikuaXNJ
bm5lciBpcyB0cnVlCitQQVNTIChuZXcgaW5uZXIuRE9NUGFyc2VyKS5jb25zdHJ1Y3Rvci5pc0lu
bmVyIGlzIHRydWUKIEZBSUwgKG5ldyBpbm5lci5JbWFnZSkuaXNJbm5lciBzaG91bGQgYmUgdHJ1
ZS4gV2FzIGZhbHNlLgogRkFJTCAobmV3IGlubmVyLkltYWdlKS5jb25zdHJ1Y3Rvci5pc0lubmVy
IHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCiBGQUlMIChuZXcgaW5uZXIuTWVzc2FnZUNoYW5u
ZWwpLmlzSW5uZXIgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KQEAgLTE5LDEwICsxOSwxMCBA
QCBGQUlMIChuZXcgaW5uZXIuV2ViS2l0UG9pbnQpLmlzSW5uZXIgc2hvdWxkIGJlIHRydWUuIFdh
cyBmYWxzZS4KIEZBSUwgKG5ldyBpbm5lci5XZWJLaXRQb2ludCkuY29uc3RydWN0b3IuaXNJbm5l
ciBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgogRkFJTCAobmV3IGlubmVyLlhNTEh0dHBSZXF1
ZXN0KS5pc0lubmVyIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCiBGQUlMIChuZXcgaW5uZXIu
WE1MSHR0cFJlcXVlc3QpLmNvbnN0cnVjdG9yLmlzSW5uZXIgc2hvdWxkIGJlIHRydWUuIFdhcyBm
YWxzZS4KLUZBSUwgKG5ldyBpbm5lci5YTUxTZXJpYWxpemVyKS5pc0lubmVyIHNob3VsZCBiZSB0
cnVlLiBXYXMgZmFsc2UuCi1GQUlMIChuZXcgaW5uZXIuWE1MU2VyaWFsaXplcikuY29uc3RydWN0
b3IuaXNJbm5lciBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgotRkFJTCAobmV3IGlubmVyLlhQ
YXRoRXZhbHVhdG9yKS5pc0lubmVyIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCi1GQUlMIChu
ZXcgaW5uZXIuWFBhdGhFdmFsdWF0b3IpLmNvbnN0cnVjdG9yLmlzSW5uZXIgc2hvdWxkIGJlIHRy
dWUuIFdhcyBmYWxzZS4KK1BBU1MgKG5ldyBpbm5lci5YTUxTZXJpYWxpemVyKS5pc0lubmVyIGlz
IHRydWUKK1BBU1MgKG5ldyBpbm5lci5YTUxTZXJpYWxpemVyKS5jb25zdHJ1Y3Rvci5pc0lubmVy
IGlzIHRydWUKK1BBU1MgKG5ldyBpbm5lci5YUGF0aEV2YWx1YXRvcikuaXNJbm5lciBpcyB0cnVl
CitQQVNTIChuZXcgaW5uZXIuWFBhdGhFdmFsdWF0b3IpLmNvbnN0cnVjdG9yLmlzSW5uZXIgaXMg
dHJ1ZQogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9wcm90b3R5cGUtaW5oZXJpdGFuY2UtMi1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9wcm90b3R5cGUtaW5oZXJpdGFuY2Ut
Mi1leHBlY3RlZC50eHQKaW5kZXggYWVhYjJhMy4uMTM5YmIxZiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9kb20vcHJvdG90eXBlLWluaGVyaXRhbmNlLTItZXhwZWN0ZWQudHh0CisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZG9tL3Byb3RvdHlwZS1pbmhlcml0YW5jZS0yLWV4cGVjdGVkLnR4
dApAQCAtNyw4ICs3LDggQEAgRkFJTCBBcnJheSBmcm9tIGlubmVyLmNvbnNvbGUucHJvZmlsZXMK
IEZBSUwgQXR0ciBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuYXR0cmlidXRlcy4w
CiBGQUlMIEF0dHJDb25zdHJ1Y3RvciBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQu
YXR0cmlidXRlcy4wLmNvbnN0cnVjdG9yCiBGQUlMIEF0dHJQcm90b3R5cGUgZnJvbSBpbm5lci5k
b2N1bWVudC5hY3RpdmVFbGVtZW50LmF0dHJpYnV0ZXMuMC5fX3Byb3RvX18KLUZBSUwgQmFySW5m
byBmcm9tIGlubmVyLm1lbnViYXIKLUZBSUwgQmFySW5mb1Byb3RvdHlwZSBmcm9tIGlubmVyLm1l
bnViYXIuX19wcm90b19fCitQQVNTIEJhckluZm8gZnJvbSBpbm5lci5tZW51YmFyCitQQVNTIEJh
ckluZm9Qcm90b3R5cGUgZnJvbSBpbm5lci5tZW51YmFyLl9fcHJvdG9fXwogRkFJTCBCb29sZWFu
IGZyb20gaW5uZXIub2Zmc2NyZWVuQnVmZmVyaW5nCiBGQUlMIENTU1J1bGVMaXN0IGZyb20gaW5u
ZXIuZG9jdW1lbnQuc3R5bGVTaGVldHMuMC5jc3NSdWxlcwogRkFJTCBDU1NSdWxlTGlzdENvbnN0
cnVjdG9yIGZyb20gaW5uZXIuZG9jdW1lbnQuc3R5bGVTaGVldHMuMC5ydWxlcy5jb25zdHJ1Y3Rv
cgpAQCAtMjEsMTMgKzIxLDEzIEBAIEZBSUwgQ1NTU3R5bGVTaGVldENvbnN0cnVjdG9yIGZyb20g
aW5uZXIuZG9jdW1lbnQuc3R5bGVTaGVldHMuMC5jb25zdHJ1Y3RvcgogRkFJTCBDU1NTdHlsZVNo
ZWV0UHJvdG90eXBlIGZyb20gaW5uZXIuZG9jdW1lbnQuc3R5bGVTaGVldHMuMC5fX3Byb3RvX18K
IEZBSUwgQ2hhcmFjdGVyRGF0YVByb3RvdHlwZSBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVs
ZW1lbnQuYXR0cmlidXRlcy4wLmxhc3RDaGlsZC5fX3Byb3RvX18uX19wcm90b19fCiBGQUlMIENv
bGxlY3Rpb24gZnJvbSBpbm5lci5kb2N1bWVudC5mb3Jtcy50ZXN0Rm9ybQotRkFJTCBDb25zb2xl
IGZyb20gaW5uZXIuY29uc29sZQotRkFJTCBDb25zb2xlUHJvdG90eXBlIGZyb20gaW5uZXIuY29u
c29sZS5fX3Byb3RvX18KLUZBSUwgRE9NQXBwbGljYXRpb25DYWNoZSBmcm9tIGlubmVyLmFwcGxp
Y2F0aW9uQ2FjaGUKLUZBSUwgRE9NQXBwbGljYXRpb25DYWNoZVByb3RvdHlwZSBmcm9tIGlubmVy
LmFwcGxpY2F0aW9uQ2FjaGUuX19wcm90b19fCi1GQUlMIERPTUltcGxlbWVudGF0aW9uIGZyb20g
aW5uZXIuZG9jdW1lbnQuaW1wbGVtZW50YXRpb24KLUZBSUwgRE9NSW1wbGVtZW50YXRpb25Db25z
dHJ1Y3RvciBmcm9tIGlubmVyLmRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNvbnN0cnVjdG9yCi1G
QUlMIERPTUltcGxlbWVudGF0aW9uUHJvdG90eXBlIGZyb20gaW5uZXIuZG9jdW1lbnQuaW1wbGVt
ZW50YXRpb24uX19wcm90b19fCitQQVNTIENvbnNvbGUgZnJvbSBpbm5lci5jb25zb2xlCitQQVNT
IENvbnNvbGVQcm90b3R5cGUgZnJvbSBpbm5lci5jb25zb2xlLl9fcHJvdG9fXworUEFTUyBET01B
cHBsaWNhdGlvbkNhY2hlIGZyb20gaW5uZXIuYXBwbGljYXRpb25DYWNoZQorUEFTUyBET01BcHBs
aWNhdGlvbkNhY2hlUHJvdG90eXBlIGZyb20gaW5uZXIuYXBwbGljYXRpb25DYWNoZS5fX3Byb3Rv
X18KK1BBU1MgRE9NSW1wbGVtZW50YXRpb24gZnJvbSBpbm5lci5kb2N1bWVudC5pbXBsZW1lbnRh
dGlvbgorUEFTUyBET01JbXBsZW1lbnRhdGlvbkNvbnN0cnVjdG9yIGZyb20gaW5uZXIuZG9jdW1l
bnQuaW1wbGVtZW50YXRpb24uY29uc3RydWN0b3IKK1BBU1MgRE9NSW1wbGVtZW50YXRpb25Qcm90
b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5fX3Byb3RvX18KIFBBU1Mg
RE9NV2luZG93IGZyb20gaW5uZXIKIFBBU1MgRE9NV2luZG93UHJvdG90eXBlIGZyb20gaW5uZXIu
X19wcm90b19fCiBGQUlMIERhdGFHcmlkQ29sdW1uTGlzdCBmcm9tIGlubmVyLmRvY3VtZW50LmFj
dGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy4xNC5jb2x1bW5zCkBAIC0yMDYsMzYgKzIwNiwzNiBAQCBQ
QVNTIExvY2F0aW9uUHJvdG90eXBlIGZyb20gaW5uZXIuZG9jdW1lbnQubG9jYXRpb24uX19wcm90
b19fCiBGQUlMIE1lZGlhTGlzdCBmcm9tIGlubmVyLmRvY3VtZW50LnN0eWxlU2hlZXRzLjAubWVk
aWEKIEZBSUwgTWVkaWFMaXN0Q29uc3RydWN0b3IgZnJvbSBpbm5lci5kb2N1bWVudC5zdHlsZVNo
ZWV0cy4wLm1lZGlhLmNvbnN0cnVjdG9yCiBGQUlMIE1lZGlhTGlzdFByb3RvdHlwZSBmcm9tIGlu
bmVyLmRvY3VtZW50LnN0eWxlU2hlZXRzLjAubWVkaWEuX19wcm90b19fCi1GQUlMIE1pbWVUeXBl
IGZyb20gaW5uZXIuY2xpZW50SW5mb3JtYXRpb24ubWltZVR5cGVzLjAKLUZBSUwgTWltZVR5cGVB
cnJheSBmcm9tIGlubmVyLmNsaWVudEluZm9ybWF0aW9uLm1pbWVUeXBlcwotRkFJTCBNaW1lVHlw
ZUFycmF5Q29uc3RydWN0b3IgZnJvbSBpbm5lci5jbGllbnRJbmZvcm1hdGlvbi5taW1lVHlwZXMu
Y29uc3RydWN0b3IKLUZBSUwgTWltZVR5cGVBcnJheVByb3RvdHlwZSBmcm9tIGlubmVyLmNsaWVu
dEluZm9ybWF0aW9uLm1pbWVUeXBlcy5fX3Byb3RvX18KLUZBSUwgTWltZVR5cGVDb25zdHJ1Y3Rv
ciBmcm9tIGlubmVyLmNsaWVudEluZm9ybWF0aW9uLm1pbWVUeXBlcy4wLmNvbnN0cnVjdG9yCi1G
QUlMIE1pbWVUeXBlUHJvdG90eXBlIGZyb20gaW5uZXIuY2xpZW50SW5mb3JtYXRpb24ubWltZVR5
cGVzLjAuX19wcm90b19fCitQQVNTIE1pbWVUeXBlIGZyb20gaW5uZXIuY2xpZW50SW5mb3JtYXRp
b24ubWltZVR5cGVzLjAKK1BBU1MgTWltZVR5cGVBcnJheSBmcm9tIGlubmVyLmNsaWVudEluZm9y
bWF0aW9uLm1pbWVUeXBlcworUEFTUyBNaW1lVHlwZUFycmF5Q29uc3RydWN0b3IgZnJvbSBpbm5l
ci5jbGllbnRJbmZvcm1hdGlvbi5taW1lVHlwZXMuY29uc3RydWN0b3IKK1BBU1MgTWltZVR5cGVB
cnJheVByb3RvdHlwZSBmcm9tIGlubmVyLmNsaWVudEluZm9ybWF0aW9uLm1pbWVUeXBlcy5fX3By
b3RvX18KK1BBU1MgTWltZVR5cGVDb25zdHJ1Y3RvciBmcm9tIGlubmVyLmNsaWVudEluZm9ybWF0
aW9uLm1pbWVUeXBlcy4wLmNvbnN0cnVjdG9yCitQQVNTIE1pbWVUeXBlUHJvdG90eXBlIGZyb20g
aW5uZXIuY2xpZW50SW5mb3JtYXRpb24ubWltZVR5cGVzLjAuX19wcm90b19fCiBGQUlMIE5hbWVk
Tm9kZU1hcCBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQucHJldmlvdXNFbGVtZW50
U2libGluZy5hdHRyaWJ1dGVzCi1GQUlMIE5hdmlnYXRvciBmcm9tIGlubmVyLmNsaWVudEluZm9y
bWF0aW9uCi1GQUlMIE5hdmlnYXRvclByb3RvdHlwZSBmcm9tIGlubmVyLmNsaWVudEluZm9ybWF0
aW9uLl9fcHJvdG9fXworUEFTUyBOYXZpZ2F0b3IgZnJvbSBpbm5lci5jbGllbnRJbmZvcm1hdGlv
bgorUEFTUyBOYXZpZ2F0b3JQcm90b3R5cGUgZnJvbSBpbm5lci5jbGllbnRJbmZvcm1hdGlvbi5f
X3Byb3RvX18KIEZBSUwgTm9kZUxpc3QgZnJvbSBpbm5lci5kb2N1bWVudC5kb2N1bWVudEVsZW1l
bnQuY2hpbGROb2RlcwotRkFJTCBOb2RlTGlzdENvbnN0cnVjdG9yIGZyb20gaW5uZXIuZG9jdW1l
bnQuY2hpbGROb2Rlcy5jb25zdHJ1Y3RvcgorUEFTUyBOb2RlTGlzdENvbnN0cnVjdG9yIGZyb20g
aW5uZXIuZG9jdW1lbnQuY2hpbGROb2Rlcy5jb25zdHJ1Y3RvcgogRkFJTCBOb2RlTGlzdFByb3Rv
dHlwZSBmcm9tIGlubmVyLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jaGlsZE5vZGVzLl9fcHJv
dG9fXwogUEFTUyBOb2RlUHJvdG90eXBlIGZyb20gaW5uZXIuZG9jdW1lbnQuX19wcm90b19fLl9f
cHJvdG9fXy5fX3Byb3RvX18KIEZBSUwgTnVtYmVyIGZyb20gaW5uZXIucGFnZVhPZmZzZXQKIEZB
SUwgT2JqZWN0IGZyb20gaW5uZXIuZG9jdW1lbnQuZm9ybXMudGVzdEZvcm0uX19wcm90b19fCi1G
QUlMIFBsdWdpbiBmcm9tIGlubmVyLmNsaWVudEluZm9ybWF0aW9uLm1pbWVUeXBlcy4wLmVuYWJs
ZWRQbHVnaW4KLUZBSUwgUGx1Z2luQXJyYXkgZnJvbSBpbm5lci5jbGllbnRJbmZvcm1hdGlvbi5w
bHVnaW5zCi1GQUlMIFBsdWdpbkFycmF5Q29uc3RydWN0b3IgZnJvbSBpbm5lci5jbGllbnRJbmZv
cm1hdGlvbi5wbHVnaW5zLmNvbnN0cnVjdG9yCi1GQUlMIFBsdWdpbkFycmF5UHJvdG90eXBlIGZy
b20gaW5uZXIuY2xpZW50SW5mb3JtYXRpb24ucGx1Z2lucy5fX3Byb3RvX18KLUZBSUwgUGx1Z2lu
Q29uc3RydWN0b3IgZnJvbSBpbm5lci5jbGllbnRJbmZvcm1hdGlvbi5wbHVnaW5zLjAuY29uc3Ry
dWN0b3IKLUZBSUwgUGx1Z2luUHJvdG90eXBlIGZyb20gaW5uZXIuY2xpZW50SW5mb3JtYXRpb24u
bWltZVR5cGVzLjAuZW5hYmxlZFBsdWdpbi5fX3Byb3RvX18KLUZBSUwgU2NyZWVuIGZyb20gaW5u
ZXIuc2NyZWVuCi1GQUlMIFNjcmVlblByb3RvdHlwZSBmcm9tIGlubmVyLnNjcmVlbi5fX3Byb3Rv
X18KLUZBSUwgU3RvcmFnZSBmcm9tIGlubmVyLmxvY2FsU3RvcmFnZQotRkFJTCBTdG9yYWdlQ29u
c3RydWN0b3IgZnJvbSBpbm5lci5sb2NhbFN0b3JhZ2UuY29uc3RydWN0b3IKLUZBSUwgU3RvcmFn
ZVByb3RvdHlwZSBmcm9tIGlubmVyLmxvY2FsU3RvcmFnZS5fX3Byb3RvX18KK1BBU1MgUGx1Z2lu
IGZyb20gaW5uZXIuY2xpZW50SW5mb3JtYXRpb24ubWltZVR5cGVzLjAuZW5hYmxlZFBsdWdpbgor
UEFTUyBQbHVnaW5BcnJheSBmcm9tIGlubmVyLmNsaWVudEluZm9ybWF0aW9uLnBsdWdpbnMKK1BB
U1MgUGx1Z2luQXJyYXlDb25zdHJ1Y3RvciBmcm9tIGlubmVyLmNsaWVudEluZm9ybWF0aW9uLnBs
dWdpbnMuY29uc3RydWN0b3IKK1BBU1MgUGx1Z2luQXJyYXlQcm90b3R5cGUgZnJvbSBpbm5lci5j
bGllbnRJbmZvcm1hdGlvbi5wbHVnaW5zLl9fcHJvdG9fXworUEFTUyBQbHVnaW5Db25zdHJ1Y3Rv
ciBmcm9tIGlubmVyLmNsaWVudEluZm9ybWF0aW9uLnBsdWdpbnMuMC5jb25zdHJ1Y3RvcgorUEFT
UyBQbHVnaW5Qcm90b3R5cGUgZnJvbSBpbm5lci5jbGllbnRJbmZvcm1hdGlvbi5taW1lVHlwZXMu
MC5lbmFibGVkUGx1Z2luLl9fcHJvdG9fXworUEFTUyBTY3JlZW4gZnJvbSBpbm5lci5zY3JlZW4K
K1BBU1MgU2NyZWVuUHJvdG90eXBlIGZyb20gaW5uZXIuc2NyZWVuLl9fcHJvdG9fXworUEFTUyBT
dG9yYWdlIGZyb20gaW5uZXIubG9jYWxTdG9yYWdlCitQQVNTIFN0b3JhZ2VDb25zdHJ1Y3RvciBm
cm9tIGlubmVyLmxvY2FsU3RvcmFnZS5jb25zdHJ1Y3RvcgorUEFTUyBTdG9yYWdlUHJvdG90eXBl
IGZyb20gaW5uZXIubG9jYWxTdG9yYWdlLl9fcHJvdG9fXwogRkFJTCBTdHJpbmcgZnJvbSBpbm5l
ci5uYW1lCi1GQUlMIFN0eWxlU2hlZXRMaXN0IGZyb20gaW5uZXIuZG9jdW1lbnQuc3R5bGVTaGVl
dHMKLUZBSUwgU3R5bGVTaGVldExpc3RDb25zdHJ1Y3RvciBmcm9tIGlubmVyLmRvY3VtZW50LnN0
eWxlU2hlZXRzLmNvbnN0cnVjdG9yCi1GQUlMIFN0eWxlU2hlZXRMaXN0UHJvdG90eXBlIGZyb20g
aW5uZXIuZG9jdW1lbnQuc3R5bGVTaGVldHMuX19wcm90b19fCitQQVNTIFN0eWxlU2hlZXRMaXN0
IGZyb20gaW5uZXIuZG9jdW1lbnQuc3R5bGVTaGVldHMKK1BBU1MgU3R5bGVTaGVldExpc3RDb25z
dHJ1Y3RvciBmcm9tIGlubmVyLmRvY3VtZW50LnN0eWxlU2hlZXRzLmNvbnN0cnVjdG9yCitQQVNT
IFN0eWxlU2hlZXRMaXN0UHJvdG90eXBlIGZyb20gaW5uZXIuZG9jdW1lbnQuc3R5bGVTaGVldHMu
X19wcm90b19fCiBGQUlMIFN0eWxlU2hlZXRQcm90b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVudC5z
dHlsZVNoZWV0cy4wLl9fcHJvdG9fXy5fX3Byb3RvX18KIEZBSUwgVGV4dCBmcm9tIGlubmVyLmRv
Y3VtZW50LmFjdGl2ZUVsZW1lbnQuYXR0cmlidXRlcy4wLmZpcnN0Q2hpbGQKIEZBSUwgVGV4dENv
bnN0cnVjdG9yIGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5hdHRyaWJ1dGVzLjAu
bGFzdENoaWxkLmNvbnN0cnVjdG9yCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9w
cm90b3R5cGUtaW5oZXJpdGFuY2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20v
cHJvdG90eXBlLWluaGVyaXRhbmNlLWV4cGVjdGVkLnR4dAppbmRleCBmZjE2ZjY2Li5lNzc4ZjIy
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9wcm90b3R5cGUtaW5oZXJpdGFuY2Ut
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3Byb3RvdHlwZS1pbmhlcml0
YW5jZS1leHBlY3RlZC50eHQKQEAgLTM1Nyw4ICszNTcsOCBAQCBGQUlMIGlubmVyLmFkZEV2ZW50
TGlzdGVuZXIuaXNJbm5lciBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgogRkFJTCBpbm5lci5h
ZGRFdmVudExpc3RlbmVyLmNvbnN0cnVjdG9yLmlzSW5uZXIgc2hvdWxkIGJlIHRydWUuIFdhcyBm
YWxzZS4KIEZBSUwgaW5uZXIuYWxlcnQuaXNJbm5lciBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNl
LgogRkFJTCBpbm5lci5hbGVydC5jb25zdHJ1Y3Rvci5pc0lubmVyIHNob3VsZCBiZSB0cnVlLiBX
YXMgZmFsc2UuCi1GQUlMIGlubmVyLmFwcGxpY2F0aW9uQ2FjaGUuaXNJbm5lciBzaG91bGQgYmUg
dHJ1ZS4gV2FzIGZhbHNlLgotRkFJTCBpbm5lci5hcHBsaWNhdGlvbkNhY2hlLmNvbnN0cnVjdG9y
LmlzSW5uZXIgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KK1BBU1MgaW5uZXIuYXBwbGljYXRp
b25DYWNoZS5pc0lubmVyIGlzIHRydWUKK1BBU1MgaW5uZXIuYXBwbGljYXRpb25DYWNoZS5jb25z
dHJ1Y3Rvci5pc0lubmVyIGlzIHRydWUKIEZBSUwgaW5uZXIuYXRvYi5pc0lubmVyIHNob3VsZCBi
ZSB0cnVlLiBXYXMgZmFsc2UuCiBGQUlMIGlubmVyLmF0b2IuY29uc3RydWN0b3IuaXNJbm5lciBz
aG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgogRkFJTCBpbm5lci5ibHVyLmlzSW5uZXIgc2hvdWxk
IGJlIHRydWUuIFdhcyBmYWxzZS4KQEAgLTM3MSwxNiArMzcxLDE2IEBAIEZBSUwgaW5uZXIuY2xl
YXJJbnRlcnZhbC5pc0lubmVyIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCiBGQUlMIGlubmVy
LmNsZWFySW50ZXJ2YWwuY29uc3RydWN0b3IuaXNJbm5lciBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZh
bHNlLgogRkFJTCBpbm5lci5jbGVhclRpbWVvdXQuaXNJbm5lciBzaG91bGQgYmUgdHJ1ZS4gV2Fz
IGZhbHNlLgogRkFJTCBpbm5lci5jbGVhclRpbWVvdXQuY29uc3RydWN0b3IuaXNJbm5lciBzaG91
bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgotRkFJTCBpbm5lci5jbGllbnRJbmZvcm1hdGlvbi5pc0lu
bmVyIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCi1GQUlMIGlubmVyLmNsaWVudEluZm9ybWF0
aW9uLmNvbnN0cnVjdG9yLmlzSW5uZXIgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KK1BBU1Mg
aW5uZXIuY2xpZW50SW5mb3JtYXRpb24uaXNJbm5lciBpcyB0cnVlCitQQVNTIGlubmVyLmNsaWVu
dEluZm9ybWF0aW9uLmNvbnN0cnVjdG9yLmlzSW5uZXIgaXMgdHJ1ZQogRkFJTCBpbm5lci5jbG9z
ZS5pc0lubmVyIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCiBGQUlMIGlubmVyLmNsb3NlLmNv
bnN0cnVjdG9yLmlzSW5uZXIgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KIEZBSUwgaW5uZXIu
Y2xvc2VkLmlzSW5uZXIgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KIEZBSUwgaW5uZXIuY2xv
c2VkLmNvbnN0cnVjdG9yLmlzSW5uZXIgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KIEZBSUwg
aW5uZXIuY29uZmlybS5pc0lubmVyIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCiBGQUlMIGlu
bmVyLmNvbmZpcm0uY29uc3RydWN0b3IuaXNJbm5lciBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNl
LgotRkFJTCBpbm5lci5jb25zb2xlLmlzSW5uZXIgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4K
LUZBSUwgaW5uZXIuY29uc29sZS5jb25zdHJ1Y3Rvci5pc0lubmVyIHNob3VsZCBiZSB0cnVlLiBX
YXMgZmFsc2UuCitQQVNTIGlubmVyLmNvbnNvbGUuaXNJbm5lciBpcyB0cnVlCitQQVNTIGlubmVy
LmNvbnNvbGUuY29uc3RydWN0b3IuaXNJbm5lciBpcyB0cnVlCiBGQUlMIGlubmVyLmRlZmF1bHRT
dGF0dXMuaXNJbm5lciBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgogRkFJTCBpbm5lci5kZWZh
dWx0U3RhdHVzLmNvbnN0cnVjdG9yLmlzSW5uZXIgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4K
IEZBSUwgaW5uZXIuZGVmYXVsdHN0YXR1cy5pc0lubmVyIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFs
c2UuCkBAIC00MTUsMjIgKzQxNSwyMiBAQCBGQUlMIGlubmVyLmlzSW5uZXIuaXNJbm5lciBzaG91
bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgogRkFJTCBpbm5lci5pc0lubmVyLmNvbnN0cnVjdG9yLmlz
SW5uZXIgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KIEZBSUwgaW5uZXIubGVuZ3RoLmlzSW5u
ZXIgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KIEZBSUwgaW5uZXIubGVuZ3RoLmNvbnN0cnVj
dG9yLmlzSW5uZXIgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KLUZBSUwgaW5uZXIubG9jYWxT
dG9yYWdlLmlzSW5uZXIgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KLUZBSUwgaW5uZXIubG9j
YWxTdG9yYWdlLmNvbnN0cnVjdG9yLmlzSW5uZXIgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4K
K1BBU1MgaW5uZXIubG9jYWxTdG9yYWdlLmlzSW5uZXIgaXMgdHJ1ZQorUEFTUyBpbm5lci5sb2Nh
bFN0b3JhZ2UuY29uc3RydWN0b3IuaXNJbm5lciBpcyB0cnVlCiBQQVNTIGlubmVyLmxvY2F0aW9u
LmlzSW5uZXIgaXMgdHJ1ZQogUEFTUyBpbm5lci5sb2NhdGlvbi5jb25zdHJ1Y3Rvci5pc0lubmVy
IGlzIHRydWUKLUZBSUwgaW5uZXIubG9jYXRpb25iYXIuaXNJbm5lciBzaG91bGQgYmUgdHJ1ZS4g
V2FzIGZhbHNlLgotRkFJTCBpbm5lci5sb2NhdGlvbmJhci5jb25zdHJ1Y3Rvci5pc0lubmVyIHNo
b3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCi1GQUlMIGlubmVyLm1lbnViYXIuaXNJbm5lciBzaG91
bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgotRkFJTCBpbm5lci5tZW51YmFyLmNvbnN0cnVjdG9yLmlz
SW5uZXIgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KK1BBU1MgaW5uZXIubG9jYXRpb25iYXIu
aXNJbm5lciBpcyB0cnVlCitQQVNTIGlubmVyLmxvY2F0aW9uYmFyLmNvbnN0cnVjdG9yLmlzSW5u
ZXIgaXMgdHJ1ZQorUEFTUyBpbm5lci5tZW51YmFyLmlzSW5uZXIgaXMgdHJ1ZQorUEFTUyBpbm5l
ci5tZW51YmFyLmNvbnN0cnVjdG9yLmlzSW5uZXIgaXMgdHJ1ZQogRkFJTCBpbm5lci5tb3ZlQnku
aXNJbm5lciBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgogRkFJTCBpbm5lci5tb3ZlQnkuY29u
c3RydWN0b3IuaXNJbm5lciBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgogRkFJTCBpbm5lci5t
b3ZlVG8uaXNJbm5lciBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgogRkFJTCBpbm5lci5tb3Zl
VG8uY29uc3RydWN0b3IuaXNJbm5lciBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgogRkFJTCBp
bm5lci5uYW1lLmlzSW5uZXIgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KIEZBSUwgaW5uZXIu
bmFtZS5jb25zdHJ1Y3Rvci5pc0lubmVyIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCi1GQUlM
IGlubmVyLm5hdmlnYXRvci5pc0lubmVyIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCi1GQUlM
IGlubmVyLm5hdmlnYXRvci5jb25zdHJ1Y3Rvci5pc0lubmVyIHNob3VsZCBiZSB0cnVlLiBXYXMg
ZmFsc2UuCitQQVNTIGlubmVyLm5hdmlnYXRvci5pc0lubmVyIGlzIHRydWUKK1BBU1MgaW5uZXIu
bmF2aWdhdG9yLmNvbnN0cnVjdG9yLmlzSW5uZXIgaXMgdHJ1ZQogRkFJTCBpbm5lci5vZmZzY3Jl
ZW5CdWZmZXJpbmcuaXNJbm5lciBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgogRkFJTCBpbm5l
ci5vZmZzY3JlZW5CdWZmZXJpbmcuY29uc3RydWN0b3IuaXNJbm5lciBzaG91bGQgYmUgdHJ1ZS4g
V2FzIGZhbHNlLgogRkFJTCBpbm5lci5vcGVuLmlzSW5uZXIgc2hvdWxkIGJlIHRydWUuIFdhcyBm
YWxzZS4KQEAgLTQ0NSw4ICs0NDUsOCBAQCBGQUlMIGlubmVyLnBhZ2VYT2Zmc2V0LmlzSW5uZXIg
c2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KIEZBSUwgaW5uZXIucGFnZVhPZmZzZXQuY29uc3Ry
dWN0b3IuaXNJbm5lciBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgogRkFJTCBpbm5lci5wYWdl
WU9mZnNldC5pc0lubmVyIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCiBGQUlMIGlubmVyLnBh
Z2VZT2Zmc2V0LmNvbnN0cnVjdG9yLmlzSW5uZXIgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4K
LUZBSUwgaW5uZXIucGVyc29uYWxiYXIuaXNJbm5lciBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNl
LgotRkFJTCBpbm5lci5wZXJzb25hbGJhci5jb25zdHJ1Y3Rvci5pc0lubmVyIHNob3VsZCBiZSB0
cnVlLiBXYXMgZmFsc2UuCitQQVNTIGlubmVyLnBlcnNvbmFsYmFyLmlzSW5uZXIgaXMgdHJ1ZQor
UEFTUyBpbm5lci5wZXJzb25hbGJhci5jb25zdHJ1Y3Rvci5pc0lubmVyIGlzIHRydWUKIEZBSUwg
aW5uZXIucG9zdE1lc3NhZ2UuaXNJbm5lciBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgogRkFJ
TCBpbm5lci5wb3N0TWVzc2FnZS5jb25zdHJ1Y3Rvci5pc0lubmVyIHNob3VsZCBiZSB0cnVlLiBX
YXMgZmFsc2UuCiBGQUlMIGlubmVyLnByaW50LmlzSW5uZXIgc2hvdWxkIGJlIHRydWUuIFdhcyBm
YWxzZS4KQEAgLTQ2MSw4ICs0NjEsOCBAQCBGQUlMIGlubmVyLnJlc2l6ZUJ5LmlzSW5uZXIgc2hv
dWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KIEZBSUwgaW5uZXIucmVzaXplQnkuY29uc3RydWN0b3Iu
aXNJbm5lciBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgogRkFJTCBpbm5lci5yZXNpemVUby5p
c0lubmVyIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCiBGQUlMIGlubmVyLnJlc2l6ZVRvLmNv
bnN0cnVjdG9yLmlzSW5uZXIgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KLUZBSUwgaW5uZXIu
c2NyZWVuLmlzSW5uZXIgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KLUZBSUwgaW5uZXIuc2Ny
ZWVuLmNvbnN0cnVjdG9yLmlzSW5uZXIgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KK1BBU1Mg
aW5uZXIuc2NyZWVuLmlzSW5uZXIgaXMgdHJ1ZQorUEFTUyBpbm5lci5zY3JlZW4uY29uc3RydWN0
b3IuaXNJbm5lciBpcyB0cnVlCiBGQUlMIGlubmVyLnNjcmVlbkxlZnQuaXNJbm5lciBzaG91bGQg
YmUgdHJ1ZS4gV2FzIGZhbHNlLgogRkFJTCBpbm5lci5zY3JlZW5MZWZ0LmNvbnN0cnVjdG9yLmlz
SW5uZXIgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KIEZBSUwgaW5uZXIuc2NyZWVuVG9wLmlz
SW5uZXIgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KQEAgLTQ4MSwyNCArNDgxLDI0IEBAIEZB
SUwgaW5uZXIuc2Nyb2xsWC5pc0lubmVyIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCiBGQUlM
IGlubmVyLnNjcm9sbFguY29uc3RydWN0b3IuaXNJbm5lciBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZh
bHNlLgogRkFJTCBpbm5lci5zY3JvbGxZLmlzSW5uZXIgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxz
ZS4KIEZBSUwgaW5uZXIuc2Nyb2xsWS5jb25zdHJ1Y3Rvci5pc0lubmVyIHNob3VsZCBiZSB0cnVl
LiBXYXMgZmFsc2UuCi1GQUlMIGlubmVyLnNjcm9sbGJhcnMuaXNJbm5lciBzaG91bGQgYmUgdHJ1
ZS4gV2FzIGZhbHNlLgotRkFJTCBpbm5lci5zY3JvbGxiYXJzLmNvbnN0cnVjdG9yLmlzSW5uZXIg
c2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KK1BBU1MgaW5uZXIuc2Nyb2xsYmFycy5pc0lubmVy
IGlzIHRydWUKK1BBU1MgaW5uZXIuc2Nyb2xsYmFycy5jb25zdHJ1Y3Rvci5pc0lubmVyIGlzIHRy
dWUKIFBBU1MgaW5uZXIuc2VsZi5pc0lubmVyIGlzIHRydWUKIFBBU1MgaW5uZXIuc2VsZi5jb25z
dHJ1Y3Rvci5pc0lubmVyIGlzIHRydWUKLUZBSUwgaW5uZXIuc2Vzc2lvblN0b3JhZ2UuaXNJbm5l
ciBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgotRkFJTCBpbm5lci5zZXNzaW9uU3RvcmFnZS5j
b25zdHJ1Y3Rvci5pc0lubmVyIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCitQQVNTIGlubmVy
LnNlc3Npb25TdG9yYWdlLmlzSW5uZXIgaXMgdHJ1ZQorUEFTUyBpbm5lci5zZXNzaW9uU3RvcmFn
ZS5jb25zdHJ1Y3Rvci5pc0lubmVyIGlzIHRydWUKIEZBSUwgaW5uZXIuc2V0SW50ZXJ2YWwuaXNJ
bm5lciBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgogRkFJTCBpbm5lci5zZXRJbnRlcnZhbC5j
b25zdHJ1Y3Rvci5pc0lubmVyIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCiBGQUlMIGlubmVy
LnNldFRpbWVvdXQuaXNJbm5lciBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgogRkFJTCBpbm5l
ci5zZXRUaW1lb3V0LmNvbnN0cnVjdG9yLmlzSW5uZXIgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxz
ZS4KIEZBSUwgaW5uZXIuc3RhdHVzLmlzSW5uZXIgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4K
IEZBSUwgaW5uZXIuc3RhdHVzLmNvbnN0cnVjdG9yLmlzSW5uZXIgc2hvdWxkIGJlIHRydWUuIFdh
cyBmYWxzZS4KLUZBSUwgaW5uZXIuc3RhdHVzYmFyLmlzSW5uZXIgc2hvdWxkIGJlIHRydWUuIFdh
cyBmYWxzZS4KLUZBSUwgaW5uZXIuc3RhdHVzYmFyLmNvbnN0cnVjdG9yLmlzSW5uZXIgc2hvdWxk
IGJlIHRydWUuIFdhcyBmYWxzZS4KK1BBU1MgaW5uZXIuc3RhdHVzYmFyLmlzSW5uZXIgaXMgdHJ1
ZQorUEFTUyBpbm5lci5zdGF0dXNiYXIuY29uc3RydWN0b3IuaXNJbm5lciBpcyB0cnVlCiBGQUlM
IGlubmVyLnN0b3AuaXNJbm5lciBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgogRkFJTCBpbm5l
ci5zdG9wLmNvbnN0cnVjdG9yLmlzSW5uZXIgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KLUZB
SUwgaW5uZXIudG9vbGJhci5pc0lubmVyIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCi1GQUlM
IGlubmVyLnRvb2xiYXIuY29uc3RydWN0b3IuaXNJbm5lciBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZh
bHNlLgorUEFTUyBpbm5lci50b29sYmFyLmlzSW5uZXIgaXMgdHJ1ZQorUEFTUyBpbm5lci50b29s
YmFyLmNvbnN0cnVjdG9yLmlzSW5uZXIgaXMgdHJ1ZQogRkFJTCBpbm5lci53ZWJraXRDb252ZXJ0
UG9pbnRGcm9tTm9kZVRvUGFnZS5pc0lubmVyIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCiBG
QUlMIGlubmVyLndlYmtpdENvbnZlcnRQb2ludEZyb21Ob2RlVG9QYWdlLmNvbnN0cnVjdG9yLmlz
SW5uZXIgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KIEZBSUwgaW5uZXIud2Via2l0Q29udmVy
dFBvaW50RnJvbVBhZ2VUb05vZGUuaXNJbm5lciBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3
N2JmYzA2Li42NjViZmJhIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwMCBAQAorMjAwOS0wNy0yNCAgRXJpYyBTZWlkZWwg
IDxlcmljQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVXBkYXRlIENvZGVHZW5lcmF0b3JKUy5wbSB0byBzdXBwb3J0IHBhc3Npbmcg
SlNET01HbG9iYWxPYmplY3QqIHRvIHRvSlMgY2FsbHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI3NjQzCisKKyAgICAgICAgVGhpcyBpcyBhbiBhdHRl
bXB0IHRvIG1ha2UgdGhpcyBjaGFuZ2UgYXMgc21hbGwgYXMgcG9zc2libGUuCisgICAgICAgIEkg
c3RhcnRlZCBieSBpbmNsdWRpbmcgYWxsIGNoYW5nZXMgdG8gQ29kZUdlbmVyYXRvckpTLnBtIGZy
b20gYnVnIDI3NjM0LAorICAgICAgICBhbmQgdGhlbiBtYWRlIHRoZSBtaW5pbWFsIGFtb3VudCBv
ZiBvdGhlciBjaGFuZ2VzIG5lZWRlZCB0byBzdXBwb3J0IHRoYXQgY2hhbmdlLgorCisgICAgICAg
IE1vc3QgdG9KUyBpbXBsZW1lbnRhdGlvbnMgaWdub3JlIHRoZWlyIHBhc3NlZCBKU0RPTUdsb2Jh
bE9iamVjdC4KKyAgICAgICAgVGhlcmUgYXJlIHN0dWIgMi1hcmd1bWVudCB0b0pTLCB0b0pTTmV3
bHlDcmVhdGVkIGltcGxlbWVudGF0aW9ucyB0byBoZWxwIGNvbXBpbGluZy4KKyAgICAgICAgQWxs
IHBsYWNlcyB3aGVyZSBpdCBpcyBub3QgY2xlYXIgd2hhdCB3ZSBzaG91bGQgcGFzcyBhcyB0aGUg
Z2xvYmFsIG9iamVjdAorICAgICAgICAob3Igd2hlcmUgdGhlIGdsb2JhbCBvYmplY3QgaXMgc2lt
cGx5IG5vdCBhdmFpbGFibGUsIGxpa2UgZm9yIHNvbWUgU1ZHIGJpbmRpbmdzKQorICAgICAgICB3
ZSBwYXNzIGRlcHJlY2F0ZWRHbG9iYWxPYmplY3RGb3JQcm90b3R5cGUgaW5zdGVhZC4KKworICAg
ICAgICAqIGJpbmRpbmdzL2pzL0pTQ0RBVEFTZWN0aW9uQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OnRvSlNOZXdseUNyZWF0ZWQpOiBhZGQgaWdub3JlZCBKU0RPTUdsb2JhbE9iamVjdCoK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0NTU1J1bGVDdXN0b20uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6dG9KUyk6IGFkZCBpZ25vcmVkIEpTRE9NR2xvYmFsT2JqZWN0KgorICAgICAgICAqIGJp
bmRpbmdzL2pzL0pTQ1NTVmFsdWVDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9KUyk6
IGFkZCBpZ25vcmVkIEpTRE9NR2xvYmFsT2JqZWN0KgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pT
RE9NQmluZGluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzZXRET01FeGNlcHRpb24pOiBwYXNz
IHRoZSB3cm9uZyBnbG9iYWxPYmplY3QgZm9yIG5vdworICAgICAgICAqIGJpbmRpbmdzL2pzL0pT
RE9NQmluZGluZy5oOgorICAgICAgICAgICAgUGFzcyB0aGUgd3JvbmcgZ2xvYmFsIG9iamVjdCB0
byB0aGUgQ1JFQVRFXyBtYWNyb3MgZm9yIG5vdy4KKyAgICAgICAgICAgIEluIHRoZSBuZXh0IGNo
YW5nZSB3ZSdsbCBjb21lIGJhY2sgYW5kIHBhc3MgdGhlIGNvcnJlY3Qgb25lLgorICAgICAgICAg
ICAgVGhhdCB3aWxsIHJlcXVpcmUgY2hhbmdlcyB0byBtYWtlX25hbWVzLnBsLgorICAgICAgICAo
V2ViQ29yZTo6RE9NT2JqZWN0V2l0aEdsb2JhbFBvaW50ZXI6OnNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQpOgorICAgICAgICAoV2ViQ29yZTo6RE9NT2JqZWN0V2l0aEdsb2JhbFBvaW50ZXI6OkRPTU9i
amVjdFdpdGhHbG9iYWxQb2ludGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTU9iamVjdFdpdGhH
bG9iYWxQb2ludGVyOjp+RE9NT2JqZWN0V2l0aEdsb2JhbFBvaW50ZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6Y3JlYXRlRE9NT2JqZWN0V3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpnZXRET01P
YmplY3RXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZURPTU5vZGVXcmFwcGVyKToK
KyAgICAgICAgKFdlYkNvcmU6OmdldERPTU5vZGVXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6
OnRvSlMpOiBhZGRlZCB0byBjb252ZXJ0IDIgYXJnIGNhbGxzIHRvIDMgYXJnIGNhbGxzIHRvIGxp
bWl0IHRoZSBzY29wZSBvZiB0aGlzIGNoYW5nZS4KKyAgICAgICAgKFdlYkNvcmU6OnRvSlNOZXds
eUNyZWF0ZWQpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjp0b0pTKTogRE9NV2luZG93IGFsd2F5cyB1c2VzIGl0cyBvd24gcHJv
dG90eXBlIGNoYWluLgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oOgor
ICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRG9jdW1lbnRDdXN0b20uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6dG9KUyk6IGFkZCBpZ25vcmVkIEpTRE9NR2xvYmFsT2JqZWN0KgorICAgICAgICAqIGJp
bmRpbmdzL2pzL0pTRWxlbWVudEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b0pTTmV3
bHlDcmVhdGVkKTogYWRkIGlnbm9yZWQgSlNET01HbG9iYWxPYmplY3QqCisgICAgICAgICogYmlu
ZGluZ3MvanMvSlNFdmVudEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b0pTKTogYWRk
IGlnbm9yZWQgSlNET01HbG9iYWxPYmplY3QqCisgICAgICAgICogYmluZGluZ3MvanMvSlNFdmVu
dFRhcmdldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b0pTKTogYWRkIGlnbm9yZWQgSlNET01H
bG9iYWxPYmplY3QqCisgICAgICAgICogYmluZGluZ3MvanMvSlNFdmVudFRhcmdldC5oOgorICAg
ICAgICAqIGJpbmRpbmdzL2pzL0pTSFRNTENvbGxlY3Rpb25DdXN0b20uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6dG9KUyk6IGFkZCBpZ25vcmVkIEpTRE9NR2xvYmFsT2JqZWN0KgorICAgICAgICAq
IGJpbmRpbmdzL2pzL0pTSW1hZ2VEYXRhQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRv
SlMpOiBhZGQgaWdub3JlZCBKU0RPTUdsb2JhbE9iamVjdCoKKyAgICAgICAgKiBiaW5kaW5ncy9q
cy9KU05vZGVDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlV3JhcHBlcik6IHBh
c3MgZ2xvYmFsT2JqZWN0IHRvIHRvSlMoRG9jdW1lbnQqKSB0byBhdm9pZCByZWN1cnNpb24KKyAg
ICAgICAgKFdlYkNvcmU6OnRvSlNOZXdseUNyZWF0ZWQpOiBhZGQgaWdub3JlZCBKU0RPTUdsb2Jh
bE9iamVjdCoKKyAgICAgICAgKFdlYkNvcmU6OnRvSlMpOiBhZGQgaWdub3JlZCBKU0RPTUdsb2Jh
bE9iamVjdCoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1NWR0VsZW1lbnRJbnN0YW5jZUN1c3Rv
bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b0pTKTogcGFzcyBnbG9iYWxPYmplY3QgYWxvbmcK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1NWR01hdHJpeEN1c3RvbS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpKU1NWR01hdHJpeDo6aW52ZXJzZSk6IHBhc3Mgd3JvbmcgZ2xvYmFsT2JqZWN0IGZv
ciBub3cuCisgICAgICAgIChXZWJDb3JlOjpKU1NWR01hdHJpeDo6cm90YXRlRnJvbVZlY3Rvcik6
IHBhc3Mgd3JvbmcgZ2xvYmFsT2JqZWN0IGZvciBub3cuCisgICAgICAgICogYmluZGluZ3MvanMv
SlNTVkdQYXRoU2VnQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvSlMpOgorICAgICAg
ICAqIGJpbmRpbmdzL2pzL0pTU1ZHUGF0aFNlZ0xpc3RDdXN0b20uY3BwOgorICAgICAgICAgICAg
QWxsIG9mIHRoZXNlIG1ldGhvZHMgbmVlZCBhIGdsb2JhbE9iamVjdCwgYnV0IG1vc3QgU1ZHIGJp
bmRpbmcgZG9uJ3QgaGF2ZQorICAgICAgICAgICAgc3BhY2UgZm9yIG9uZSwgc28gd2UganVzdCBw
YXNzIHRoZSBsZXhpY2FsR2xvYmFsT2JqZWN0IGZvciBub3cuCisgICAgICAgIChXZWJDb3JlOjpK
U1NWR1BhdGhTZWdMaXN0Ojppbml0aWFsaXplKToKKyAgICAgICAgKFdlYkNvcmU6OkpTU1ZHUGF0
aFNlZ0xpc3Q6OmdldEl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6SlNTVkdQYXRoU2VnTGlzdDo6
aW5zZXJ0SXRlbUJlZm9yZSk6CisgICAgICAgIChXZWJDb3JlOjpKU1NWR1BhdGhTZWdMaXN0Ojpy
ZXBsYWNlSXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpKU1NWR1BhdGhTZWdMaXN0OjpyZW1vdmVJ
dGVtKToKKyAgICAgICAgKFdlYkNvcmU6OkpTU1ZHUGF0aFNlZ0xpc3Q6OmFwcGVuZEl0ZW0pOgor
ICAgICAgICAqIGJpbmRpbmdzL2pzL0pTU1ZHUG9pbnRMaXN0Q3VzdG9tLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OmZpbmlzaEdldHRlcik6IHBhc3Mgd3JvbmcgZ2xvYmFsT2JqZWN0IGZvciBub3cu
CisgICAgICAgIChXZWJDb3JlOjpmaW5pc2hTZXR0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6Zmlu
aXNoU2V0dGVyUmVhZE9ubHlSZXN1bHQpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTU1ZHVHJh
bnNmb3JtTGlzdEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpmaW5pc2hHZXR0ZXIpOiBw
YXNzIHdyb25nIGdsb2JhbE9iamVjdCBmb3Igbm93LgorICAgICAgICAoV2ViQ29yZTo6ZmluaXNo
U2V0dGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmZpbmlzaFNldHRlclJlYWRPbmx5UmVzdWx0KToK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1N0eWxlU2hlZXRDdXN0b20uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6dG9KUyk6IGFkZCBpZ25vcmVkIEpTRE9NR2xvYmFsT2JqZWN0KgorICAgICAgICAq
IGJpbmRpbmdzL2pzL0pTVGV4dEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b0pTTmV3
bHlDcmVhdGVkKTogYWRkIGlnbm9yZWQgSlNET01HbG9iYWxPYmplY3QqCisgICAgICAgICogYmlu
ZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0QmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b0pT
KTogV29ya2VyQ29udGV4dCBhbHdheXMgdXNlcyBpdHMgb3duIHByb3RvdHlwZSBjaGFpbiBzaW5j
ZSBpdCdzIGEgR2xvYmFsT2JqZWN0IHN1YmNsYXNzLgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pT
V29ya2VyQ29udGV4dEJhc2UuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5l
cmF0b3JKUy5wbToKKyAgICAgICAgICAgIEFsbCBnZW5lcmF0ZWQgdG9KUyBjYWxscyBub3cgcGFz
cyBhIGdsb2JhbE9iamVjdC4KKyAgICAgICAgICAgIEFsbCBnZW5lcmF0ZWQgdG9KUyBpbXBsZW1l
bnRhdGlvbnMgbm93IGV4cGVjdCBhIGdsb2JhbE9iamVjdC4KKyAgICAgICAgICAgIFNpbXBsaWZp
ZWQgYWxsIHRoZSBzbG90IGNhc3RzIGJ5IHVzaW5nIGEgImNhc3RlZFRoaXMiIGxvY2FsLgorICAg
ICAgICAgICAgU1ZHIGJpbmRpbmdzIHdoaWNoIGRvbid0IGhhdmUgYSBnbG9iYWxPYmplY3QoKSBh
Y2Nlc3NvciBwYXNzIHRoZSBkZXByZWNhdGVkIGxleGljYWxHbG9iYWxPYmplY3QgaW5zdGVhZC4K
KyAgICAgICAgICAgIFNpbXBsaWZpZWQgcHJpbnRpbmcgb2YgY29uc3RydWN0b3Igb2JqZWN0cyB1
c2luZyBhICRjb25zdHJ1Y3RvckNsYXNzTmFtZSB2YXJpYWJsZS4KKyAgICAgICAgICAgIEFsbCBn
ZW5lcmF0ZWQgY29uc3RydWN0b3IgZnVuY3Rpb25zIGZvbGxvdyB0aGUgY29uc3RydWN0JGNsYXNz
TmFtZSBmb3JtIHRvIG1hdGNoIHRoZSBjdXN0b20gY29uc3RydWN0b3JzLgorCiAyMDA5LTA3LTI0
ICBNaWtlIEZlbnRvbiAgPG1pa2UuZmVudG9uQHRvcmNobW9iaWxlLmNvbT4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNDREFUQVNlY3Rpb25DdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NEQVRBU2Vj
dGlvbkN1c3RvbS5jcHAKaW5kZXggNDRhODk1Ny4uNTQ2YmQ0NSAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0NEQVRBU2VjdGlvbkN1c3RvbS5jcHAKKysrIGIvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0NEQVRBU2VjdGlvbkN1c3RvbS5jcHAKQEAgLTMyLDcgKzMyLDcgQEAgdXNpbmcg
bmFtZXNwYWNlIEpTQzsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1KU1ZhbHVlIHRvSlNOZXds
eUNyZWF0ZWQoRXhlY1N0YXRlKiBleGVjLCBDREFUQVNlY3Rpb24qIHNlY3Rpb24pCitKU1ZhbHVl
IHRvSlNOZXdseUNyZWF0ZWQoRXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCosIENE
QVRBU2VjdGlvbiogc2VjdGlvbikKIHsKICAgICBpZiAoIXNlY3Rpb24pCiAgICAgICAgIHJldHVy
biBqc051bGwoKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDU1NSdWxlQ3Vz
dG9tLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDU1NSdWxlQ3VzdG9tLmNwcAppbmRleCAy
YzIwNDMxLi4zNzI5NTkzIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ1NTUnVs
ZUN1c3RvbS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NTU1J1bGVDdXN0b20uY3Bw
CkBAIC00OSw3ICs0OSw3IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAotSlNWYWx1ZSB0b0pTKEV4ZWNTdGF0ZSogZXhlYywgQ1NTUnVsZSogcnVsZSkKK0pT
VmFsdWUgdG9KUyhFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiwgQ1NTUnVsZSog
cnVsZSkKIHsKICAgICBpZiAoIXJ1bGUpCiAgICAgICAgIHJldHVybiBqc051bGwoKTsKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDU1NWYWx1ZUN1c3RvbS5jcHAgYi9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTQ1NTVmFsdWVDdXN0b20uY3BwCmluZGV4IGFkMGNlZTEuLjFkODQyN2Eg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDU1NWYWx1ZUN1c3RvbS5jcHAKKysr
IGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NTU1ZhbHVlQ3VzdG9tLmNwcApAQCAtNDQsNyArNDQs
NyBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUpTVmFs
dWUgdG9KUyhFeGVjU3RhdGUqIGV4ZWMsIENTU1ZhbHVlKiB2YWx1ZSkKK0pTVmFsdWUgdG9KUyhF
eGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiwgQ1NTVmFsdWUqIHZhbHVlKQogewog
ICAgIGlmICghdmFsdWUpCiAgICAgICAgIHJldHVybiBqc051bGwoKTsKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNET01CaW5kaW5nLmNwcAppbmRleCA4MWQ1OWZiLi45MTBkYTEyIDEwMDY0NAotLS0gYS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0RPTUJpbmRpbmcuY3BwCkBAIC00NTUsMzEgKzQ1NSwzNiBAQCB2b2lkIHNldERPTUV4Y2Vw
dGlvbihFeGVjU3RhdGUqIGV4ZWMsIEV4Y2VwdGlvbkNvZGUgZWMpCiAgICAgaWYgKCFlYyB8fCBl
eGVjLT5oYWRFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuOwogCisgICAgLy8gRklYTUU6IEFs
bCBjYWxsZXJzIHRvIHNldERPTUV4Y2VwdGlvbiBuZWVkIHRvIHBhc3MgaW4gdGhlIHJpZ2h0IGds
b2JhbCBvYmplY3QKKyAgICAvLyBmb3Igbm93LCB3ZSdyZSBnb2luZyB0byBhc3N1bWUgdGhlIGxl
eGljYWxHbG9iYWxPYmplY3QuICBXaGljaCBpcyB3cm9uZyBpbiBjYXNlcyBsaWtlIHRoaXM6Cisg
ICAgLy8gZnJhbWVzWzBdLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQobnVsbCwgbnVsbCk7IC8vIHRo
cm93cyBhbiBleGNlcHRpb24gd2hpY2ggc2hvdWxkIGhhdmUgdGhlIHN1YmZyYW1lcyBwcm90b3R5
cGVzLgorICAgIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBkZXByZWNhdGVkR2xv
YmFsT2JqZWN0Rm9yUHJvdG90eXBlKGV4ZWMpOworCiAgICAgRXhjZXB0aW9uQ29kZURlc2NyaXB0
aW9uIGRlc2NyaXB0aW9uOwogICAgIGdldEV4Y2VwdGlvbkNvZGVEZXNjcmlwdGlvbihlYywgZGVz
Y3JpcHRpb24pOwogCiAgICAgSlNWYWx1ZSBlcnJvck9iamVjdDsKICAgICBzd2l0Y2ggKGRlc2Ny
aXB0aW9uLnR5cGUpIHsKICAgICAgICAgY2FzZSBET01FeGNlcHRpb25UeXBlOgotICAgICAgICAg
ICAgZXJyb3JPYmplY3QgPSB0b0pTKGV4ZWMsIERPTUNvcmVFeGNlcHRpb246OmNyZWF0ZShkZXNj
cmlwdGlvbikpOworICAgICAgICAgICAgZXJyb3JPYmplY3QgPSB0b0pTKGV4ZWMsIGdsb2JhbE9i
amVjdCwgRE9NQ29yZUV4Y2VwdGlvbjo6Y3JlYXRlKGRlc2NyaXB0aW9uKSk7CiAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgY2FzZSBSYW5nZUV4Y2VwdGlvblR5cGU6Ci0gICAgICAgICAgICBl
cnJvck9iamVjdCA9IHRvSlMoZXhlYywgUmFuZ2VFeGNlcHRpb246OmNyZWF0ZShkZXNjcmlwdGlv
bikpOworICAgICAgICAgICAgZXJyb3JPYmplY3QgPSB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwg
UmFuZ2VFeGNlcHRpb246OmNyZWF0ZShkZXNjcmlwdGlvbikpOwogICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIGNhc2UgRXZlbnRFeGNlcHRpb25UeXBlOgotICAgICAgICAgICAgZXJyb3JPYmpl
Y3QgPSB0b0pTKGV4ZWMsIEV2ZW50RXhjZXB0aW9uOjpjcmVhdGUoZGVzY3JpcHRpb24pKTsKKyAg
ICAgICAgICAgIGVycm9yT2JqZWN0ID0gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIEV2ZW50RXhj
ZXB0aW9uOjpjcmVhdGUoZGVzY3JpcHRpb24pKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICBjYXNlIFhNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uVHlwZToKLSAgICAgICAgICAgIGVycm9yT2Jq
ZWN0ID0gdG9KUyhleGVjLCBYTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbjo6Y3JlYXRlKGRlc2NyaXB0
aW9uKSk7CisgICAgICAgICAgICBlcnJvck9iamVjdCA9IHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0
LCBYTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbjo6Y3JlYXRlKGRlc2NyaXB0aW9uKSk7CiAgICAgICAg
ICAgICBicmVhazsKICNpZiBFTkFCTEUoU1ZHKQogICAgICAgICBjYXNlIFNWR0V4Y2VwdGlvblR5
cGU6Ci0gICAgICAgICAgICBlcnJvck9iamVjdCA9IHRvSlMoZXhlYywgU1ZHRXhjZXB0aW9uOjpj
cmVhdGUoZGVzY3JpcHRpb24pLmdldCgpLCAwKTsKKyAgICAgICAgICAgIGVycm9yT2JqZWN0ID0g
dG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIFNWR0V4Y2VwdGlvbjo6Y3JlYXRlKGRlc2NyaXB0aW9u
KS5nZXQoKSwgMCk7CiAgICAgICAgICAgICBicmVhazsKICNlbmRpZgogI2lmIEVOQUJMRShYUEFU
SCkKICAgICAgICAgY2FzZSBYUGF0aEV4Y2VwdGlvblR5cGU6Ci0gICAgICAgICAgICBlcnJvck9i
amVjdCA9IHRvSlMoZXhlYywgWFBhdGhFeGNlcHRpb246OmNyZWF0ZShkZXNjcmlwdGlvbikpOwor
ICAgICAgICAgICAgZXJyb3JPYmplY3QgPSB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgWFBhdGhF
eGNlcHRpb246OmNyZWF0ZShkZXNjcmlwdGlvbikpOwogICAgICAgICAgICAgYnJlYWs7CiAjZW5k
aWYKICAgICB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5o
IGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaAppbmRleCBjODYzODM5Li5hNTFl
M2JkIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5oCisrKyBi
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmgKQEAgLTY5LDYgKzY5LDcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdAogICAgICAgICB7CisgICAgICAgICAgICAvLyBGSVhN
RTogU2hvdWxkIG5ldmVyIGJlIDAsIGJ1dCBjYW4gYmUgZHVlIHRvIGJ1ZyAyNzY0MC4KICAgICAg
ICAgICAgIHJldHVybiBtX2dsb2JhbE9iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwog
ICAgICAgICB9CiAKQEAgLTc3LDggKzc4LDEyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAg
ICAgICAgIDogRE9NT2JqZWN0KHN0cnVjdHVyZSkKICAgICAgICAgICAgICwgbV9nbG9iYWxPYmpl
Y3QoZ2xvYmFsT2JqZWN0KQogICAgICAgICB7Ci0gICAgICAgICAgICBBU1NFUlQoZ2xvYmFsT2Jq
ZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOworICAgICAgICAgICAgLy8gRklYTUU6IFRo
aXMgQVNTRVJUIGlzIHZhbGlkLCBidXQgZmlyZXMgaW4gZmFzdC9kb20vZ2MtNi5odG1sIHdoZW4g
dHJ5aW5nIHRvIGNyZWF0ZQorICAgICAgICAgICAgLy8gbmV3IEphdmFTY3JpcHQgb2JqZWN0cyBv
biBkZXRhY2hlZCB3aW5kb3dzIGR1ZSB0byBET01XaW5kb3c6OmRvY3VtZW50KCkKKyAgICAgICAg
ICAgIC8vIG5lZWRpbmcgdG8gcmVhY2ggdGhyb3VnaCB0aGUgZnJhbWUgdG8gZ2V0IHRvIHRoZSBE
b2N1bWVudCouICBTZWUgYnVnIDI3NjQwLgorICAgICAgICAgICAgLy8gQVNTRVJUKGdsb2JhbE9i
amVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKICAgICAgICAgfQorICAgICAgICB2aXJ0
dWFsIH5ET01PYmplY3RXaXRoR2xvYmFsUG9pbnRlcigpIHt9CiAKICAgICAgICAgdm9pZCBtYXJr
KCkKICAgICAgICAgewpAQCAtMTY3LDYzICsxNzIsNjMgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgIHsKICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEpTQzo6SlNPYmplY3QqPihhc09iamVj
dChnZXRET01TdHJ1Y3R1cmU8V3JhcHBlckNsYXNzPihleGVjLCBzdGF0aWNfY2FzdDxKU0RPTUds
b2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdCkpLT5zdG9yZWRQcm90b3R5cGUoKSkpOwogICAgIH0K
LSAgICAjZGVmaW5lIENSRUFURV9ET01fT0JKRUNUX1dSQVBQRVIoZXhlYywgY2xhc3NOYW1lLCBv
YmplY3QpIGNyZWF0ZURPTU9iamVjdFdyYXBwZXI8SlMjI2NsYXNzTmFtZT4oZXhlYywgc3RhdGlj
X2Nhc3Q8Y2xhc3NOYW1lKj4ob2JqZWN0KSkKLSAgICB0ZW1wbGF0ZTxjbGFzcyBXcmFwcGVyQ2xh
c3MsIGNsYXNzIERPTUNsYXNzPiBpbmxpbmUgRE9NT2JqZWN0KiBjcmVhdGVET01PYmplY3RXcmFw
cGVyKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBET01DbGFzcyogb2JqZWN0KQorICAgICNkZWZpbmUg
Q1JFQVRFX0RPTV9PQkpFQ1RfV1JBUFBFUihleGVjLCBjbGFzc05hbWUsIG9iamVjdCkgY3JlYXRl
RE9NT2JqZWN0V3JhcHBlcjxKUyMjY2xhc3NOYW1lPihleGVjLCBkZXByZWNhdGVkR2xvYmFsT2Jq
ZWN0Rm9yUHJvdG90eXBlKGV4ZWMpLCBzdGF0aWNfY2FzdDxjbGFzc05hbWUqPihvYmplY3QpKQor
ICAgIHRlbXBsYXRlPGNsYXNzIFdyYXBwZXJDbGFzcywgY2xhc3MgRE9NQ2xhc3M+IGlubGluZSBE
T01PYmplY3QqIGNyZWF0ZURPTU9iamVjdFdyYXBwZXIoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpT
RE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIERPTUNsYXNzKiBvYmplY3QpCiAgICAgewog
ICAgICAgICBBU1NFUlQob2JqZWN0KTsKICAgICAgICAgQVNTRVJUKCFnZXRDYWNoZWRET01PYmpl
Y3RXcmFwcGVyKGV4ZWMtPmdsb2JhbERhdGEoKSwgb2JqZWN0KSk7CiAgICAgICAgIC8vIEZJWE1F
OiBuZXcgKGV4ZWMpIGNvdWxkIHVzZSBhIGRpZmZlcmVudCBnbG9iYWxEYXRhIHRoYW4gdGhlIGds
b2JhbERhdGEgdGhpcyB3cmFwcGVyIGlzIGNhY2hlZCBvbi4KLSAgICAgICAgV3JhcHBlckNsYXNz
KiB3cmFwcGVyID0gbmV3IChleGVjKSBXcmFwcGVyQ2xhc3MoZGVwcmVjYXRlZEdldERPTVN0cnVj
dHVyZTxXcmFwcGVyQ2xhc3M+KGV4ZWMpLCBkZXByZWNhdGVkR2xvYmFsT2JqZWN0Rm9yUHJvdG90
eXBlKGV4ZWMpLCBvYmplY3QpOworICAgICAgICBXcmFwcGVyQ2xhc3MqIHdyYXBwZXIgPSBuZXcg
KGV4ZWMpIFdyYXBwZXJDbGFzcyhnZXRET01TdHJ1Y3R1cmU8V3JhcHBlckNsYXNzPihleGVjLCBn
bG9iYWxPYmplY3QpLCBnbG9iYWxPYmplY3QsIG9iamVjdCk7CiAgICAgICAgIGNhY2hlRE9NT2Jq
ZWN0V3JhcHBlcihleGVjLT5nbG9iYWxEYXRhKCksIG9iamVjdCwgd3JhcHBlcik7CiAgICAgICAg
IHJldHVybiB3cmFwcGVyOwogICAgIH0KLSAgICB0ZW1wbGF0ZTxjbGFzcyBXcmFwcGVyQ2xhc3Ms
IGNsYXNzIERPTUNsYXNzPiBpbmxpbmUgSlNDOjpKU1ZhbHVlIGdldERPTU9iamVjdFdyYXBwZXIo
SlNDOjpFeGVjU3RhdGUqIGV4ZWMsIERPTUNsYXNzKiBvYmplY3QpCisgICAgdGVtcGxhdGU8Y2xh
c3MgV3JhcHBlckNsYXNzLCBjbGFzcyBET01DbGFzcz4gaW5saW5lIEpTQzo6SlNWYWx1ZSBnZXRE
T01PYmplY3RXcmFwcGVyKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBET01DbGFzcyogb2JqZWN0KQogICAgIHsKICAgICAgICAgaWYgKCFvYmpl
Y3QpCiAgICAgICAgICAgICByZXR1cm4gSlNDOjpqc051bGwoKTsKICAgICAgICAgaWYgKERPTU9i
amVjdCogd3JhcHBlciA9IGdldENhY2hlZERPTU9iamVjdFdyYXBwZXIoZXhlYy0+Z2xvYmFsRGF0
YSgpLCBvYmplY3QpKQogICAgICAgICAgICAgcmV0dXJuIHdyYXBwZXI7Ci0gICAgICAgIHJldHVy
biBjcmVhdGVET01PYmplY3RXcmFwcGVyPFdyYXBwZXJDbGFzcz4oZXhlYywgb2JqZWN0KTsKKyAg
ICAgICAgcmV0dXJuIGNyZWF0ZURPTU9iamVjdFdyYXBwZXI8V3JhcHBlckNsYXNzPihleGVjLCBn
bG9iYWxPYmplY3QsIG9iamVjdCk7CiAgICAgfQogCiAjaWYgRU5BQkxFKFNWRykKLSAgICAjZGVm
aW5lIENSRUFURV9TVkdfT0JKRUNUX1dSQVBQRVIoZXhlYywgY2xhc3NOYW1lLCBvYmplY3QsIGNv
bnRleHQpIGNyZWF0ZURPTU9iamVjdFdyYXBwZXI8SlMjI2NsYXNzTmFtZT4oZXhlYywgc3RhdGlj
X2Nhc3Q8Y2xhc3NOYW1lKj4ob2JqZWN0KSwgY29udGV4dCkKLSAgICB0ZW1wbGF0ZTxjbGFzcyBX
cmFwcGVyQ2xhc3MsIGNsYXNzIERPTUNsYXNzPiBpbmxpbmUgRE9NT2JqZWN0KiBjcmVhdGVET01P
YmplY3RXcmFwcGVyKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBET01DbGFzcyogb2JqZWN0LCBTVkdF
bGVtZW50KiBjb250ZXh0KQorICAgICNkZWZpbmUgQ1JFQVRFX1NWR19PQkpFQ1RfV1JBUFBFUihl
eGVjLCBjbGFzc05hbWUsIG9iamVjdCwgY29udGV4dCkgY3JlYXRlRE9NT2JqZWN0V3JhcHBlcjxK
UyMjY2xhc3NOYW1lPihleGVjLCBkZXByZWNhdGVkR2xvYmFsT2JqZWN0Rm9yUHJvdG90eXBlKGV4
ZWMpLCBzdGF0aWNfY2FzdDxjbGFzc05hbWUqPihvYmplY3QpLCBjb250ZXh0KQorICAgIHRlbXBs
YXRlPGNsYXNzIFdyYXBwZXJDbGFzcywgY2xhc3MgRE9NQ2xhc3M+IGlubGluZSBET01PYmplY3Qq
IGNyZWF0ZURPTU9iamVjdFdyYXBwZXIoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIERPTUNsYXNzKiBvYmplY3QsIFNWR0VsZW1lbnQqIGNvbnRl
eHQpCiAgICAgewogICAgICAgICBBU1NFUlQob2JqZWN0KTsKICAgICAgICAgQVNTRVJUKCFnZXRD
YWNoZWRET01PYmplY3RXcmFwcGVyKGV4ZWMtPmdsb2JhbERhdGEoKSwgb2JqZWN0KSk7Ci0gICAg
ICAgIFdyYXBwZXJDbGFzcyogd3JhcHBlciA9IG5ldyAoZXhlYykgV3JhcHBlckNsYXNzKGRlcHJl
Y2F0ZWRHZXRET01TdHJ1Y3R1cmU8V3JhcHBlckNsYXNzPihleGVjKSwgZGVwcmVjYXRlZEdsb2Jh
bE9iamVjdEZvclByb3RvdHlwZShleGVjKSwgb2JqZWN0LCBjb250ZXh0KTsKKyAgICAgICAgV3Jh
cHBlckNsYXNzKiB3cmFwcGVyID0gbmV3IChleGVjKSBXcmFwcGVyQ2xhc3MoZ2V0RE9NU3RydWN0
dXJlPFdyYXBwZXJDbGFzcz4oZXhlYywgZ2xvYmFsT2JqZWN0KSwgZ2xvYmFsT2JqZWN0LCBvYmpl
Y3QsIGNvbnRleHQpOwogICAgICAgICBjYWNoZURPTU9iamVjdFdyYXBwZXIoZXhlYy0+Z2xvYmFs
RGF0YSgpLCBvYmplY3QsIHdyYXBwZXIpOwogICAgICAgICByZXR1cm4gd3JhcHBlcjsKICAgICB9
Ci0gICAgdGVtcGxhdGU8Y2xhc3MgV3JhcHBlckNsYXNzLCBjbGFzcyBET01DbGFzcz4gaW5saW5l
IEpTQzo6SlNWYWx1ZSBnZXRET01PYmplY3RXcmFwcGVyKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBE
T01DbGFzcyogb2JqZWN0LCBTVkdFbGVtZW50KiBjb250ZXh0KQorICAgIHRlbXBsYXRlPGNsYXNz
IFdyYXBwZXJDbGFzcywgY2xhc3MgRE9NQ2xhc3M+IGlubGluZSBKU0M6OkpTVmFsdWUgZ2V0RE9N
T2JqZWN0V3JhcHBlcihKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgRE9NQ2xhc3MqIG9iamVjdCwgU1ZHRWxlbWVudCogY29udGV4dCkKICAgICB7
CiAgICAgICAgIGlmICghb2JqZWN0KQogICAgICAgICAgICAgcmV0dXJuIEpTQzo6anNOdWxsKCk7
CiAgICAgICAgIGlmIChET01PYmplY3QqIHdyYXBwZXIgPSBnZXRDYWNoZWRET01PYmplY3RXcmFw
cGVyKGV4ZWMtPmdsb2JhbERhdGEoKSwgb2JqZWN0KSkKICAgICAgICAgICAgIHJldHVybiB3cmFw
cGVyOwotICAgICAgICByZXR1cm4gY3JlYXRlRE9NT2JqZWN0V3JhcHBlcjxXcmFwcGVyQ2xhc3M+
KGV4ZWMsIG9iamVjdCwgY29udGV4dCk7CisgICAgICAgIHJldHVybiBjcmVhdGVET01PYmplY3RX
cmFwcGVyPFdyYXBwZXJDbGFzcz4oZXhlYywgZ2xvYmFsT2JqZWN0LCBvYmplY3QsIGNvbnRleHQp
OwogICAgIH0KICNlbmRpZgogCi0gICAgI2RlZmluZSBDUkVBVEVfRE9NX05PREVfV1JBUFBFUihl
eGVjLCBjbGFzc05hbWUsIG9iamVjdCkgY3JlYXRlRE9NTm9kZVdyYXBwZXI8SlMjI2NsYXNzTmFt
ZT4oZXhlYywgc3RhdGljX2Nhc3Q8Y2xhc3NOYW1lKj4ob2JqZWN0KSkKLSAgICB0ZW1wbGF0ZTxj
bGFzcyBXcmFwcGVyQ2xhc3MsIGNsYXNzIERPTUNsYXNzPiBpbmxpbmUgSlNOb2RlKiBjcmVhdGVE
T01Ob2RlV3JhcHBlcihKU0M6OkV4ZWNTdGF0ZSogZXhlYywgRE9NQ2xhc3MqIG5vZGUpCisgICAg
I2RlZmluZSBDUkVBVEVfRE9NX05PREVfV1JBUFBFUihleGVjLCBjbGFzc05hbWUsIG9iamVjdCkg
Y3JlYXRlRE9NTm9kZVdyYXBwZXI8SlMjI2NsYXNzTmFtZT4oZXhlYywgZGVwcmVjYXRlZEdsb2Jh
bE9iamVjdEZvclByb3RvdHlwZShleGVjKSwgc3RhdGljX2Nhc3Q8Y2xhc3NOYW1lKj4ob2JqZWN0
KSkKKyAgICB0ZW1wbGF0ZTxjbGFzcyBXcmFwcGVyQ2xhc3MsIGNsYXNzIERPTUNsYXNzPiBpbmxp
bmUgSlNOb2RlKiBjcmVhdGVET01Ob2RlV3JhcHBlcihKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNE
T01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRE9NQ2xhc3MqIG5vZGUpCiAgICAgewogICAg
ICAgICBBU1NFUlQobm9kZSk7CiAgICAgICAgIEFTU0VSVCghZ2V0Q2FjaGVkRE9NTm9kZVdyYXBw
ZXIobm9kZS0+ZG9jdW1lbnQoKSwgbm9kZSkpOwotICAgICAgICBXcmFwcGVyQ2xhc3MqIHdyYXBw
ZXIgPSBuZXcgKGV4ZWMpIFdyYXBwZXJDbGFzcyhkZXByZWNhdGVkR2V0RE9NU3RydWN0dXJlPFdy
YXBwZXJDbGFzcz4oZXhlYyksIGRlcHJlY2F0ZWRHbG9iYWxPYmplY3RGb3JQcm90b3R5cGUoZXhl
YyksIG5vZGUpOworICAgICAgICBXcmFwcGVyQ2xhc3MqIHdyYXBwZXIgPSBuZXcgKGV4ZWMpIFdy
YXBwZXJDbGFzcyhnZXRET01TdHJ1Y3R1cmU8V3JhcHBlckNsYXNzPihleGVjLCBnbG9iYWxPYmpl
Y3QpLCBnbG9iYWxPYmplY3QsIG5vZGUpOwogICAgICAgICAvLyBGSVhNRTogVGhlIGVudGlyZSBm
dW5jdGlvbiBjYW4gYmUgcmVtb3ZlZCwgb25jZSB3ZSBmaXggY2FjaGluZy4KICAgICAgICAgLy8g
VGhpcyBmdW5jdGlvbiBpcyBhIG9uZS1vZmYgaGFjayB0byBtYWtlIE5vZGVzIGNhY2hlIGluIHRo
ZSByaWdodCBnbG9iYWwgb2JqZWN0LgogICAgICAgICBjYWNoZURPTU5vZGVXcmFwcGVyKG5vZGUt
PmRvY3VtZW50KCksIG5vZGUsIHdyYXBwZXIpOwogICAgICAgICByZXR1cm4gd3JhcHBlcjsKICAg
ICB9Ci0gICAgdGVtcGxhdGU8Y2xhc3MgV3JhcHBlckNsYXNzLCBjbGFzcyBET01DbGFzcz4gaW5s
aW5lIEpTQzo6SlNWYWx1ZSBnZXRET01Ob2RlV3JhcHBlcihKU0M6OkV4ZWNTdGF0ZSogZXhlYywg
RE9NQ2xhc3MqIG5vZGUpCisgICAgdGVtcGxhdGU8Y2xhc3MgV3JhcHBlckNsYXNzLCBjbGFzcyBE
T01DbGFzcz4gaW5saW5lIEpTQzo6SlNWYWx1ZSBnZXRET01Ob2RlV3JhcHBlcihKU0M6OkV4ZWNT
dGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRE9NQ2xhc3MqIG5v
ZGUpCiAgICAgewogICAgICAgICBpZiAoIW5vZGUpCiAgICAgICAgICAgICByZXR1cm4gSlNDOjpq
c051bGwoKTsKICAgICAgICAgaWYgKEpTTm9kZSogd3JhcHBlciA9IGdldENhY2hlZERPTU5vZGVX
cmFwcGVyKG5vZGUtPmRvY3VtZW50KCksIG5vZGUpKQogICAgICAgICAgICAgcmV0dXJuIHdyYXBw
ZXI7Ci0gICAgICAgIHJldHVybiBjcmVhdGVET01Ob2RlV3JhcHBlcjxXcmFwcGVyQ2xhc3M+KGV4
ZWMsIG5vZGUpOworICAgICAgICByZXR1cm4gY3JlYXRlRE9NTm9kZVdyYXBwZXI8V3JhcHBlckNs
YXNzPihleGVjLCBnbG9iYWxPYmplY3QsIG5vZGUpOwogICAgIH0KIAogICAgIGNvbnN0IEpTQzo6
SGFzaFRhYmxlKiBnZXRIYXNoVGFibGVGb3JHbG9iYWxEYXRhKEpTQzo6SlNHbG9iYWxEYXRhJiwg
Y29uc3QgSlNDOjpIYXNoVGFibGUqIHN0YXRpY1RhYmxlKTsKQEAgLTI1MCw3ICsyNTUsMjggQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgIEpTQzo6VVN0cmluZyB2YWx1ZVRvU3RyaW5nV2l0aE51
bGxDaGVjayhKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSk7IC8vIG51bGwgaWYgdGhlIHZh
bHVlIGlzIG51bGwKICAgICBKU0M6OlVTdHJpbmcgdmFsdWVUb1N0cmluZ1dpdGhVbmRlZmluZWRP
ck51bGxDaGVjayhKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSk7IC8vIG51bGwgaWYgdGhl
IHZhbHVlIGlzIG51bGwgb3IgdW5kZWZpbmVkCiAKLSAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4g
aW5saW5lIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBQYXNzUmVmUHRy
PFQ+IHB0cikgeyByZXR1cm4gdG9KUyhleGVjLCBwdHIuZ2V0KCkpOyB9CisgICAgLy8gRklYTUU6
IFRoZXNlIGFyZSBhIHN0b3AtZ2FwIHVudGlsIGFsbCB0b0pTIGNhbGxzIGNhbiBiZSBjb252ZXJ0
ZWQgdG8gcGFzcyBhIGdsb2JhbE9iamVjdAorICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgorICAg
IGlubGluZSBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSogZXhlYywgVCogcHRyKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZGVwcmVjYXRlZEdsb2JhbE9iamVjdEZv
clByb3RvdHlwZShleGVjKSwgcHRyKTsKKyAgICB9CisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+
CisgICAgaW5saW5lIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBQYXNz
UmVmUHRyPFQ+IHB0cikKKyAgICB7CisgICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGRlcHJlY2F0
ZWRHbG9iYWxPYmplY3RGb3JQcm90b3R5cGUoZXhlYyksIHB0ci5nZXQoKSk7CisgICAgfQorICAg
IHRlbXBsYXRlIDx0eXBlbmFtZSBUPgorICAgIGlubGluZSBKU0M6OkpTVmFsdWUgdG9KU05ld2x5
Q3JlYXRlZChKU0M6OkV4ZWNTdGF0ZSogZXhlYywgVCogcHRyKQorICAgIHsKKyAgICAgICAgcmV0
dXJuIHRvSlNOZXdseUNyZWF0ZWQoZXhlYywgZGVwcmVjYXRlZEdsb2JhbE9iamVjdEZvclByb3Rv
dHlwZShleGVjKSwgcHRyKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KKyAg
ICBpbmxpbmUgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFBhc3NSZWZQdHI8VD4gcHRyKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBwdHIuZ2V0KCkpOworICAgIH0KIAog
ICAgIGJvb2wgY2hlY2tOb2RlU2VjdXJpdHkoSlNDOjpFeGVjU3RhdGUqLCBOb2RlKik7CiAKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcCBiL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcAppbmRleCAwZjQxOWJhLi44OWU5YWY4
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAKKysr
IGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwCkBAIC0xNzIsNiArMTcy
LDEzIEBAIEpTR2xvYmFsRGF0YSogSlNET01XaW5kb3dCYXNlOjpjb21tb25KU0dsb2JhbERhdGEo
KQogICAgIHJldHVybiBnbG9iYWxEYXRhOwogfQogCisvLyBKU0RPTUdsb2JhbE9iamVjdCogaXMg
aWdub3JlZCwgYWNjZXNpbmcgYSB3aW5kb3cgaW4gYW55IGNvbnRleHQgd2lsbAorLy8gdXNlIHRo
YXQgRE9NV2luZG93J3MgcHJvdG90eXBlIGNoYWluLgorSlNWYWx1ZSB0b0pTKEV4ZWNTdGF0ZSog
ZXhlYywgSlNET01HbG9iYWxPYmplY3QqLCBET01XaW5kb3cqIGRvbVdpbmRvdykKK3sKKyAgICBy
ZXR1cm4gdG9KUyhleGVjLCBkb21XaW5kb3cpOworfQorCiBKU1ZhbHVlIHRvSlMoRXhlY1N0YXRl
KiwgRE9NV2luZG93KiBkb21XaW5kb3cpCiB7CiAgICAgaWYgKCFkb21XaW5kb3cpCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oIGIvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuaAppbmRleCAxMTMzNDRmLi45Mjc0MmFkIDEwMDY0NAot
LS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oCisrKyBiL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmgKQEAgLTg5LDYgKzg5LDggQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogICAgIH07CiAKICAgICAvLyBSZXR1cm5zIGEgSlNET01XaW5kb3cgb3IganNO
dWxsKCkKKyAgICAvLyB1c2UgdGhhdCBET01XaW5kb3cncyBwcm90b3R5cGUgY2hhaW4uCisgICAg
SlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCosIERP
TVdpbmRvdyopOwogICAgIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgRE9NV2lu
ZG93Kik7CiAKICAgICAvLyBSZXR1cm5zIEpTRE9NV2luZG93IG9yIDAKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNEb2N1bWVudEN1c3RvbS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRG9jdW1lbnRDdXN0b20uY3BwCmluZGV4IDQ0ZWY5N2IuLmY2YTMxOTEgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEb2N1bWVudEN1c3RvbS5jcHAKKysrIGIvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0RvY3VtZW50Q3VzdG9tLmNwcApAQCAtNzksNyArNzksNyBAQCB2b2lk
IEpTRG9jdW1lbnQ6OnNldExvY2F0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSkK
ICAgICBmcmFtZS0+bG9hZGVyKCktPnNjaGVkdWxlTG9jYXRpb25DaGFuZ2Uoc3RyLCBhY3RpdmVG
cmFtZS0+bG9hZGVyKCktPm91dGdvaW5nUmVmZXJyZXIoKSwgIWFjdGl2ZUZyYW1lLT5zY3JpcHQo
KS0+YW55UGFnZUlzUHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCksIGZhbHNlLCB1c2VyR2VzdHVyZSk7
CiB9CiAKLUpTVmFsdWUgdG9KUyhFeGVjU3RhdGUqIGV4ZWMsIERvY3VtZW50KiBkb2N1bWVudCkK
K0pTVmFsdWUgdG9KUyhFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiwgRG9jdW1l
bnQqIGRvY3VtZW50KQogewogICAgIGlmICghZG9jdW1lbnQpCiAgICAgICAgIHJldHVybiBqc051
bGwoKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFbGVtZW50Q3VzdG9tLmNw
cCBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFbGVtZW50Q3VzdG9tLmNwcAppbmRleCBhMDEzNTdi
Li5jNDY1NWRlIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRWxlbWVudEN1c3Rv
bS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0VsZW1lbnRDdXN0b20uY3BwCkBAIC0x
MjgsNyArMTI4LDcgQEAgSlNWYWx1ZSBKU0VsZW1lbnQ6OnNldEF0dHJpYnV0ZU5vZGVOUyhFeGVj
U3RhdGUqIGV4ZWMsIGNvbnN0IEFyZ0xpc3QmIGFyZ3MpCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0K
IAotSlNWYWx1ZSB0b0pTTmV3bHlDcmVhdGVkKEV4ZWNTdGF0ZSogZXhlYywgRWxlbWVudCogZWxl
bWVudCkKK0pTVmFsdWUgdG9KU05ld2x5Q3JlYXRlZChFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xv
YmFsT2JqZWN0KiwgRWxlbWVudCogZWxlbWVudCkKIHsKICAgICBpZiAoIWVsZW1lbnQpCiAgICAg
ICAgIHJldHVybiBqc051bGwoKTsKQEAgLTE0Nyw1ICsxNDcsNSBAQCBKU1ZhbHVlIHRvSlNOZXds
eUNyZWF0ZWQoRXhlY1N0YXRlKiBleGVjLCBFbGVtZW50KiBlbGVtZW50KQogCiAgICAgcmV0dXJu
IHdyYXBwZXI7ICAgIAogfQotICAgIAorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRDdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0V2ZW50Q3VzdG9tLmNwcAppbmRleCAzZmExMjU5Li5mYjhkY2M5IDEwMDY0NAot
LS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRDdXN0b20uY3BwCisrKyBiL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNFdmVudEN1c3RvbS5jcHAKQEAgLTc5LDcgKzc5LDcgQEAgSlNWYWx1ZSBK
U0V2ZW50OjpjbGlwYm9hcmREYXRhKEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKICAgICByZXR1cm4g
aW1wbCgpLT5pc0NsaXBib2FyZEV2ZW50KCkgPyB0b0pTKGV4ZWMsIGltcGwoKS0+Y2xpcGJvYXJk
RGF0YSgpKSA6IGpzVW5kZWZpbmVkKCk7CiB9CiAKLUpTVmFsdWUgdG9KUyhFeGVjU3RhdGUqIGV4
ZWMsIEV2ZW50KiBldmVudCkKK0pTVmFsdWUgdG9KUyhFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xv
YmFsT2JqZWN0KiwgRXZlbnQqIGV2ZW50KQogewogICAgIEpTTG9jayBsb2NrKGZhbHNlKTsKIApk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50VGFyZ2V0LmNwcCBiL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNFdmVudFRhcmdldC5jcHAKaW5kZXggM2RhYjZmNi4uNWMxNGIxYyAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50VGFyZ2V0LmNwcAorKysgYi9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRUYXJnZXQuY3BwCkBAIC02NSw3ICs2NSw3IEBAIHVz
aW5nIG5hbWVzcGFjZSBKU0M7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotSlNWYWx1ZSB0b0pT
KEV4ZWNTdGF0ZSogZXhlYywgRXZlbnRUYXJnZXQqIHRhcmdldCkKK0pTVmFsdWUgdG9KUyhFeGVj
U3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiwgRXZlbnRUYXJnZXQqIHRhcmdldCkKIHsK
ICAgICBpZiAoIXRhcmdldCkKICAgICAgICAgcmV0dXJuIGpzTnVsbCgpOwpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50VGFyZ2V0LmggYi9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRXZlbnRUYXJnZXQuaAppbmRleCAwNWRmMDU2Li5kZGQ4MjMyIDEwMDY0NAotLS0gYS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRUYXJnZXQuaAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRXZlbnRUYXJnZXQuaApAQCAtMzUsOCArMzUsOSBAQCBuYW1lc3BhY2UgSlNDIHsKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogICAgIGNsYXNzIEV2ZW50VGFyZ2V0OworICAgIGNsYXNzIEpTRE9N
R2xvYmFsT2JqZWN0OwogCi0gICAgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBF
dmVudFRhcmdldCopOworICAgIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNE
T01HbG9iYWxPYmplY3QqLCBFdmVudFRhcmdldCopOwogICAgIEV2ZW50VGFyZ2V0KiB0b0V2ZW50
VGFyZ2V0KEpTQzo6SlNWYWx1ZSk7CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MQ29sbGVjdGlvbkN1c3RvbS5jcHAgYi9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTSFRNTENvbGxlY3Rpb25DdXN0b20uY3BwCmluZGV4IDAyNzRhY2Yu
LjZjNDFkMjMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MQ29sbGVjdGlv
bkN1c3RvbS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxDb2xsZWN0aW9uQ3Vz
dG9tLmNwcApAQCAtMTI1LDcgKzEyNSw3IEBAIEpTVmFsdWUgSlNIVE1MQ29sbGVjdGlvbjo6bmFt
ZWRJdGVtKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgQXJnTGlzdCYgYXJncykKICAgICByZXR1cm4g
Z2V0TmFtZWRJdGVtcyhleGVjLCB0aGlzLCBJZGVudGlmaWVyKGV4ZWMsIGFyZ3MuYXQoMCkudG9T
dHJpbmcoZXhlYykpKTsKIH0KIAotSlNWYWx1ZSB0b0pTKEV4ZWNTdGF0ZSogZXhlYywgSFRNTENv
bGxlY3Rpb24qIGNvbGxlY3Rpb24pCitKU1ZhbHVlIHRvSlMoRXhlY1N0YXRlKiBleGVjLCBKU0RP
TUdsb2JhbE9iamVjdCosIEhUTUxDb2xsZWN0aW9uKiBjb2xsZWN0aW9uKQogewogICAgIGlmICgh
Y29sbGVjdGlvbikKICAgICAgICAgcmV0dXJuIGpzTnVsbCgpOwpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0ltYWdlRGF0YUN1c3RvbS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTSW1hZ2VEYXRhQ3VzdG9tLmNwcAppbmRleCAzMmZlNThiLi5lZWQyMTRkIDEwMDY0NAotLS0g
YS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW1hZ2VEYXRhQ3VzdG9tLmNwcAorKysgYi9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTSW1hZ2VEYXRhQ3VzdG9tLmNwcApAQCAtMzYsNyArMzYsNyBAQCB1c2lu
ZyBuYW1lc3BhY2UgSlNDOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUpTVmFsdWUgdG9KUyhF
eGVjU3RhdGUqIGV4ZWMsIEltYWdlRGF0YSogaW1hZ2VEYXRhKQorSlNWYWx1ZSB0b0pTKEV4ZWNT
dGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmplY3QqLCBJbWFnZURhdGEqIGltYWdlRGF0YSkKIHsK
ICAgICBpZiAoIWltYWdlRGF0YSkKICAgICAgICAgcmV0dXJuIGpzTnVsbCgpOwpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVDdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU05vZGVDdXN0b20uY3BwCmluZGV4IDY3NjhiMmUuLjA1MTMwYmMgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlQ3VzdG9tLmNwcAorKysgYi9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTTm9kZUN1c3RvbS5jcHAKQEAgLTE5Miw3ICsxOTIsNyBAQCB2b2lkIEpTTm9kZTo6
bWFyaygpCiAgICAgQVNTRVJUKG1hcmtlZCgpKTsKIH0KIAotc3RhdGljIEFMV0FZU19JTkxJTkUg
SlNWYWx1ZSBjcmVhdGVXcmFwcGVyKEV4ZWNTdGF0ZSogZXhlYywgTm9kZSogbm9kZSkKK3N0YXRp
YyBBTFdBWVNfSU5MSU5FIEpTVmFsdWUgY3JlYXRlV3JhcHBlcihFeGVjU3RhdGUqIGV4ZWMsIEpT
RE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIE5vZGUqIG5vZGUpCiB7CiAgICAgQVNTRVJU
KG5vZGUpOwogICAgIEFTU0VSVCghZ2V0Q2FjaGVkRE9NTm9kZVdyYXBwZXIobm9kZS0+ZG9jdW1l
bnQoKSwgbm9kZSkpOwpAQCAtMjI5LDcgKzIyOSw3IEBAIHN0YXRpYyBBTFdBWVNfSU5MSU5FIEpT
VmFsdWUgY3JlYXRlV3JhcHBlcihFeGVjU3RhdGUqIGV4ZWMsIE5vZGUqIG5vZGUpCiAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgY2FzZSBOb2RlOjpET0NVTUVOVF9OT0RFOgogICAgICAgICAg
ICAgLy8gd2UgZG9uJ3Qgd2FudCB0byBjYWNoZSB0aGUgZG9jdW1lbnQgaXRzZWxmIGluIHRoZSBw
ZXItZG9jdW1lbnQgZGljdGlvbmFyeQotICAgICAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgc3Rh
dGljX2Nhc3Q8RG9jdW1lbnQqPihub2RlKSk7CisgICAgICAgICAgICByZXR1cm4gdG9KUyhleGVj
LCBnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PERvY3VtZW50Kj4obm9kZSkpOwogICAgICAgICBj
YXNlIE5vZGU6OkRPQ1VNRU5UX1RZUEVfTk9ERToKICAgICAgICAgICAgIHdyYXBwZXIgPSBDUkVB
VEVfRE9NX05PREVfV1JBUFBFUihleGVjLCBEb2N1bWVudFR5cGUsIG5vZGUpOwogICAgICAgICAg
ICAgYnJlYWs7CkBAIC0yNDksMTUgKzI0OSwxNSBAQCBzdGF0aWMgQUxXQVlTX0lOTElORSBKU1Zh
bHVlIGNyZWF0ZVdyYXBwZXIoRXhlY1N0YXRlKiBleGVjLCBOb2RlKiBub2RlKQogICAgIHJldHVy
biB3cmFwcGVyOyAgICAKIH0KICAgICAKLUpTVmFsdWUgdG9KU05ld2x5Q3JlYXRlZChFeGVjU3Rh
dGUqIGV4ZWMsIE5vZGUqIG5vZGUpCitKU1ZhbHVlIHRvSlNOZXdseUNyZWF0ZWQoRXhlY1N0YXRl
KiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBOb2RlKiBub2RlKQogewog
ICAgIGlmICghbm9kZSkKICAgICAgICAgcmV0dXJuIGpzTnVsbCgpOwogICAgIAotICAgIHJldHVy
biBjcmVhdGVXcmFwcGVyKGV4ZWMsIG5vZGUpOworICAgIHJldHVybiBjcmVhdGVXcmFwcGVyKGV4
ZWMsIGdsb2JhbE9iamVjdCwgbm9kZSk7CiB9CiAgICAgCi1KU1ZhbHVlIHRvSlMoRXhlY1N0YXRl
KiBleGVjLCBOb2RlKiBub2RlKQorSlNWYWx1ZSB0b0pTKEV4ZWNTdGF0ZSogZXhlYywgSlNET01H
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgTm9kZSogbm9kZSkKIHsKICAgICBpZiAoIW5vZGUp
CiAgICAgICAgIHJldHVybiBqc051bGwoKTsKQEAgLTI2Niw3ICsyNjYsNyBAQCBKU1ZhbHVlIHRv
SlMoRXhlY1N0YXRlKiBleGVjLCBOb2RlKiBub2RlKQogICAgIGlmICh3cmFwcGVyKQogICAgICAg
ICByZXR1cm4gd3JhcHBlcjsKIAotICAgIHJldHVybiBjcmVhdGVXcmFwcGVyKGV4ZWMsIG5vZGUp
OworICAgIHJldHVybiBjcmVhdGVXcmFwcGVyKGV4ZWMsIGdsb2JhbE9iamVjdCwgbm9kZSk7CiB9
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNTVkdFbGVtZW50SW5zdGFuY2VDdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U1NWR0VsZW1lbnRJbnN0YW5jZUN1c3RvbS5jcHAKaW5kZXggOTNhYzZhMS4uMDU1MzY4ZSAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1NWR0VsZW1lbnRJbnN0YW5jZUN1c3RvbS5j
cHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1NWR0VsZW1lbnRJbnN0YW5jZUN1c3RvbS5j
cHAKQEAgLTc1LDkgKzc1LDkgQEAgdm9pZCBKU1NWR0VsZW1lbnRJbnN0YW5jZTo6cHVzaEV2ZW50
SGFuZGxlclNjb3BlKEV4ZWNTdGF0ZSosIFNjb3BlQ2hhaW4mKSBjb25zdAogewogfQogCi1KU0M6
OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSogZXhlYywgU1ZHRWxlbWVudEluc3RhbmNlKiBv
YmplY3QpCitKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU1ZHRWxlbWVudEluc3RhbmNlKiBvYmplY3QpCiB7Ci0g
ICAgSlNWYWx1ZSByZXN1bHQgPSBnZXRET01PYmplY3RXcmFwcGVyPEpTU1ZHRWxlbWVudEluc3Rh
bmNlPihleGVjLCBvYmplY3QpOworICAgIEpTVmFsdWUgcmVzdWx0ID0gZ2V0RE9NT2JqZWN0V3Jh
cHBlcjxKU1NWR0VsZW1lbnRJbnN0YW5jZT4oZXhlYywgZ2xvYmFsT2JqZWN0LCBvYmplY3QpOwog
CiAgICAgLy8gRW5zdXJlIHRoYXQgb3VyIGNvcnJlc3BvbmRpbmcgZWxlbWVudCBoYXMgYSBKYXZh
U2NyaXB0IHdyYXBwZXIgdG8ga2VlcCBpdHMgZXZlbnQgaGFuZGxlcnMgYWxpdmUuCiAgICAgaWYg
KG9iamVjdCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNTVkdNYXRyaXhDdXN0
b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1NWR01hdHJpeEN1c3RvbS5jcHAKaW5kZXgg
ZmMxZTI2Ni4uMzUzOTBiMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1NWR01h
dHJpeEN1c3RvbS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1NWR01hdHJpeEN1c3Rv
bS5jcHAKQEAgLTMyLDcgKzMyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogSlNWYWx1ZSBKU1NW
R01hdHJpeDo6aW52ZXJzZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEFyZ0xpc3QmKQogewogICAg
IFRyYW5zZm9ybWF0aW9uTWF0cml4IGltcCgqaW1wbCgpKTsKLSAgICBKU0M6OkpTVmFsdWUgcmVz
dWx0ID0gdG9KUyhleGVjLCBKU1NWR1N0YXRpY1BPRFR5cGVXcmFwcGVyPFRyYW5zZm9ybWF0aW9u
TWF0cml4Pjo6Y3JlYXRlKGltcC5pbnZlcnNlKCkpLmdldCgpLCBtX2NvbnRleHQuZ2V0KCkpOwor
ICAgIEpTQzo6SlNWYWx1ZSByZXN1bHQgPSB0b0pTKGV4ZWMsIGRlcHJlY2F0ZWRHbG9iYWxPYmpl
Y3RGb3JQcm90b3R5cGUoZXhlYyksIEpTU1ZHU3RhdGljUE9EVHlwZVdyYXBwZXI8VHJhbnNmb3Jt
YXRpb25NYXRyaXg+OjpjcmVhdGUoaW1wLmludmVyc2UoKSkuZ2V0KCksIG1fY29udGV4dC5nZXQo
KSk7CiAKICAgICBpZiAoIWltcC5pc0ludmVydGlibGUoKSkKICAgICAgICAgc2V0RE9NRXhjZXB0
aW9uKGV4ZWMsIFNWR0V4Y2VwdGlvbjo6U1ZHX01BVFJJWF9OT1RfSU5WRVJUQUJMRSk7CkBAIC00
Nyw3ICs0Nyw3IEBAIEpTVmFsdWUgSlNTVkdNYXRyaXg6OnJvdGF0ZUZyb21WZWN0b3IoRXhlY1N0
YXRlKiBleGVjLCBjb25zdCBBcmdMaXN0JiBhcmdzKQogICAgIGZsb2F0IHggPSBhcmdzLmF0KDAp
LnRvRmxvYXQoZXhlYyk7CiAgICAgZmxvYXQgeSA9IGFyZ3MuYXQoMSkudG9GbG9hdChleGVjKTsK
IAotICAgIEpTQzo6SlNWYWx1ZSByZXN1bHQgPSB0b0pTKGV4ZWMsIEpTU1ZHU3RhdGljUE9EVHlw
ZVdyYXBwZXI8VHJhbnNmb3JtYXRpb25NYXRyaXg+OjpjcmVhdGUoaW1wLnJvdGF0ZUZyb21WZWN0
b3IoeCwgeSkpLmdldCgpLCBtX2NvbnRleHQuZ2V0KCkpOworICAgIEpTQzo6SlNWYWx1ZSByZXN1
bHQgPSB0b0pTKGV4ZWMsIGRlcHJlY2F0ZWRHbG9iYWxPYmplY3RGb3JQcm90b3R5cGUoZXhlYyks
IEpTU1ZHU3RhdGljUE9EVHlwZVdyYXBwZXI8VHJhbnNmb3JtYXRpb25NYXRyaXg+OjpjcmVhdGUo
aW1wLnJvdGF0ZUZyb21WZWN0b3IoeCwgeSkpLmdldCgpLCBtX2NvbnRleHQuZ2V0KCkpOwogCiAg
ICAgaWYgKHggPT0gMC4wIHx8IHkgPT0gMC4wKQogICAgICAgICBzZXRET01FeGNlcHRpb24oZXhl
YywgU1ZHRXhjZXB0aW9uOjpTVkdfSU5WQUxJRF9WQUxVRV9FUlIpOwpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU1NWR1BhdGhTZWdDdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU1NWR1BhdGhTZWdDdXN0b20uY3BwCmluZGV4IGNiNDY4N2MuLjBiMTEzMjUgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNTVkdQYXRoU2VnQ3VzdG9tLmNwcAorKysgYi9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTU1ZHUGF0aFNlZ0N1c3RvbS5jcHAKQEAgLTU5LDcgKzU5LDcg
QEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1KU1ZhbHVl
IHRvSlMoRXhlY1N0YXRlKiBleGVjLCBTVkdQYXRoU2VnKiBvYmplY3QsIFNWR0VsZW1lbnQqIGNv
bnRleHQpCitKU1ZhbHVlIHRvSlMoRXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCos
IFNWR1BhdGhTZWcqIG9iamVjdCwgU1ZHRWxlbWVudCogY29udGV4dCkKIHsKICAgICBpZiAoIW9i
amVjdCkKICAgICAgICAgcmV0dXJuIGpzTnVsbCgpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU1NWR1BhdGhTZWdMaXN0Q3VzdG9tLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNTVkdQYXRoU2VnTGlzdEN1c3RvbS5jcHAKaW5kZXggYjZmYzExNi4uYjcxZjNhNiAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1NWR1BhdGhTZWdMaXN0Q3VzdG9tLmNwcAorKysg
Yi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTU1ZHUGF0aFNlZ0xpc3RDdXN0b20uY3BwCkBAIC01Nyw3
ICs1Nyw3IEBAIEpTVmFsdWUgSlNTVkdQYXRoU2VnTGlzdDo6aW5pdGlhbGl6ZShFeGVjU3RhdGUq
IGV4ZWMsIGNvbnN0IEFyZ0xpc3QmIGFyZ3MpCiAKICAgICBTVkdQYXRoU2VnKiBvYmogPSBXVEY6
OmdldFB0cihpbXAtPmluaXRpYWxpemUobmV3SXRlbSwgZWMpKTsKIAotICAgIEpTQzo6SlNWYWx1
ZSByZXN1bHQgPSB0b0pTKGV4ZWMsIG9iaiwgbV9jb250ZXh0LmdldCgpKTsKKyAgICBKU0M6OkpT
VmFsdWUgcmVzdWx0ID0gdG9KUyhleGVjLCBkZXByZWNhdGVkR2xvYmFsT2JqZWN0Rm9yUHJvdG90
eXBlKGV4ZWMpLCBvYmosIG1fY29udGV4dC5nZXQoKSk7CiAgICAgc2V0RE9NRXhjZXB0aW9uKGV4
ZWMsIGVjKTsKIAogICAgIG1fY29udGV4dC0+c3ZnQXR0cmlidXRlQ2hhbmdlZChpbXAtPmFzc29j
aWF0ZWRBdHRyaWJ1dGVOYW1lKCkpOyAgICAKQEAgLTc4LDcgKzc4LDcgQEAgSlNWYWx1ZSBKU1NW
R1BhdGhTZWdMaXN0OjpnZXRJdGVtKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgQXJnTGlzdCYgYXJn
cykKICAgICBTVkdQYXRoU2VnTGlzdCogaW1wID0gc3RhdGljX2Nhc3Q8U1ZHUGF0aFNlZ0xpc3Qq
PihpbXBsKCkpOwogICAgIFNWR1BhdGhTZWcqIG9iaiA9IFdURjo6Z2V0UHRyKGltcC0+Z2V0SXRl
bShpbmRleCwgZWMpKTsKIAotICAgIEpTQzo6SlNWYWx1ZSByZXN1bHQgPSB0b0pTKGV4ZWMsIG9i
aiwgbV9jb250ZXh0LmdldCgpKTsKKyAgICBKU0M6OkpTVmFsdWUgcmVzdWx0ID0gdG9KUyhleGVj
LCBkZXByZWNhdGVkR2xvYmFsT2JqZWN0Rm9yUHJvdG90eXBlKGV4ZWMpLCBvYmosIG1fY29udGV4
dC5nZXQoKSk7CiAgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIGVjKTsKICAgICByZXR1cm4gcmVz
dWx0OwogfQpAQCAtOTcsNyArOTcsNyBAQCBKU1ZhbHVlIEpTU1ZHUGF0aFNlZ0xpc3Q6Omluc2Vy
dEl0ZW1CZWZvcmUoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBBcmdMaXN0JiBhcmdzKQogCiAgICAg
U1ZHUGF0aFNlZ0xpc3QqIGltcCA9IHN0YXRpY19jYXN0PFNWR1BhdGhTZWdMaXN0Kj4oaW1wbCgp
KTsKIAotICAgIEpTQzo6SlNWYWx1ZSByZXN1bHQgPSB0b0pTKGV4ZWMsIFdURjo6Z2V0UHRyKGlt
cC0+aW5zZXJ0SXRlbUJlZm9yZShuZXdJdGVtLCBpbmRleCwgZWMpKSwgbV9jb250ZXh0LmdldCgp
KTsKKyAgICBKU0M6OkpTVmFsdWUgcmVzdWx0ID0gdG9KUyhleGVjLCBkZXByZWNhdGVkR2xvYmFs
T2JqZWN0Rm9yUHJvdG90eXBlKGV4ZWMpLCBXVEY6OmdldFB0cihpbXAtPmluc2VydEl0ZW1CZWZv
cmUobmV3SXRlbSwgaW5kZXgsIGVjKSksIG1fY29udGV4dC5nZXQoKSk7CiAgICAgc2V0RE9NRXhj
ZXB0aW9uKGV4ZWMsIGVjKTsKIAogICAgIG1fY29udGV4dC0+c3ZnQXR0cmlidXRlQ2hhbmdlZChp
bXAtPmFzc29jaWF0ZWRBdHRyaWJ1dGVOYW1lKCkpOyAgICAKQEAgLTExOCw3ICsxMTgsNyBAQCBK
U1ZhbHVlIEpTU1ZHUGF0aFNlZ0xpc3Q6OnJlcGxhY2VJdGVtKEV4ZWNTdGF0ZSogZXhlYywgY29u
c3QgQXJnTGlzdCYgYXJncykKIAogICAgIFNWR1BhdGhTZWdMaXN0KiBpbXAgPSBzdGF0aWNfY2Fz
dDxTVkdQYXRoU2VnTGlzdCo+KGltcGwoKSk7CiAKLSAgICBKU0M6OkpTVmFsdWUgcmVzdWx0ID0g
dG9KUyhleGVjLCBXVEY6OmdldFB0cihpbXAtPnJlcGxhY2VJdGVtKG5ld0l0ZW0sIGluZGV4LCBl
YykpLCBtX2NvbnRleHQuZ2V0KCkpOworICAgIEpTQzo6SlNWYWx1ZSByZXN1bHQgPSB0b0pTKGV4
ZWMsIGRlcHJlY2F0ZWRHbG9iYWxPYmplY3RGb3JQcm90b3R5cGUoZXhlYyksIFdURjo6Z2V0UHRy
KGltcC0+cmVwbGFjZUl0ZW0obmV3SXRlbSwgaW5kZXgsIGVjKSksIG1fY29udGV4dC5nZXQoKSk7
CiAgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIGVjKTsKIAogICAgIG1fY29udGV4dC0+c3ZnQXR0
cmlidXRlQ2hhbmdlZChpbXAtPmFzc29jaWF0ZWRBdHRyaWJ1dGVOYW1lKCkpOyAgICAKQEAgLTE0
MCw3ICsxNDAsNyBAQCBKU1ZhbHVlIEpTU1ZHUGF0aFNlZ0xpc3Q6OnJlbW92ZUl0ZW0oRXhlY1N0
YXRlKiBleGVjLCBjb25zdCBBcmdMaXN0JiBhcmdzKQogCiAgICAgUmVmUHRyPFNWR1BhdGhTZWc+
IG9iaihpbXAtPnJlbW92ZUl0ZW0oaW5kZXgsIGVjKSk7CiAKLSAgICBKU0M6OkpTVmFsdWUgcmVz
dWx0ID0gdG9KUyhleGVjLCBvYmouZ2V0KCksIG1fY29udGV4dC5nZXQoKSk7CisgICAgSlNDOjpK
U1ZhbHVlIHJlc3VsdCA9IHRvSlMoZXhlYywgZGVwcmVjYXRlZEdsb2JhbE9iamVjdEZvclByb3Rv
dHlwZShleGVjKSwgb2JqLmdldCgpLCBtX2NvbnRleHQuZ2V0KCkpOwogICAgIHNldERPTUV4Y2Vw
dGlvbihleGVjLCBlYyk7CiAKICAgICBtX2NvbnRleHQtPnN2Z0F0dHJpYnV0ZUNoYW5nZWQoaW1w
LT5hc3NvY2lhdGVkQXR0cmlidXRlTmFtZSgpKTsgICAgCkBAIC0xNTQsNyArMTU0LDcgQEAgSlNW
YWx1ZSBKU1NWR1BhdGhTZWdMaXN0OjphcHBlbmRJdGVtKEV4ZWNTdGF0ZSogZXhlYywgY29uc3Qg
QXJnTGlzdCYgYXJncykKIAogICAgIFNWR1BhdGhTZWdMaXN0KiBpbXAgPSBzdGF0aWNfY2FzdDxT
VkdQYXRoU2VnTGlzdCo+KGltcGwoKSk7CiAKLSAgICBKU0M6OkpTVmFsdWUgcmVzdWx0ID0gdG9K
UyhleGVjLCBXVEY6OmdldFB0cihpbXAtPmFwcGVuZEl0ZW0obmV3SXRlbSwgZWMpKSwgbV9jb250
ZXh0LmdldCgpKTsKKyAgICBKU0M6OkpTVmFsdWUgcmVzdWx0ID0gdG9KUyhleGVjLCBkZXByZWNh
dGVkR2xvYmFsT2JqZWN0Rm9yUHJvdG90eXBlKGV4ZWMpLCBXVEY6OmdldFB0cihpbXAtPmFwcGVu
ZEl0ZW0obmV3SXRlbSwgZWMpKSwgbV9jb250ZXh0LmdldCgpKTsKICAgICBzZXRET01FeGNlcHRp
b24oZXhlYywgZWMpOwogCiAgICAgbV9jb250ZXh0LT5zdmdBdHRyaWJ1dGVDaGFuZ2VkKGltcC0+
YXNzb2NpYXRlZEF0dHJpYnV0ZU5hbWUoKSk7ICAgIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU1NWR1BvaW50TGlzdEN1c3RvbS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
U1ZHUG9pbnRMaXN0Q3VzdG9tLmNwcAppbmRleCBhMThjMmEyLi4xOTY5ZmUyIDEwMDY0NAotLS0g
YS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTU1ZHUG9pbnRMaXN0Q3VzdG9tLmNwcAorKysgYi9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTU1ZHUG9pbnRMaXN0Q3VzdG9tLmNwcApAQCAtMzksNyArMzksNyBA
QCBzdGF0aWMgSlNWYWx1ZSBmaW5pc2hHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBFeGNlcHRpb25D
b2RlJiBlYywgU1ZHRWxlbWVudCogY29udAogICAgICAgICBzZXRET01FeGNlcHRpb24oZXhlYywg
ZWMpOwogICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKICAgICB9Ci0gICAgcmV0dXJuIHRv
SlMoZXhlYywgSlNTVkdQT0RUeXBlV3JhcHBlckNyZWF0b3JGb3JMaXN0PEZsb2F0UG9pbnQ+Ojpj
cmVhdGUoaXRlbS5nZXQoKSwgbGlzdC0+YXNzb2NpYXRlZEF0dHJpYnV0ZU5hbWUoKSkuZ2V0KCks
IGNvbnRleHQpOworICAgIHJldHVybiB0b0pTKGV4ZWMsIGRlcHJlY2F0ZWRHbG9iYWxPYmplY3RG
b3JQcm90b3R5cGUoZXhlYyksIEpTU1ZHUE9EVHlwZVdyYXBwZXJDcmVhdG9yRm9yTGlzdDxGbG9h
dFBvaW50Pjo6Y3JlYXRlKGl0ZW0uZ2V0KCksIGxpc3QtPmFzc29jaWF0ZWRBdHRyaWJ1dGVOYW1l
KCkpLmdldCgpLCBjb250ZXh0KTsKIH0KIAogc3RhdGljIEpTVmFsdWUgZmluaXNoU2V0dGVyKEV4
ZWNTdGF0ZSogZXhlYywgRXhjZXB0aW9uQ29kZSYgZWMsIFNWR0VsZW1lbnQqIGNvbnRleHQsIFNW
R1BvaW50TGlzdCogbGlzdCwgUGFzc1JlZlB0cjxQT0RMaXN0SXRlbSA+IGl0ZW0pCkBAIC01MCw3
ICs1MCw3IEBAIHN0YXRpYyBKU1ZhbHVlIGZpbmlzaFNldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEV4
Y2VwdGlvbkNvZGUmIGVjLCBTVkdFbGVtZW50KiBjb250CiAgICAgfQogICAgIGNvbnN0IFF1YWxp
ZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUgPSBsaXN0LT5hc3NvY2lhdGVkQXR0cmlidXRlTmFtZSgp
OwogICAgIGNvbnRleHQtPnN2Z0F0dHJpYnV0ZUNoYW5nZWQoYXR0cmlidXRlTmFtZSk7Ci0gICAg
cmV0dXJuIHRvSlMoZXhlYywgSlNTVkdQT0RUeXBlV3JhcHBlckNyZWF0b3JGb3JMaXN0PEZsb2F0
UG9pbnQ+OjpjcmVhdGUoaXRlbS5nZXQoKSwgYXR0cmlidXRlTmFtZSkuZ2V0KCksIGNvbnRleHQp
OworICAgIHJldHVybiB0b0pTKGV4ZWMsIGRlcHJlY2F0ZWRHbG9iYWxPYmplY3RGb3JQcm90b3R5
cGUoZXhlYyksIEpTU1ZHUE9EVHlwZVdyYXBwZXJDcmVhdG9yRm9yTGlzdDxGbG9hdFBvaW50Pjo6
Y3JlYXRlKGl0ZW0uZ2V0KCksIGF0dHJpYnV0ZU5hbWUpLmdldCgpLCBjb250ZXh0KTsKIH0KIAog
c3RhdGljIEpTVmFsdWUgZmluaXNoU2V0dGVyUmVhZE9ubHlSZXN1bHQoRXhlY1N0YXRlKiBleGVj
LCBFeGNlcHRpb25Db2RlJiBlYywgU1ZHRWxlbWVudCogY29udGV4dCwgU1ZHUG9pbnRMaXN0KiBs
aXN0LCBQYXNzUmVmUHRyPFBPRExpc3RJdGVtPiBpdGVtKQpAQCAtNjAsNyArNjAsNyBAQCBzdGF0
aWMgSlNWYWx1ZSBmaW5pc2hTZXR0ZXJSZWFkT25seVJlc3VsdChFeGVjU3RhdGUqIGV4ZWMsIEV4
Y2VwdGlvbkNvZGUmIGVjLCBTVgogICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKICAgICB9
CiAgICAgY29udGV4dC0+c3ZnQXR0cmlidXRlQ2hhbmdlZChsaXN0LT5hc3NvY2lhdGVkQXR0cmli
dXRlTmFtZSgpKTsKLSAgICByZXR1cm4gdG9KUyhleGVjLCBKU1NWR1N0YXRpY1BPRFR5cGVXcmFw
cGVyPEZsb2F0UG9pbnQ+OjpjcmVhdGUoKml0ZW0pLmdldCgpLCBjb250ZXh0KTsKKyAgICByZXR1
cm4gdG9KUyhleGVjLCBkZXByZWNhdGVkR2xvYmFsT2JqZWN0Rm9yUHJvdG90eXBlKGV4ZWMpLCBK
U1NWR1N0YXRpY1BPRFR5cGVXcmFwcGVyPEZsb2F0UG9pbnQ+OjpjcmVhdGUoKml0ZW0pLmdldCgp
LCBjb250ZXh0KTsKIH0KIAogSlNWYWx1ZSBKU1NWR1BvaW50TGlzdDo6Y2xlYXIoRXhlY1N0YXRl
KiBleGVjLCBjb25zdCBBcmdMaXN0JikKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNTVkdUcmFuc2Zvcm1MaXN0Q3VzdG9tLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNTVkdU
cmFuc2Zvcm1MaXN0Q3VzdG9tLmNwcAppbmRleCA1OGIyNWFkLi4xYTkxMTBhIDEwMDY0NAotLS0g
YS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTU1ZHVHJhbnNmb3JtTGlzdEN1c3RvbS5jcHAKKysrIGIv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU1NWR1RyYW5zZm9ybUxpc3RDdXN0b20uY3BwCkBAIC0zOSw3
ICszOSw3IEBAIHN0YXRpYyBKU1ZhbHVlIGZpbmlzaEdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEV4
Y2VwdGlvbkNvZGUmIGVjLCBTVkdFbGVtZW50KiBjb250CiAgICAgICAgIHNldERPTUV4Y2VwdGlv
bihleGVjLCBlYyk7CiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogICAgIH0KLSAgICBy
ZXR1cm4gdG9KUyhleGVjLCBKU1NWR1BPRFR5cGVXcmFwcGVyQ3JlYXRvckZvckxpc3Q8U1ZHVHJh
bnNmb3JtPjo6Y3JlYXRlKGl0ZW0uZ2V0KCksIGxpc3QtPmFzc29jaWF0ZWRBdHRyaWJ1dGVOYW1l
KCkpLmdldCgpLCBjb250ZXh0KTsKKyAgICByZXR1cm4gdG9KUyhleGVjLCBkZXByZWNhdGVkR2xv
YmFsT2JqZWN0Rm9yUHJvdG90eXBlKGV4ZWMpLCBKU1NWR1BPRFR5cGVXcmFwcGVyQ3JlYXRvckZv
ckxpc3Q8U1ZHVHJhbnNmb3JtPjo6Y3JlYXRlKGl0ZW0uZ2V0KCksIGxpc3QtPmFzc29jaWF0ZWRB
dHRyaWJ1dGVOYW1lKCkpLmdldCgpLCBjb250ZXh0KTsKIH0KIAogc3RhdGljIEpTVmFsdWUgZmlu
aXNoU2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgRXhjZXB0aW9uQ29kZSYgZWMsIFNWR0VsZW1lbnQq
IGNvbnRleHQsIFNWR1RyYW5zZm9ybUxpc3QqIGxpc3QsIFBhc3NSZWZQdHI8UE9ETGlzdEl0ZW0+
IGl0ZW0pCkBAIC01MCw3ICs1MCw3IEBAIHN0YXRpYyBKU1ZhbHVlIGZpbmlzaFNldHRlcihFeGVj
U3RhdGUqIGV4ZWMsIEV4Y2VwdGlvbkNvZGUmIGVjLCBTVkdFbGVtZW50KiBjb250CiAgICAgfQog
ICAgIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUgPSBsaXN0LT5hc3NvY2lhdGVk
QXR0cmlidXRlTmFtZSgpOwogICAgIGNvbnRleHQtPnN2Z0F0dHJpYnV0ZUNoYW5nZWQoYXR0cmli
dXRlTmFtZSk7Ci0gICAgcmV0dXJuIHRvSlMoZXhlYywgSlNTVkdQT0RUeXBlV3JhcHBlckNyZWF0
b3JGb3JMaXN0PFNWR1RyYW5zZm9ybT46OmNyZWF0ZShpdGVtLmdldCgpLCBhdHRyaWJ1dGVOYW1l
KS5nZXQoKSwgY29udGV4dCk7CisgICAgcmV0dXJuIHRvSlMoZXhlYywgZGVwcmVjYXRlZEdsb2Jh
bE9iamVjdEZvclByb3RvdHlwZShleGVjKSwgSlNTVkdQT0RUeXBlV3JhcHBlckNyZWF0b3JGb3JM
aXN0PFNWR1RyYW5zZm9ybT46OmNyZWF0ZShpdGVtLmdldCgpLCBhdHRyaWJ1dGVOYW1lKS5nZXQo
KSwgY29udGV4dCk7CiB9CiAKIHN0YXRpYyBKU1ZhbHVlIGZpbmlzaFNldHRlclJlYWRPbmx5UmVz
dWx0KEV4ZWNTdGF0ZSogZXhlYywgRXhjZXB0aW9uQ29kZSYgZWMsIFNWR0VsZW1lbnQqIGNvbnRl
eHQsIFNWR1RyYW5zZm9ybUxpc3QqIGxpc3QsIFBhc3NSZWZQdHI8UE9ETGlzdEl0ZW0+IGl0ZW0p
CkBAIC02MCw3ICs2MCw3IEBAIHN0YXRpYyBKU1ZhbHVlIGZpbmlzaFNldHRlclJlYWRPbmx5UmVz
dWx0KEV4ZWNTdGF0ZSogZXhlYywgRXhjZXB0aW9uQ29kZSYgZWMsIFNWCiAgICAgICAgIHJldHVy
biBqc1VuZGVmaW5lZCgpOwogICAgIH0KICAgICBjb250ZXh0LT5zdmdBdHRyaWJ1dGVDaGFuZ2Vk
KGxpc3QtPmFzc29jaWF0ZWRBdHRyaWJ1dGVOYW1lKCkpOwotICAgIHJldHVybiB0b0pTKGV4ZWMs
IEpTU1ZHU3RhdGljUE9EVHlwZVdyYXBwZXI8U1ZHVHJhbnNmb3JtPjo6Y3JlYXRlKCppdGVtKS5n
ZXQoKSwgY29udGV4dCk7CisgICAgcmV0dXJuIHRvSlMoZXhlYywgZGVwcmVjYXRlZEdsb2JhbE9i
amVjdEZvclByb3RvdHlwZShleGVjKSwgSlNTVkdTdGF0aWNQT0RUeXBlV3JhcHBlcjxTVkdUcmFu
c2Zvcm0+OjpjcmVhdGUoKml0ZW0pLmdldCgpLCBjb250ZXh0KTsKIH0KIAogSlNWYWx1ZSBKU1NW
R1RyYW5zZm9ybUxpc3Q6OmNsZWFyKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgQXJnTGlzdCYpCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTU3R5bGVTaGVldEN1c3RvbS5jcHAgYi9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTU3R5bGVTaGVldEN1c3RvbS5jcHAKaW5kZXggZjgxNDZiZC4u
NzQzYmIwNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1N0eWxlU2hlZXRDdXN0
b20uY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNTdHlsZVNoZWV0Q3VzdG9tLmNwcApA
QCAtMzUsNyArMzUsNyBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLUpTVmFsdWUgdG9KUyhFeGVjU3RhdGUqIGV4ZWMsIFN0eWxlU2hlZXQqIHN0eWxlU2hl
ZXQpCitKU1ZhbHVlIHRvSlMoRXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCosIFN0
eWxlU2hlZXQqIHN0eWxlU2hlZXQpCiB7CiAgICAgaWYgKCFzdHlsZVNoZWV0KQogICAgICAgICBy
ZXR1cm4ganNOdWxsKCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTVGV4dEN1
c3RvbS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTVGV4dEN1c3RvbS5jcHAKaW5kZXggOWU2
NjgyNi4uNzA4MjJiZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1RleHRDdXN0
b20uY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNUZXh0Q3VzdG9tLmNwcApAQCAtMzIs
NyArMzIsNyBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
LUpTVmFsdWUgdG9KU05ld2x5Q3JlYXRlZChFeGVjU3RhdGUqIGV4ZWMsIFRleHQqIHRleHQpCitK
U1ZhbHVlIHRvSlNOZXdseUNyZWF0ZWQoRXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVj
dCosIFRleHQqIHRleHQpCiB7CiAgICAgaWYgKCF0ZXh0KQogICAgICAgICByZXR1cm4ganNOdWxs
KCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEJhc2Uu
Y3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRCYXNlLmNwcAppbmRleCBj
NzFmNDViLi41ZjhhMzEwIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2Vy
Q29udGV4dEJhc2UuY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0
QmFzZS5jcHAKQEAgLTU3LDYgKzU3LDExIEBAIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIEpTV29y
a2VyQ29udGV4dEJhc2U6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdAogICAgIHJldHVy
biBtX2ltcGwuZ2V0KCk7CiB9CiAKK0pTVmFsdWUgdG9KUyhFeGVjU3RhdGUqIGV4ZWMsIEpTRE9N
R2xvYmFsT2JqZWN0KiwgV29ya2VyQ29udGV4dCogd29ya2VyQ29udGV4dCkKK3sKKyAgICByZXR1
cm4gdG9KUyhleGVjLCB3b3JrZXJDb250ZXh0KTsKK30KKwogSlNWYWx1ZSB0b0pTKEV4ZWNTdGF0
ZSosIFdvcmtlckNvbnRleHQqIHdvcmtlckNvbnRleHQpCiB7CiAgICAgaWYgKCF3b3JrZXJDb250
ZXh0KQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRCYXNl
LmggYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEJhc2UuaAppbmRleCBkY2Jj
NWMzLi4yMTIxYmIwIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyQ29u
dGV4dEJhc2UuaAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEJhc2Uu
aApAQCAtNTIsNiArNTIsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgfTsKIAogICAgIC8v
IFJldHVybnMgYSBKU1dvcmtlckNvbnRleHQgb3IganNOdWxsKCkKKyAgICAvLyBBbHdheXMgaWdu
b3JlcyB0aGUgZXhlY1N0YXRlIGFuZCBwYXNzZWQgZ2xvYmFsT2JqZWN0LCBXb3JrZXJDb250ZXh0
IGlzIGl0c2VsZiBhIGdsb2JhbE9iamVjdCBhbmQgd2lsbCBhbHdheXMgdXNlIGl0cyBvd24gcHJv
dG90eXBlIGNoYWluLgorICAgIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNE
T01HbG9iYWxPYmplY3QqLCBXb3JrZXJDb250ZXh0Kik7CiAgICAgSlNDOjpKU1ZhbHVlIHRvSlMo
SlNDOjpFeGVjU3RhdGUqLCBXb3JrZXJDb250ZXh0Kik7CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMu
cG0gYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4IGZh
MWE3Y2QuLjQ1NjI0N2EgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2Rl
R2VuZXJhdG9ySlMucG0KKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JKUy5wbQpAQCAtNjI1LDExICs2MjUsMTEgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAKICAgICBp
ZiAoISRoYXNQYXJlbnQgfHwgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiR2VuZXJh
dGVUb0pTIn0gfHwgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tVG9KUyJ9
KSB7CiAgICAgICAgIGlmICgkcG9kVHlwZSkgewotICAgICAgICAgICAgcHVzaChAaGVhZGVyQ29u
dGVudCwgIkpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNTVkdQT0RUeXBlV3Jh
cHBlcjwkcG9kVHlwZT4qLCBTVkdFbGVtZW50KiBjb250ZXh0KTtcbiIpOworICAgICAgICAgICAg
cHVzaChAaGVhZGVyQ29udGVudCwgIkpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwg
SlNET01HbG9iYWxPYmplY3QqLCBKU1NWR1BPRFR5cGVXcmFwcGVyPCRwb2RUeXBlPiosIFNWR0Vs
ZW1lbnQqIGNvbnRleHQpO1xuIik7CiAgICAgICAgIH0gZWxzaWYgKElzU1ZHVHlwZU5lZWRpbmdD
b250ZXh0UGFyYW1ldGVyKCRpbXBsQ2xhc3NOYW1lKSkgewotICAgICAgICAgICAgcHVzaChAaGVh
ZGVyQ29udGVudCwgIkpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgJGltcGxUeXBl
KiwgU1ZHRWxlbWVudCogY29udGV4dCk7XG4iKTsKKyAgICAgICAgICAgIHB1c2goQGhlYWRlckNv
bnRlbnQsICJKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2Jq
ZWN0KiwgJGltcGxUeXBlKiwgU1ZHRWxlbWVudCogY29udGV4dCk7XG4iKTsKICAgICAgICAgfSBl
bHNlIHsKLSAgICAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJKU0M6OkpTVmFsdWUgdG9K
UyhKU0M6OkV4ZWNTdGF0ZSosICRpbXBsVHlwZSopO1xuIik7CisgICAgICAgICAgICBwdXNoKEBo
ZWFkZXJDb250ZW50LCAiSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUds
b2JhbE9iamVjdCosICRpbXBsVHlwZSopO1xuIik7CiAgICAgICAgIH0KICAgICB9CiAgICAgaWYg
KCEkaGFzUGFyZW50IHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkdlbmVyYXRl
TmF0aXZlQ29udmVydGVyIn0pIHsKQEAgLTY0Miw3ICs2NDIsNyBAQCBzdWIgR2VuZXJhdGVIZWFk
ZXIKICAgICAgICAgfQogICAgIH0KICAgICBpZiAoJGludGVyZmFjZU5hbWUgZXEgIk5vZGUiIG9y
ICRpbnRlcmZhY2VOYW1lIGVxICJFbGVtZW50IiBvciAkaW50ZXJmYWNlTmFtZSBlcSAiVGV4dCIg
b3IgJGludGVyZmFjZU5hbWUgZXEgIkNEQVRBU2VjdGlvbiIpIHsKLSAgICAgICAgcHVzaChAaGVh
ZGVyQ29udGVudCwgIkpTQzo6SlNWYWx1ZSB0b0pTTmV3bHlDcmVhdGVkKEpTQzo6RXhlY1N0YXRl
KiwgJGludGVyZmFjZU5hbWUqKTtcbiIpOworICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAi
SlNDOjpKU1ZhbHVlIHRvSlNOZXdseUNyZWF0ZWQoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2Jh
bE9iamVjdCosICRpbnRlcmZhY2VOYW1lKik7XG4iKTsKICAgICB9CiAgICAgCiAgICAgcHVzaChA
aGVhZGVyQ29udGVudCwgIlxuIik7CkBAIC0xMDk0LDYgKzEwOTQsNyBAQCBzdWIgR2VuZXJhdGVJ
bXBsZW1lbnRhdGlvbgogCiAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJKU1Zh
bHVlICR7Z2V0RnVuY3Rpb25OYW1lfShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXIm
LCBjb25zdCBQcm9wZXJ0eVNsb3QmIHNsb3QpXG4iKTsKICAgICAgICAgICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgIntcbiIpOworICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
ICAgICR7Y2xhc3NOYW1lfSogY2FzdGVkVGhpcyA9IHN0YXRpY19jYXN0PCRjbGFzc05hbWUqPihh
c09iamVjdChzbG90LnNsb3RCYXNlKCkpKTtcbiIpOwogCiAgICAgICAgICAgICAgICAgbXkgJGlt
cGxDbGFzc05hbWVGb3JWYWx1ZUNvbnZlcnNpb24gPSAiIjsKICAgICAgICAgICAgICAgICBpZiAo
ISRwb2RUeXBlIGFuZCAoJGNvZGVHZW5lcmF0b3ItPklzU1ZHQW5pbWF0ZWRUeXBlKCRpbXBsQ2xh
c3NOYW1lKSBvciAkYXR0cmlidXRlLT50eXBlICF+IC9ecmVhZG9ubHkvKSkgewpAQCAtMTEwMywy
NSArMTEwNCwyNSBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAgICAgICAg
IGlmICgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDaGVja0RvbWFpblNlY3VyaXR5
In0gJiYgCiAgICAgICAgICAgICAgICAgICAgICAgICAhJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5l
eHRlbmRlZEF0dHJpYnV0ZXMtPnsiRG9Ob3RDaGVja0RvbWFpblNlY3VyaXR5In0gJiYKICAgICAg
ICAgICAgICAgICAgICAgICAgICEkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmli
dXRlcy0+eyJEb05vdENoZWNrRG9tYWluU2VjdXJpdHlPbkdldCJ9KSB7Ci0gICAgICAgICAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlmICghc3RhdGljX2Nhc3Q8JGNsYXNzTmFt
ZSo+KGFzT2JqZWN0KHNsb3Quc2xvdEJhc2UoKSkpLT5hbGxvd3NBY2Nlc3NGcm9tKGV4ZWMpKVxu
Iik7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlmICghY2Fz
dGVkVGhpcy0+YWxsb3dzQWNjZXNzRnJvbShleGVjKSlcbiIpOwogICAgICAgICAgICAgICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7XG4iKTsK
ICAgICAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgICAgICBpZiAoJGF0dHJpYnV0ZS0+c2ln
bmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tIn0gfHwgJGF0dHJpYnV0ZS0+c2ln
bmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlNDQ3VzdG9tIn0gfHwgJGF0dHJpYnV0ZS0+
c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tR2V0dGVyIn0gfHwgJGF0dHJp
YnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlNDQ3VzdG9tR2V0dGVyIn0p
IHsKLSAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcmV0dXJuIHN0
YXRpY19jYXN0PCRjbGFzc05hbWUqPihhc09iamVjdChzbG90LnNsb3RCYXNlKCkpKS0+JGltcGxH
ZXR0ZXJGdW5jdGlvbk5hbWUoZXhlYyk7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICIgICAgcmV0dXJuIGNhc3RlZFRoaXMtPiRpbXBsR2V0dGVyRnVuY3Rpb25O
YW1lKGV4ZWMpO1xuIik7CiAgICAgICAgICAgICAgICAgfSBlbHNpZiAoJGF0dHJpYnV0ZS0+c2ln
bmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ2hlY2tOb2RlU2VjdXJpdHkifSkgewogICAg
ICAgICAgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyJKU0RPTUJpbmRpbmcuaCJ9ID0gMTsKLSAg
ICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgJGltcGxDbGFzc05hbWUq
IGltcCA9IHN0YXRpY19jYXN0PCRpbXBsQ2xhc3NOYW1lKj4oc3RhdGljX2Nhc3Q8JGNsYXNzTmFt
ZSo+KGFzT2JqZWN0KHNsb3Quc2xvdEJhc2UoKSkpLT5pbXBsKCkpO1xuIik7Ci0gICAgICAgICAg
ICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHJldHVybiBjaGVja05vZGVTZWN1cml0
eShleGVjLCBpbXAtPiRpbXBsR2V0dGVyRnVuY3Rpb25OYW1lKCkpID8gIiAuIE5hdGl2ZVRvSlNW
YWx1ZSgkYXR0cmlidXRlLT5zaWduYXR1cmUsIDAsICRpbXBsQ2xhc3NOYW1lLCAkaW1wbENsYXNz
TmFtZUZvclZhbHVlQ29udmVyc2lvbiwgImltcC0+JGltcGxHZXR0ZXJGdW5jdGlvbk5hbWUoKSIs
ICJzdGF0aWNfY2FzdDwkY2xhc3NOYW1lKj4oYXNPYmplY3Qoc2xvdC5zbG90QmFzZSgpKSkiKSAu
ICIgOiBqc1VuZGVmaW5lZCgpO1xuIik7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAiICAgICRpbXBsQ2xhc3NOYW1lKiBpbXAgPSBzdGF0aWNfY2FzdDwkaW1wbENsYXNz
TmFtZSo+KGNhc3RlZFRoaXMtPmltcGwoKSk7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICIgICAgcmV0dXJuIGNoZWNrTm9kZVNlY3VyaXR5KGV4ZWMsIGltcC0+
JGltcGxHZXR0ZXJGdW5jdGlvbk5hbWUoKSkgPyAiIC4gTmF0aXZlVG9KU1ZhbHVlKCRhdHRyaWJ1
dGUtPnNpZ25hdHVyZSwgMCwgJGltcGxDbGFzc05hbWUsICRpbXBsQ2xhc3NOYW1lRm9yVmFsdWVD
b252ZXJzaW9uLCAiaW1wLT4kaW1wbEdldHRlckZ1bmN0aW9uTmFtZSgpIiwgImNhc3RlZFRoaXMi
KSAuICIgOiBqc1VuZGVmaW5lZCgpO1xuIik7CiAgICAgICAgICAgICAgICAgfSBlbHNpZiAoJGF0
dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ2hlY2tGcmFtZVNlY3Vy
aXR5In0pIHsKICAgICAgICAgICAgICAgICAgICAgJGltcGxJbmNsdWRlc3siRG9jdW1lbnQuaCJ9
ID0gMTsKICAgICAgICAgICAgICAgICAgICAgJGltcGxJbmNsdWRlc3siSlNET01CaW5kaW5nLmgi
fSA9IDE7Ci0gICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICRpbXBs
Q2xhc3NOYW1lKiBpbXAgPSBzdGF0aWNfY2FzdDwkaW1wbENsYXNzTmFtZSo+KHN0YXRpY19jYXN0
PCRjbGFzc05hbWUqPihhc09iamVjdChzbG90LnNsb3RCYXNlKCkpKS0+aW1wbCgpKTtcbiIpOwot
ICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICByZXR1cm4gY2hlY2tO
b2RlU2VjdXJpdHkoZXhlYywgaW1wLT5jb250ZW50RG9jdW1lbnQoKSkgPyAiIC4gTmF0aXZlVG9K
U1ZhbHVlKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZSwgIDAsICRpbXBsQ2xhc3NOYW1lLCAkaW1wbENs
YXNzTmFtZUZvclZhbHVlQ29udmVyc2lvbiwgImltcC0+JGltcGxHZXR0ZXJGdW5jdGlvbk5hbWUo
KSIsICJzdGF0aWNfY2FzdDwkY2xhc3NOYW1lKj4oYXNPYmplY3Qoc2xvdC5zbG90QmFzZSgpKSki
KSAuICIgOiBqc1VuZGVmaW5lZCgpO1xuIik7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAiICAgICRpbXBsQ2xhc3NOYW1lKiBpbXAgPSBzdGF0aWNfY2FzdDwkaW1wbENs
YXNzTmFtZSo+KGNhc3RlZFRoaXMtPmltcGwoKSk7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICIgICAgcmV0dXJuIGNoZWNrTm9kZVNlY3VyaXR5KGV4ZWMsIGlt
cC0+Y29udGVudERvY3VtZW50KCkpID8gIiAuIE5hdGl2ZVRvSlNWYWx1ZSgkYXR0cmlidXRlLT5z
aWduYXR1cmUsICAwLCAkaW1wbENsYXNzTmFtZSwgJGltcGxDbGFzc05hbWVGb3JWYWx1ZUNvbnZl
cnNpb24sICJpbXAtPiRpbXBsR2V0dGVyRnVuY3Rpb25OYW1lKCkiLCAiY2FzdGVkVGhpcyIpIC4g
IiA6IGpzVW5kZWZpbmVkKCk7XG4iKTsKICAgICAgICAgICAgICAgICB9IGVsc2lmICgkdHlwZSBl
cSAiRXZlbnRMaXN0ZW5lciIpIHsKICAgICAgICAgICAgICAgICAgICAgJGltcGxJbmNsdWRlc3si
RXZlbnRMaXN0ZW5lci5oIn0gPSAxOwogICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIiAgICBVTlVTRURfUEFSQU0oZXhlYyk7XG4iKTsKLSAgICAgICAgICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICIgICAgJGltcGxDbGFzc05hbWUqIGltcCA9IHN0YXRpY19jYXN0
PCRpbXBsQ2xhc3NOYW1lKj4oc3RhdGljX2Nhc3Q8JGNsYXNzTmFtZSo+KGFzT2JqZWN0KHNsb3Qu
c2xvdEJhc2UoKSkpLT5pbXBsKCkpO1xuIik7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAiICAgICRpbXBsQ2xhc3NOYW1lKiBpbXAgPSBzdGF0aWNfY2FzdDwkaW1wbENs
YXNzTmFtZSo+KGNhc3RlZFRoaXMtPmltcGwoKSk7XG4iKTsKICAgICAgICAgICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYgKEV2ZW50TGlzdGVuZXIqIGxpc3RlbmVyID0gaW1w
LT4kaW1wbEdldHRlckZ1bmN0aW9uTmFtZSgpKSB7XG4iKTsKICAgICAgICAgICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIGlmIChKU09iamVjdCoganNGdW5jdGlvbiA9IGxp
c3RlbmVyLT5qc0Z1bmN0aW9uKCkpXG4iKTsKICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICIgICAgICAgICAgICByZXR1cm4ganNGdW5jdGlvbjtcbiIpOwpAQCAtMTEzMCwy
MSArMTEzMSwyMCBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAgICAgICAg
IH0gZWxzaWYgKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+dHlwZSA9fiAvQ29uc3RydWN0b3IkLykg
ewogICAgICAgICAgICAgICAgICAgICBteSAkY29uc3RydWN0b3JUeXBlID0gJGNvZGVHZW5lcmF0
b3ItPlN0cmlwTW9kdWxlKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+dHlwZSk7CiAgICAgICAgICAg
ICAgICAgICAgICRjb25zdHJ1Y3RvclR5cGUgPX4gcy9Db25zdHJ1Y3RvciQvLzsKLSAgICAgICAg
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgJHtjbGFzc05hbWV9KiBjYXN0ZWRU
aGlzID0gc3RhdGljX2Nhc3Q8JGNsYXNzTmFtZSo+KGFzT2JqZWN0KHNsb3Quc2xvdEJhc2UoKSkp
O1xuIik7CiAgICAgICAgICAgICAgICAgICAgICMgQ29uc3RydWN0b3IgYXR0cmlidXRlIGlzIG9u
bHkgdXNlZCBieSBET01XaW5kb3cuaWRsLCBzbyBpdCdzIGNvcnJlY3QgdG8gcGFzcyBjYXN0ZWRU
aGlzIGFzIHRoZSBnbG9iYWwgb2JqZWN0CiAgICAgICAgICAgICAgICAgICAgICMgT25jZSBET01P
YmplY3RzIGhhdmUgYSBiYWNrLXBvaW50ZXIgdG8gdGhlIGdsb2JhbE9iamVjdCB3ZSBjYW4gcGFz
cyBjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKQogICAgICAgICAgICAgICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgIiAgICByZXR1cm4gSlMiIC4gJGNvbnN0cnVjdG9yVHlwZSAuICI6OmdldENv
bnN0cnVjdG9yKGV4ZWMsIGNhc3RlZFRoaXMpO1xuIik7CiAgICAgICAgICAgICAgICAgfSBlbHNp
ZiAoIUB7JGF0dHJpYnV0ZS0+Z2V0dGVyRXhjZXB0aW9uc30pIHsKICAgICAgICAgICAgICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgVU5VU0VEX1BBUkFNKGV4ZWMpO1xuIik7CiAgICAg
ICAgICAgICAgICAgICAgIGlmICgkcG9kVHlwZSkgewotICAgICAgICAgICAgICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICIgICAgJHBvZFR5cGUgaW1wKCpzdGF0aWNfY2FzdDwkY2xhc3NO
YW1lKj4oYXNPYmplY3Qoc2xvdC5zbG90QmFzZSgpKSktPmltcGwoKSk7XG4iKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICRwb2RUeXBlIGltcCgqY2Fz
dGVkVGhpcy0+aW1wbCgpKTtcbiIpOwogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRwb2RU
eXBlIGVxICJmbG9hdCIpIHsgIyBTcGVjaWFsIGNhc2UgZm9yIEpTU1ZHTnVtYmVyCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcmV0dXJuICIgLiBO
YXRpdmVUb0pTVmFsdWUoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLCAwLCAkaW1wbENsYXNzTmFtZSwg
IiIsICJpbXAiLCAic3RhdGljX2Nhc3Q8JGNsYXNzTmFtZSo+KGFzT2JqZWN0KHNsb3Quc2xvdEJh
c2UoKSkpIikgLiAiO1xuIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICIgICAgcmV0dXJuICIgLiBOYXRpdmVUb0pTVmFsdWUoJGF0dHJpYnV0ZS0+c2ln
bmF0dXJlLCAwLCAkaW1wbENsYXNzTmFtZSwgIiIsICJpbXAiLCAiY2FzdGVkVGhpcyIpIC4gIjtc
biIpOwogICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICByZXR1cm4gIiAuIE5hdGl2ZVRvSlNW
YWx1ZSgkYXR0cmlidXRlLT5zaWduYXR1cmUsIDAsICRpbXBsQ2xhc3NOYW1lLCAiIiwgImltcC4k
aW1wbEdldHRlckZ1bmN0aW9uTmFtZSgpIiwgInN0YXRpY19jYXN0PCRjbGFzc05hbWUqPihhc09i
amVjdChzbG90LnNsb3RCYXNlKCkpKSIpIC4gIjtcbiIpOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHJldHVybiAiIC4gTmF0aXZlVG9KU1ZhbHVl
KCRhdHRyaWJ1dGUtPnNpZ25hdHVyZSwgMCwgJGltcGxDbGFzc05hbWUsICIiLCAiaW1wLiRpbXBs
R2V0dGVyRnVuY3Rpb25OYW1lKCkiLCAiY2FzdGVkVGhpcyIpIC4gIjtcbiIpOwogICAgICAgICAg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAg
ICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgJGltcGxDbGFzc05hbWUqIGlt
cCA9IHN0YXRpY19jYXN0PCRpbXBsQ2xhc3NOYW1lKj4oc3RhdGljX2Nhc3Q8JGNsYXNzTmFtZSo+
KGFzT2JqZWN0KHNsb3Quc2xvdEJhc2UoKSkpLT5pbXBsKCkpO1xuIik7CisgICAgICAgICAgICAg
ICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAkaW1wbENsYXNzTmFtZSogaW1wID0g
c3RhdGljX2Nhc3Q8JGltcGxDbGFzc05hbWUqPihjYXN0ZWRUaGlzLT5pbXBsKCkpO1xuIik7CiAg
ICAgICAgICAgICAgICAgICAgICAgICBteSAkdmFsdWU7CiAgICAgICAgICAgICAgICAgICAgICAg
ICBteSAkcmVmbGVjdCA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57IlJlZmxlY3QifTsKICAgICAgICAgICAgICAgICAgICAgICAgIG15ICRyZWZsZWN0VVJMID0g
JGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiUmVmbGVjdFVSTCJ9
OwpAQCAtMTE1NiwyMyArMTE1NiwyMiBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAg
ICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAkdmFsdWUgPSAiaW1wLT4kaW1wbEdldHRlckZ1bmN0aW9uTmFtZSgpIjsKICAgICAgICAgICAg
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIG15ICRqc1R5cGUgPSBOYXRp
dmVUb0pTVmFsdWUoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLCAwLCAkaW1wbENsYXNzTmFtZSwgJGlt
cGxDbGFzc05hbWVGb3JWYWx1ZUNvbnZlcnNpb24sICR2YWx1ZSwgInN0YXRpY19jYXN0PCRjbGFz
c05hbWUqPihhc09iamVjdChzbG90LnNsb3RCYXNlKCkpKSIpOworICAgICAgICAgICAgICAgICAg
ICAgICAgbXkgJGpzVHlwZSA9IE5hdGl2ZVRvSlNWYWx1ZSgkYXR0cmlidXRlLT5zaWduYXR1cmUs
IDAsICRpbXBsQ2xhc3NOYW1lLCAkaW1wbENsYXNzTmFtZUZvclZhbHVlQ29udmVyc2lvbiwgJHZh
bHVlLCAiY2FzdGVkVGhpcyIpOwogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRjb2RlR2Vu
ZXJhdG9yLT5Jc1NWR0FuaW1hdGVkVHlwZSgkdHlwZSkpIHsKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBSZWZQdHI8JHR5cGU+IG9iaiA9ICRqc1R5
cGU7XG4iKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
IiAgICByZXR1cm4gdG9KUyhleGVjLCBvYmouZ2V0KCksIGltcCk7XG4iKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICByZXR1cm4gdG9KUyhleGVj
LCBjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSwgb2JqLmdldCgpLCBpbXApO1xuIik7CiAgICAg
ICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAiICAgIHJldHVybiAkanNUeXBlO1xuIik7CiAgICAgICAgICAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9
IGVsc2UgewotICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBFeGNl
cHRpb25Db2RlIGVjID0gMDtcbiIpOwotCisgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAiICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwO1xuIik7ICAgICAgICAgICAgICAgICAg
ICAKICAgICAgICAgICAgICAgICAgICAgaWYgKCRwb2RUeXBlKSB7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAkcG9kVHlwZSBpbXAoKnN0YXRpY19jYXN0
PCRjbGFzc05hbWUqPihhc09iamVjdChzbG90LnNsb3RCYXNlKCkpKS0+aW1wbCgpKTtcbiIpOwot
ICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgSlNDOjpKU1Zh
bHVlIHJlc3VsdCA9ICIgLiBOYXRpdmVUb0pTVmFsdWUoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLCAw
LCAkaW1wbENsYXNzTmFtZSwgIiIsICJpbXAuJGltcGxHZXR0ZXJGdW5jdGlvbk5hbWUoZWMpIiwg
InN0YXRpY19jYXN0PCRjbGFzc05hbWUqPihhc09iamVjdChzbG90LnNsb3RCYXNlKCkpKSIpIC4g
IjtcbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAg
JHBvZFR5cGUgaW1wKCpjYXN0ZWRUaGlzLT5pbXBsKCkpO1xuIik7CisgICAgICAgICAgICAgICAg
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBKU0M6OkpTVmFsdWUgcmVzdWx0ID0gIiAu
IE5hdGl2ZVRvSlNWYWx1ZSgkYXR0cmlidXRlLT5zaWduYXR1cmUsIDAsICRpbXBsQ2xhc3NOYW1l
LCAiIiwgImltcC4kaW1wbEdldHRlckZ1bmN0aW9uTmFtZShlYykiLCAiY2FzdGVkVGhpcyIpIC4g
IjtcbiIpOwogICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgJGltcGxDbGFzc05hbWUqIGltcCA9IHN0YXRp
Y19jYXN0PCRpbXBsQ2xhc3NOYW1lKj4oc3RhdGljX2Nhc3Q8JGNsYXNzTmFtZSo+KGFzT2JqZWN0
KHNsb3Quc2xvdEJhc2UoKSkpLT5pbXBsKCkpO1xuIik7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBKU0M6OkpTVmFsdWUgcmVzdWx0ID0gIiAuIE5hdGl2
ZVRvSlNWYWx1ZSgkYXR0cmlidXRlLT5zaWduYXR1cmUsIDAsICRpbXBsQ2xhc3NOYW1lLCAkaW1w
bENsYXNzTmFtZUZvclZhbHVlQ29udmVyc2lvbiwgImltcC0+JGltcGxHZXR0ZXJGdW5jdGlvbk5h
bWUoZWMpIiwgInN0YXRpY19jYXN0PCRjbGFzc05hbWUqPihhc09iamVjdChzbG90LnNsb3RCYXNl
KCkpKSIpIC4gIjtcbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICIgICAgJGltcGxDbGFzc05hbWUqIGltcCA9IHN0YXRpY19jYXN0PCRpbXBsQ2xhc3NOYW1l
Kj4oY2FzdGVkVGhpcy0+aW1wbCgpKTtcbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICIgICAgSlNDOjpKU1ZhbHVlIHJlc3VsdCA9ICIgLiBOYXRpdmVUb0pT
VmFsdWUoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLCAwLCAkaW1wbENsYXNzTmFtZSwgJGltcGxDbGFz
c05hbWVGb3JWYWx1ZUNvbnZlcnNpb24sICJpbXAtPiRpbXBsR2V0dGVyRnVuY3Rpb25OYW1lKGVj
KSIsICJjYXN0ZWRUaGlzIikgLiAiO1xuIik7CiAgICAgICAgICAgICAgICAgICAgIH0KIAogICAg
ICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBzZXRET01FeGNlcHRpb24o
ZXhlYywgZWMpO1xuIik7CkBAIC0xNDk2LDcgKzE0OTUsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1l
bnRhdGlvbgogICAgICAgICAgICAgJGltcGxJbmNsdWRlc3siS1VSTC5oIn0gPSAxOwogICAgICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcmV0dXJuIGpzU3RyaW5nT3JOdWxsKGV4ZWMs
IHRoaXNPYmotPmltcGwoKS0+aXRlbShzbG90LmluZGV4KCkpKTtcbiIpOwogICAgICAgICB9IGVs
c2UgewotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcmV0dXJuIHRvSlMoZXhl
Yywgc3RhdGljX2Nhc3Q8JGltcGxDbGFzc05hbWUqPih0aGlzT2JqLT5pbXBsKCkpLT5pdGVtKHNs
b3QuaW5kZXgoKSkpO1xuIik7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBy
ZXR1cm4gdG9KUyhleGVjLCB0aGlzT2JqLT5nbG9iYWxPYmplY3QoKSwgc3RhdGljX2Nhc3Q8JGlt
cGxDbGFzc05hbWUqPih0aGlzT2JqLT5pbXBsKCkpLT5pdGVtKHNsb3QuaW5kZXgoKSkpO1xuIik7
CiAgICAgICAgIH0KICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ9XG4iKTsKICAgICAgICAg
aWYgKCRpbnRlcmZhY2VOYW1lIGVxICJIVE1MQ29sbGVjdGlvbiIpIHsKQEAgLTE1MDcsMjAgKzE1
MDYsMjAgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KIAogICAgIGlmICgoISRoYXNQYXJl
bnQgb3IgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiR2VuZXJhdGVUb0pTIn0pIGFu
ZCAhJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tVG9KUyJ9KSB7CiAgICAg
ICAgIGlmICgkcG9kVHlwZSkgewotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJKU0M6
OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNTVkdQT0RUeXBlV3JhcHBlcjwk
cG9kVHlwZT4qIG9iamVjdCwgU1ZHRWxlbWVudCogY29udGV4dClcbiIpOworICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICJKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSogZXhl
YywgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNTVkdQT0RUeXBlV3JhcHBlcjwk
cG9kVHlwZT4qIG9iamVjdCwgU1ZHRWxlbWVudCogY29udGV4dClcbiIpOwogICAgICAgICB9IGVs
c2lmIChJc1NWR1R5cGVOZWVkaW5nQ29udGV4dFBhcmFtZXRlcigkaW1wbENsYXNzTmFtZSkpIHsK
LSAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIkpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6
RXhlY1N0YXRlKiBleGVjLCAkaW1wbFR5cGUqIG9iamVjdCwgU1ZHRWxlbWVudCogY29udGV4dClc
biIpOworICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiSlNDOjpKU1ZhbHVlIHRvSlMo
SlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsICRp
bXBsVHlwZSogb2JqZWN0LCBTVkdFbGVtZW50KiBjb250ZXh0KVxuIik7CiAgICAgICAgIH0gZWxz
ZSB7Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIkpTQzo6SlNWYWx1ZSB0b0pTKEpT
Qzo6RXhlY1N0YXRlKiBleGVjLCAkaW1wbFR5cGUqIG9iamVjdClcbiIpOworICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICJKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSogZXhl
YywgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgJGltcGxUeXBlKiBvYmplY3QpXG4i
KTsKICAgICAgICAgfQogCiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAie1xuIik7CiAgICAg
ICAgIGlmICgkcG9kVHlwZSkgewotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAg
cmV0dXJuIGdldERPTU9iamVjdFdyYXBwZXI8JGNsYXNzTmFtZSwgSlNTVkdQT0RUeXBlV3JhcHBl
cjwkcG9kVHlwZT4gPihleGVjLCBvYmplY3QsIGNvbnRleHQpO1xuIik7CisgICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIiAgICByZXR1cm4gZ2V0RE9NT2JqZWN0V3JhcHBlcjwkY2xhc3NO
YW1lLCBKU1NWR1BPRFR5cGVXcmFwcGVyPCRwb2RUeXBlPiA+KGV4ZWMsIGdsb2JhbE9iamVjdCwg
b2JqZWN0LCBjb250ZXh0KTtcbiIpOwogICAgICAgICB9IGVsc2lmIChJc1NWR1R5cGVOZWVkaW5n
Q29udGV4dFBhcmFtZXRlcigkaW1wbENsYXNzTmFtZSkpIHsKLSAgICAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAiICAgIHJldHVybiBnZXRET01PYmplY3RXcmFwcGVyPCRjbGFzc05hbWU+KGV4
ZWMsIG9iamVjdCwgY29udGV4dCk7XG4iKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAiICAgIHJldHVybiBnZXRET01PYmplY3RXcmFwcGVyPCRjbGFzc05hbWU+KGV4ZWMsIGdsb2Jh
bE9iamVjdCwgb2JqZWN0LCBjb250ZXh0KTtcbiIpOwogICAgICAgICB9IGVsc2UgewotICAgICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcmV0dXJuIGdldERPTU9iamVjdFdyYXBwZXI8
JGNsYXNzTmFtZT4oZXhlYywgb2JqZWN0KTtcbiIpOworICAgICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsICIgICAgcmV0dXJuIGdldERPTU9iamVjdFdyYXBwZXI8JGNsYXNzTmFtZT4oZXhlYywg
Z2xvYmFsT2JqZWN0LCBvYmplY3QpO1xuIik7CiAgICAgICAgIH0KICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICJ9XG4iKTsKICAgICB9CkBAIC0xNjk2LDYgKzE2OTUsOSBAQCBzdWIgTmF0aXZl
VG9KU1ZhbHVlCiAgICAgICAgICRpbXBsSW5jbHVkZXN7IjxydW50aW1lL0pTU3RyaW5nLmg+In0g
PSAxOwogICAgICAgICByZXR1cm4gImpzU3RyaW5nKGV4ZWMsICR2YWx1ZSkiOwogICAgIH0KKyAg
ICAKKyAgICAjIFNvbWUgU1ZHIGJpbmRpbmdzIGRvbid0IGhhdmUgc3BhY2UgdG8gc3RvcmUgYSBn
bG9iYWxPYmplY3QgcG9pbnRlciwgZm9yIHRob3NlLCB3ZSB1c2UgdGhlIGRlcHJlY2F0ZWRHbG9i
YWxPYmplY3RGb3JQcm90b3R5cGUgaGFjayBmb3Igbm93LgorICAgIG15ICRnbG9iYWxPYmplY3Qg
PSBJc1NWR1R5cGVOZWVkaW5nQ29udGV4dFBhcmFtZXRlcigkaW1wbENsYXNzTmFtZSkgPyAiZGVw
cmVjYXRlZEdsb2JhbE9iamVjdEZvclByb3RvdHlwZShleGVjKSIgOiAiJHRoaXNWYWx1ZS0+Z2xv
YmFsT2JqZWN0KCkiOwogCiAgICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc1BvZFR5cGUoJHR5cGUp
KSB7CiAgICAgICAgICRpbXBsSW5jbHVkZXN7IkpTJHR5cGUuaCJ9ID0gMTsKQEAgLTE3MTQsMjUg
KzE3MTYsMjUgQEAgc3ViIE5hdGl2ZVRvSlNWYWx1ZQogICAgICAgICAgICAgYW5kICRjb2RlR2Vu
ZXJhdG9yLT5Jc1BvZFR5cGVXaXRoV3JpdGVhYmxlUHJvcGVydGllcygkdHlwZSkKICAgICAgICAg
ICAgIGFuZCBub3QgZGVmaW5lZCAkc2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSW1t
dXRhYmxlIn0pIHsKICAgICAgICAgICAgIGlmICgkY29kZUdlbmVyYXRvci0+SXNQb2RUeXBlKCRp
bXBsQ2xhc3NOYW1lKSkgewotICAgICAgICAgICAgICAgIHJldHVybiAidG9KUyhleGVjLCBKU1NW
R1N0YXRpY1BPRFR5cGVXcmFwcGVyV2l0aFBPRFR5cGVQYXJlbnQ8JG5hdGl2ZVR5cGUsICRpbXBs
Q2xhc3NOYW1lPjo6Y3JlYXRlKCR2YWx1ZSwgJHRoaXNWYWx1ZS0+aW1wbCgpKS5nZXQoKSwgJHRo
aXNWYWx1ZS0+Y29udGV4dCgpKSI7CisgICAgICAgICAgICAgICAgcmV0dXJuICJ0b0pTKGV4ZWMs
ICRnbG9iYWxPYmplY3QsIEpTU1ZHU3RhdGljUE9EVHlwZVdyYXBwZXJXaXRoUE9EVHlwZVBhcmVu
dDwkbmF0aXZlVHlwZSwgJGltcGxDbGFzc05hbWU+OjpjcmVhdGUoJHZhbHVlLCAkdGhpc1ZhbHVl
LT5pbXBsKCkpLmdldCgpLCAkdGhpc1ZhbHVlLT5jb250ZXh0KCkpIjsKICAgICAgICAgICAgIH0g
ZWxzZSB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuICJ0b0pTKGV4ZWMsIEpTU1ZHU3RhdGljUE9E
VHlwZVdyYXBwZXJXaXRoUGFyZW50PCRuYXRpdmVUeXBlLCAkaW1wbENsYXNzTmFtZT46OmNyZWF0
ZShpbXAsICYke2ltcGxDbGFzc05hbWV9OjokZ2V0dGVyLCAmJHtpbXBsQ2xhc3NOYW1lfTo6JHNl
dHRlcikuZ2V0KCksIGltcCkiOworICAgICAgICAgICAgICAgIHJldHVybiAidG9KUyhleGVjLCAk
Z2xvYmFsT2JqZWN0LCBKU1NWR1N0YXRpY1BPRFR5cGVXcmFwcGVyV2l0aFBhcmVudDwkbmF0aXZl
VHlwZSwgJGltcGxDbGFzc05hbWU+OjpjcmVhdGUoaW1wLCAmJHtpbXBsQ2xhc3NOYW1lfTo6JGdl
dHRlciwgJiR7aW1wbENsYXNzTmFtZX06OiRzZXR0ZXIpLmdldCgpLCBpbXApIjsKICAgICAgICAg
ICAgIH0KICAgICAgICAgfQogCiAgICAgICAgIGlmICgkaW1wbENsYXNzTmFtZUZvclZhbHVlQ29u
dmVyc2lvbiBlcSAiIikgewogICAgICAgICAgICAgIyBTVkdab29tRXZlbnQgaGFzIG5vIGNvbnRl
eHQoKSBwb2ludGVyLCBhbmQgaXMgYWxzbyBub3QgYW4gU1ZHRWxlbWVudC4KICAgICAgICAgICAg
ICMgVGhpcyBpcyBub3QgYSBwcm9ibGVtLCBiZWNhdXNlIFNWR1pvb21FdmVudCBoYXMgbm8gcmVh
ZC93cml0ZSBwcm9wZXJ0aWVzLgotICAgICAgICAgICAgcmV0dXJuICJ0b0pTKGV4ZWMsIEpTU1ZH
U3RhdGljUE9EVHlwZVdyYXBwZXI8JG5hdGl2ZVR5cGU+OjpjcmVhdGUoJHZhbHVlKS5nZXQoKSwg
MCkiIGlmICRpbXBsQ2xhc3NOYW1lIGVxICJTVkdab29tRXZlbnQiOworICAgICAgICAgICAgcmV0
dXJuICJ0b0pTKGV4ZWMsICRnbG9iYWxPYmplY3QsIEpTU1ZHU3RhdGljUE9EVHlwZVdyYXBwZXI8
JG5hdGl2ZVR5cGU+OjpjcmVhdGUoJHZhbHVlKS5nZXQoKSwgMCkiIGlmICRpbXBsQ2xhc3NOYW1l
IGVxICJTVkdab29tRXZlbnQiOwogCiAgICAgICAgICAgICBpZiAoSXNTVkdUeXBlTmVlZGluZ0Nv
bnRleHRQYXJhbWV0ZXIoJGltcGxDbGFzc05hbWUpKSB7Ci0gICAgICAgICAgICAgICAgcmV0dXJu
ICJ0b0pTKGV4ZWMsIEpTU1ZHU3RhdGljUE9EVHlwZVdyYXBwZXI8JG5hdGl2ZVR5cGU+OjpjcmVh
dGUoJHZhbHVlKS5nZXQoKSwgY2FzdGVkVGhpc09iai0+Y29udGV4dCgpKSIgaWYgJGluRnVuY3Rp
b25DYWxsOwotICAgICAgICAgICAgICAgIHJldHVybiAidG9KUyhleGVjLCBKU1NWR1N0YXRpY1BP
RFR5cGVXcmFwcGVyPCRuYXRpdmVUeXBlPjo6Y3JlYXRlKCR2YWx1ZSkuZ2V0KCksICR0aGlzVmFs
dWUtPmNvbnRleHQoKSkiOworICAgICAgICAgICAgICAgIHJldHVybiAidG9KUyhleGVjLCAkZ2xv
YmFsT2JqZWN0LCBKU1NWR1N0YXRpY1BPRFR5cGVXcmFwcGVyPCRuYXRpdmVUeXBlPjo6Y3JlYXRl
KCR2YWx1ZSkuZ2V0KCksIGNhc3RlZFRoaXNPYmotPmNvbnRleHQoKSkiIGlmICRpbkZ1bmN0aW9u
Q2FsbDsKKyAgICAgICAgICAgICAgICByZXR1cm4gInRvSlMoZXhlYywgJGdsb2JhbE9iamVjdCwg
SlNTVkdTdGF0aWNQT0RUeXBlV3JhcHBlcjwkbmF0aXZlVHlwZT46OmNyZWF0ZSgkdmFsdWUpLmdl
dCgpLCAkdGhpc1ZhbHVlLT5jb250ZXh0KCkpIjsKICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAg
ICAgICAgICAgICAgcmV0dXJuICJ0b0pTKGV4ZWMsIEpTU1ZHU3RhdGljUE9EVHlwZVdyYXBwZXI8
JG5hdGl2ZVR5cGU+OjpjcmVhdGUoJHZhbHVlKS5nZXQoKSwgaW1wKSI7CisgICAgICAgICAgICAg
ICAgcmV0dXJuICJ0b0pTKGV4ZWMsICRnbG9iYWxPYmplY3QsIEpTU1ZHU3RhdGljUE9EVHlwZVdy
YXBwZXI8JG5hdGl2ZVR5cGU+OjpjcmVhdGUoJHZhbHVlKS5nZXQoKSwgaW1wKSI7CiAgICAgICAg
ICAgICB9CiAgICAgICAgIH0gZWxzZSB7ICMgVGhlc2UgY2xhc3NlcywgYWx3YXlzIGhhdmUgYSBt
X2NvbnRleHQgcG9pbnRlciEKLSAgICAgICAgICAgIHJldHVybiAidG9KUyhleGVjLCBKU1NWR0R5
bmFtaWNQT0RUeXBlV3JhcHBlckNhY2hlPCRuYXRpdmVUeXBlLCAkaW1wbENsYXNzTmFtZUZvclZh
bHVlQ29udmVyc2lvbj46Omxvb2t1cE9yQ3JlYXRlV3JhcHBlcihpbXAsICYke2ltcGxDbGFzc05h
bWVGb3JWYWx1ZUNvbnZlcnNpb259OjokZ2V0dGVyLCAmJHtpbXBsQ2xhc3NOYW1lRm9yVmFsdWVD
b252ZXJzaW9ufTo6JHNldHRlcikuZ2V0KCksICR0aGlzVmFsdWUtPmNvbnRleHQoKSkiOworICAg
ICAgICAgICAgcmV0dXJuICJ0b0pTKGV4ZWMsICRnbG9iYWxPYmplY3QsIEpTU1ZHRHluYW1pY1BP
RFR5cGVXcmFwcGVyQ2FjaGU8JG5hdGl2ZVR5cGUsICRpbXBsQ2xhc3NOYW1lRm9yVmFsdWVDb252
ZXJzaW9uPjo6bG9va3VwT3JDcmVhdGVXcmFwcGVyKGltcCwgJiR7aW1wbENsYXNzTmFtZUZvclZh
bHVlQ29udmVyc2lvbn06OiRnZXR0ZXIsICYke2ltcGxDbGFzc05hbWVGb3JWYWx1ZUNvbnZlcnNp
b259Ojokc2V0dGVyKS5nZXQoKSwgJHRoaXNWYWx1ZS0+Y29udGV4dCgpKSI7CiAgICAgICAgIH0K
ICAgICB9CiAKQEAgLTE3NjUsMTggKzE3NjcsMTUgQEAgc3ViIE5hdGl2ZVRvSlNWYWx1ZQogICAg
IHJldHVybiAkdmFsdWUgaWYgJGNvZGVHZW5lcmF0b3ItPklzU1ZHQW5pbWF0ZWRUeXBlKCR0eXBl
KTsKIAogICAgIGlmIChJc1NWR1R5cGVOZWVkaW5nQ29udGV4dFBhcmFtZXRlcigkdHlwZSkpIHsK
LSAgICAgICAgaWYgKElzU1ZHVHlwZU5lZWRpbmdDb250ZXh0UGFyYW1ldGVyKCRpbXBsQ2xhc3NO
YW1lKSkgewotICAgICAgICAgICAgcmV0dXJuICJ0b0pTKGV4ZWMsIFdURjo6Z2V0UHRyKCR2YWx1
ZSksICR0aGlzVmFsdWUtPmNvbnRleHQoKSkiOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAg
ICAgcmV0dXJuICJ0b0pTKGV4ZWMsIFdURjo6Z2V0UHRyKCR2YWx1ZSksIGltcCkiOwotICAgICAg
ICB9CisgICAgICAgIG15ICRjb250ZXh0UHRyID0gSXNTVkdUeXBlTmVlZGluZ0NvbnRleHRQYXJh
bWV0ZXIoJGltcGxDbGFzc05hbWUpID8gIiR0aGlzVmFsdWUtPmNvbnRleHQoKSIgOiAiaW1wIjsK
KyAgICAgICAgcmV0dXJuICJ0b0pTKGV4ZWMsICRnbG9iYWxPYmplY3QsIFdURjo6Z2V0UHRyKCR2
YWx1ZSksICRjb250ZXh0UHRyKSI7CiAgICAgfQogCiAgICAgaWYgKCRzaWduYXR1cmUtPmV4dGVu
ZGVkQXR0cmlidXRlcy0+eyJSZXR1cm5zTmV3In0pIHsgICAgICAgIAotICAgICAgICByZXR1cm4g
InRvSlNOZXdseUNyZWF0ZWQoZXhlYywgV1RGOjpnZXRQdHIoJHZhbHVlKSkiOworICAgICAgICBy
ZXR1cm4gInRvSlNOZXdseUNyZWF0ZWQoZXhlYywgJGdsb2JhbE9iamVjdCwgV1RGOjpnZXRQdHIo
JHZhbHVlKSkiOwogICAgIH0KIAotICAgIHJldHVybiAidG9KUyhleGVjLCBXVEY6OmdldFB0cigk
dmFsdWUpKSI7CisgICAgcmV0dXJuICJ0b0pTKGV4ZWMsICRnbG9iYWxPYmplY3QsIFdURjo6Z2V0
UHRyKCR2YWx1ZSkpIjsKIH0KIAogc3ViIGNlaWxpbmdUb1Bvd2VyT2YyCkBAIC0yMDI3LDEyICsy
MDI2LDEzIEBAIHN1YiBjb25zdHJ1Y3RvckZvcgogICAgIG15ICRpbnRlcmZhY2VOYW1lID0gc2hp
ZnQ7CiAgICAgbXkgJHZpc2libGVDbGFzc05hbWUgPSBzaGlmdDsKICAgICBteSAkY2FuQ29uc3Ry
dWN0ID0gc2hpZnQ7CisgICAgbXkgJGNvbnN0cnVjdG9yQ2xhc3NOYW1lID0gIiR7Y2xhc3NOYW1l
fUNvbnN0cnVjdG9yIjsKIAogbXkgJGltcGxDb250ZW50ID0gPDwgIkVPRiI7Ci1jbGFzcyAke2Ns
YXNzTmFtZX1Db25zdHJ1Y3RvciA6IHB1YmxpYyBET01Db25zdHJ1Y3Rvck9iamVjdCB7CitjbGFz
cyAke2NvbnN0cnVjdG9yQ2xhc3NOYW1lfSA6IHB1YmxpYyBET01Db25zdHJ1Y3Rvck9iamVjdCB7
CiBwdWJsaWM6Ci0gICAgJHtjbGFzc05hbWV9Q29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGVjLCBK
U0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQotICAgICAgICA6IERPTUNvbnN0cnVjdG9y
T2JqZWN0KCR7Y2xhc3NOYW1lfUNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUoZ2xvYmFsT2Jq
ZWN0LT5vYmplY3RQcm90b3R5cGUoKSksIGdsb2JhbE9iamVjdCkKKyAgICAke2NvbnN0cnVjdG9y
Q2xhc3NOYW1lfShFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QpCisgICAgICAgIDogRE9NQ29uc3RydWN0b3JPYmplY3QoJHtjb25zdHJ1Y3RvckNsYXNzTmFt
ZX06OmNyZWF0ZVN0cnVjdHVyZShnbG9iYWxPYmplY3QtPm9iamVjdFByb3RvdHlwZSgpKSwgZ2xv
YmFsT2JqZWN0KQogICAgIHsKICAgICAgICAgcHV0RGlyZWN0KGV4ZWMtPnByb3BlcnR5TmFtZXMo
KS5wcm90b3R5cGUsICR7cHJvdG9DbGFzc05hbWV9OjpzZWxmKGV4ZWMsIGdsb2JhbE9iamVjdCks
IE5vbmUpOwogICAgIH0KQEAgLTIwNDgsMTMgKzIwNDgsMTMgQEAgRU9GCiAKICAgICBpZiAoJGNh
bkNvbnN0cnVjdCkgewogJGltcGxDb250ZW50IC49IDw8ICJFT0YiOwotICAgIHN0YXRpYyBKU09i
amVjdCogY29uc3RydWN0KEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqLCBjb25zdCBBcmdMaXN0
JikKKyAgICBzdGF0aWMgSlNPYmplY3QqIGNvbnN0cnVjdCR7aW50ZXJmYWNlTmFtZX0oRXhlY1N0
YXRlKiBleGVjLCBKU09iamVjdCogY29uc3RydWN0b3IsIGNvbnN0IEFyZ0xpc3QmKQogICAgIHsK
LSAgICAgICAgcmV0dXJuIGFzT2JqZWN0KHRvSlMoZXhlYywgJHtpbnRlcmZhY2VOYW1lfTo6Y3Jl
YXRlKCkpKTsKKyAgICAgICAgcmV0dXJuIGFzT2JqZWN0KHRvSlMoZXhlYywgc3RhdGljX2Nhc3Q8
JHtjb25zdHJ1Y3RvckNsYXNzTmFtZX0qPihjb25zdHJ1Y3RvciktPmdsb2JhbE9iamVjdCgpLCAk
e2ludGVyZmFjZU5hbWV9OjpjcmVhdGUoKSkpOwogICAgIH0KICAgICB2aXJ0dWFsIENvbnN0cnVj
dFR5cGUgZ2V0Q29uc3RydWN0RGF0YShDb25zdHJ1Y3REYXRhJiBjb25zdHJ1Y3REYXRhKQogICAg
IHsKLSAgICAgICAgY29uc3RydWN0RGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjb25zdHJ1Y3Q7Cisg
ICAgICAgIGNvbnN0cnVjdERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY29uc3RydWN0JHtpbnRlcmZh
Y2VOYW1lfTsKICAgICAgICAgcmV0dXJuIENvbnN0cnVjdFR5cGVIb3N0OwogICAgIH0KIEVPRgpA
QCAtMjA2MywxNiArMjA2MywxNiBAQCBFT0YKICRpbXBsQ29udGVudCAuPSA8PCAiRU9GIjsKIH07
CiAKLWNvbnN0IENsYXNzSW5mbyAke2NsYXNzTmFtZX1Db25zdHJ1Y3Rvcjo6c19pbmZvID0geyAi
JHt2aXNpYmxlQ2xhc3NOYW1lfUNvbnN0cnVjdG9yIiwgMCwgJiR7Y2xhc3NOYW1lfUNvbnN0cnVj
dG9yVGFibGUsIDAgfTsKK2NvbnN0IENsYXNzSW5mbyAke2NvbnN0cnVjdG9yQ2xhc3NOYW1lfTo6
c19pbmZvID0geyAiJHt2aXNpYmxlQ2xhc3NOYW1lfUNvbnN0cnVjdG9yIiwgMCwgJiR7Y29uc3Ry
dWN0b3JDbGFzc05hbWV9VGFibGUsIDAgfTsKIAotYm9vbCAke2NsYXNzTmFtZX1Db25zdHJ1Y3Rv
cjo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYg
cHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCitib29sICR7Y29uc3RydWN0b3JDbGFz
c05hbWV9OjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKLSAgICByZXR1cm4gZ2V0
U3RhdGljVmFsdWVTbG90PCR7Y2xhc3NOYW1lfUNvbnN0cnVjdG9yLCBET01PYmplY3Q+KGV4ZWMs
ICYke2NsYXNzTmFtZX1Db25zdHJ1Y3RvclRhYmxlLCB0aGlzLCBwcm9wZXJ0eU5hbWUsIHNsb3Qp
OworICAgIHJldHVybiBnZXRTdGF0aWNWYWx1ZVNsb3Q8JHtjb25zdHJ1Y3RvckNsYXNzTmFtZX0s
IERPTU9iamVjdD4oZXhlYywgJiR7Y29uc3RydWN0b3JDbGFzc05hbWV9VGFibGUsIHRoaXMsIHBy
b3BlcnR5TmFtZSwgc2xvdCk7CiB9CiAKIEVPRgogCi0gICAgJGltcGxKU0NJbmNsdWRleyJKU051
bWJlckNlbGwuaCJ9ID0gMTsKKyAgICAkaW1wbEpTQ0luY2x1ZGV7IkpTTnVtYmVyQ2VsbC5oIn0g
PSAxOyAjIEZJWE1FOiBXaGF0IGlzIHRoaXMgZm9yPwogCiAgICAgcmV0dXJuICRpbXBsQ29udGVu
dDsKIH0=
</data>
<flag name="review"
          id="17704"
          type_id="1"
          status="+"
          setter="abarth"
    />
          </attachment>
      

    </bug>

</bugzilla>