<?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>164644</bug_id>
          
          <creation_ts>2016-11-11 11:05:43 -0800</creation_ts>
          <short_desc>WorkerGlobalScope&apos;s indexedDB property should be on the prototype, not the instance</short_desc>
          <delta_ts>2016-11-14 08:53:57 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Bindings</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>164713</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>beidson</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>ggaren</cc>
    
    <cc>ossy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1250299</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-11-11 11:05:43 -0800</bug_when>
    <thetext>WorkerGlobalScope&apos;s indexedDB property should be on the prototype, not the instance.

Causing failure on http://w3c-test.org/IndexedDB/interfaces.worker.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1250304</commentid>
    <comment_count>1</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-11-11 11:10:58 -0800</bug_when>
    <thetext>This is because WorkerGlobalScope is not a [Global] object, DedicatedWorkerGlobalScope is. Therefore, WorkerGlobalScope should have its properties / operations on the prototype, except for the constructors (such as IDBDatabase).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1250399</commentid>
    <comment_count>2</comment_count>
      <attachid>294534</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-11-11 14:07:57 -0800</bug_when>
    <thetext>Created attachment 294534
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1250401</commentid>
    <comment_count>3</comment_count>
      <attachid>294535</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-11-11 14:12:04 -0800</bug_when>
    <thetext>Created attachment 294535
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1250403</commentid>
    <comment_count>4</comment_count>
      <attachid>294535</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-11-11 14:13:53 -0800</bug_when>
    <thetext>Comment on attachment 294535
Patch

LGTM once all the little bot bubbles are green!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1250428</commentid>
    <comment_count>5</comment_count>
      <attachid>294535</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-11-11 14:56:33 -0800</bug_when>
    <thetext>Comment on attachment 294535
Patch

Clearing flags on attachment: 294535

Committed r208613: &lt;http://trac.webkit.org/changeset/208613&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1250429</commentid>
    <comment_count>6</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-11-11 14:56:38 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1250982</commentid>
    <comment_count>7</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2016-11-14 08:53:57 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; Comment on attachment 294535 [details]
&gt; Patch
&gt; 
&gt; Clearing flags on attachment: 294535
&gt; 
&gt; Committed r208613: &lt;http://trac.webkit.org/changeset/208613&gt;

It broke the !ENABLE(FETCH_API) build, I filed a bug report
about this regression, see bug164713 for details.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>294534</attachid>
            <date>2016-11-11 14:07:57 -0800</date>
            <delta_ts>2016-11-11 14:12:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-164644-20161111140343.patch</filename>
            <type>text/plain</type>
            <size>76668</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA4NTY5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDUyMDA0YmZjMWM5MDFi
Yjk3ZDUxODJlNzA3ZDQwOTQxOGVkMjQ3Zi4uOGIzMjRiNTQxMTI3ZjY1NjQ3YjFmMjBkNTgyMDhk
NmVlMjUxNWYwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzMSBAQAorMjAxNi0xMS0xMSAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFdvcmtlckdsb2JhbFNjb3Bl
J3MgaW5kZXhlZERCIHByb3BlcnR5IHNob3VsZCBiZSBvbiB0aGUgcHJvdG90eXBlLCBub3QgdGhl
IGluc3RhbmNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNjQ2NDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBXb3JrZXJHbG9iYWxTY29wZSdzIGluZGV4ZWREQiBwcm9wZXJ0eSBzaG91bGQgYmUgb24gdGhl
IHByb3RvdHlwZSwgbm90IHRoZSBpbnN0YW5jZQorICAgICAgICBhcyBwZXI6CisgICAgICAgIC0g
aHR0cHM6Ly9oZXljYW0uZ2l0aHViLmlvL3dlYmlkbC8jZXMtYXR0cmlidXRlcworCisgICAgICAg
IFRoaXMgaXMgYmVjYXVzZSBXb3JrZXJHbG9iYWxTY29wZSBpcyBub3QgbWFya2VkIGFzIFtHbG9i
YWxdIG9yIFtQcmltYXJ5R2xvYmFsXSBpbgorICAgICAgICB0aGUgSURMOgorICAgICAgICAtIGh0
dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3dvcmtlcnMuaHRtbCN0aGUtd29y
a2VyZ2xvYmFsc2NvcGUtY29tbW9uLWludGVyZmFjZQorCisgICAgICAgIERlZGljYXRlZFdvcmtl
ckdsb2JhbFNjb3BlIGlzIHRoZSBvbmUgdGhhdCBpcyBtYXJrZWQgYXMgW0dsb2JhbF0gYW5kIHRo
YXQgc2hvdWxkCisgICAgICAgIGhhdmUgaXRzIGF0dHJpYnV0ZXMgb24gdGhlIGluc3RhbmNlOgor
ICAgICAgICAtIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3dvcmtlcnMu
aHRtbCNkZWRpY2F0ZWQtd29ya2Vycy1hbmQtdGhlLWRlZGljYXRlZHdvcmtlcmdsb2JhbHNjb3Bl
LWludGVyZmFjZQorCisgICAgICAgIFdlIHdlcmUgZ2V0dGluZyB0aGlzIG1vc3RseSByaWdodCwg
ZXhjZXB0IGZvciBydW50aW1lLWVuYWJsZWQgYXR0cmlidXRlcyAvIG9wZXJhdGlvbnMKKyAgICAg
ICAgd2hpY2ggd291bGQgZW5kIHVwIG9uIHRoZSBpbnN0YW5jZSBpbnN0ZWFkIG9mIHRoZSBwcm90
b3R5cGUuIFRoaXMgcGF0Y2ggYWRkcyBzdXBwb3J0CisgICAgICAgIGZvciBbUHJpbWFyeUdsb2Jh
bF0gLyBbR2xvYmFsXSBJREwgZXh0ZW5kZWQgYXR0cmlidXRlcyB3aGljaCBkZXRlcm1pbmUgdGhl
IGxvY2F0aW9uCisgICAgICAgIG9mIHByb3BlcnRpZXMuIEl0IGFsc28gaW1wcm92ZXMgc3VwcG9y
dCBmb3IgcnVudGltZS1lbmFibGVkIHByb3BlcnRpZXMgc28gdGhhdCB0aGV5CisgICAgICAgIGNh
biBub3cgYmUgb24gZWl0aGVyIHRoZSBpbnN0YW5jZSBvciB0aGUgcHJvdG90eXBlLCBleGFjdGx5
IGFzIGlmIHRoZXkgd2VyZSBub3QKKyAgICAgICAgcnVudGltZWQtZW5hYmxlZC4KKworICAgICAg
ICBUaGlzIGdpdmVzIHVzIDEwMCUgcGFzcyByYXRlIG9uOgorICAgICAgICAtIGh0dHA6Ly93M2Mt
dGVzdC5vcmcvSW5kZXhlZERCL2ludGVyZmFjZXMud29ya2VyLmh0bWwKKworICAgICAgICBObyBu
ZXcgdGVzdHMsIHVwZGF0ZWQgZXhpc3RpbmcgdGVzdC4KKworICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAoSXNHbG9iYWxPclByaW1hcnlHbG9i
YWxJbnRlcmZhY2UpOgorICAgICAgICAoSW50ZXJmYWNlUmVxdWlyZXNBdHRyaWJ1dGVzT25JbnN0
YW5jZSk6CisgICAgICAgIChBdHRyaWJ1dGVTaG91bGRCZU9uSW5zdGFuY2UpOgorICAgICAgICAo
T3BlcmF0aW9uU2hvdWxkQmVPbkluc3RhbmNlKToKKyAgICAgICAgKEdlbmVyYXRlSGVhZGVyKToK
KyAgICAgICAgKEdlbmVyYXRlUHJvcGVydGllc0hhc2hUYWJsZSk6CisgICAgICAgIChHZW5lcmF0
ZUltcGxlbWVudGF0aW9uKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0
ZXMudHh0OgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU0ludGVyZmFjZU5h
bWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNJbnRlcmZhY2VOYW1lOjpmaW5pc2hDcmVhdGlv
bik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTSW50ZXJmYWNlTmFtZS5o
OgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVET01PYmpl
Y3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0QWN0aXZlRE9NT2JqZWN0OjpmaW5pc2hD
cmVhdGlvbik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEFjdGl2
ZURPTU9iamVjdC5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RD
RVJlYWN0aW9ucy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RDRVJlYWN0aW9uczo6Zmlu
aXNoQ3JlYXRpb24pOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RD
RVJlYWN0aW9ucy5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RD
RVJlYWN0aW9uc1N0cmluZ2lmaWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdENFUmVh
Y3Rpb25zU3RyaW5naWZpZXI6OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKiBiaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllci5oOgorICAgICAgICAq
IGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1
Y3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25z
dHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3Rvci5oOgorICAgICAgICAqIGJp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21Db25zdHJ1Y3RvcldpdGhOb0ludGVy
ZmFjZU9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RDdXN0b21Db25zdHJ1Y3Rv
cldpdGhOb0ludGVyZmFjZU9iamVjdDo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAqIGJpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21Db25zdHJ1Y3RvcldpdGhOb0ludGVyZmFj
ZU9iamVjdC5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0
b21OYW1lZEdldHRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RDdXN0b21OYW1lZEdl
dHRlcjo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RDdXN0b21OYW1lZEdldHRlci5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RET01KSVQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0RE9NSklU
OjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdERPTUpJVC5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RF
dmVudENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdEV2ZW50Q29uc3Ry
dWN0b3I6OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvci5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RFdmVudFRhcmdldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RF
dmVudFRhcmdldDo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RFdmVudFRhcmdldC5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RFeGNlcHRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0RXhj
ZXB0aW9uOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdEV4Y2VwdGlvbi5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVz
dEdlbmVyYXRlSXNSZWFjaGFibGU6OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKiBiaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZS5oOgorICAgICAgICAq
IGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RHbG9iYWxPYmplY3QuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SlNUZXN0R2xvYmFsT2JqZWN0OjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAg
ICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdsb2JhbE9iamVjdC5oOgorICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SlNUZXN0SW50ZXJmYWNlOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICog
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5oOgorICAgICAgICAqIGJp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZTo6
ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZS5oOgorICAgICAgICAqIGJpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RJdGVyYWJsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RJ
dGVyYWJsZTo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RJdGVyYWJsZS5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rl
c3RKU0J1aWx0aW5Db25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAqIGJpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3Rvci5oOgorICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI6OmZp
bmlzaENyZWF0aW9uKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3ROYW1lZENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVz
dE5hbWVkQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKiBiaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvci5oOgorICAgICAgICAqIGJpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpT
VGVzdE5vZGU6OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0Tm9kZS5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3ROb25kZXRlcm1pbmlzdGljLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdE5vbmRl
dGVybWluaXN0aWM6OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0Tm9uZGV0ZXJtaW5pc3RpYy5oOgorICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0T2Jq
OjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE9iai5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVy
bG9hZGVkQ29uc3RydWN0b3JzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdE92ZXJsb2Fk
ZWRDb25zdHJ1Y3RvcnM6OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5oOgorICAgICAgICAqIGJp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNl
cXVlbmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3Rv
cnNXaXRoU2VxdWVuY2U6OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZS5oOgor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVycmlkZUJ1aWx0aW5z
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdE92ZXJyaWRlQnVpbHRpbnM6OmZpbmlzaENy
ZWF0aW9uKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcnJp
ZGVCdWlsdGlucy5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RT
ZXJpYWxpemF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdFNlcmlhbGl6YXRpb246
OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0U2VyaWFsaXphdGlvbi5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlOjpmaW5pc2hDcmVhdGlvbik6
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZUludGVyZmFjZS5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RUeXBlZGVmcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RUeXBlZGVmczo6Zmlu
aXNoQ3JlYXRpb24pOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RU
eXBlZGVmcy5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0R2xvYmFsT2Jq
ZWN0LmlkbDoKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5pZGw6CisgICAgICAgICogd29ya2Vy
cy9EZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZS5pZGw6CisKIDIwMTYtMTEtMTAgIEJyYWR5IEVp
ZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCiAgICAgICAgIEluZGV4ZWREQiAyLjAgU3VwcG9y
dCB0aGUgSURCRGF0YWJhc2Uub25jbG9zZSBldmVudC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KaW5kZXggZTlkMjE3ZTIxNzI0NDgz
NTAyMWRjMGJkZDgxNWY0NDI0NmE1NGY1Zi4uN2Q5Zjc3Yjc3OTU2OTFhODI2ZTAyZmQwMTM0YmZl
OGViNjg3MmZkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9D
b2RlR2VuZXJhdG9ySlMucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9D
b2RlR2VuZXJhdG9ySlMucG0KQEAgLTY0OCw2ICs2NDgsMTMgQEAgc3ViIEhhc0NvbXBsZXhHZXRP
d25Qcm9wZXJ0eQogICAgICAgICB8fCBJbnN0YW5jZU92ZXJyaWRlc0dldE93blByb3BlcnR5U2xv
dCgkaW50ZXJmYWNlKTsKIH0KIAorc3ViIElzR2xvYmFsT3JQcmltYXJ5R2xvYmFsSW50ZXJmYWNl
Cit7CisgICAgbXkgJGludGVyZmFjZSA9IHNoaWZ0OworCisgICAgcmV0dXJuICRpbnRlcmZhY2Ut
PmV4dGVuZGVkQXR0cmlidXRlcy0+e0dsb2JhbH0gfHwgJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRy
aWJ1dGVzLT57UHJpbWFyeUdsb2JhbH07Cit9CisKIHN1YiBJbnRlcmZhY2VSZXF1aXJlc0F0dHJp
YnV0ZXNPbkluc3RhbmNlCiB7CiAgICAgbXkgJGludGVyZmFjZSA9IHNoaWZ0OwpAQCAtNjYwLDgg
KzY2Nyw3IEBAIHN1YiBJbnRlcmZhY2VSZXF1aXJlc0F0dHJpYnV0ZXNPbkluc3RhbmNlCiAgICAg
IyBGSVhNRTogV2Ugc2hvdWxkIGJlIGFibGUgdG8gZHJvcCB0aGlzIG9uY2UgPHJkYXI6Ly9wcm9i
bGVtLzI0NDY2MDk3PiBpcyBmaXhlZC4KICAgICByZXR1cm4gMSBpZiAkaW50ZXJmYWNlLT5pc0V4
Y2VwdGlvbjsKIAotICAgICMgRklYTUU6IEFkZCBzdXBwb3J0IGZvciBbUHJpbWFyeUdsb2JhbF0g
LyBbR2xvYmFsXS4KLSAgICByZXR1cm4gMSBpZiBJc0RPTUdsb2JhbE9iamVjdCgkaW50ZXJmYWNl
KSAmJiAkaW50ZXJmYWNlLT50eXBlLT5uYW1lIG5lICJXb3JrZXJHbG9iYWxTY29wZSI7CisgICAg
cmV0dXJuIDEgaWYgSXNHbG9iYWxPclByaW1hcnlHbG9iYWxJbnRlcmZhY2UoJGludGVyZmFjZSk7
CiAKICAgICByZXR1cm4gMDsKIH0KQEAgLTY3MSw5ICs2NzcsNiBAQCBzdWIgQXR0cmlidXRlU2hv
dWxkQmVPbkluc3RhbmNlCiAgICAgbXkgJGludGVyZmFjZSA9IHNoaWZ0OwogICAgIG15ICRhdHRy
aWJ1dGUgPSBzaGlmdDsKIAotICAgICMgRklYTUU6IFRoZSBiaW5kaW5ncyBnZW5lcmF0b3IgZG9l
cyBub3Qgc3VwcG9ydCBwdXR0aW5nIHJ1bnRpbWUtZW5hYmxlZCBhdHRyaWJ1dGVzIG9uIHRoZSBp
bnN0YW5jZSB5ZXQgKGV4Y2VwdCBmb3IgZ2xvYmFsIG9iamVjdHMpLgotICAgIHJldHVybiAwIGlm
ICRhdHRyaWJ1dGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0VuYWJsZWRBdFJ1bnRpbWV9ICYmICFJ
c0RPTUdsb2JhbE9iamVjdCgkaW50ZXJmYWNlKTsKLQogICAgIHJldHVybiAxIGlmIEludGVyZmFj
ZVJlcXVpcmVzQXR0cmlidXRlc09uSW5zdGFuY2UoJGludGVyZmFjZSk7CiAgICAgcmV0dXJuIDEg
aWYgJGNvZGVHZW5lcmF0b3ItPklzQ29uc3RydWN0b3JUeXBlKCRhdHRyaWJ1dGUtPnR5cGUpOwog
CkBAIC02OTYsOCArNjk5LDcgQEAgc3ViIE9wZXJhdGlvblNob3VsZEJlT25JbnN0YW5jZQogICAg
IG15ICRpbnRlcmZhY2UgPSBzaGlmdDsKICAgICBteSAkZnVuY3Rpb24gPSBzaGlmdDsKIAotICAg
ICMgRklYTUU6IEFkZCBzdXBwb3J0IGZvciBbUHJpbWFyeUdsb2JhbF0gLyBbR2xvYmFsXS4KLSAg
ICByZXR1cm4gMSBpZiBJc0RPTUdsb2JhbE9iamVjdCgkaW50ZXJmYWNlKSAmJiAkaW50ZXJmYWNl
LT50eXBlLT5uYW1lIG5lICJXb3JrZXJHbG9iYWxTY29wZSI7CisgICAgcmV0dXJuIDEgaWYgSXNH
bG9iYWxPclByaW1hcnlHbG9iYWxJbnRlcmZhY2UoJGludGVyZmFjZSk7CiAKICAgICAjIEZJWE1F
OiBUaGUgYmluZGluZ3MgZ2VuZXJhdG9yIGRvZXMgbm90IHN1cHBvcnQgcHV0dGluZyBydW50aW1l
LWVuYWJsZWQgb3BlcmF0aW9ucyBvbiB0aGUgaW5zdGFuY2UgeWV0IChleGNlcHQgZm9yIGdsb2Jh
bCBvYmplY3RzKS4KICAgICByZXR1cm4gMCBpZiAkZnVuY3Rpb24tPmV4dGVuZGVkQXR0cmlidXRl
cy0+e0VuYWJsZWRBdFJ1bnRpbWV9OwpAQCAtMTY3NCwxOSArMTY3NiwxNCBAQCBzdWIgR2VuZXJh
dGVIZWFkZXIKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICAkY2xhc3NOYW1lKEpT
Qzo6U3RydWN0dXJlKiwgSlNET01HbG9iYWxPYmplY3QmKTtcblxuIik7CiAgICAgIH0gZWxzZSB7
CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgJGNsYXNzTmFtZShKU0M6OlN0cnVj
dHVyZSosIEpTRE9NR2xvYmFsT2JqZWN0JiwgUmVmPCRpbXBsVHlwZT4mJik7XG5cbiIpOwotICAg
ICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpW
TSYgdm0pXG4iKTsKLSAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICB7XG4iKTsKLSAg
ICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24o
dm0pO1xuIik7Ci0gICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgICAgIEFTU0VSVChp
bmhlcml0cyhpbmZvKCkpKTtcbiIpOwotICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAg
IH1cblxuIik7CiAgICAgfQogCi0gICAgaWYgKElzRE9NR2xvYmFsT2JqZWN0KCRpbnRlcmZhY2Up
KSB7Ci0gICAgICAgIGlmICgkaW50ZXJmYWNlTmFtZSBlcSAiRE9NV2luZG93IikgewotICAgICAg
ICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6
Vk0mLCBKU0RPTVdpbmRvd1NoZWxsKik7XG4iKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAg
ICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZN
JiwgSlNDOjpKU1Byb3h5Kik7XG4iKTsKLSAgICAgICAgfQorICAgIGlmICgkaW50ZXJmYWNlTmFt
ZSBlcSAiRE9NV2luZG93IikgeworICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHZv
aWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYsIEpTRE9NV2luZG93U2hlbGwqKTtcbiIpOworICAg
IH0gZWxzaWYgKCRjb2RlR2VuZXJhdG9yLT5Jbmhlcml0c0ludGVyZmFjZSgkaW50ZXJmYWNlLCAi
V29ya2VyR2xvYmFsU2NvcGUiKSkgeworICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAg
IHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYsIEpTQzo6SlNQcm94eSopO1xuIik7CisgICAg
fSBlbHNlIHsKKyAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICB2b2lkIGZpbmlzaENy
ZWF0aW9uKEpTQzo6Vk0mKTtcbiIpOwogICAgIH0KIAogICAgIHB1c2goQGhlYWRlckNvbnRlbnQs
ICIgICAgdm9pZCBpbmRleFNldHRlcihKU0M6OkV4ZWNTdGF0ZSosIHVuc2lnbmVkIGluZGV4LCBK
U0M6OkpTVmFsdWUpO1xuIikgaWYgJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Q3Vz
dG9tSW5kZXhlZFNldHRlcn07CkBAIC0xODg0LDcgKzE4ODEsNyBAQCBzdWIgR2VuZXJhdGVQcm9w
ZXJ0aWVzSGFzaFRhYmxlCiAgICAgICAgIG5leHQgaWYgQXR0cmlidXRlU2hvdWxkQmVPbkluc3Rh
bmNlKCRpbnRlcmZhY2UsICRhdHRyaWJ1dGUpICE9ICRpc0luc3RhbmNlOwogCiAgICAgICAgICMg
R2xvYmFsIG9iamVjdHMgYWRkIFJ1bnRpbWVFbmFibGVkIGF0dHJpYnV0ZXMgYWZ0ZXIgY3JlYXRp
b24gc28gZG8gbm90IGFkZCB0aGVtIHRvIHRoZSBzdGF0aWMgdGFibGUuCi0gICAgICAgIGlmIChJ
c0RPTUdsb2JhbE9iamVjdCgkaW50ZXJmYWNlKSAmJiAkYXR0cmlidXRlLT5leHRlbmRlZEF0dHJp
YnV0ZXMtPntFbmFibGVkQXRSdW50aW1lfSkgeworICAgICAgICBpZiAoJGlzSW5zdGFuY2UgJiYg
JGF0dHJpYnV0ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57RW5hYmxlZEF0UnVudGltZX0pIHsKICAg
ICAgICAgICAgICRwcm9wZXJ0eUNvdW50IC09IDE7CiAgICAgICAgICAgICBuZXh0OwogICAgICAg
ICB9CkBAIC0xOTE0LDcgKzE5MTEsNiBAQCBzdWIgR2VuZXJhdGVQcm9wZXJ0aWVzSGFzaFRhYmxl
CiAgICAgICAgICRjb25kaXRpb25hbHMtPnskbmFtZX0gPSAkY29uZGl0aW9uYWwgaWYgJGNvbmRp
dGlvbmFsOwogCiAgICAgICAgIGlmICgkYXR0cmlidXRlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntF
bmFibGVkQXRSdW50aW1lfSkgewotICAgICAgICAgICAgZGllICJXZSBjdXJyZW50bHkgZG8gbm90
IHN1cHBvcnQgW0VuYWJsZWRBdFJ1bnRpbWVdIGF0dHJpYnV0ZXMgb24gdGhlIGluc3RhbmNlIChl
eGNlcHQgZm9yIGdsb2JhbCBvYmplY3RzKS4iIGlmICRpc0luc3RhbmNlOwogICAgICAgICAgICAg
cHVzaChAJHJ1bnRpbWVFbmFibGVkQXR0cmlidXRlcywgJGF0dHJpYnV0ZSk7CiAgICAgICAgIH0K
ICAgICB9CkBAIC0xOTMwLDcgKzE5MjYsNyBAQCBzdWIgR2VuZXJhdGVQcm9wZXJ0aWVzSGFzaFRh
YmxlCiAgICAgICAgIG5leHQgaWYgJGZ1bmN0aW9uLT5uYW1lIGVxICJbU3ltYm9sLkl0ZXJhdG9y
XSI7CiAKICAgICAgICAgIyBHbG9iYWwgb2JqZWN0cyBhZGQgUnVudGltZUVuYWJsZWQgb3BlcmF0
aW9ucyBhZnRlciBjcmVhdGlvbiBzbyBkbyBub3QgYWRkIHRoZW0gdG8gdGhlIHN0YXRpYyB0YWJs
ZS4KLSAgICAgICAgaWYgKElzRE9NR2xvYmFsT2JqZWN0KCRpbnRlcmZhY2UpICYmICRmdW5jdGlv
bi0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57RW5hYmxlZEF0UnVudGltZX0pIHsKKyAgICAgICAgaWYg
KCRpc0luc3RhbmNlICYmICRmdW5jdGlvbi0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57RW5hYmxlZEF0
UnVudGltZX0pIHsKICAgICAgICAgICAgICRwcm9wZXJ0eUNvdW50IC09IDE7CiAgICAgICAgICAg
ICBuZXh0OwogICAgICAgICB9CkBAIC0xOTU4LDcgKzE5NTQsNiBAQCBzdWIgR2VuZXJhdGVQcm9w
ZXJ0aWVzSGFzaFRhYmxlCiAgICAgICAgICRjb25kaXRpb25hbHMtPnskbmFtZX0gPSAkY29uZGl0
aW9uYWwgaWYgJGNvbmRpdGlvbmFsOwogCiAgICAgICAgIGlmICgkZnVuY3Rpb24tPmV4dGVuZGVk
QXR0cmlidXRlcy0+e0VuYWJsZWRBdFJ1bnRpbWV9KSB7Ci0gICAgICAgICAgICBkaWUgIldlIGN1
cnJlbnRseSBkbyBub3Qgc3VwcG9ydCBbRW5hYmxlZEF0UnVudGltZV0gb3BlcmF0aW9ucyBvbiB0
aGUgaW5zdGFuY2UgKGV4Y2VwdCBmb3IgZ2xvYmFsIG9iamVjdHMpLiIgaWYgJGlzSW5zdGFuY2U7
CiAgICAgICAgICAgICBwdXNoKEAkcnVudGltZUVuYWJsZWRGdW5jdGlvbnMsICRmdW5jdGlvbik7
CiAgICAgICAgIH0KICAgICB9CkBAIC0yOTEyLDcgKzI5MDcsNyBAQCBzdWIgR2VuZXJhdGVJbXBs
ZW1lbnRhdGlvbgogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgImNvbnN0IENsYXNzSW5mbyAk
e2NsYXNzTmFtZX1Qcm90b3R5cGU6OnNfaW5mbyA9IHsgXCIke3Zpc2libGVJbnRlcmZhY2VOYW1l
fVByb3RvdHlwZVwiLCAmQmFzZTo6c19pbmZvLCAmJHtjbGFzc05hbWV9UHJvdG90eXBlVGFibGUs
IENSRUFURV9NRVRIT0RfVEFCTEUoJHtjbGFzc05hbWV9UHJvdG90eXBlKSB9O1xuXG4iKTsKICAg
ICB9CiAKLSAgICBpZiAoUHJvdG90eXBlSGFzU3RhdGljUHJvcGVydHlUYWJsZSgkaW50ZXJmYWNl
KSAmJiAhSXNET01HbG9iYWxPYmplY3QoJGludGVyZmFjZSkpIHsKKyAgICBpZiAoUHJvdG90eXBl
SGFzU3RhdGljUHJvcGVydHlUYWJsZSgkaW50ZXJmYWNlKSAmJiAhSXNHbG9iYWxPclByaW1hcnlH
bG9iYWxJbnRlcmZhY2UoJGludGVyZmFjZSkpIHsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICJ2b2lkICR7Y2xhc3NOYW1lfVByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtKVxuIik7
CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAie1xuIik7CiAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAiICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtKTtcbiIpOwpAQCAtMzAwMSw3NSAr
Mjk5Niw4MSBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIn1cblxuIik7CiAgICAgfQogCi0gICAgaWYgKElzRE9NR2xvYmFsT2JqZWN0KCRp
bnRlcmZhY2UpKSB7Ci0gICAgICAgIGlmICgkaW50ZXJmYWNlTmFtZSBlcSAiRE9NV2luZG93Iikg
eworICAgIGlmICgkaW50ZXJmYWNlTmFtZSBlcSAiRE9NV2luZG93IikgewogICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICJ2b2lkICR7Y2xhc3NOYW1lfTo6ZmluaXNoQ3JlYXRpb24oVk0m
IHZtLCBKU0RPTVdpbmRvd1NoZWxsKiBzaGVsbClcbiIpOwogICAgICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICJ7XG4iKTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIEJh
c2U6OmZpbmlzaENyZWF0aW9uKHZtLCBzaGVsbCk7XG5cbiIpOwotICAgICAgICB9IGVsc2Ugewor
ICAgIH0gZWxzaWYgKCRjb2RlR2VuZXJhdG9yLT5Jbmhlcml0c0ludGVyZmFjZSgkaW50ZXJmYWNl
LCAiV29ya2VyR2xvYmFsU2NvcGUiKSkgewogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICJ2b2lkICR7Y2xhc3NOYW1lfTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU1Byb3h5KiBwcm94
eSlcbiIpOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsKICAgICAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtLCBwcm94
eSk7XG5cbiIpOwotICAgICAgICB9Ci0gICAgICAgICMgU3VwcG9ydCBmb3IgUnVudGltZUVuYWJs
ZWQgYXR0cmlidXRlcyBvbiBnbG9iYWwgb2JqZWN0cy4KLSAgICAgICAgZm9yZWFjaCBteSAkYXR0
cmlidXRlIChAeyRpbnRlcmZhY2UtPmF0dHJpYnV0ZXN9KSB7Ci0gICAgICAgICAgICBuZXh0IHVu
bGVzcyAkYXR0cmlidXRlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntFbmFibGVkQXRSdW50aW1lfTsK
KyAgICB9IGVsc2UgeworICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgInZvaWQgJHtjbGFzc05h
bWV9OjpmaW5pc2hDcmVhdGlvbihWTSYgdm0pXG4iKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAie1xuIik7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBCYXNl
OjpmaW5pc2hDcmVhdGlvbih2bSk7XG5cbiIpOworICAgIH0KIAotICAgICAgICAgICAgQWRkVG9J
bXBsSW5jbHVkZXMoIlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIpOwotICAgICAgICAgICAgbXkg
JGNvbmRpdGlvbmFsU3RyaW5nID0gJGNvZGVHZW5lcmF0b3ItPkdlbmVyYXRlQ29uZGl0aW9uYWxT
dHJpbmcoJGF0dHJpYnV0ZSk7Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiNpZiAk
e2NvbmRpdGlvbmFsU3RyaW5nfVxuIikgaWYgJGNvbmRpdGlvbmFsU3RyaW5nOwotICAgICAgICAg
ICAgbXkgJGVuYWJsZV9mdW5jdGlvbiA9IEdldFJ1bnRpbWVFbmFibGVGdW5jdGlvbk5hbWUoJGF0
dHJpYnV0ZSk7Ci0gICAgICAgICAgICBteSAkYXR0cmlidXRlTmFtZSA9ICRhdHRyaWJ1dGUtPm5h
bWU7Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAoJHtlbmFibGVfZnVu
Y3Rpb259KCkpIHtcbiIpOwotICAgICAgICAgICAgbXkgJGdldHRlciA9IEdldEF0dHJpYnV0ZUdl
dHRlck5hbWUoJGludGVyZmFjZSwgJGNsYXNzTmFtZSwgJGF0dHJpYnV0ZSk7Ci0gICAgICAgICAg
ICBteSAkc2V0dGVyID0gSXNSZWFkb25seSgkYXR0cmlidXRlKSA/ICJudWxscHRyIiA6IEdldEF0
dHJpYnV0ZVNldHRlck5hbWUoJGludGVyZmFjZSwgJGNsYXNzTmFtZSwgJGF0dHJpYnV0ZSk7Ci0g
ICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgYXV0byogY3VzdG9tR2V0dGVy
U2V0dGVyID0gQ3VzdG9tR2V0dGVyU2V0dGVyOjpjcmVhdGUodm0sICRnZXR0ZXIsICRzZXR0ZXIp
O1xuIik7Ci0gICAgICAgICAgICBteSAkanNjQXR0cmlidXRlcyA9IEdldEpTQ0F0dHJpYnV0ZXNG
b3JBdHRyaWJ1dGUoJGludGVyZmFjZSwgJGF0dHJpYnV0ZSk7Ci0gICAgICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgIiAgICAgICAgcHV0RGlyZWN0Q3VzdG9tQWNjZXNzb3Iodm0sIHZtLnByb3Bl
cnR5TmFtZXMtPiRhdHRyaWJ1dGVOYW1lLCBjdXN0b21HZXR0ZXJTZXR0ZXIsIGF0dHJpYnV0ZXNG
b3JTdHJ1Y3R1cmUoJGpzY0F0dHJpYnV0ZXMpKTtcbiIpOwotICAgICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICIgICAgfVxuIik7Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiNl
bmRpZlxuIikgaWYgJGNvbmRpdGlvbmFsU3RyaW5nOwotICAgICAgICB9CisgICAgIyBTdXBwb3J0
IGZvciBSdW50aW1lRW5hYmxlZCBhdHRyaWJ1dGVzIG9uIGluc3RhbmNlcy4KKyAgICBmb3JlYWNo
IG15ICRhdHRyaWJ1dGUgKEB7JGludGVyZmFjZS0+YXR0cmlidXRlc30pIHsKKyAgICAgICAgbmV4
dCB1bmxlc3MgJGF0dHJpYnV0ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57RW5hYmxlZEF0UnVudGlt
ZX07CisgICAgICAgIG5leHQgdW5sZXNzIEF0dHJpYnV0ZVNob3VsZEJlT25JbnN0YW5jZSgkaW50
ZXJmYWNlLCAkYXR0cmlidXRlKTsKIAotICAgICAgICAjIFN1cHBvcnQgUHJpdmF0ZUlkZW50aWZp
ZXIgYXR0cmlidXRlcyBvbiBnbG9iYWwgb2JqZWN0cwotICAgICAgICBmb3JlYWNoIG15ICRhdHRy
aWJ1dGUgKEB7JGludGVyZmFjZS0+YXR0cmlidXRlc30pIHsKLSAgICAgICAgICAgIG5leHQgdW5s
ZXNzICRhdHRyaWJ1dGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+e1ByaXZhdGVJZGVudGlmaWVyfTsK
KyAgICAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIpOwor
ICAgICAgICBteSAkY29uZGl0aW9uYWxTdHJpbmcgPSAkY29kZUdlbmVyYXRvci0+R2VuZXJhdGVD
b25kaXRpb25hbFN0cmluZygkYXR0cmlidXRlKTsKKyAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICIjaWYgJHtjb25kaXRpb25hbFN0cmluZ31cbiIpIGlmICRjb25kaXRpb25hbFN0cmluZzsKKyAg
ICAgICAgbXkgJGVuYWJsZV9mdW5jdGlvbiA9IEdldFJ1bnRpbWVFbmFibGVGdW5jdGlvbk5hbWUo
JGF0dHJpYnV0ZSk7CisgICAgICAgIG15ICRhdHRyaWJ1dGVOYW1lID0gJGF0dHJpYnV0ZS0+bmFt
ZTsKKyAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYgKCR7ZW5hYmxlX2Z1bmN0aW9u
fSgpKSB7XG4iKTsKKyAgICAgICAgbXkgJGdldHRlciA9IEdldEF0dHJpYnV0ZUdldHRlck5hbWUo
JGludGVyZmFjZSwgJGNsYXNzTmFtZSwgJGF0dHJpYnV0ZSk7CisgICAgICAgIG15ICRzZXR0ZXIg
PSBJc1JlYWRvbmx5KCRhdHRyaWJ1dGUpID8gIm51bGxwdHIiIDogR2V0QXR0cmlidXRlU2V0dGVy
TmFtZSgkaW50ZXJmYWNlLCAkY2xhc3NOYW1lLCAkYXR0cmlidXRlKTsKKyAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICIgICAgICAgIGF1dG8qIGN1c3RvbUdldHRlclNldHRlciA9IEN1c3RvbUdl
dHRlclNldHRlcjo6Y3JlYXRlKHZtLCAkZ2V0dGVyLCAkc2V0dGVyKTtcbiIpOworICAgICAgICBt
eSAkanNjQXR0cmlidXRlcyA9IEdldEpTQ0F0dHJpYnV0ZXNGb3JBdHRyaWJ1dGUoJGludGVyZmFj
ZSwgJGF0dHJpYnV0ZSk7CisgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICBwdXRE
aXJlY3RDdXN0b21BY2Nlc3Nvcih2bSwgdm0ucHJvcGVydHlOYW1lcy0+JGF0dHJpYnV0ZU5hbWUs
IGN1c3RvbUdldHRlclNldHRlciwgYXR0cmlidXRlc0ZvclN0cnVjdHVyZSgkanNjQXR0cmlidXRl
cykpO1xuIik7CisgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIH1cbiIpOworICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIiNlbmRpZlxuIikgaWYgJGNvbmRpdGlvbmFsU3RyaW5nOwor
ICAgIH0KIAotICAgICAgICAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIldlYkNvcmVKU0NsaWVudERh
dGEuaCIpOwotICAgICAgICAgICAgbXkgJGNvbmRpdGlvbmFsU3RyaW5nID0gJGNvZGVHZW5lcmF0
b3ItPkdlbmVyYXRlQ29uZGl0aW9uYWxTdHJpbmcoJGF0dHJpYnV0ZSk7Ci0gICAgICAgICAgICBt
eSAkYXR0cmlidXRlTmFtZSA9ICRhdHRyaWJ1dGUtPm5hbWU7Ci0gICAgICAgICAgICBteSAkZ2V0
dGVyID0gR2V0QXR0cmlidXRlR2V0dGVyTmFtZSgkaW50ZXJmYWNlLCAkY2xhc3NOYW1lLCAkYXR0
cmlidXRlKTsKKyAgICAjIFN1cHBvcnQgUHJpdmF0ZUlkZW50aWZpZXIgYXR0cmlidXRlcyBvbiBp
bnN0YW5jZXMuCisgICAgZm9yZWFjaCBteSAkYXR0cmlidXRlIChAeyRpbnRlcmZhY2UtPmF0dHJp
YnV0ZXN9KSB7CisgICAgICAgIG5leHQgdW5sZXNzICRhdHRyaWJ1dGUtPmV4dGVuZGVkQXR0cmli
dXRlcy0+e1ByaXZhdGVJZGVudGlmaWVyfTsKKyAgICAgICAgbmV4dCB1bmxlc3MgQXR0cmlidXRl
U2hvdWxkQmVPbkluc3RhbmNlKCRpbnRlcmZhY2UsICRhdHRyaWJ1dGUpOwogCi0gICAgICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIiNpZiAke2NvbmRpdGlvbmFsU3RyaW5nfVxuIikgaWYgJGNv
bmRpdGlvbmFsU3RyaW5nOwotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcHV0
RGlyZWN0Q3VzdG9tQWNjZXNzb3Iodm0sIHN0YXRpY19jYXN0PEpTVk1DbGllbnREYXRhKj4odm0u
Y2xpZW50RGF0YSktPmJ1aWx0aW5OYW1lcygpLiIgLiAkYXR0cmlidXRlTmFtZSAuICJQcml2YXRl
TmFtZSgpLCBDdXN0b21HZXR0ZXJTZXR0ZXI6OmNyZWF0ZSh2bSwgJGdldHRlciwgbnVsbHB0ciks
IGF0dHJpYnV0ZXNGb3JTdHJ1Y3R1cmUoRG9udERlbGV0ZSB8IFJlYWRPbmx5KSk7XG4iKTsKLSAg
ICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiI2VuZGlmXG4iKSBpZiAkY29uZGl0aW9uYWxT
dHJpbmc7Ci0gICAgICAgIH0KKyAgICAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIldlYkNvcmVKU0Ns
aWVudERhdGEuaCIpOworICAgICAgICBteSAkY29uZGl0aW9uYWxTdHJpbmcgPSAkY29kZUdlbmVy
YXRvci0+R2VuZXJhdGVDb25kaXRpb25hbFN0cmluZygkYXR0cmlidXRlKTsKKyAgICAgICAgbXkg
JGF0dHJpYnV0ZU5hbWUgPSAkYXR0cmlidXRlLT5uYW1lOworICAgICAgICBteSAkZ2V0dGVyID0g
R2V0QXR0cmlidXRlR2V0dGVyTmFtZSgkaW50ZXJmYWNlLCAkY2xhc3NOYW1lLCAkYXR0cmlidXRl
KTsKIAotICAgICAgICAjIFN1cHBvcnQgZm9yIFJ1bnRpbWVFbmFibGVkIG9wZXJhdGlvbnMgb24g
Z2xvYmFsIG9iamVjdHMuCi0gICAgICAgIGZvcmVhY2ggbXkgJGZ1bmN0aW9uIChAeyRpbnRlcmZh
Y2UtPmZ1bmN0aW9uc30pIHsKLSAgICAgICAgICAgIG5leHQgdW5sZXNzICRmdW5jdGlvbi0+ZXh0
ZW5kZWRBdHRyaWJ1dGVzLT57RW5hYmxlZEF0UnVudGltZX07Ci0gICAgICAgICAgICBuZXh0IGlm
ICRmdW5jdGlvbi0+e292ZXJsb2FkSW5kZXh9ICYmICRmdW5jdGlvbi0+e292ZXJsb2FkSW5kZXh9
ID4gMTsKKyAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIjaWYgJHtjb25kaXRpb25hbFN0cmlu
Z31cbiIpIGlmICRjb25kaXRpb25hbFN0cmluZzsKKyAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICIgICAgcHV0RGlyZWN0Q3VzdG9tQWNjZXNzb3Iodm0sIHN0YXRpY19jYXN0PEpTVk1DbGllbnRE
YXRhKj4odm0uY2xpZW50RGF0YSktPmJ1aWx0aW5OYW1lcygpLiIgLiAkYXR0cmlidXRlTmFtZSAu
ICJQcml2YXRlTmFtZSgpLCBDdXN0b21HZXR0ZXJTZXR0ZXI6OmNyZWF0ZSh2bSwgJGdldHRlciwg
bnVsbHB0ciksIGF0dHJpYnV0ZXNGb3JTdHJ1Y3R1cmUoRG9udERlbGV0ZSB8IFJlYWRPbmx5KSk7
XG4iKTsKKyAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIjZW5kaWZcbiIpIGlmICRjb25kaXRp
b25hbFN0cmluZzsKKyAgICB9CiAKLSAgICAgICAgICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJSdW50
aW1lRW5hYmxlZEZlYXR1cmVzLmgiKTsKLSAgICAgICAgICAgIG15ICRjb25kaXRpb25hbFN0cmlu
ZyA9ICRjb2RlR2VuZXJhdG9yLT5HZW5lcmF0ZUNvbmRpdGlvbmFsU3RyaW5nKCRmdW5jdGlvbik7
Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiNpZiAke2NvbmRpdGlvbmFsU3RyaW5n
fVxuIikgaWYgJGNvbmRpdGlvbmFsU3RyaW5nOwotICAgICAgICAgICAgbXkgJGVuYWJsZV9mdW5j
dGlvbiA9IEdldFJ1bnRpbWVFbmFibGVGdW5jdGlvbk5hbWUoJGZ1bmN0aW9uKTsKLSAgICAgICAg
ICAgIG15ICRmdW5jdGlvbk5hbWUgPSAkZnVuY3Rpb24tPm5hbWU7Ci0gICAgICAgICAgICBteSAk
aW1wbGVtZW50YXRpb25GdW5jdGlvbiA9IEdldEZ1bmN0aW9uTmFtZSgkaW50ZXJmYWNlLCAkY2xh
c3NOYW1lLCAkZnVuY3Rpb24pOwotICAgICAgICAgICAgbXkgJGZ1bmN0aW9uTGVuZ3RoID0gR2V0
RnVuY3Rpb25MZW5ndGgoJGZ1bmN0aW9uKTsKLSAgICAgICAgICAgIG15ICRqc0F0dHJpYnV0ZXMg
PSBDb21wdXRlRnVuY3Rpb25TcGVjaWFsKCRpbnRlcmZhY2UsICRmdW5jdGlvbik7Ci0gICAgICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAoJHtlbmFibGVfZnVuY3Rpb259KCkpXG4i
KTsKKyAgICAjIFN1cHBvcnQgZm9yIFJ1bnRpbWVFbmFibGVkIG9wZXJhdGlvbnMgb24gaW5zdGFu
Y2VzLgorICAgIGZvcmVhY2ggbXkgJGZ1bmN0aW9uIChAeyRpbnRlcmZhY2UtPmZ1bmN0aW9uc30p
IHsKKyAgICAgICAgbmV4dCB1bmxlc3MgJGZ1bmN0aW9uLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntF
bmFibGVkQXRSdW50aW1lfTsKKyAgICAgICAgbmV4dCB1bmxlc3MgT3BlcmF0aW9uU2hvdWxkQmVP
bkluc3RhbmNlKCRpbnRlcmZhY2UsICRmdW5jdGlvbik7CisgICAgICAgIG5leHQgaWYgJGZ1bmN0
aW9uLT57b3ZlcmxvYWRJbmRleH0gJiYgJGZ1bmN0aW9uLT57b3ZlcmxvYWRJbmRleH0gPiAxOwog
Ci0gICAgICAgICAgICBteSAkcHJvcGVydHlOYW1lID0gInZtLnByb3BlcnR5TmFtZXMtPiRmdW5j
dGlvbk5hbWUiOwotICAgICAgICAgICAgJHByb3BlcnR5TmFtZSA9ICJzdGF0aWNfY2FzdDxKU1ZN
Q2xpZW50RGF0YSo+KHZtLmNsaWVudERhdGEpLT5idWlsdGluTmFtZXMoKS4iIC4gJGZ1bmN0aW9u
TmFtZSAuICJQcml2YXRlTmFtZSgpIiBpZiAkZnVuY3Rpb24tPmV4dGVuZGVkQXR0cmlidXRlcy0+
e1ByaXZhdGVJZGVudGlmaWVyfTsKLSAgICAgICAgICAgIGlmIChJc0pTQnVpbHRpbigkaW50ZXJm
YWNlLCAkZnVuY3Rpb24pKSB7Ci0gICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIg
ICAgICAgIHB1dERpcmVjdEJ1aWx0aW5GdW5jdGlvbih2bSwgdGhpcywgJHByb3BlcnR5TmFtZSwg
JGltcGxlbWVudGF0aW9uRnVuY3Rpb24odm0pLCBhdHRyaWJ1dGVzRm9yU3RydWN0dXJlKCRqc0F0
dHJpYnV0ZXMpKTtcbiIpOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgcHV0RGlyZWN0TmF0aXZlRnVuY3Rpb24odm0sIHRo
aXMsICRwcm9wZXJ0eU5hbWUsICRmdW5jdGlvbkxlbmd0aCwgJGltcGxlbWVudGF0aW9uRnVuY3Rp
b24sIE5vSW50cmluc2ljLCBhdHRyaWJ1dGVzRm9yU3RydWN0dXJlKCRqc0F0dHJpYnV0ZXMpKTtc
biIpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIjZW5k
aWZcbiIpIGlmICRjb25kaXRpb25hbFN0cmluZzsKKyAgICAgICAgQWRkVG9JbXBsSW5jbHVkZXMo
IlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIpOworICAgICAgICBteSAkY29uZGl0aW9uYWxTdHJp
bmcgPSAkY29kZUdlbmVyYXRvci0+R2VuZXJhdGVDb25kaXRpb25hbFN0cmluZygkZnVuY3Rpb24p
OworICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiNpZiAke2NvbmRpdGlvbmFsU3RyaW5nfVxu
IikgaWYgJGNvbmRpdGlvbmFsU3RyaW5nOworICAgICAgICBteSAkZW5hYmxlX2Z1bmN0aW9uID0g
R2V0UnVudGltZUVuYWJsZUZ1bmN0aW9uTmFtZSgkZnVuY3Rpb24pOworICAgICAgICBteSAkZnVu
Y3Rpb25OYW1lID0gJGZ1bmN0aW9uLT5uYW1lOworICAgICAgICBteSAkaW1wbGVtZW50YXRpb25G
dW5jdGlvbiA9IEdldEZ1bmN0aW9uTmFtZSgkaW50ZXJmYWNlLCAkY2xhc3NOYW1lLCAkZnVuY3Rp
b24pOworICAgICAgICBteSAkZnVuY3Rpb25MZW5ndGggPSBHZXRGdW5jdGlvbkxlbmd0aCgkZnVu
Y3Rpb24pOworICAgICAgICBteSAkanNBdHRyaWJ1dGVzID0gQ29tcHV0ZUZ1bmN0aW9uU3BlY2lh
bCgkaW50ZXJmYWNlLCAkZnVuY3Rpb24pOworICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAg
ICBpZiAoJHtlbmFibGVfZnVuY3Rpb259KCkpXG4iKTsKKworICAgICAgICBteSAkcHJvcGVydHlO
YW1lID0gInZtLnByb3BlcnR5TmFtZXMtPiRmdW5jdGlvbk5hbWUiOworICAgICAgICAkcHJvcGVy
dHlOYW1lID0gInN0YXRpY19jYXN0PEpTVk1DbGllbnREYXRhKj4odm0uY2xpZW50RGF0YSktPmJ1
aWx0aW5OYW1lcygpLiIgLiAkZnVuY3Rpb25OYW1lIC4gIlByaXZhdGVOYW1lKCkiIGlmICRmdW5j
dGlvbi0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57UHJpdmF0ZUlkZW50aWZpZXJ9OworICAgICAgICBp
ZiAoSXNKU0J1aWx0aW4oJGludGVyZmFjZSwgJGZ1bmN0aW9uKSkgeworICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICIgICAgICAgIHB1dERpcmVjdEJ1aWx0aW5GdW5jdGlvbih2bSwgdGhp
cywgJHByb3BlcnR5TmFtZSwgJGltcGxlbWVudGF0aW9uRnVuY3Rpb24odm0pLCBhdHRyaWJ1dGVz
Rm9yU3RydWN0dXJlKCRqc0F0dHJpYnV0ZXMpKTtcbiIpOworICAgICAgICB9IGVsc2UgeworICAg
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIHB1dERpcmVjdE5hdGl2ZUZ1bmN0
aW9uKHZtLCB0aGlzLCAkcHJvcGVydHlOYW1lLCAkZnVuY3Rpb25MZW5ndGgsICRpbXBsZW1lbnRh
dGlvbkZ1bmN0aW9uLCBOb0ludHJpbnNpYywgYXR0cmlidXRlc0ZvclN0cnVjdHVyZSgkanNBdHRy
aWJ1dGVzKSk7XG4iKTsKICAgICAgICAgfQotICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIn1c
blxuIik7CisgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiI2VuZGlmXG4iKSBpZiAkY29uZGl0
aW9uYWxTdHJpbmc7CiAgICAgfQorICAgIHB1c2goQGltcGxDb250ZW50LCAifVxuXG4iKTsKIAog
ICAgIHVubGVzcyAoU2hvdWxkVXNlR2xvYmFsT2JqZWN0UHJvdG90eXBlKCRpbnRlcmZhY2UpKSB7
CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiSlNPYmplY3QqICR7Y2xhc3NOYW1lfTo6Y3Jl
YXRlUHJvdG90eXBlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdClcbiIpOwpA
QCAtNTk5MSw3ICs1OTkyLDcgQEAgc3ViIEdlbmVyYXRlUHJvdG90eXBlRGVjbGFyYXRpb24KICAg
ICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgfVxuIik7CiAKICAgICBpZiAoUHJvdG90eXBlSGFz
U3RhdGljUHJvcGVydHlUYWJsZSgkaW50ZXJmYWNlKSkgewotICAgICAgICBpZiAoSXNET01HbG9i
YWxPYmplY3QoJGludGVyZmFjZSkpIHsKKyAgICAgICAgaWYgKElzR2xvYmFsT3JQcmltYXJ5R2xv
YmFsSW50ZXJmYWNlKCRpbnRlcmZhY2UpKSB7CiAgICAgICAgICAgICAkc3RydWN0dXJlRmxhZ3N7
IkpTQzo6SGFzU3RhdGljUHJvcGVydHlUYWJsZSJ9ID0gMTsKICAgICAgICAgfSBlbHNlIHsKICAg
ICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIlxuIik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMudHh0IGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLnR4dAppbmRleCBkZWZkYmNkNmIwNzll
NDk5MmM3Njc5MzBmNGMxN2MyNWQxYmNjYTg5Li42ODRlODU3YjljMzhmMTk1MDIyOWEyYzE3NzQ1
NWE5M2MwZjE4Y2YxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L0lETEF0dHJpYnV0ZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
SURMQXR0cmlidXRlcy50eHQKQEAgLTY3LDYgKzY3LDcgQEAgRm9yd2FyZERlY2xhcmVJbkhlYWRl
cgogR2VuZXJhdGVJc1JlYWNoYWJsZT18SW1wbHxJbXBsV2ViR0xSZW5kZXJpbmdDb250ZXh0fElt
cGxEb2N1bWVudHxJbXBsRWxlbWVudFJvb3R8SW1wbEZyYW1lfEltcGxPd25lck5vZGVSb290fElt
cGxTY3JpcHRFeGVjdXRpb25Db250ZXh0CiBHZXR0ZXJNYXlUaHJvd0V4Y2VwdGlvbgogR2V0dGVy
TWF5VGhyb3dMZWdhY3lFeGNlcHRpb24KK0dsb2JhbD0qCiBJbW11dGFibGUKIEltcGxlbWVudGVk
QXM9KgogSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZQpAQCAtMTAwLDYgKzEwMSw3IEBAIE5vbmRl
dGVybWluaXN0aWMKIE5vdEVudW1lcmFibGUKIE92ZXJyaWRlQnVpbHRpbnMKIFBhc3NDb250ZXh0
CitQcmltYXJ5R2xvYmFsCiBQcml2YXRlSWRlbnRpZmllcgogUHVibGljSWRlbnRpZmllcgogUHV0
Rm9yd2FyZHM9KgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTSW50ZXJmYWNlTmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNJbnRlcmZhY2VOYW1lLmNwcAppbmRleCAyODdlOTliYjBhZDljMjliY2Y1
MjdhOTcwNTY0MjE5MWRkOTFkYTU4Li5iOWY0YzdhZGM0ODBkMmNmNDU4ZTAxMGVlZDY0YmYzMTcx
MjNkYjUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNJbnRlcmZhY2VOYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNJbnRlcmZhY2VOYW1lLmNwcApAQCAtOTksNiArOTksMTIgQEAgSlNJbnRl
cmZhY2VOYW1lOjpKU0ludGVyZmFjZU5hbWUoU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRE9NR2xv
YmFsT2JqZWN0JiBnbG9iYWwKIHsKIH0KIAordm9pZCBKU0ludGVyZmFjZU5hbWU6OmZpbmlzaENy
ZWF0aW9uKFZNJiB2bSkKK3sKKyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7CisKK30KKwog
SlNPYmplY3QqIEpTSW50ZXJmYWNlTmFtZTo6Y3JlYXRlUHJvdG90eXBlKFZNJiB2bSwgSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCkKIHsKICAgICByZXR1cm4gSlNJbnRlcmZhY2VOYW1lUHJv
dG90eXBlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgSlNJbnRlcmZhY2VOYW1lUHJvdG90eXBl
OjpjcmVhdGVTdHJ1Y3R1cmUodm0sIGdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0LT5vYmplY3RQ
cm90b3R5cGUoKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTSW50ZXJmYWNlTmFtZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTSW50ZXJmYWNlTmFtZS5oCmluZGV4IDMyZWZhN2JkMTc4MTZhNTk1NTll
NTU3Y2U0Y2Y4MjNjNjg3YmVmMTAuLjc0NDFmYWM2ZjM0NWY1OTkyMWU1NDk1M2Q1ZWZiOGY3YzNm
N2ExZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU0ludGVyZmFjZU5hbWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNJbnRlcmZhY2VOYW1lLmgKQEAgLTU1LDEyICs1NSw3IEBAIHB1YmxpYzoKIHBy
b3RlY3RlZDoKICAgICBKU0ludGVyZmFjZU5hbWUoSlNDOjpTdHJ1Y3R1cmUqLCBKU0RPTUdsb2Jh
bE9iamVjdCYsIFJlZjxJbnRlcmZhY2VOYW1lPiYmKTsKIAotICAgIHZvaWQgZmluaXNoQ3JlYXRp
b24oSlNDOjpWTSYgdm0pCi0gICAgewotICAgICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7
Ci0gICAgICAgIEFTU0VSVChpbmhlcml0cyhpbmZvKCkpKTsKLSAgICB9Ci0KKyAgICB2b2lkIGZp
bmlzaENyZWF0aW9uKEpTQzo6Vk0mKTsKIH07CiAKIGNsYXNzIEpTSW50ZXJmYWNlTmFtZU93bmVy
IDogcHVibGljIEpTQzo6V2Vha0hhbmRsZU93bmVyIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVET01PYmplY3QuY3BwIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEFjdGl2ZURPTU9i
amVjdC5jcHAKaW5kZXggZWU4MzVmNzllNDU5N2IwMjI4ZDA5NmVhOGI0ZjMxNTBjNGE4NTczMi4u
YjljYjZmMzA3NDA1MDllMmYzYzUxNGM3MGVmOTJkZDEwOGVjY2NiZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEFjdGl2ZURPTU9iamVj
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dEFjdGl2ZURPTU9iamVjdC5jcHAKQEAgLTEyNSw2ICsxMjUsMTIgQEAgSlNUZXN0QWN0aXZlRE9N
T2JqZWN0OjpKU1Rlc3RBY3RpdmVET01PYmplY3QoU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRE9N
R2xvYmFsT2IKIHsKIH0KIAordm9pZCBKU1Rlc3RBY3RpdmVET01PYmplY3Q6OmZpbmlzaENyZWF0
aW9uKFZNJiB2bSkKK3sKKyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7CisKK30KKwogSlNP
YmplY3QqIEpTVGVzdEFjdGl2ZURPTU9iamVjdDo6Y3JlYXRlUHJvdG90eXBlKFZNJiB2bSwgSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKIHsKICAgICByZXR1cm4gSlNUZXN0QWN0aXZlRE9N
T2JqZWN0UHJvdG90eXBlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgSlNUZXN0QWN0aXZlRE9N
T2JqZWN0UHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUodm0sIGdsb2JhbE9iamVjdCwgZ2xvYmFs
T2JqZWN0LT5vYmplY3RQcm90b3R5cGUoKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEFjdGl2ZURPTU9iamVjdC5oIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEFjdGl2ZURPTU9iamVjdC5o
CmluZGV4IDU2NWQzZWJjMmJjMDU0OWE1OWZkOGYyNGI0YTViYWNhMjdmYTEwMzkuLmFiNDZkNjRk
ZDZmMzQ2OTJjNmI4ZWUxMzJjZWEwNTllZDExYTc5MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVET01PYmplY3QuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0QWN0aXZlRE9N
T2JqZWN0LmgKQEAgLTU0LDEyICs1NCw3IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICBKU1Rl
c3RBY3RpdmVET01PYmplY3QoSlNDOjpTdHJ1Y3R1cmUqLCBKU0RPTUdsb2JhbE9iamVjdCYsIFJl
ZjxUZXN0QWN0aXZlRE9NT2JqZWN0PiYmKTsKIAotICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlND
OjpWTSYgdm0pCi0gICAgewotICAgICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7Ci0gICAg
ICAgIEFTU0VSVChpbmhlcml0cyhpbmZvKCkpKTsKLSAgICB9Ci0KKyAgICB2b2lkIGZpbmlzaENy
ZWF0aW9uKEpTQzo6Vk0mKTsKIH07CiAKIGNsYXNzIEpTVGVzdEFjdGl2ZURPTU9iamVjdE93bmVy
IDogcHVibGljIEpTQzo6V2Vha0hhbmRsZU93bmVyIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDRVJlYWN0aW9ucy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q0VSZWFjdGlvbnMuY3Bw
CmluZGV4IGYyMGI2MmYwYjhmYTJjMzQ1Y2I1NTkxOGE4NTU1NzZiYjRkMWNkZTIuLmZiYjNmNWNi
YmVjMjY4YjMyYzg0MjZhNjg4NGQ3NzgyZTAwN2Y0NTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDRVJlYWN0aW9ucy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENFUmVhY3Rpb25z
LmNwcApAQCAtMTE5LDYgKzExOSwxMiBAQCBKU1Rlc3RDRVJlYWN0aW9uczo6SlNUZXN0Q0VSZWFj
dGlvbnMoU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRE9NR2xvYmFsT2JqZWN0JiBnbAogewogfQog
Cit2b2lkIEpTVGVzdENFUmVhY3Rpb25zOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0pCit7CisgICAg
QmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOworCit9CisKIEpTT2JqZWN0KiBKU1Rlc3RDRVJlYWN0
aW9uczo6Y3JlYXRlUHJvdG90eXBlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCkKIHsKICAgICByZXR1cm4gSlNUZXN0Q0VSZWFjdGlvbnNQcm90b3R5cGU6OmNyZWF0ZSh2bSwg
Z2xvYmFsT2JqZWN0LCBKU1Rlc3RDRVJlYWN0aW9uc1Byb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJl
KHZtLCBnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC0+b2JqZWN0UHJvdG90eXBlKCkpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RD
RVJlYWN0aW9ucy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdENFUmVhY3Rpb25zLmgKaW5kZXggMTA5OWIyZDk2NzFiZGJhMWY2MTNlMjI4YmRhYWY0ZjFl
YTQyZDNiYS4uODAwOWIwNzI5YTViMzhjMTUwZDAwMGY2MjM2ZjlhM2Y1NDM3ZmI3ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENFUmVh
Y3Rpb25zLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdENFUmVhY3Rpb25zLmgKQEAgLTUyLDEyICs1Miw3IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoK
ICAgICBKU1Rlc3RDRVJlYWN0aW9ucyhKU0M6OlN0cnVjdHVyZSosIEpTRE9NR2xvYmFsT2JqZWN0
JiwgUmVmPFRlc3RDRVJlYWN0aW9ucz4mJik7CiAKLSAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpT
Qzo6Vk0mIHZtKQotICAgIHsKLSAgICAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOwotICAg
ICAgICBBU1NFUlQoaW5oZXJpdHMoaW5mbygpKSk7Ci0gICAgfQotCisgICAgdm9pZCBmaW5pc2hD
cmVhdGlvbihKU0M6OlZNJik7CiB9OwogCiBjbGFzcyBKU1Rlc3RDRVJlYWN0aW9uc093bmVyIDog
cHVibGljIEpTQzo6V2Vha0hhbmRsZU93bmVyIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDRVJlYWN0
aW9uc1N0cmluZ2lmaWVyLmNwcAppbmRleCA2MTFkNDc1MzBjMWRjYTk5MDFhNTMwZGJiYTBjOTRk
ZTZhMmI3NjZiLi4wZjU5ZGRlYzg2OGVkYzExODdmOWRlODEwYjE0MGZhMmNiY2Y2N2MyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q0VS
ZWFjdGlvbnNTdHJpbmdpZmllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXIuY3BwCkBAIC0xMTEsNiAr
MTExLDEyIEBAIEpTVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXI6OkpTVGVzdENFUmVhY3Rpb25z
U3RyaW5naWZpZXIoU3RydWN0dXJlKiBzdHJ1Y3R1cmUsCiB7CiB9CiAKK3ZvaWQgSlNUZXN0Q0VS
ZWFjdGlvbnNTdHJpbmdpZmllcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtKQoreworICAgIEJhc2U6
OmZpbmlzaENyZWF0aW9uKHZtKTsKKworfQorCiBKU09iamVjdCogSlNUZXN0Q0VSZWFjdGlvbnNT
dHJpbmdpZmllcjo6Y3JlYXRlUHJvdG90eXBlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCkKIHsKICAgICByZXR1cm4gSlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllclByb3Rv
dHlwZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIEpTVGVzdENFUmVhY3Rpb25zU3RyaW5naWZp
ZXJQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZSh2bSwgZ2xvYmFsT2JqZWN0LCBnbG9iYWxPYmpl
Y3QtPm9iamVjdFByb3RvdHlwZSgpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllci5oIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENFUmVhY3Rpb25zU3Ry
aW5naWZpZXIuaAppbmRleCA5NDRiYzFhYzIxZjdkM2M1YmM0MmZmZTE2Y2E1MzM2ZjI0MmU2ZWEy
Li4yNDkwODAxOGI5YzM0NGQ2ODEwM2U4MTE1YzViZDAyZWMxYWEwNjJlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q0VSZWFjdGlvbnNT
dHJpbmdpZmllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyLmgKQEAgLTUyLDEyICs1Miw3IEBAIHB1Ymxp
YzoKIHByb3RlY3RlZDoKICAgICBKU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyKEpTQzo6U3Ry
dWN0dXJlKiwgSlNET01HbG9iYWxPYmplY3QmLCBSZWY8VGVzdENFUmVhY3Rpb25zU3RyaW5naWZp
ZXI+JiYpOwogCi0gICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZNJiB2bSkKLSAgICB7Ci0g
ICAgICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtKTsKLSAgICAgICAgQVNTRVJUKGluaGVyaXRz
KGluZm8oKSkpOwotICAgIH0KLQorICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYpOwog
fTsKIAogY2xhc3MgSlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllck93bmVyIDogcHVibGljIEpT
Qzo6V2Vha0hhbmRsZU93bmVyIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3Rvci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2xhc3NXaXRo
SlNCdWlsdGluQ29uc3RydWN0b3IuY3BwCmluZGV4IGEyY2VjODFhNGZlYWJhYTJmMzI5ZjkwNjdm
NjkxYjhiMjg4NmIzMzMuLmQ3NjY4NDc1YmE5ZDE3ZGE2Y2MxZjhmNjI2ZmU1NjAxNDYxNzg4MWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVj
dG9yLmNwcApAQCAtMTA1LDYgKzEwNSwxMiBAQCBKU1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25z
dHJ1Y3Rvcjo6SlNUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3IoU3RydWN0dQogewog
fQogCit2b2lkIEpTVGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yOjpmaW5pc2hDcmVh
dGlvbihWTSYgdm0pCit7CisgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOworCit9CisKIEpT
T2JqZWN0KiBKU1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3Rvcjo6Y3JlYXRlUHJvdG90
eXBlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKIHsKICAgICByZXR1cm4g
SlNUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3JQcm90b3R5cGU6OmNyZWF0ZSh2bSwg
Z2xvYmFsT2JqZWN0LCBKU1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3RvclByb3RvdHlw
ZTo6Y3JlYXRlU3RydWN0dXJlKHZtLCBnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC0+b2JqZWN0
UHJvdG90eXBlKCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3Rvci5oIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENsYXNzV2l0aEpTQnVpbHRp
bkNvbnN0cnVjdG9yLmgKaW5kZXggMWFhZTIzYmUyYmE2MDg4ZDIyZTk1MTk4MzE0ODZjNWNmM2Jm
NmE4Zi4uNzEyOTZkNzA1NzE0NTY3MDg3NmYyODAxYTVlOWYwNjc2OGUxOGY0YiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENsYXNzV2l0
aEpTQnVpbHRpbkNvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yLmgKQEAgLTU0
LDEyICs1NCw3IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICBKU1Rlc3RDbGFzc1dpdGhKU0J1
aWx0aW5Db25zdHJ1Y3RvcihKU0M6OlN0cnVjdHVyZSosIEpTRE9NR2xvYmFsT2JqZWN0JiwgUmVm
PFRlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3Rvcj4mJik7CiAKLSAgICB2b2lkIGZpbmlz
aENyZWF0aW9uKEpTQzo6Vk0mIHZtKQotICAgIHsKLSAgICAgICAgQmFzZTo6ZmluaXNoQ3JlYXRp
b24odm0pOwotICAgICAgICBBU1NFUlQoaW5oZXJpdHMoaW5mbygpKSk7Ci0gICAgfQotCisgICAg
dm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZNJik7CiB9OwogCiBjbGFzcyBKU1Rlc3RDbGFzc1dp
dGhKU0J1aWx0aW5Db25zdHJ1Y3Rvck93bmVyIDogcHVibGljIEpTQzo6V2Vha0hhbmRsZU93bmVy
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RDdXN0b21Db25zdHJ1Y3RvcldpdGhOb0ludGVyZmFjZU9iamVjdC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q3VzdG9tQ29uc3RydWN0b3JX
aXRoTm9JbnRlcmZhY2VPYmplY3QuY3BwCmluZGV4IGYyYzg5ODA5NTE3ZmU2NTNmMGIyOWJlMzZm
ZmU5NzNmZDY5MzlmMGEuLjBiODczMDExMmE3M2Q3MGU5YjM1YjgwZjU1YjRmMTY1ZDA3YTlmYzIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RDdXN0b21Db25zdHJ1Y3RvcldpdGhOb0ludGVyZmFjZU9iamVjdC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1c3RvbUNvbnN0cnVjdG9y
V2l0aE5vSW50ZXJmYWNlT2JqZWN0LmNwcApAQCAtMTA1LDYgKzEwNSwxMiBAQCBKU1Rlc3RDdXN0
b21Db25zdHJ1Y3RvcldpdGhOb0ludGVyZmFjZU9iamVjdDo6SlNUZXN0Q3VzdG9tQ29uc3RydWN0
b3JXaXRoTm9JbnRlcgogewogfQogCit2b2lkIEpTVGVzdEN1c3RvbUNvbnN0cnVjdG9yV2l0aE5v
SW50ZXJmYWNlT2JqZWN0OjpmaW5pc2hDcmVhdGlvbihWTSYgdm0pCit7CisgICAgQmFzZTo6Zmlu
aXNoQ3JlYXRpb24odm0pOworCit9CisKIEpTT2JqZWN0KiBKU1Rlc3RDdXN0b21Db25zdHJ1Y3Rv
cldpdGhOb0ludGVyZmFjZU9iamVjdDo6Y3JlYXRlUHJvdG90eXBlKFZNJiB2bSwgSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCkKIHsKICAgICByZXR1cm4gSlNUZXN0Q3VzdG9tQ29uc3RydWN0
b3JXaXRoTm9JbnRlcmZhY2VPYmplY3RQcm90b3R5cGU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0
LCBKU1Rlc3RDdXN0b21Db25zdHJ1Y3RvcldpdGhOb0ludGVyZmFjZU9iamVjdFByb3RvdHlwZTo6
Y3JlYXRlU3RydWN0dXJlKHZtLCBnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC0+b2JqZWN0UHJv
dG90eXBlKCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RDdXN0b21Db25zdHJ1Y3RvcldpdGhOb0ludGVyZmFjZU9iamVjdC5oIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1c3RvbUNvbnN0
cnVjdG9yV2l0aE5vSW50ZXJmYWNlT2JqZWN0LmgKaW5kZXggMDc2MzMwYjBjN2MyOTBiN2U1ZjE4
YTE4OWM1YzkyODVkMTM4MzYxNC4uNDg2YzM1ZmQxNjI5NjUyZDdhNzViZDhjY2Y2N2U2NjU0MGJm
NDM1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdEN1c3RvbUNvbnN0cnVjdG9yV2l0aE5vSW50ZXJmYWNlT2JqZWN0LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1c3RvbUNvbnN0cnVj
dG9yV2l0aE5vSW50ZXJmYWNlT2JqZWN0LmgKQEAgLTUxLDEyICs1MSw3IEBAIHB1YmxpYzoKIHBy
b3RlY3RlZDoKICAgICBKU1Rlc3RDdXN0b21Db25zdHJ1Y3RvcldpdGhOb0ludGVyZmFjZU9iamVj
dChKU0M6OlN0cnVjdHVyZSosIEpTRE9NR2xvYmFsT2JqZWN0JiwgUmVmPFRlc3RDdXN0b21Db25z
dHJ1Y3RvcldpdGhOb0ludGVyZmFjZU9iamVjdD4mJik7CiAKLSAgICB2b2lkIGZpbmlzaENyZWF0
aW9uKEpTQzo6Vk0mIHZtKQotICAgIHsKLSAgICAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0p
OwotICAgICAgICBBU1NFUlQoaW5oZXJpdHMoaW5mbygpKSk7Ci0gICAgfQotCisgICAgdm9pZCBm
aW5pc2hDcmVhdGlvbihKU0M6OlZNJik7CiB9OwogCiBjbGFzcyBKU1Rlc3RDdXN0b21Db25zdHJ1
Y3RvcldpdGhOb0ludGVyZmFjZU9iamVjdE93bmVyIDogcHVibGljIEpTQzo6V2Vha0hhbmRsZU93
bmVyIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RDdXN0b21OYW1lZEdldHRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuY3BwCmluZGV4IGMxNDI5N2Qw
ZTViMzU4ZGNmOWEwNTJmYThjYjExZGFmZjUzMmM0MTkuLjY5YTNmMGRkZDVkOTkzYjcxNjU4Y2Fi
MGNjY2UwYzI5YjYwNGNkNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21OYW1lZEdldHRlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1c3RvbU5hbWVkR2V0dGVyLmNw
cApAQCAtMTA4LDYgKzEwOCwxMiBAQCBKU1Rlc3RDdXN0b21OYW1lZEdldHRlcjo6SlNUZXN0Q3Vz
dG9tTmFtZWRHZXR0ZXIoU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRE9NR2xvYgogewogfQogCit2
b2lkIEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0pCit7Cisg
ICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOworCit9CisKIEpTT2JqZWN0KiBKU1Rlc3RDdXN0
b21OYW1lZEdldHRlcjo6Y3JlYXRlUHJvdG90eXBlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCkKIHsKICAgICByZXR1cm4gSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJQcm90b3R5
cGU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBKU1Rlc3RDdXN0b21OYW1lZEdldHRlclByb3Rv
dHlwZTo6Y3JlYXRlU3RydWN0dXJlKHZtLCBnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC0+b2Jq
ZWN0UHJvdG90eXBlKCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21OYW1lZEdldHRlci5oIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1c3RvbU5hbWVkR2V0dGVyLmgKaW5kZXgg
YTVmZDQ1ZjE1Y2IzNWYzZTRkM2UxODQwMzliMGZiOTQwZWUwYzUxNS4uMWFjYmU3YzY3ZjE0YWU1
YTU1ZjJkYjU2YzYyNWMzYzIzNTBlODM5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1c3RvbU5hbWVkR2V0dGVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1c3RvbU5hbWVkR2V0
dGVyLmgKQEAgLTU2LDEyICs1Niw3IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICBKU1Rlc3RD
dXN0b21OYW1lZEdldHRlcihKU0M6OlN0cnVjdHVyZSosIEpTRE9NR2xvYmFsT2JqZWN0JiwgUmVm
PFRlc3RDdXN0b21OYW1lZEdldHRlcj4mJik7CiAKLSAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpT
Qzo6Vk0mIHZtKQotICAgIHsKLSAgICAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOwotICAg
ICAgICBBU1NFUlQoaW5oZXJpdHMoaW5mbygpKSk7Ci0gICAgfQotCisgICAgdm9pZCBmaW5pc2hD
cmVhdGlvbihKU0M6OlZNJik7CiBwcml2YXRlOgogICAgIGJvb2wgbmFtZUdldHRlcihKU0M6OkV4
ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6OkpTVmFsdWUmKTsKIH07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RE9NSklU
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RET01K
SVQuY3BwCmluZGV4IGY1NTdhMDdlYWM3NTU3MjVlOTRiY2UwYzk3MDkyOGIzNmE0ODc3YzQuLjE5
MDY0MTE3ZDhhNDMxYjBiYThhN2JiNTcxZDUyN2M4MjgxNzJmZjIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RET01KSVQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RET01KSVQuY3Bw
CkBAIC0yMjgsNiArMjI4LDEyIEBAIEpTVGVzdERPTUpJVDo6SlNUZXN0RE9NSklUKFN0cnVjdHVy
ZSogc3RydWN0dXJlLCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0CiB7CiB9CiAKK3Zv
aWQgSlNUZXN0RE9NSklUOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0pCit7CisgICAgQmFzZTo6Zmlu
aXNoQ3JlYXRpb24odm0pOworCit9CisKIEpTT2JqZWN0KiBKU1Rlc3RET01KSVQ6OmNyZWF0ZVBy
b3RvdHlwZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiB7CiAgICAgcmV0
dXJuIEpTVGVzdERPTUpJVFByb3RvdHlwZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIEpTVGVz
dERPTUpJVFByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKHZtLCBnbG9iYWxPYmplY3QsIEpTTm9k
ZTo6cHJvdG90eXBlKHZtLCBnbG9iYWxPYmplY3QpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RE9NSklULmggYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RE9NSklULmgKaW5kZXggMjYwOTZh
OTVkMTFiZTE0OGJlMDAyODVkYWZmNDcyNmRmYTRjMDNiNC4uMTE0N2E0YTAyYWZkMzhlYjAwNWQ3
OGNlYzIwNmNjY2EyYjIwNzI3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdERPTUpJVC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RET01KSVQuaApAQCAtNTcsMTIgKzU3LDcgQEAgcHVi
bGljOgogcHJvdGVjdGVkOgogICAgIEpTVGVzdERPTUpJVChKU0M6OlN0cnVjdHVyZSosIEpTRE9N
R2xvYmFsT2JqZWN0JiwgUmVmPFRlc3RET01KSVQ+JiYpOwogCi0gICAgdm9pZCBmaW5pc2hDcmVh
dGlvbihKU0M6OlZNJiB2bSkKLSAgICB7Ci0gICAgICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZt
KTsKLSAgICAgICAgQVNTRVJUKGluaGVyaXRzKGluZm8oKSkpOwotICAgIH0KLQorICAgIHZvaWQg
ZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYpOwogfTsKIAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRDb25z
dHJ1Y3Rvci5jcHAKaW5kZXggNDNmZTU1MDZhZTRiMWNjNWFmZDg3YzU0MzA5MTkyNzQxMmZhNzEw
ZS4uNDU0YTcwOTVjZmNlMmE2MDVmNjViNGI1MzkyZGYxNTNmM2NkZTY3OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50Q29uc3Ry
dWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RFdmVudENvbnN0cnVjdG9yLmNwcApAQCAtMTc2LDYgKzE3NiwxMiBAQCBKU1Rlc3RFdmVu
dENvbnN0cnVjdG9yOjpKU1Rlc3RFdmVudENvbnN0cnVjdG9yKFN0cnVjdHVyZSogc3RydWN0dXJl
LCBKU0RPTUdsb2JhbAogewogfQogCit2b2lkIEpTVGVzdEV2ZW50Q29uc3RydWN0b3I6OmZpbmlz
aENyZWF0aW9uKFZNJiB2bSkKK3sKKyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7CisKK30K
KwogSlNPYmplY3QqIEpTVGVzdEV2ZW50Q29uc3RydWN0b3I6OmNyZWF0ZVByb3RvdHlwZShWTSYg
dm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiB7CiAgICAgcmV0dXJuIEpTVGVzdEV2
ZW50Q29uc3RydWN0b3JQcm90b3R5cGU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBKU1Rlc3RF
dmVudENvbnN0cnVjdG9yUHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUodm0sIGdsb2JhbE9iamVj
dCwgSlNFdmVudDo6cHJvdG90eXBlKHZtLCBnbG9iYWxPYmplY3QpKSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRDb25zdHJ1
Y3Rvci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2
ZW50Q29uc3RydWN0b3IuaAppbmRleCBhM2E2ZDRlNGFmNWExODE4Y2QyMDQzNzVlZjQxOWRjMmZj
ZWMwNzA3Li5lMWE2OWM2NTQ1M2EyN2UxNTJhZjVkMmE3MmQ1NjIxYzc2NzZkYWYyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRD
b25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RFdmVudENvbnN0cnVjdG9yLmgKQEAgLTU1LDEyICs1NSw3IEBAIHB1YmxpYzoKIHBy
b3RlY3RlZDoKICAgICBKU1Rlc3RFdmVudENvbnN0cnVjdG9yKEpTQzo6U3RydWN0dXJlKiwgSlNE
T01HbG9iYWxPYmplY3QmLCBSZWY8VGVzdEV2ZW50Q29uc3RydWN0b3I+JiYpOwogCi0gICAgdm9p
ZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZNJiB2bSkKLSAgICB7Ci0gICAgICAgIEJhc2U6OmZpbmlz
aENyZWF0aW9uKHZtKTsKLSAgICAgICAgQVNTRVJUKGluaGVyaXRzKGluZm8oKSkpOwotICAgIH0K
LQorICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYpOwogfTsKIAogSlNDOjpKU1ZhbHVl
IHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCosIFRlc3RFdmVudENvbnN0
cnVjdG9yJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0RXZlbnRUYXJnZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0LmNwcAppbmRleCBmYTcwNDhjYjE1NmMxNzk5
ZGEyNGVlMWJmYjI5ZWZjYTEzODIyYTk5Li5jMmI4YjYzN2I2MjcwOTNmMzkyMTc2ZDQ3YmVhZDE3
MTQzNjUwOTc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0RXZlbnRUYXJnZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudFRhcmdldC5jcHAKQEAgLTEwOCw2ICsxMDgsMTIg
QEAgSlNUZXN0RXZlbnRUYXJnZXQ6OkpTVGVzdEV2ZW50VGFyZ2V0KFN0cnVjdHVyZSogc3RydWN0
dXJlLCBKU0RPTUdsb2JhbE9iamVjdCYgZ2wKIHsKIH0KIAordm9pZCBKU1Rlc3RFdmVudFRhcmdl
dDo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtKQoreworICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZt
KTsKKworfQorCiBKU09iamVjdCogSlNUZXN0RXZlbnRUYXJnZXQ6OmNyZWF0ZVByb3RvdHlwZShW
TSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiB7CiAgICAgcmV0dXJuIEpTVGVz
dEV2ZW50VGFyZ2V0UHJvdG90eXBlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgSlNUZXN0RXZl
bnRUYXJnZXRQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZSh2bSwgZ2xvYmFsT2JqZWN0LCBKU0V2
ZW50VGFyZ2V0Ojpwcm90b3R5cGUodm0sIGdsb2JhbE9iamVjdCkpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudFRhcmdldC5o
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50VGFy
Z2V0LmgKaW5kZXggZjlkMDU3MTg1ZmJlYzcwYzg3MjFmZDZmODc2NmIyNGJiMzlkZWM3Ni4uMDQ3
OWEwY2ViZmU1NzExOTRhZDYzOTU5NzAxYmI2MDgzNGUyNmM2NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50VGFy
Z2V0LmgKQEAgLTYzLDEyICs2Myw3IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICBKU1Rlc3RF
dmVudFRhcmdldChKU0M6OlN0cnVjdHVyZSosIEpTRE9NR2xvYmFsT2JqZWN0JiwgUmVmPFRlc3RF
dmVudFRhcmdldD4mJik7CiAKLSAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6Vk0mIHZtKQot
ICAgIHsKLSAgICAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOwotICAgICAgICBBU1NFUlQo
aW5oZXJpdHMoaW5mbygpKSk7Ci0gICAgfQotCisgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6
OlZNJik7CiBwcml2YXRlOgogICAgIGJvb2wgbmFtZUdldHRlcihKU0M6OkV4ZWNTdGF0ZSosIEpT
Qzo6UHJvcGVydHlOYW1lLCBKU0M6OkpTVmFsdWUmKTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXhjZXB0aW9uLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFeGNlcHRpb24uY3Bw
CmluZGV4IGIzZjI4ZThiZWJlMDMzNDFlN2Y1OGVmZGJiZTZhYWUyOGZhNGExYjMuLjAyYzU2OGI1
NDA1NmI1YjZjYWRmMjdjNzM1YTI3MmNhZWFhNWQ2NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFeGNlcHRpb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFeGNlcHRpb24uY3Bw
CkBAIC0xMTUsNiArMTE1LDEyIEBAIEpTVGVzdEV4Y2VwdGlvbjo6SlNUZXN0RXhjZXB0aW9uKFN0
cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsCiB7CiB9CiAKK3Zv
aWQgSlNUZXN0RXhjZXB0aW9uOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0pCit7CisgICAgQmFzZTo6
ZmluaXNoQ3JlYXRpb24odm0pOworCit9CisKIEpTT2JqZWN0KiBKU1Rlc3RFeGNlcHRpb246OmNy
ZWF0ZVByb3RvdHlwZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiB7CiAg
ICAgcmV0dXJuIEpTVGVzdEV4Y2VwdGlvblByb3RvdHlwZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmpl
Y3QsIEpTVGVzdEV4Y2VwdGlvblByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKHZtLCBnbG9iYWxP
YmplY3QsIGdsb2JhbE9iamVjdC0+ZXJyb3JQcm90b3R5cGUoKSkpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV4Y2VwdGlvbi5oIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV4Y2VwdGlvbi5o
CmluZGV4IDA0NWNiZjYzZWVlZGFmMjA2MWFlMWVmMmM5YzgzZGVlMjgyZGFkNmYuLjJiNzlhZDYx
NmQ0MTNmZTgyMTFjZjc0MGEzYTRlMGZiMjYzMzVkNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFeGNlcHRpb24uaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXhjZXB0aW9uLmgKQEAg
LTU1LDEyICs1NSw3IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICBKU1Rlc3RFeGNlcHRpb24o
SlNDOjpTdHJ1Y3R1cmUqLCBKU0RPTUdsb2JhbE9iamVjdCYsIFJlZjxUZXN0RXhjZXB0aW9uPiYm
KTsKIAotICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYgdm0pCi0gICAgewotICAgICAg
ICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7Ci0gICAgICAgIEFTU0VSVChpbmhlcml0cyhpbmZv
KCkpKTsKLSAgICB9Ci0KKyAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6Vk0mKTsKIH07CiAK
IGNsYXNzIEpTVGVzdEV4Y2VwdGlvbk93bmVyIDogcHVibGljIEpTQzo6V2Vha0hhbmRsZU93bmVy
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlLmNwcAppbmRleCA2ZmU3YmRl
NzIyZGNjY2U0NmVjMjM0MTJhODI3Yjc4OWEyZmYzZjg4Li42ODVjOTE4YjU3MWMxMGRiNGUwMzRj
ZDM3MTk4ZmUzMzY3ZmZkNTJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdlbmVyYXRlSXNSZWFjaGFi
bGUuY3BwCkBAIC05OSw2ICs5OSwxMiBAQCBKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlOjpKU1Rl
c3RHZW5lcmF0ZUlzUmVhY2hhYmxlKFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTQogewogfQog
Cit2b2lkIEpTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSkK
K3sKKyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7CisKK30KKwogSlNPYmplY3QqIEpTVGVz
dEdlbmVyYXRlSXNSZWFjaGFibGU6OmNyZWF0ZVByb3RvdHlwZShWTSYgdm0sIEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QpCiB7CiAgICAgcmV0dXJuIEpTVGVzdEdlbmVyYXRlSXNSZWFjaGFi
bGVQcm90b3R5cGU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBKU1Rlc3RHZW5lcmF0ZUlzUmVh
Y2hhYmxlUHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUodm0sIGdsb2JhbE9iamVjdCwgZ2xvYmFs
T2JqZWN0LT5vYmplY3RQcm90b3R5cGUoKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUuaCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RHZW5lcmF0ZUlzUmVh
Y2hhYmxlLmgKaW5kZXggNTNhODU0MTY5NTU1OWM4N2E5ZjAyNzczYWMzMTg4NjI1ODEyODM0ZS4u
ODA4NTI3Yzg0MzI4YzJmMGQ5YmFmYTNmOGQxOGY3MTQwN2U1NWNkYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdlbmVyYXRlSXNSZWFj
aGFibGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0R2VuZXJhdGVJc1JlYWNoYWJsZS5oCkBAIC01MiwxMiArNTIsNyBAQCBwdWJsaWM6CiBwcm90
ZWN0ZWQ6CiAgICAgSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZShKU0M6OlN0cnVjdHVyZSosIEpT
RE9NR2xvYmFsT2JqZWN0JiwgUmVmPFRlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlPiYmKTsKIAotICAg
IHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYgdm0pCi0gICAgewotICAgICAgICBCYXNlOjpm
aW5pc2hDcmVhdGlvbih2bSk7Ci0gICAgICAgIEFTU0VSVChpbmhlcml0cyhpbmZvKCkpKTsKLSAg
ICB9Ci0KKyAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6Vk0mKTsKIH07CiAKIGNsYXNzIEpT
VGVzdEdlbmVyYXRlSXNSZWFjaGFibGVPd25lciA6IHB1YmxpYyBKU0M6OldlYWtIYW5kbGVPd25l
ciB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0R2xvYmFsT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RHbG9iYWxPYmplY3QuY3BwCmluZGV4IGViNzE1OTc0YmNiNTIwMjNmY2Mz
YjM1MGIzMjRjZTMyYmQ3NjM3YzAuLjM1MDI3MjYyODgyMjUxMmRkZmE1Y2VmZjZiY2Q3ZGQxZGJh
MGE3MDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RHbG9iYWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RHbG9iYWxPYmplY3QuY3BwCkBAIC0xNDEsOSArMTQxLDkgQEAg
SlNUZXN0R2xvYmFsT2JqZWN0OjpKU1Rlc3RHbG9iYWxPYmplY3QoU3RydWN0dXJlKiBzdHJ1Y3R1
cmUsIEpTRE9NR2xvYmFsT2JqZWN0JgogewogfQogCi12b2lkIEpTVGVzdEdsb2JhbE9iamVjdDo6
ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU1Byb3h5KiBwcm94eSkKK3ZvaWQgSlNUZXN0R2xvYmFs
T2JqZWN0OjpmaW5pc2hDcmVhdGlvbihWTSYgdm0pCiB7Ci0gICAgQmFzZTo6ZmluaXNoQ3JlYXRp
b24odm0sIHByb3h5KTsKKyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7CiAKICNpZiBFTkFC
TEUoVEVTVF9GRUFUVVJFKQogICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRG
ZWF0dXJlcygpLnRlc3RGZWF0dXJlRW5hYmxlZCgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2xvYmFsT2JqZWN0LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2xvYmFsT2JqZWN0LmgK
aW5kZXggNTdiMGRiYjNkOWE3MTg5M2RmOGJjNDNmMDUxOTliZWE4YmVhYzM2Zi4uZGUxZTA4OTZj
NDg2M2JkNGFiMmRlOTVhM2U3ZDQ0NzI1Y2M2MmI1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdsb2JhbE9iamVjdC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RHbG9iYWxPYmplY3Qu
aApAQCAtNTYsMTMgKzU2LDcgQEAgcHVibGljOgogcHJvdGVjdGVkOgogICAgIEpTVGVzdEdsb2Jh
bE9iamVjdChKU0M6OlN0cnVjdHVyZSosIEpTRE9NR2xvYmFsT2JqZWN0JiwgUmVmPFRlc3RHbG9i
YWxPYmplY3Q+JiYpOwogCi0gICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZNJiB2bSkKLSAg
ICB7Ci0gICAgICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtKTsKLSAgICAgICAgQVNTRVJUKGlu
aGVyaXRzKGluZm8oKSkpOwotICAgIH0KLQotICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpW
TSYsIEpTQzo6SlNQcm94eSopOworICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYpOwog
fTsKIAogY2xhc3MgSlNUZXN0R2xvYmFsT2JqZWN0T3duZXIgOiBwdWJsaWMgSlNDOjpXZWFrSGFu
ZGxlT3duZXIgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmNwcAppbmRleCBlODVjNWY0Y2E0MGFkY2VhODQ3
OWM3OGI0NDU5ZGMxODcwYmYwOTQyLi5kMzVhZjhiNzNiODhjMGViZDEwOTQ2YTQwNjRmYTcwZWIz
NDlkMzVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0SW50ZXJmYWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmNwcApAQCAtMzgxLDYgKzM4MSwxMiBAQCBKU1Rl
c3RJbnRlcmZhY2U6OkpTVGVzdEludGVyZmFjZShTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01H
bG9iYWxPYmplY3QmIGdsb2JhbAogewogfQogCit2b2lkIEpTVGVzdEludGVyZmFjZTo6ZmluaXNo
Q3JlYXRpb24oVk0mIHZtKQoreworICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtKTsKKworfQor
CiBKU09iamVjdCogSlNUZXN0SW50ZXJmYWNlOjpjcmVhdGVQcm90b3R5cGUoVk0mIHZtLCBKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQogewogICAgIHJldHVybiBKU1Rlc3RJbnRlcmZhY2VQ
cm90b3R5cGU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBKU1Rlc3RJbnRlcmZhY2VQcm90b3R5
cGU6OmNyZWF0ZVN0cnVjdHVyZSh2bSwgZ2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3QtPm9iamVj
dFByb3RvdHlwZSgpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmgKaW5kZXggYWQ2NjI0MmY3NzJlOWE1NWIz
OWQwZDVmODhjYjU0MDJlNWE1NTZlMS4uNTBkMjhkNDRhMDM4ZmViOTA0OWMzN2MxY2NkYjUzYzE1
ZTMxM2MwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdEludGVyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuaApAQCAtNzksMTIgKzc5LDcgQEAgcHVibGljOgog
cHJvdGVjdGVkOgogICAgIEpTVGVzdEludGVyZmFjZShKU0M6OlN0cnVjdHVyZSosIEpTRE9NR2xv
YmFsT2JqZWN0JiwgUmVmPFRlc3RJbnRlcmZhY2U+JiYpOwogCi0gICAgdm9pZCBmaW5pc2hDcmVh
dGlvbihKU0M6OlZNJiB2bSkKLSAgICB7Ci0gICAgICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZt
KTsKLSAgICAgICAgQVNTRVJUKGluaGVyaXRzKGluZm8oKSkpOwotICAgIH0KLQorICAgIHZvaWQg
ZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYpOwogfTsKIAogY2xhc3MgSlNUZXN0SW50ZXJmYWNlT3du
ZXIgOiBwdWJsaWMgSlNDOjpXZWFrSGFuZGxlT3duZXIgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZUxlYWRpbmdVbmRl
cnNjb3JlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZS5jcHAKaW5kZXggOTU3NTJkYzgzNDkzY2RkYjM1
M2FlYTIzMzAwZDQ2ZGQxM2IxOTBhMC4uNTdjZDE3YmIwYTI1YjViODNhY2VmNDk2MTdmMjM5OWE1
YjE5M2Y1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVy
c2NvcmUuY3BwCkBAIC0xMDIsNiArMTAyLDEyIEBAIEpTVGVzdEludGVyZmFjZUxlYWRpbmdVbmRl
cnNjb3JlOjpKU1Rlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZShTdHJ1Y3R1cmUqIHN0CiB7
CiB9CiAKK3ZvaWQgSlNUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmU6OmZpbmlzaENyZWF0
aW9uKFZNJiB2bSkKK3sKKyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7CisKK30KKwogSlNP
YmplY3QqIEpTVGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlOjpjcmVhdGVQcm90b3R5cGUo
Vk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQogewogICAgIHJldHVybiBKU1Rl
c3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZVByb3RvdHlwZTo6Y3JlYXRlKHZtLCBnbG9iYWxP
YmplY3QsIEpTVGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlUHJvdG90eXBlOjpjcmVhdGVT
dHJ1Y3R1cmUodm0sIGdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0LT5vYmplY3RQcm90b3R5cGUo
KSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmUuaApp
bmRleCA1YjlhMzhlZTQ3NDY4ZGNjODA3ODVjNWMyOTBiOGI2MzkxMDM3NWIzLi42ZmU2MWEyNDE2
NGIxOTVjZjc3YzkyODVjNjY3M2E1Y2VkZjczYWY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2Nv
cmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmUuaApAQCAtNTIsMTIgKzUyLDcgQEAgcHVibGljOgog
cHJvdGVjdGVkOgogICAgIEpTVGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlKEpTQzo6U3Ry
dWN0dXJlKiwgSlNET01HbG9iYWxPYmplY3QmLCBSZWY8VGVzdEludGVyZmFjZUxlYWRpbmdVbmRl
cnNjb3JlPiYmKTsKIAotICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYgdm0pCi0gICAg
ewotICAgICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7Ci0gICAgICAgIEFTU0VSVChpbmhl
cml0cyhpbmZvKCkpKTsKLSAgICB9Ci0KKyAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6Vk0m
KTsKIH07CiAKIGNsYXNzIEpTVGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlT3duZXIgOiBw
dWJsaWMgSlNDOjpXZWFrSGFuZGxlT3duZXIgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEl0ZXJhYmxlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJdGVyYWJsZS5jcHAKaW5kZXggODQ5
YmM3MmViMzc3NWRlMGI1MGQzZmVmNjJlMGVlYTY1MWNhMjQ1ZC4uYWQ4MzllYjdiODYyMDMxMGVh
NTNlZjEyNGZjNzQzMTg1MzllYjM2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEl0ZXJhYmxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SXRlcmFibGUuY3BwCkBAIC0xMTMsNiAr
MTEzLDEyIEBAIEpTVGVzdEl0ZXJhYmxlOjpKU1Rlc3RJdGVyYWJsZShTdHJ1Y3R1cmUqIHN0cnVj
dHVyZSwgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iCiB7CiB9CiAKK3ZvaWQgSlNUZXN0SXRl
cmFibGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSkKK3sKKyAgICBCYXNlOjpmaW5pc2hDcmVhdGlv
bih2bSk7CisKK30KKwogSlNPYmplY3QqIEpTVGVzdEl0ZXJhYmxlOjpjcmVhdGVQcm90b3R5cGUo
Vk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQogewogICAgIHJldHVybiBKU1Rl
c3RJdGVyYWJsZVByb3RvdHlwZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIEpTVGVzdEl0ZXJh
YmxlUHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUodm0sIGdsb2JhbE9iamVjdCwgZ2xvYmFsT2Jq
ZWN0LT5vYmplY3RQcm90b3R5cGUoKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEl0ZXJhYmxlLmggYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SXRlcmFibGUuaAppbmRleCA0YWM3MTA1MGQ5
MTJjMTNhODlhNDc2ZjNhOTk2YmQ3NGQ5MjA2MTgyLi41YTE1ZGE5M2FjYTM1MmJmMjAzNDEzOTFk
ZWQzZjg3ZTZmMDgxZWZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0SXRlcmFibGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SXRlcmFibGUuaApAQCAtNTIsMTIgKzUyLDcgQEAgcHVi
bGljOgogcHJvdGVjdGVkOgogICAgIEpTVGVzdEl0ZXJhYmxlKEpTQzo6U3RydWN0dXJlKiwgSlNE
T01HbG9iYWxPYmplY3QmLCBSZWY8VGVzdEl0ZXJhYmxlPiYmKTsKIAotICAgIHZvaWQgZmluaXNo
Q3JlYXRpb24oSlNDOjpWTSYgdm0pCi0gICAgewotICAgICAgICBCYXNlOjpmaW5pc2hDcmVhdGlv
bih2bSk7Ci0gICAgICAgIEFTU0VSVChpbmhlcml0cyhpbmZvKCkpKTsKLSAgICB9Ci0KKyAgICB2
b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6Vk0mKTsKIH07CiAKIGNsYXNzIEpTVGVzdEl0ZXJhYmxl
T3duZXIgOiBwdWJsaWMgSlNDOjpXZWFrSGFuZGxlT3duZXIgewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEpTQnVpbHRpbkNvbnN0cnVj
dG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RK
U0J1aWx0aW5Db25zdHJ1Y3Rvci5jcHAKaW5kZXggZGQ0ODk3NGZhYmMwOTJhMGY5YzM4NDQ3YWMy
ZDhhOTE5NGNlNDY2OS4uN2IzMGQ0YjUxMjllZjVjODE1ZmQwYjZkZTNhNWJkN2YwNWExYTAwZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dEpTQnVpbHRpbkNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3IuY3BwCkBAIC0xMTYsNiAr
MTE2LDEyIEBAIGNvbnN0IENsYXNzSW5mbyBKU1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3Rvcjo6c19p
bmZvID0geyAiVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yCiBKU1Rlc3RKU0J1aWx0aW5Db25zdHJ1
Y3Rvcjo6SlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3IoU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpT
RE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCiAgICAgOiBKU0RPTU9iamVjdChzdHJ1Y3R1
cmUsIGdsb2JhbE9iamVjdCkgeyB9CiAKK3ZvaWQgSlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3I6
OmZpbmlzaENyZWF0aW9uKFZNJiB2bSkKK3sKKyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7
CisKK30KKwogSlNPYmplY3QqIEpTVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yOjpjcmVhdGVQcm90
b3R5cGUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQogewogICAgIHJldHVy
biBKU1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvclByb3RvdHlwZTo6Y3JlYXRlKHZtLCBnbG9iYWxP
YmplY3QsIEpTVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yUHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1
cmUodm0sIGdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0LT5vYmplY3RQcm90b3R5cGUoKSkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dEpTQnVpbHRpbkNvbnN0cnVjdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3IuaAppbmRleCBiOGM1OTMxMmNhZmYz
NWMzNGYzNDlkMTZiY2ZjMGQ1Njg5YzYyNWUwLi42NWJjMDA1NzJiOTA2NGQ3NDI1NGFmZGM5NWUz
NWQ1YjE4ODRhZmI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3IuaApA
QCAtNTksNiArNTksNyBAQCBwdWJsaWM6CiBwcm90ZWN0ZWQ6CiAgICAgSlNUZXN0SlNCdWlsdGlu
Q29uc3RydWN0b3IoSlNDOjpTdHJ1Y3R1cmUqLCBKU0RPTUdsb2JhbE9iamVjdCYpOwogCisgICAg
dm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZNJik7CiB9OwogCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExp
c3RlbmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcAppbmRleCA1ODdhOWU0MmRkMzA3ZmIxZmZmYmVh
Zjc1OTZmNmIyYmY5MGNjZjcxLi5iNTJkM2IzNjc2M2RjZTQ3N2U3OTNlNjFkOTIyMjA2MTM2Mzlm
ZGY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwCkBA
IC0xMDcsNiArMTA3LDEyIEBAIEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI6OkpTVGVzdE1l
ZGlhUXVlcnlMaXN0TGlzdGVuZXIoU3RydWN0dXJlKiBzdHJ1Y3R1cmUsCiB7CiB9CiAKK3ZvaWQg
SlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtKQorewor
ICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtKTsKKworfQorCiBKU09iamVjdCogSlNUZXN0TWVk
aWFRdWVyeUxpc3RMaXN0ZW5lcjo6Y3JlYXRlUHJvdG90eXBlKFZNJiB2bSwgSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCkKIHsKICAgICByZXR1cm4gSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0
ZW5lclByb3RvdHlwZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIEpTVGVzdE1lZGlhUXVlcnlM
aXN0TGlzdGVuZXJQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZSh2bSwgZ2xvYmFsT2JqZWN0LCBn
bG9iYWxPYmplY3QtPm9iamVjdFByb3RvdHlwZSgpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5l
ci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlh
UXVlcnlMaXN0TGlzdGVuZXIuaAppbmRleCBlYmNjOTEzMDJiOTYyYzZmMWVmM2Q2ZmVkNjAyZDE1
NzNmOWJmM2JkLi40NDY5M2JhMjNkOWQyYTI2MDkwZWYxN2M3Zjg1MjAzOWFhYTc3NjczIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVk
aWFRdWVyeUxpc3RMaXN0ZW5lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmgKQEAgLTUyLDEyICs1Miw3
IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICBKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVy
KEpTQzo6U3RydWN0dXJlKiwgSlNET01HbG9iYWxPYmplY3QmLCBSZWY8VGVzdE1lZGlhUXVlcnlM
aXN0TGlzdGVuZXI+JiYpOwogCi0gICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZNJiB2bSkK
LSAgICB7Ci0gICAgICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtKTsKLSAgICAgICAgQVNTRVJU
KGluaGVyaXRzKGluZm8oKSkpOwotICAgIH0KLQorICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlND
OjpWTSYpOwogfTsKIAogY2xhc3MgSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lck93bmVyIDog
cHVibGljIEpTQzo6V2Vha0hhbmRsZU93bmVyIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZENvbnN0cnVjdG9yLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZENvbnN0cnVj
dG9yLmNwcAppbmRleCA4Nzg2ZjQzN2YyOWEyNzk3ZGY5NWNkOGY3ODgyYjhlY2ZiMGE5MzQ4Li42
Y2M3NTM0OTg3ZDBhZTU1ODFjZTdiY2Y1MWM0NWY2Mjk3ZWE2MDcwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRDb25zdHJ1Y3Rv
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE5hbWVkQ29uc3RydWN0b3IuY3BwCkBAIC0xNDIsNiArMTQyLDEyIEBAIEpTVGVzdE5hbWVkQ29u
c3RydWN0b3I6OkpTVGVzdE5hbWVkQ29uc3RydWN0b3IoU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpT
RE9NR2xvYmFsCiB7CiB9CiAKK3ZvaWQgSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3Jl
YXRpb24oVk0mIHZtKQoreworICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtKTsKKworfQorCiBK
U09iamVjdCogSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvcjo6Y3JlYXRlUHJvdG90eXBlKFZNJiB2bSwg
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKIHsKICAgICByZXR1cm4gSlNUZXN0TmFtZWRD
b25zdHJ1Y3RvclByb3RvdHlwZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIEpTVGVzdE5hbWVk
Q29uc3RydWN0b3JQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZSh2bSwgZ2xvYmFsT2JqZWN0LCBn
bG9iYWxPYmplY3QtPm9iamVjdFByb3RvdHlwZSgpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvci5oIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQ29uc3Ry
dWN0b3IuaAppbmRleCAzYWFhMTQ1OGYzMDg3NzliNjhlMzc5NjFhOTM0Y2E4NjU2NDY1ZjllLi41
Yjg5NDExYTYwNjMwZGM2N2YyOGQzMWU0NWExZWMyOWQ5MmYyOGE0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRDb25zdHJ1Y3Rv
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RO
YW1lZENvbnN0cnVjdG9yLmgKQEAgLTUzLDEyICs1Myw3IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoK
ICAgICBKU1Rlc3ROYW1lZENvbnN0cnVjdG9yKEpTQzo6U3RydWN0dXJlKiwgSlNET01HbG9iYWxP
YmplY3QmLCBSZWY8VGVzdE5hbWVkQ29uc3RydWN0b3I+JiYpOwogCi0gICAgdm9pZCBmaW5pc2hD
cmVhdGlvbihKU0M6OlZNJiB2bSkKLSAgICB7Ci0gICAgICAgIEJhc2U6OmZpbmlzaENyZWF0aW9u
KHZtKTsKLSAgICAgICAgQVNTRVJUKGluaGVyaXRzKGluZm8oKSkpOwotICAgIH0KLQorICAgIHZv
aWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYpOwogfTsKIAogY2xhc3MgSlNUZXN0TmFtZWRDb25z
dHJ1Y3Rvck93bmVyIDogcHVibGljIEpTQzo6V2Vha0hhbmRsZU93bmVyIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb2RlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb2RlLmNwcApp
bmRleCAzMzcxMGIxM2NmZmI2MGZkNDY3ZDdhMjYwMjJhNDBlNDU0Y2E0NmQ4Li44YWM1MzhhYzll
ZjE4YmNjYjQxZmM4OGFlZWNjZjdiYWE4NzNkZmUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9kZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vZGUuY3BwCkBAIC0xNTYsNiAr
MTU2LDEyIEBAIEpTVGVzdE5vZGU6OkpTVGVzdE5vZGUoU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpT
RE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QsIFJlCiB7CiB9CiAKK3ZvaWQgSlNUZXN0Tm9k
ZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtKQoreworICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZt
KTsKKworfQorCiBKU09iamVjdCogSlNUZXN0Tm9kZTo6Y3JlYXRlUHJvdG90eXBlKFZNJiB2bSwg
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKIHsKICAgICByZXR1cm4gSlNUZXN0Tm9kZVBy
b3RvdHlwZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIEpTVGVzdE5vZGVQcm90b3R5cGU6OmNy
ZWF0ZVN0cnVjdHVyZSh2bSwgZ2xvYmFsT2JqZWN0LCBKU05vZGU6OnByb3RvdHlwZSh2bSwgZ2xv
YmFsT2JqZWN0KSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE5vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3ROb2RlLmgKaW5kZXggODAzZDk1NzNmYmZlZDNlYjI1YWU2MDNjOTlkOWQx
MWRjZmI2MTQzNS4uZWQ4YTM0N2M2NGVlNTg5YjVhMzBlNWY5YzZlNTlhNjMwZWE0OGIzZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5v
ZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
Tm9kZS5oCkBAIC01NiwxMiArNTYsNyBAQCBwdWJsaWM6CiBwcm90ZWN0ZWQ6CiAgICAgSlNUZXN0
Tm9kZShKU0M6OlN0cnVjdHVyZSosIEpTRE9NR2xvYmFsT2JqZWN0JiwgUmVmPFRlc3ROb2RlPiYm
KTsKIAotICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYgdm0pCi0gICAgewotICAgICAg
ICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7Ci0gICAgICAgIEFTU0VSVChpbmhlcml0cyhpbmZv
KCkpKTsKLSAgICB9Ci0KKyAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6Vk0mKTsKIH07CiAK
IFdFQkNPUkVfVEVTVFNVUFBPUlRfRVhQT1JUIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0
YXRlKiwgSlNET01HbG9iYWxPYmplY3QqLCBUZXN0Tm9kZSYpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vbmRldGVybWluaXN0aWMu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vbmRl
dGVybWluaXN0aWMuY3BwCmluZGV4IDNiMTYxNzcxMjJlMzNlZjQ5NzZlMTViYjc0YmJhOWRhOTg0
ZjQzM2EuLjcyNWQxMTkyOTE2MzI1MGRkMDRkMGMzMWYzOGJjZmQ0Nzg3YWNjM2UgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb25kZXRl
cm1pbmlzdGljLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0Tm9uZGV0ZXJtaW5pc3RpYy5jcHAKQEAgLTEyNiw2ICsxMjYsMTIgQEAgSlNUZXN0
Tm9uZGV0ZXJtaW5pc3RpYzo6SlNUZXN0Tm9uZGV0ZXJtaW5pc3RpYyhTdHJ1Y3R1cmUqIHN0cnVj
dHVyZSwgSlNET01HbG9iYWwKIHsKIH0KIAordm9pZCBKU1Rlc3ROb25kZXRlcm1pbmlzdGljOjpm
aW5pc2hDcmVhdGlvbihWTSYgdm0pCit7CisgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOwor
Cit9CisKIEpTT2JqZWN0KiBKU1Rlc3ROb25kZXRlcm1pbmlzdGljOjpjcmVhdGVQcm90b3R5cGUo
Vk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQogewogICAgIHJldHVybiBKU1Rl
c3ROb25kZXRlcm1pbmlzdGljUHJvdG90eXBlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgSlNU
ZXN0Tm9uZGV0ZXJtaW5pc3RpY1Byb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKHZtLCBnbG9iYWxP
YmplY3QsIGdsb2JhbE9iamVjdC0+b2JqZWN0UHJvdG90eXBlKCkpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb25kZXRlcm1pbmlz
dGljLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9u
ZGV0ZXJtaW5pc3RpYy5oCmluZGV4IGEzNDIxYTVlOTg3NDY4NjRkOTk2ZGQ0NjEyMDA0MjViZWRh
ZWU3ZmYuLjcwNTVlNjZhMDRmZWYxNjg2ZDU5ZWZjOTYyZjgwZmY0ZmQ4NzI2YTkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb25kZXRl
cm1pbmlzdGljLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE5vbmRldGVybWluaXN0aWMuaApAQCAtNTIsMTIgKzUyLDcgQEAgcHVibGljOgogcHJv
dGVjdGVkOgogICAgIEpTVGVzdE5vbmRldGVybWluaXN0aWMoSlNDOjpTdHJ1Y3R1cmUqLCBKU0RP
TUdsb2JhbE9iamVjdCYsIFJlZjxUZXN0Tm9uZGV0ZXJtaW5pc3RpYz4mJik7CiAKLSAgICB2b2lk
IGZpbmlzaENyZWF0aW9uKEpTQzo6Vk0mIHZtKQotICAgIHsKLSAgICAgICAgQmFzZTo6ZmluaXNo
Q3JlYXRpb24odm0pOwotICAgICAgICBBU1NFUlQoaW5oZXJpdHMoaW5mbygpKSk7Ci0gICAgfQot
CisgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZNJik7CiB9OwogCiBjbGFzcyBKU1Rlc3RO
b25kZXRlcm1pbmlzdGljT3duZXIgOiBwdWJsaWMgSlNDOjpXZWFrSGFuZGxlT3duZXIgewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9i
ai5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2Jq
LmNwcAppbmRleCA4NTBjMWMxZjJlMjM4N2E2MjBmYzM1YzdkMjdhNjQ5YWVlMTE1YTE3Li40MDMz
NmRjY2Y1MTQyMDNmZjk5MGMyMmFmMGM3MWI1ODA4NjdmYjNiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcApAQCAtMTc2
MSw2ICsxNzYxLDEyIEBAIEpTVGVzdE9iajo6SlNUZXN0T2JqKFN0cnVjdHVyZSogc3RydWN0dXJl
LCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0LCBSZWY8CiB7CiB9CiAKK3ZvaWQgSlNU
ZXN0T2JqOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0pCit7CisgICAgQmFzZTo6ZmluaXNoQ3JlYXRp
b24odm0pOworCit9CisKIEpTT2JqZWN0KiBKU1Rlc3RPYmo6OmNyZWF0ZVByb3RvdHlwZShWTSYg
dm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiB7CiAgICAgcmV0dXJuIEpTVGVzdE9i
alByb3RvdHlwZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIEpTVGVzdE9ialByb3RvdHlwZTo6
Y3JlYXRlU3RydWN0dXJlKHZtLCBnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC0+b2JqZWN0UHJv
dG90eXBlKCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RPYmouaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RPYmouaAppbmRleCA2NDE4Nzc1MzZhMjM4MGYwYjczNDE2ZThlOWI5MDJkMzMw
YzZiZWE5Li5jNDRiMWU0ZjcxYmY5MzMzMjQ4MDY4ZDdiZDcxYmU0NGJmYzMxYjJjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5o
CkBAIC03MiwxMiArNzIsNyBAQCBwdWJsaWM6CiBwcm90ZWN0ZWQ6CiAgICAgSlNUZXN0T2JqKEpT
Qzo6U3RydWN0dXJlKiwgSlNET01HbG9iYWxPYmplY3QmLCBSZWY8VGVzdE9iaj4mJik7CiAKLSAg
ICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6Vk0mIHZtKQotICAgIHsKLSAgICAgICAgQmFzZTo6
ZmluaXNoQ3JlYXRpb24odm0pOwotICAgICAgICBBU1NFUlQoaW5oZXJpdHMoaW5mbygpKSk7Ci0g
ICAgfQotCisgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZNJik7CiB9OwogCiBjbGFzcyBK
U1Rlc3RPYmpPd25lciA6IHB1YmxpYyBKU0M6OldlYWtIYW5kbGVPd25lciB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRl
ZENvbnN0cnVjdG9ycy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5jcHAKaW5kZXggNzllY2U5ZGZlN2FjMWM5
YTZjNTk1Y2FlMTU4ZTEyYTY1NmY4YjZjMi4uMDU1NTljNzE2ZjdiZDkzMTc2NjdhMzBhMzg0ZmQ2
Mzk0YWUyNDFiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3Jz
LmNwcApAQCAtMjAwLDYgKzIwMCwxMiBAQCBKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzOjpK
U1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzKFN0cnVjdHVyZSogc3RydWN0dXJlLAogewogfQog
Cit2b2lkIEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnM6OmZpbmlzaENyZWF0aW9uKFZNJiB2
bSkKK3sKKyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7CisKK30KKwogSlNPYmplY3QqIEpT
VGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnM6OmNyZWF0ZVByb3RvdHlwZShWTSYgdm0sIEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiB7CiAgICAgcmV0dXJuIEpTVGVzdE92ZXJsb2FkZWRD
b25zdHJ1Y3RvcnNQcm90b3R5cGU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBKU1Rlc3RPdmVy
bG9hZGVkQ29uc3RydWN0b3JzUHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUodm0sIGdsb2JhbE9i
amVjdCwgZ2xvYmFsT2JqZWN0LT5vYmplY3RQcm90b3R5cGUoKSkpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25z
dHJ1Y3RvcnMuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RPdmVybG9hZGVkQ29uc3RydWN0b3JzLmgKaW5kZXggYzZiYTMyZDdjYThjY2M4NzgwYzllMzcy
M2E4ZjdmYjhiOGJkMjAwYS4uOTZkMTAzZjQzZGE2NjM0NjJlMWE3ZGI5MTFkNTQ2OTk2ZjRhMjhk
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5oCkBAIC01Miwx
MiArNTIsNyBAQCBwdWJsaWM6CiBwcm90ZWN0ZWQ6CiAgICAgSlNUZXN0T3ZlcmxvYWRlZENvbnN0
cnVjdG9ycyhKU0M6OlN0cnVjdHVyZSosIEpTRE9NR2xvYmFsT2JqZWN0JiwgUmVmPFRlc3RPdmVy
bG9hZGVkQ29uc3RydWN0b3JzPiYmKTsKIAotICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpW
TSYgdm0pCi0gICAgewotICAgICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7Ci0gICAgICAg
IEFTU0VSVChpbmhlcml0cyhpbmZvKCkpKTsKLSAgICB9Ci0KKyAgICB2b2lkIGZpbmlzaENyZWF0
aW9uKEpTQzo6Vk0mKTsKIH07CiAKIGNsYXNzIEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNP
d25lciA6IHB1YmxpYyBKU0M6OldlYWtIYW5kbGVPd25lciB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVj
dG9yc1dpdGhTZXF1ZW5jZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZS5jcHAKaW5kZXgg
NDhiMDZmMDMzZDIwMmNmM2E5MjU3NDQ3Y2JhZGMxNDk0ZGYxNmI4OS4uZjkzZGFmNDUwMTVhMGE5
YjJmZWY0OWZjNWUyMWJmMWU2MmNkYjdiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2Vx
dWVuY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbmNlLmNwcApAQCAtMTUxLDYgKzE1
MSwxMiBAQCBKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbmNlOjpKU1Rlc3RP
dmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbgogewogfQogCit2b2lkIEpTVGVzdE92ZXJs
b2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2U6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSkKK3sK
KyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7CisKK30KKwogSlNPYmplY3QqIEpTVGVzdE92
ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2U6OmNyZWF0ZVByb3RvdHlwZShWTSYgdm0s
IEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiB7CiAgICAgcmV0dXJuIEpTVGVzdE92ZXJs
b2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2VQcm90b3R5cGU6OmNyZWF0ZSh2bSwgZ2xvYmFs
T2JqZWN0LCBKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbmNlUHJvdG90eXBl
OjpjcmVhdGVTdHJ1Y3R1cmUodm0sIGdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0LT5vYmplY3RQ
cm90b3R5cGUoKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2UuaCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29u
c3RydWN0b3JzV2l0aFNlcXVlbmNlLmgKaW5kZXggOWI4OTdlNTMzZThhMTBmZTIyNTFjMjI3NDZm
Y2E2YzY2MzAxYmY0YS4uZGI5NDVlYzEzNmNlYWQ1MmIzOGJmNDc4YTk2NmJlZmE5NWQxZjRhOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dp
dGhTZXF1ZW5jZS5oCkBAIC01MiwxMiArNTIsNyBAQCBwdWJsaWM6CiBwcm90ZWN0ZWQ6CiAgICAg
SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZShKU0M6OlN0cnVjdHVyZSos
IEpTRE9NR2xvYmFsT2JqZWN0JiwgUmVmPFRlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNl
cXVlbmNlPiYmKTsKIAotICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYgdm0pCi0gICAg
ewotICAgICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7Ci0gICAgICAgIEFTU0VSVChpbmhl
cml0cyhpbmZvKCkpKTsKLSAgICB9Ci0KKyAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6Vk0m
KTsKIH07CiAKIGNsYXNzIEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2VP
d25lciA6IHB1YmxpYyBKU0M6OldlYWtIYW5kbGVPd25lciB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcnJpZGVCdWlsdGlucy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcnJp
ZGVCdWlsdGlucy5jcHAKaW5kZXggMWYwNzRkZjRjYjViZDFkYzlhMTAxNGYwYjMxNTI1YmJlZDky
ZDE4Yy4uOTcwYzZkNDE5ZmQ3OTc0MzRjNzdhNDJmMTI4OWZmMjIzMmVkODg2YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJyaWRl
QnVpbHRpbnMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RPdmVycmlkZUJ1aWx0aW5zLmNwcApAQCAtMTA5LDYgKzEwOSwxMiBAQCBKU1Rlc3RP
dmVycmlkZUJ1aWx0aW5zOjpKU1Rlc3RPdmVycmlkZUJ1aWx0aW5zKFN0cnVjdHVyZSogc3RydWN0
dXJlLCBKU0RPTUdsb2JhbAogewogfQogCit2b2lkIEpTVGVzdE92ZXJyaWRlQnVpbHRpbnM6OmZp
bmlzaENyZWF0aW9uKFZNJiB2bSkKK3sKKyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7CisK
K30KKwogSlNPYmplY3QqIEpTVGVzdE92ZXJyaWRlQnVpbHRpbnM6OmNyZWF0ZVByb3RvdHlwZShW
TSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiB7CiAgICAgcmV0dXJuIEpTVGVz
dE92ZXJyaWRlQnVpbHRpbnNQcm90b3R5cGU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBKU1Rl
c3RPdmVycmlkZUJ1aWx0aW5zUHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUodm0sIGdsb2JhbE9i
amVjdCwgZ2xvYmFsT2JqZWN0LT5vYmplY3RQcm90b3R5cGUoKSkpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJyaWRlQnVpbHRp
bnMuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVy
cmlkZUJ1aWx0aW5zLmgKaW5kZXggZWQ1ZmFlMTRlNTg5ODE3Zjg1MmRkZmUxZWUyNTczY2U2ZmYz
NWNiNS4uNzM0ODhjNGUxNmU3YTdhOWNlYjIwNGM1OTJiYWE4MjA0OWZiMmY1OSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJyaWRl
QnVpbHRpbnMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0T3ZlcnJpZGVCdWlsdGlucy5oCkBAIC01NywxMiArNTcsNyBAQCBwdWJsaWM6CiBwcm90
ZWN0ZWQ6CiAgICAgSlNUZXN0T3ZlcnJpZGVCdWlsdGlucyhKU0M6OlN0cnVjdHVyZSosIEpTRE9N
R2xvYmFsT2JqZWN0JiwgUmVmPFRlc3RPdmVycmlkZUJ1aWx0aW5zPiYmKTsKIAotICAgIHZvaWQg
ZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYgdm0pCi0gICAgewotICAgICAgICBCYXNlOjpmaW5pc2hD
cmVhdGlvbih2bSk7Ci0gICAgICAgIEFTU0VSVChpbmhlcml0cyhpbmZvKCkpKTsKLSAgICB9Ci0K
KyAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6Vk0mKTsKIHByaXZhdGU6CiAgICAgYm9vbCBu
YW1lR2V0dGVyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6SlNWYWx1
ZSYpOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RTZXJpYWxpemF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemF0aW9uLmNwcAppbmRleCA2OGQyNDViODE4YjJk
YTU4ZGY2MjJhNjFlMTkwNGRmMWZmYTg5ZDIyLi4yZTFiMWFkOTg2OWQ4ZDQxODUxNzY0ZjlhMWU2
MDc0ZTQ3YmRlMWRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXphdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6YXRpb24uY3BwCkBAIC0xMjIsNiAr
MTIyLDEyIEBAIEpTVGVzdFNlcmlhbGl6YXRpb246OkpTVGVzdFNlcmlhbGl6YXRpb24oU3RydWN0
dXJlKiBzdHJ1Y3R1cmUsIEpTRE9NR2xvYmFsT2JqZWN0CiB7CiB9CiAKK3ZvaWQgSlNUZXN0U2Vy
aWFsaXphdGlvbjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtKQoreworICAgIEJhc2U6OmZpbmlzaENy
ZWF0aW9uKHZtKTsKKworfQorCiBKU09iamVjdCogSlNUZXN0U2VyaWFsaXphdGlvbjo6Y3JlYXRl
UHJvdG90eXBlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKIHsKICAgICBy
ZXR1cm4gSlNUZXN0U2VyaWFsaXphdGlvblByb3RvdHlwZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmpl
Y3QsIEpTVGVzdFNlcmlhbGl6YXRpb25Qcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZSh2bSwgZ2xv
YmFsT2JqZWN0LCBnbG9iYWxPYmplY3QtPm9iamVjdFByb3RvdHlwZSgpKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXph
dGlvbi5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNl
cmlhbGl6YXRpb24uaAppbmRleCA2NjdmNjlkNmQxOTNmMmM1NDMxZDllMGRkMWJiYjhmOGQ2YmVl
YmU1Li40ZTMwYmJkYmRlMjgyYjhiMTM2NWYwYTZkM2MwNDgzY2IwOTZmMjg2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXph
dGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RTZXJpYWxpemF0aW9uLmgKQEAgLTUyLDEyICs1Miw3IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoK
ICAgICBKU1Rlc3RTZXJpYWxpemF0aW9uKEpTQzo6U3RydWN0dXJlKiwgSlNET01HbG9iYWxPYmpl
Y3QmLCBSZWY8VGVzdFNlcmlhbGl6YXRpb24+JiYpOwogCi0gICAgdm9pZCBmaW5pc2hDcmVhdGlv
bihKU0M6OlZNJiB2bSkKLSAgICB7Ci0gICAgICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtKTsK
LSAgICAgICAgQVNTRVJUKGluaGVyaXRzKGluZm8oKSkpOwotICAgIH0KLQorICAgIHZvaWQgZmlu
aXNoQ3JlYXRpb24oSlNDOjpWTSYpOwogfTsKIAogY2xhc3MgSlNUZXN0U2VyaWFsaXphdGlvbk93
bmVyIDogcHVibGljIEpTQzo6V2Vha0hhbmRsZU93bmVyIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFs
dWVJbnRlcmZhY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHAKaW5kZXggNzA2ZjI0NGZm
MzUxZGQyYzBiMmRmMTMxNWRlYTAzZDAyM2UyODU3Zi4uNjhjMmYzM2I2ZTIzMTZmZjM0OGFhMzc4
Y2FkN2M5Y2MxNTQzMDM2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHAKQEAgLTExOCw2ICsxMTgsMTIgQEAgSlNUZXN0U2Vy
aWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlOjpKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJ
bnRlcmZhY2UoU3RydWMKIHsKIH0KIAordm9pZCBKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJ
bnRlcmZhY2U6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSkKK3sKKyAgICBCYXNlOjpmaW5pc2hDcmVh
dGlvbih2bSk7CisKK30KKwogSlNPYmplY3QqIEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUlu
dGVyZmFjZTo6Y3JlYXRlUHJvdG90eXBlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCkKIHsKICAgICByZXR1cm4gSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNl
UHJvdG90eXBlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgSlNUZXN0U2VyaWFsaXplZFNjcmlw
dFZhbHVlSW50ZXJmYWNlUHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUodm0sIGdsb2JhbE9iamVj
dCwgZ2xvYmFsT2JqZWN0LT5vYmplY3RQcm90b3R5cGUoKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZUludGVyZmFjZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5oCmluZGV4IGYxN2YxN2Q4NTMx
YTBjMTZmNDkxNjgxMzhiMDEzNjY1MmM4NTU3ZjYuLmMyNmUyNDQxMmEzMjdlMDdjMWQ5YzcwNjlh
YjllYjFhMmRjZDM5NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNj
cmlwdFZhbHVlSW50ZXJmYWNlLmgKQEAgLTU4LDEyICs1OCw3IEBAIHB1YmxpYzoKIHByb3RlY3Rl
ZDoKICAgICBKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UoSlNDOjpTdHJ1Y3R1
cmUqLCBKU0RPTUdsb2JhbE9iamVjdCYsIFJlZjxUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50
ZXJmYWNlPiYmKTsKIAotICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYgdm0pCi0gICAg
ewotICAgICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7Ci0gICAgICAgIEFTU0VSVChpbmhl
cml0cyhpbmZvKCkpKTsKLSAgICB9Ci0KKyAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6Vk0m
KTsKIH07CiAKIGNsYXNzIEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZU93bmVy
IDogcHVibGljIEpTQzo6V2Vha0hhbmRsZU93bmVyIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RUeXBlZGVmcy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlwZWRlZnMuY3BwCmluZGV4
IGJhMGMwOTUxMDA2NjBjOTY1OTFjNzBiNWI0Yzk1NjQ4NDVjODk4ZjkuLjI1MmViMmZiYzY1MTFj
NTI5Mzg4NzJjYjk3NGU1NTBmZjkyOTJiNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RUeXBlZGVmcy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmNwcApAQCAtMjAz
LDYgKzIwMywxMiBAQCBKU1Rlc3RUeXBlZGVmczo6SlNUZXN0VHlwZWRlZnMoU3RydWN0dXJlKiBz
dHJ1Y3R1cmUsIEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYgogewogfQogCit2b2lkIEpTVGVz
dFR5cGVkZWZzOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0pCit7CisgICAgQmFzZTo6ZmluaXNoQ3Jl
YXRpb24odm0pOworCit9CisKIEpTT2JqZWN0KiBKU1Rlc3RUeXBlZGVmczo6Y3JlYXRlUHJvdG90
eXBlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKIHsKICAgICByZXR1cm4g
SlNUZXN0VHlwZWRlZnNQcm90b3R5cGU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBKU1Rlc3RU
eXBlZGVmc1Byb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKHZtLCBnbG9iYWxPYmplY3QsIGdsb2Jh
bE9iamVjdC0+b2JqZWN0UHJvdG90eXBlKCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RUeXBlZGVmcy5oIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmgKaW5kZXggNmU5YjYw
OTYyNjk2OWM0ODUzODQ1OWZhOWVkOGU3YjI4ZDRmN2I0MC4uNGE2ZjJiZWFhM2VmYTJlNGIyZDcz
NzUwYjBiNjRhMGNiYmY0YjdkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmgKQEAgLTU0LDEyICs1NCw3IEBA
IHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICBKU1Rlc3RUeXBlZGVmcyhKU0M6OlN0cnVjdHVyZSos
IEpTRE9NR2xvYmFsT2JqZWN0JiwgUmVmPFRlc3RUeXBlZGVmcz4mJik7CiAKLSAgICB2b2lkIGZp
bmlzaENyZWF0aW9uKEpTQzo6Vk0mIHZtKQotICAgIHsKLSAgICAgICAgQmFzZTo6ZmluaXNoQ3Jl
YXRpb24odm0pOwotICAgICAgICBBU1NFUlQoaW5oZXJpdHMoaW5mbygpKSk7Ci0gICAgfQotCisg
ICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZNJik7CiB9OwogCiBjbGFzcyBKU1Rlc3RUeXBl
ZGVmc093bmVyIDogcHVibGljIEpTQzo6V2Vha0hhbmRsZU93bmVyIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0R2xvYmFsT2JqZWN0LmlkbCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0R2xvYmFsT2JqZWN0Lmlk
bAppbmRleCAwMTU1MGMyNTJiM2M4Nzk3YmJhYzg3M2M4YzU5ZDA4MzcyYjY1ZDFjLi5jOTQxYjM0
OWQ3ZGU5YTZiZjIwMDkwZWM0MGUwZTZlZDk3ZDNmMzA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdEdsb2JhbE9iamVjdC5pZGwKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RHbG9iYWxPYmplY3QuaWRsCkBA
IC0yNCw3ICsyNCw5IEBACiAgKi8KIAogLy8gVGhpcyBpbnRlcmZhY2UgaXMgcmVjb2duaXplZCBh
cyBhIGdsb2JhbCBvYmplY3QgYnkgdGhlIGJpbmRpbmdzIGdlbmVyYXRvci4KLWludGVyZmFjZSBU
ZXN0R2xvYmFsT2JqZWN0IHsKK1sKKyAgICBHbG9iYWwsCitdIGludGVyZmFjZSBUZXN0R2xvYmFs
T2JqZWN0IHsKICAgICBhdHRyaWJ1dGUgRE9NU3RyaW5nIHJlZ3VsYXJBdHRyaWJ1dGU7CiAgICAg
W1ByaXZhdGVJZGVudGlmaWVyLCBQdWJsaWNJZGVudGlmaWVyXSBhdHRyaWJ1dGUgRE9NU3RyaW5n
IHB1YmxpY0FuZFByaXZhdGVBdHRyaWJ1dGU7CiAgICAgW0NvbmRpdGlvbmFsPVRFU1RfRkVBVFVS
RSwgUHJpdmF0ZUlkZW50aWZpZXIsIFB1YmxpY0lkZW50aWZpZXJdIGF0dHJpYnV0ZSBET01TdHJp
bmcgcHVibGljQW5kUHJpdmF0ZUNvbmRpdGlvbmFsQXR0cmlidXRlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01X
aW5kb3cuaWRsCmluZGV4IGZiNzYxYWNjNzY0ZTkwYmVjN2M3OGM2NzM0NTA2ZjMwMWY0MDk5NjUu
LjBhMzJiNjljMzNlMWZmYjc0ZmRiMDYzNWQzZDBlMDliODdlZjViYTggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0RPTVdpbmRvdy5pZGwKQEAgLTQwLDYgKzQwLDcgQEAKICAgICBKU0N1c3RvbU1hcmtGdW5jdGlv
biwKICAgICBKU0N1c3RvbVRvTmF0aXZlT2JqZWN0LAogICAgIEpTTGVnYWN5UGFyZW50PUpTRE9N
V2luZG93QmFzZSwKKyAgICBQcmltYXJ5R2xvYmFsLAogXSBpbnRlcmZhY2UgRE9NV2luZG93IDog
RXZlbnRUYXJnZXQgewogICAgIFtSZXBsYWNlYWJsZV0gcmVhZG9ubHkgYXR0cmlidXRlIFNjcmVl
biBzY3JlZW47CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEhpc3RvcnkgaGlzdG9yeTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUu
aWRsIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZS5p
ZGwKaW5kZXggY2M1ZWNmMTM4Y2U0ZjRkODg4YTgwODNlY2Y5NjhiZTdmNThiZjc4Zi4uMTNhOWE4
NmM5OGFmMDJlOWY5MDMxY2FiOGI0NjM3YTI0MjU5ZWZhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZS5pZGwKKysrIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZS5pZGwKQEAgLTMxLDYg
KzMxLDcgQEAKIFsKICAgICBDdXN0b21Qcm94eVRvSlNPYmplY3QsCiAgICAgRXhwb3NlZD1EZWRp
Y2F0ZWRXb3JrZXIsCisgICAgR2xvYmFsPShXb3JrZXIsRGVkaWNhdGVkV29ya2VyKSwKICAgICBK
U0dlbmVyYXRlVG9OYXRpdmVPYmplY3QsCiBdIGludGVyZmFjZSBEZWRpY2F0ZWRXb3JrZXJHbG9i
YWxTY29wZSA6IFdvcmtlckdsb2JhbFNjb3BlIHsKICAgICBbQ3VzdG9tLCBNYXlUaHJvd0V4Y2Vw
dGlvbl0gdm9pZCBwb3N0TWVzc2FnZShhbnkgbWVzc2FnZSwgb3B0aW9uYWwgQXJyYXkgbWVzc2Fn
ZVBvcnRzKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwppbmRleCBkMzdhMzVhMDUwZWNjZTI3ODNlODg0OTE3N2I0NWIyZWU0OGIyYWNh
Li41ZjJiYTdiNWRhNTI2ZTZkNjc4M2NmMzlhOGI3OGJjOWJlMWQ1ZjcwIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjEgQEAKKzIwMTYtMTEtMTEgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKwor
ICAgICAgICBXb3JrZXJHbG9iYWxTY29wZSdzIGluZGV4ZWREQiBwcm9wZXJ0eSBzaG91bGQgYmUg
b24gdGhlIHByb3RvdHlwZSwgbm90IHRoZSBpbnN0YW5jZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY0NjQ0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRXh0ZW5kIGxheW91dCB0ZXN0IGNvdmVyYWdlIHRv
IGNoZWNrIHRoYXQ6CisgICAgICAgIC0gV29ya2VyR2xvYmFsU2NvcGUuaW5kZXhlZERCIGlzIG9u
IHRoZSBwcm90b3R5cGUuCisgICAgICAgIC0gV29ya2VyR2xvYmFsU2NvcGUuSURCRGF0YWJhc2Ug
Y29uc3RydWN0b3IgaXMgb24gdGhlIGluc3RhbmNlCisKKyAgICAgICAgQm90aCBhcmUgZW5hYmxl
ZCBhdCBydW50aW1lIHByb3BlcnRpZXMuCisKKyAgICAgICAgKiBmYXN0L3dvcmtlcnMvV29ya2Vy
R2xvYmFsU2NvcGUtcHJvcGVydGllcy1wcm90b3R5cGUtZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IGZhc3Qvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS1wcm9wZXJ0aWVzLXByb3RvdHlwZS5odG1s
OgorICAgICAgICAqIGZhc3Qvd29ya2Vycy9zZWxmLWhhc093blByb3BlcnR5LWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiBmYXN0L3dvcmtlcnMvc2VsZi1oYXNPd25Qcm9wZXJ0eS5odG1sOgorCiAy
MDE2LTExLTEwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgUkVH
UkVTU0lPTiAocjIwODUyMik6IExheW91dFRlc3QgZmFzdC9sb2FkZXIvcmVsb2FkLXplcm8tYnl0
ZS1wbHVnaW4uaHRtbCBpcyBhIGZsYWt5IGZhaWx1cmUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3Qvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS1wcm9wZXJ0aWVzLXByb3RvdHlwZS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUtcHJv
cGVydGllcy1wcm90b3R5cGUtZXhwZWN0ZWQudHh0CmluZGV4IDZmNDRjM2Q5ZmE3YzVlZGFjMzk4
YzEyYTc0MTlkMTFjM2U0ZjhiYWIuLjVhYWY4NjM5ZmIwZDliYTI4ZjliZWJjZDNmNmNiZTkyYzEy
YjI5ODUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy9Xb3JrZXJHbG9iYWxT
Y29wZS1wcm9wZXJ0aWVzLXByb3RvdHlwZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLXByb3BlcnRpZXMtcHJvdG90eXBlLWV4cGVj
dGVkLnR4dApAQCAtNCwxMSArNCwxNCBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogCiAKIHNl
bGYuX19wcm90b19fLl9fcHJvdG9fXyA9PT0gV29ya2VyR2xvYmFsU2NvcGUucHJvdG90eXBlOiB0
cnVlCitzZWxmLl9fcHJvdG9fXy5fX3Byb3RvX18uX19wcm90b19fID09PSBFdmVudFRhcmdldC5w
cm90b3R5cGU6IHRydWUKK3NlbGYuX19wcm90b19fLl9fcHJvdG9fXy5fX3Byb3RvX18uX19wcm90
b19fID09PSB7fS5fX3Byb3RvX186IHRydWUKIHNlbGYuX19wcm90b19fLl9fcHJvdG9fXy5oYXNP
d25Qcm9wZXJ0eSgnbmF2aWdhdG9yJykgPT09IHRydWU6IHRydWUKIHNlbGYuX19wcm90b19fLl9f
cHJvdG9fXy5oYXNPd25Qcm9wZXJ0eSgnc2VsZicpID09PSB0cnVlOiB0cnVlCiBzZWxmLl9fcHJv
dG9fXy5fX3Byb3RvX18uaGFzT3duUHJvcGVydHkoJ2xvY2F0aW9uJykgPT09IHRydWU6IHRydWUK
IHNlbGYuX19wcm90b19fLl9fcHJvdG9fXy5oYXNPd25Qcm9wZXJ0eSgnY2xvc2UnKSA9PT0gdHJ1
ZTogdHJ1ZQogc2VsZi5fX3Byb3RvX18uX19wcm90b19fLmhhc093blByb3BlcnR5KCdpbXBvcnRT
Y3JpcHRzJykgPT09IHRydWU6IHRydWUKK3NlbGYuX19wcm90b19fLl9fcHJvdG9fXy5oYXNPd25Q
cm9wZXJ0eSgnaW5kZXhlZERCJykgPT09IHRydWU6IHRydWUKIHNlbGYuaGFzT3duUHJvcGVydHko
J25hdmlnYXRvcicpID09PSBmYWxzZTogdHJ1ZQogc2VsZi5oYXNPd25Qcm9wZXJ0eSgnbG9jYXRp
b24nKSA9PT0gZmFsc2U6IHRydWUKIHNlbGYuaGFzT3duUHJvcGVydHkoJ2Nsb3NlJykgPT09IGZh
bHNlOiB0cnVlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvV29ya2VyR2xv
YmFsU2NvcGUtcHJvcGVydGllcy1wcm90b3R5cGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvd29y
a2Vycy9Xb3JrZXJHbG9iYWxTY29wZS1wcm9wZXJ0aWVzLXByb3RvdHlwZS5odG1sCmluZGV4IGI5
ZDg2ZDIwZjAxMGFkYzA2ZDc0OGNjMTVmMmVhOWYzM2Q2Zjc0YmIuLjZmN2JiNjFlNWM4OTJmNjM5
ZmZmNGFiMDFlZGY3NGM3YmI3Mjg4NjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qvd29y
a2Vycy9Xb3JrZXJHbG9iYWxTY29wZS1wcm9wZXJ0aWVzLXByb3RvdHlwZS5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3Qvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS1wcm9wZXJ0aWVzLXByb3Rv
dHlwZS5odG1sCkBAIC05LDExICs5LDE0IEBAIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IFdvcmtl
ckdsb2JhbFNjb3BlJ3MgcHJvcGVydGllcyBhcmUgb24gdGhlIHByb3RvdHlwZS4iKTsKIAogdmFy
IHdvcmtlciA9IGNyZWF0ZVdvcmtlcigpOwogd29ya2VyLnBvc3RNZXNzYWdlKCJldmFsIHNlbGYu
X19wcm90b19fLl9fcHJvdG9fXyA9PT0gV29ya2VyR2xvYmFsU2NvcGUucHJvdG90eXBlIik7Cit3
b3JrZXIucG9zdE1lc3NhZ2UoImV2YWwgc2VsZi5fX3Byb3RvX18uX19wcm90b19fLl9fcHJvdG9f
XyA9PT0gRXZlbnRUYXJnZXQucHJvdG90eXBlIik7Cit3b3JrZXIucG9zdE1lc3NhZ2UoImV2YWwg
c2VsZi5fX3Byb3RvX18uX19wcm90b19fLl9fcHJvdG9fXy5fX3Byb3RvX18gPT09IHt9Ll9fcHJv
dG9fXyIpOwogd29ya2VyLnBvc3RNZXNzYWdlKCJldmFsIHNlbGYuX19wcm90b19fLl9fcHJvdG9f
Xy5oYXNPd25Qcm9wZXJ0eSgnbmF2aWdhdG9yJykgPT09IHRydWUiKTsKIHdvcmtlci5wb3N0TWVz
c2FnZSgiZXZhbCBzZWxmLl9fcHJvdG9fXy5fX3Byb3RvX18uaGFzT3duUHJvcGVydHkoJ3NlbGYn
KSA9PT0gdHJ1ZSIpOwogd29ya2VyLnBvc3RNZXNzYWdlKCJldmFsIHNlbGYuX19wcm90b19fLl9f
cHJvdG9fXy5oYXNPd25Qcm9wZXJ0eSgnbG9jYXRpb24nKSA9PT0gdHJ1ZSIpOwogd29ya2VyLnBv
c3RNZXNzYWdlKCJldmFsIHNlbGYuX19wcm90b19fLl9fcHJvdG9fXy5oYXNPd25Qcm9wZXJ0eSgn
Y2xvc2UnKSA9PT0gdHJ1ZSIpOwogd29ya2VyLnBvc3RNZXNzYWdlKCJldmFsIHNlbGYuX19wcm90
b19fLl9fcHJvdG9fXy5oYXNPd25Qcm9wZXJ0eSgnaW1wb3J0U2NyaXB0cycpID09PSB0cnVlIik7
Cit3b3JrZXIucG9zdE1lc3NhZ2UoImV2YWwgc2VsZi5fX3Byb3RvX18uX19wcm90b19fLmhhc093
blByb3BlcnR5KCdpbmRleGVkREInKSA9PT0gdHJ1ZSIpOwogd29ya2VyLnBvc3RNZXNzYWdlKCJl
dmFsIHNlbGYuaGFzT3duUHJvcGVydHkoJ25hdmlnYXRvcicpID09PSBmYWxzZSIpOwogd29ya2Vy
LnBvc3RNZXNzYWdlKCJldmFsIHNlbGYuaGFzT3duUHJvcGVydHkoJ2xvY2F0aW9uJykgPT09IGZh
bHNlIik7CiB3b3JrZXIucG9zdE1lc3NhZ2UoImV2YWwgc2VsZi5oYXNPd25Qcm9wZXJ0eSgnY2xv
c2UnKSA9PT0gZmFsc2UiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy9z
ZWxmLWhhc093blByb3BlcnR5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vy
cy9zZWxmLWhhc093blByb3BlcnR5LWV4cGVjdGVkLnR4dAppbmRleCBmNGE3YTI0ZGNhYTY0NzM2
MzVjNWUxMTFmNDM5OGE3MGFlODJmN2UyLi4xNTMxOWI0YjkyZjVmZWJmNmE0ZDIyYTRiZmI1Njlm
MGM0YzU2ODhmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvc2VsZi1oYXNP
d25Qcm9wZXJ0eS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3Nl
bGYtaGFzT3duUHJvcGVydHktZXhwZWN0ZWQudHh0CkBAIC02LDYgKzYsNyBAQCBPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURQogc2VsZi5oYXNPd25Qcm9wZXJ0eSgnRGVkaWNhdGVkV29ya2VyR2xvYmFs
U2NvcGUnKTogdHJ1ZQogc2VsZi5oYXNPd25Qcm9wZXJ0eSgnV29ya2VyR2xvYmFsU2NvcGUnKTog
dHJ1ZQogc2VsZi5oYXNPd25Qcm9wZXJ0eSgncG9zdE1lc3NhZ2UnKTogdHJ1ZQorc2VsZi5oYXNP
d25Qcm9wZXJ0eSgnSURCRGF0YWJhc2UnKTogdHJ1ZQogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3dv
cmtlcnMvc2VsZi1oYXNPd25Qcm9wZXJ0eS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJz
L3NlbGYtaGFzT3duUHJvcGVydHkuaHRtbAppbmRleCAwOGQ1YjI2YjViYWI5ZTZhMDY5OTVlYTk2
N2UyYjJjZjVkYzc2ZGU2Li5lMzVlOWRlYjUyNzk2OGJkNDNlOWFjNTYyMjNiYjE3NWY0NDNlYzZi
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvc2VsZi1oYXNPd25Qcm9wZXJ0
eS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy9zZWxmLWhhc093blByb3BlcnR5
Lmh0bWwKQEAgLTExLDYgKzExLDcgQEAgdmFyIHdvcmtlciA9IGNyZWF0ZVdvcmtlcigpOwogd29y
a2VyLnBvc3RNZXNzYWdlKCJldmFsIHNlbGYuaGFzT3duUHJvcGVydHkoJ0RlZGljYXRlZFdvcmtl
ckdsb2JhbFNjb3BlJykiKTsKIHdvcmtlci5wb3N0TWVzc2FnZSgiZXZhbCBzZWxmLmhhc093blBy
b3BlcnR5KCdXb3JrZXJHbG9iYWxTY29wZScpIik7CiB3b3JrZXIucG9zdE1lc3NhZ2UoImV2YWwg
c2VsZi5oYXNPd25Qcm9wZXJ0eSgncG9zdE1lc3NhZ2UnKSIpOword29ya2VyLnBvc3RNZXNzYWdl
KCJldmFsIHNlbGYuaGFzT3duUHJvcGVydHkoJ0lEQkRhdGFiYXNlJykiKTsKIHdvcmtlci5wb3N0
TWVzc2FnZSgiZXZhbCBET05FIik7CiAKIHdvcmtlci5vbm1lc3NhZ2UgPSBmdW5jdGlvbihldnQp
IHsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>294535</attachid>
            <date>2016-11-11 14:12:04 -0800</date>
            <delta_ts>2016-11-11 14:56:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-164644-20161111140750.patch</filename>
            <type>text/plain</type>
            <size>78004</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA4NTY5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDUyMDA0YmZjMWM5MDFi
Yjk3ZDUxODJlNzA3ZDQwOTQxOGVkMjQ3Zi4uOGIzMjRiNTQxMTI3ZjY1NjQ3YjFmMjBkNTgyMDhk
NmVlMjUxNWYwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzMSBAQAorMjAxNi0xMS0xMSAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFdvcmtlckdsb2JhbFNjb3Bl
J3MgaW5kZXhlZERCIHByb3BlcnR5IHNob3VsZCBiZSBvbiB0aGUgcHJvdG90eXBlLCBub3QgdGhl
IGluc3RhbmNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNjQ2NDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBXb3JrZXJHbG9iYWxTY29wZSdzIGluZGV4ZWREQiBwcm9wZXJ0eSBzaG91bGQgYmUgb24gdGhl
IHByb3RvdHlwZSwgbm90IHRoZSBpbnN0YW5jZQorICAgICAgICBhcyBwZXI6CisgICAgICAgIC0g
aHR0cHM6Ly9oZXljYW0uZ2l0aHViLmlvL3dlYmlkbC8jZXMtYXR0cmlidXRlcworCisgICAgICAg
IFRoaXMgaXMgYmVjYXVzZSBXb3JrZXJHbG9iYWxTY29wZSBpcyBub3QgbWFya2VkIGFzIFtHbG9i
YWxdIG9yIFtQcmltYXJ5R2xvYmFsXSBpbgorICAgICAgICB0aGUgSURMOgorICAgICAgICAtIGh0
dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3dvcmtlcnMuaHRtbCN0aGUtd29y
a2VyZ2xvYmFsc2NvcGUtY29tbW9uLWludGVyZmFjZQorCisgICAgICAgIERlZGljYXRlZFdvcmtl
ckdsb2JhbFNjb3BlIGlzIHRoZSBvbmUgdGhhdCBpcyBtYXJrZWQgYXMgW0dsb2JhbF0gYW5kIHRo
YXQgc2hvdWxkCisgICAgICAgIGhhdmUgaXRzIGF0dHJpYnV0ZXMgb24gdGhlIGluc3RhbmNlOgor
ICAgICAgICAtIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3dvcmtlcnMu
aHRtbCNkZWRpY2F0ZWQtd29ya2Vycy1hbmQtdGhlLWRlZGljYXRlZHdvcmtlcmdsb2JhbHNjb3Bl
LWludGVyZmFjZQorCisgICAgICAgIFdlIHdlcmUgZ2V0dGluZyB0aGlzIG1vc3RseSByaWdodCwg
ZXhjZXB0IGZvciBydW50aW1lLWVuYWJsZWQgYXR0cmlidXRlcyAvIG9wZXJhdGlvbnMKKyAgICAg
ICAgd2hpY2ggd291bGQgZW5kIHVwIG9uIHRoZSBpbnN0YW5jZSBpbnN0ZWFkIG9mIHRoZSBwcm90
b3R5cGUuIFRoaXMgcGF0Y2ggYWRkcyBzdXBwb3J0CisgICAgICAgIGZvciBbUHJpbWFyeUdsb2Jh
bF0gLyBbR2xvYmFsXSBJREwgZXh0ZW5kZWQgYXR0cmlidXRlcyB3aGljaCBkZXRlcm1pbmUgdGhl
IGxvY2F0aW9uCisgICAgICAgIG9mIHByb3BlcnRpZXMuIEl0IGFsc28gaW1wcm92ZXMgc3VwcG9y
dCBmb3IgcnVudGltZS1lbmFibGVkIHByb3BlcnRpZXMgc28gdGhhdCB0aGV5CisgICAgICAgIGNh
biBub3cgYmUgb24gZWl0aGVyIHRoZSBpbnN0YW5jZSBvciB0aGUgcHJvdG90eXBlLCBleGFjdGx5
IGFzIGlmIHRoZXkgd2VyZSBub3QKKyAgICAgICAgcnVudGltZWQtZW5hYmxlZC4KKworICAgICAg
ICBUaGlzIGdpdmVzIHVzIDEwMCUgcGFzcyByYXRlIG9uOgorICAgICAgICAtIGh0dHA6Ly93M2Mt
dGVzdC5vcmcvSW5kZXhlZERCL2ludGVyZmFjZXMud29ya2VyLmh0bWwKKworICAgICAgICBObyBu
ZXcgdGVzdHMsIHVwZGF0ZWQgZXhpc3RpbmcgdGVzdC4KKworICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAoSXNHbG9iYWxPclByaW1hcnlHbG9i
YWxJbnRlcmZhY2UpOgorICAgICAgICAoSW50ZXJmYWNlUmVxdWlyZXNBdHRyaWJ1dGVzT25JbnN0
YW5jZSk6CisgICAgICAgIChBdHRyaWJ1dGVTaG91bGRCZU9uSW5zdGFuY2UpOgorICAgICAgICAo
T3BlcmF0aW9uU2hvdWxkQmVPbkluc3RhbmNlKToKKyAgICAgICAgKEdlbmVyYXRlSGVhZGVyKToK
KyAgICAgICAgKEdlbmVyYXRlUHJvcGVydGllc0hhc2hUYWJsZSk6CisgICAgICAgIChHZW5lcmF0
ZUltcGxlbWVudGF0aW9uKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0
ZXMudHh0OgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU0ludGVyZmFjZU5h
bWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNJbnRlcmZhY2VOYW1lOjpmaW5pc2hDcmVhdGlv
bik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTSW50ZXJmYWNlTmFtZS5o
OgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVET01PYmpl
Y3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0QWN0aXZlRE9NT2JqZWN0OjpmaW5pc2hD
cmVhdGlvbik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEFjdGl2
ZURPTU9iamVjdC5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RD
RVJlYWN0aW9ucy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RDRVJlYWN0aW9uczo6Zmlu
aXNoQ3JlYXRpb24pOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RD
RVJlYWN0aW9ucy5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RD
RVJlYWN0aW9uc1N0cmluZ2lmaWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdENFUmVh
Y3Rpb25zU3RyaW5naWZpZXI6OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKiBiaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllci5oOgorICAgICAgICAq
IGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1
Y3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25z
dHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3Rvci5oOgorICAgICAgICAqIGJp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21Db25zdHJ1Y3RvcldpdGhOb0ludGVy
ZmFjZU9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RDdXN0b21Db25zdHJ1Y3Rv
cldpdGhOb0ludGVyZmFjZU9iamVjdDo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAqIGJpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21Db25zdHJ1Y3RvcldpdGhOb0ludGVyZmFj
ZU9iamVjdC5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0
b21OYW1lZEdldHRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RDdXN0b21OYW1lZEdl
dHRlcjo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RDdXN0b21OYW1lZEdldHRlci5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RET01KSVQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0RE9NSklU
OjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdERPTUpJVC5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RF
dmVudENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdEV2ZW50Q29uc3Ry
dWN0b3I6OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvci5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RFdmVudFRhcmdldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RF
dmVudFRhcmdldDo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RFdmVudFRhcmdldC5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RFeGNlcHRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0RXhj
ZXB0aW9uOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdEV4Y2VwdGlvbi5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVz
dEdlbmVyYXRlSXNSZWFjaGFibGU6OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKiBiaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZS5oOgorICAgICAgICAq
IGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RHbG9iYWxPYmplY3QuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SlNUZXN0R2xvYmFsT2JqZWN0OjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAg
ICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdsb2JhbE9iamVjdC5oOgorICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SlNUZXN0SW50ZXJmYWNlOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICog
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5oOgorICAgICAgICAqIGJp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZTo6
ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZS5oOgorICAgICAgICAqIGJpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RJdGVyYWJsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RJ
dGVyYWJsZTo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RJdGVyYWJsZS5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rl
c3RKU0J1aWx0aW5Db25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAqIGJpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3Rvci5oOgorICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI6OmZp
bmlzaENyZWF0aW9uKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3ROYW1lZENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVz
dE5hbWVkQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKiBiaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvci5oOgorICAgICAgICAqIGJpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpT
VGVzdE5vZGU6OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0Tm9kZS5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3ROb25kZXRlcm1pbmlzdGljLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdE5vbmRl
dGVybWluaXN0aWM6OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0Tm9uZGV0ZXJtaW5pc3RpYy5oOgorICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0T2Jq
OjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE9iai5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVy
bG9hZGVkQ29uc3RydWN0b3JzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdE92ZXJsb2Fk
ZWRDb25zdHJ1Y3RvcnM6OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5oOgorICAgICAgICAqIGJp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNl
cXVlbmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3Rv
cnNXaXRoU2VxdWVuY2U6OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZS5oOgor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVycmlkZUJ1aWx0aW5z
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdE92ZXJyaWRlQnVpbHRpbnM6OmZpbmlzaENy
ZWF0aW9uKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcnJp
ZGVCdWlsdGlucy5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RT
ZXJpYWxpemF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdFNlcmlhbGl6YXRpb246
OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0U2VyaWFsaXphdGlvbi5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlOjpmaW5pc2hDcmVhdGlvbik6
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZUludGVyZmFjZS5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RUeXBlZGVmcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RUeXBlZGVmczo6Zmlu
aXNoQ3JlYXRpb24pOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RU
eXBlZGVmcy5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0R2xvYmFsT2Jq
ZWN0LmlkbDoKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5pZGw6CisgICAgICAgICogd29ya2Vy
cy9EZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZS5pZGw6CisKIDIwMTYtMTEtMTAgIEJyYWR5IEVp
ZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCiAgICAgICAgIEluZGV4ZWREQiAyLjAgU3VwcG9y
dCB0aGUgSURCRGF0YWJhc2Uub25jbG9zZSBldmVudC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KaW5kZXggZTlkMjE3ZTIxNzI0NDgz
NTAyMWRjMGJkZDgxNWY0NDI0NmE1NGY1Zi4uZDQ2YmQ5ZTI5M2I2MjhkZTA0MTc2YzRhMjg4NmU4
YzFjYTU3YTJmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9D
b2RlR2VuZXJhdG9ySlMucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9D
b2RlR2VuZXJhdG9ySlMucG0KQEAgLTY0OCw2ICs2NDgsMTMgQEAgc3ViIEhhc0NvbXBsZXhHZXRP
d25Qcm9wZXJ0eQogICAgICAgICB8fCBJbnN0YW5jZU92ZXJyaWRlc0dldE93blByb3BlcnR5U2xv
dCgkaW50ZXJmYWNlKTsKIH0KIAorc3ViIElzR2xvYmFsT3JQcmltYXJ5R2xvYmFsSW50ZXJmYWNl
Cit7CisgICAgbXkgJGludGVyZmFjZSA9IHNoaWZ0OworCisgICAgcmV0dXJuICRpbnRlcmZhY2Ut
PmV4dGVuZGVkQXR0cmlidXRlcy0+e0dsb2JhbH0gfHwgJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRy
aWJ1dGVzLT57UHJpbWFyeUdsb2JhbH07Cit9CisKIHN1YiBJbnRlcmZhY2VSZXF1aXJlc0F0dHJp
YnV0ZXNPbkluc3RhbmNlCiB7CiAgICAgbXkgJGludGVyZmFjZSA9IHNoaWZ0OwpAQCAtNjYwLDgg
KzY2Nyw3IEBAIHN1YiBJbnRlcmZhY2VSZXF1aXJlc0F0dHJpYnV0ZXNPbkluc3RhbmNlCiAgICAg
IyBGSVhNRTogV2Ugc2hvdWxkIGJlIGFibGUgdG8gZHJvcCB0aGlzIG9uY2UgPHJkYXI6Ly9wcm9i
bGVtLzI0NDY2MDk3PiBpcyBmaXhlZC4KICAgICByZXR1cm4gMSBpZiAkaW50ZXJmYWNlLT5pc0V4
Y2VwdGlvbjsKIAotICAgICMgRklYTUU6IEFkZCBzdXBwb3J0IGZvciBbUHJpbWFyeUdsb2JhbF0g
LyBbR2xvYmFsXS4KLSAgICByZXR1cm4gMSBpZiBJc0RPTUdsb2JhbE9iamVjdCgkaW50ZXJmYWNl
KSAmJiAkaW50ZXJmYWNlLT50eXBlLT5uYW1lIG5lICJXb3JrZXJHbG9iYWxTY29wZSI7CisgICAg
cmV0dXJuIDEgaWYgSXNHbG9iYWxPclByaW1hcnlHbG9iYWxJbnRlcmZhY2UoJGludGVyZmFjZSk7
CiAKICAgICByZXR1cm4gMDsKIH0KQEAgLTY3MSw5ICs2NzcsNiBAQCBzdWIgQXR0cmlidXRlU2hv
dWxkQmVPbkluc3RhbmNlCiAgICAgbXkgJGludGVyZmFjZSA9IHNoaWZ0OwogICAgIG15ICRhdHRy
aWJ1dGUgPSBzaGlmdDsKIAotICAgICMgRklYTUU6IFRoZSBiaW5kaW5ncyBnZW5lcmF0b3IgZG9l
cyBub3Qgc3VwcG9ydCBwdXR0aW5nIHJ1bnRpbWUtZW5hYmxlZCBhdHRyaWJ1dGVzIG9uIHRoZSBp
bnN0YW5jZSB5ZXQgKGV4Y2VwdCBmb3IgZ2xvYmFsIG9iamVjdHMpLgotICAgIHJldHVybiAwIGlm
ICRhdHRyaWJ1dGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0VuYWJsZWRBdFJ1bnRpbWV9ICYmICFJ
c0RPTUdsb2JhbE9iamVjdCgkaW50ZXJmYWNlKTsKLQogICAgIHJldHVybiAxIGlmIEludGVyZmFj
ZVJlcXVpcmVzQXR0cmlidXRlc09uSW5zdGFuY2UoJGludGVyZmFjZSk7CiAgICAgcmV0dXJuIDEg
aWYgJGNvZGVHZW5lcmF0b3ItPklzQ29uc3RydWN0b3JUeXBlKCRhdHRyaWJ1dGUtPnR5cGUpOwog
CkBAIC02OTYsOCArNjk5LDcgQEAgc3ViIE9wZXJhdGlvblNob3VsZEJlT25JbnN0YW5jZQogICAg
IG15ICRpbnRlcmZhY2UgPSBzaGlmdDsKICAgICBteSAkZnVuY3Rpb24gPSBzaGlmdDsKIAotICAg
ICMgRklYTUU6IEFkZCBzdXBwb3J0IGZvciBbUHJpbWFyeUdsb2JhbF0gLyBbR2xvYmFsXS4KLSAg
ICByZXR1cm4gMSBpZiBJc0RPTUdsb2JhbE9iamVjdCgkaW50ZXJmYWNlKSAmJiAkaW50ZXJmYWNl
LT50eXBlLT5uYW1lIG5lICJXb3JrZXJHbG9iYWxTY29wZSI7CisgICAgcmV0dXJuIDEgaWYgSXNH
bG9iYWxPclByaW1hcnlHbG9iYWxJbnRlcmZhY2UoJGludGVyZmFjZSk7CiAKICAgICAjIEZJWE1F
OiBUaGUgYmluZGluZ3MgZ2VuZXJhdG9yIGRvZXMgbm90IHN1cHBvcnQgcHV0dGluZyBydW50aW1l
LWVuYWJsZWQgb3BlcmF0aW9ucyBvbiB0aGUgaW5zdGFuY2UgeWV0IChleGNlcHQgZm9yIGdsb2Jh
bCBvYmplY3RzKS4KICAgICByZXR1cm4gMCBpZiAkZnVuY3Rpb24tPmV4dGVuZGVkQXR0cmlidXRl
cy0+e0VuYWJsZWRBdFJ1bnRpbWV9OwpAQCAtMTY3NCwxOSArMTY3NiwxNCBAQCBzdWIgR2VuZXJh
dGVIZWFkZXIKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICAkY2xhc3NOYW1lKEpT
Qzo6U3RydWN0dXJlKiwgSlNET01HbG9iYWxPYmplY3QmKTtcblxuIik7CiAgICAgIH0gZWxzZSB7
CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgJGNsYXNzTmFtZShKU0M6OlN0cnVj
dHVyZSosIEpTRE9NR2xvYmFsT2JqZWN0JiwgUmVmPCRpbXBsVHlwZT4mJik7XG5cbiIpOwotICAg
ICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpW
TSYgdm0pXG4iKTsKLSAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICB7XG4iKTsKLSAg
ICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24o
dm0pO1xuIik7Ci0gICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgICAgIEFTU0VSVChp
bmhlcml0cyhpbmZvKCkpKTtcbiIpOwotICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAg
IH1cblxuIik7CiAgICAgfQogCi0gICAgaWYgKElzRE9NR2xvYmFsT2JqZWN0KCRpbnRlcmZhY2Up
KSB7Ci0gICAgICAgIGlmICgkaW50ZXJmYWNlTmFtZSBlcSAiRE9NV2luZG93IikgewotICAgICAg
ICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6
Vk0mLCBKU0RPTVdpbmRvd1NoZWxsKik7XG4iKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAg
ICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZN
JiwgSlNDOjpKU1Byb3h5Kik7XG4iKTsKLSAgICAgICAgfQorICAgIGlmICgkaW50ZXJmYWNlTmFt
ZSBlcSAiRE9NV2luZG93IikgeworICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHZv
aWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYsIEpTRE9NV2luZG93U2hlbGwqKTtcbiIpOworICAg
IH0gZWxzaWYgKCRjb2RlR2VuZXJhdG9yLT5Jbmhlcml0c0ludGVyZmFjZSgkaW50ZXJmYWNlLCAi
V29ya2VyR2xvYmFsU2NvcGUiKSkgeworICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAg
IHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYsIEpTQzo6SlNQcm94eSopO1xuIik7CisgICAg
fSBlbHNlIHsKKyAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICB2b2lkIGZpbmlzaENy
ZWF0aW9uKEpTQzo6Vk0mKTtcbiIpOwogICAgIH0KIAogICAgIHB1c2goQGhlYWRlckNvbnRlbnQs
ICIgICAgdm9pZCBpbmRleFNldHRlcihKU0M6OkV4ZWNTdGF0ZSosIHVuc2lnbmVkIGluZGV4LCBK
U0M6OkpTVmFsdWUpO1xuIikgaWYgJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Q3Vz
dG9tSW5kZXhlZFNldHRlcn07CkBAIC0xODg0LDcgKzE4ODEsNyBAQCBzdWIgR2VuZXJhdGVQcm9w
ZXJ0aWVzSGFzaFRhYmxlCiAgICAgICAgIG5leHQgaWYgQXR0cmlidXRlU2hvdWxkQmVPbkluc3Rh
bmNlKCRpbnRlcmZhY2UsICRhdHRyaWJ1dGUpICE9ICRpc0luc3RhbmNlOwogCiAgICAgICAgICMg
R2xvYmFsIG9iamVjdHMgYWRkIFJ1bnRpbWVFbmFibGVkIGF0dHJpYnV0ZXMgYWZ0ZXIgY3JlYXRp
b24gc28gZG8gbm90IGFkZCB0aGVtIHRvIHRoZSBzdGF0aWMgdGFibGUuCi0gICAgICAgIGlmIChJ
c0RPTUdsb2JhbE9iamVjdCgkaW50ZXJmYWNlKSAmJiAkYXR0cmlidXRlLT5leHRlbmRlZEF0dHJp
YnV0ZXMtPntFbmFibGVkQXRSdW50aW1lfSkgeworICAgICAgICBpZiAoJGlzSW5zdGFuY2UgJiYg
JGF0dHJpYnV0ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57RW5hYmxlZEF0UnVudGltZX0pIHsKICAg
ICAgICAgICAgICRwcm9wZXJ0eUNvdW50IC09IDE7CiAgICAgICAgICAgICBuZXh0OwogICAgICAg
ICB9CkBAIC0xOTE0LDcgKzE5MTEsNiBAQCBzdWIgR2VuZXJhdGVQcm9wZXJ0aWVzSGFzaFRhYmxl
CiAgICAgICAgICRjb25kaXRpb25hbHMtPnskbmFtZX0gPSAkY29uZGl0aW9uYWwgaWYgJGNvbmRp
dGlvbmFsOwogCiAgICAgICAgIGlmICgkYXR0cmlidXRlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntF
bmFibGVkQXRSdW50aW1lfSkgewotICAgICAgICAgICAgZGllICJXZSBjdXJyZW50bHkgZG8gbm90
IHN1cHBvcnQgW0VuYWJsZWRBdFJ1bnRpbWVdIGF0dHJpYnV0ZXMgb24gdGhlIGluc3RhbmNlIChl
eGNlcHQgZm9yIGdsb2JhbCBvYmplY3RzKS4iIGlmICRpc0luc3RhbmNlOwogICAgICAgICAgICAg
cHVzaChAJHJ1bnRpbWVFbmFibGVkQXR0cmlidXRlcywgJGF0dHJpYnV0ZSk7CiAgICAgICAgIH0K
ICAgICB9CkBAIC0xOTMwLDcgKzE5MjYsNyBAQCBzdWIgR2VuZXJhdGVQcm9wZXJ0aWVzSGFzaFRh
YmxlCiAgICAgICAgIG5leHQgaWYgJGZ1bmN0aW9uLT5uYW1lIGVxICJbU3ltYm9sLkl0ZXJhdG9y
XSI7CiAKICAgICAgICAgIyBHbG9iYWwgb2JqZWN0cyBhZGQgUnVudGltZUVuYWJsZWQgb3BlcmF0
aW9ucyBhZnRlciBjcmVhdGlvbiBzbyBkbyBub3QgYWRkIHRoZW0gdG8gdGhlIHN0YXRpYyB0YWJs
ZS4KLSAgICAgICAgaWYgKElzRE9NR2xvYmFsT2JqZWN0KCRpbnRlcmZhY2UpICYmICRmdW5jdGlv
bi0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57RW5hYmxlZEF0UnVudGltZX0pIHsKKyAgICAgICAgaWYg
KCRpc0luc3RhbmNlICYmICRmdW5jdGlvbi0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57RW5hYmxlZEF0
UnVudGltZX0pIHsKICAgICAgICAgICAgICRwcm9wZXJ0eUNvdW50IC09IDE7CiAgICAgICAgICAg
ICBuZXh0OwogICAgICAgICB9CkBAIC0xOTU4LDcgKzE5NTQsNiBAQCBzdWIgR2VuZXJhdGVQcm9w
ZXJ0aWVzSGFzaFRhYmxlCiAgICAgICAgICRjb25kaXRpb25hbHMtPnskbmFtZX0gPSAkY29uZGl0
aW9uYWwgaWYgJGNvbmRpdGlvbmFsOwogCiAgICAgICAgIGlmICgkZnVuY3Rpb24tPmV4dGVuZGVk
QXR0cmlidXRlcy0+e0VuYWJsZWRBdFJ1bnRpbWV9KSB7Ci0gICAgICAgICAgICBkaWUgIldlIGN1
cnJlbnRseSBkbyBub3Qgc3VwcG9ydCBbRW5hYmxlZEF0UnVudGltZV0gb3BlcmF0aW9ucyBvbiB0
aGUgaW5zdGFuY2UgKGV4Y2VwdCBmb3IgZ2xvYmFsIG9iamVjdHMpLiIgaWYgJGlzSW5zdGFuY2U7
CiAgICAgICAgICAgICBwdXNoKEAkcnVudGltZUVuYWJsZWRGdW5jdGlvbnMsICRmdW5jdGlvbik7
CiAgICAgICAgIH0KICAgICB9CkBAIC0yOTEyLDcgKzI5MDcsNyBAQCBzdWIgR2VuZXJhdGVJbXBs
ZW1lbnRhdGlvbgogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgImNvbnN0IENsYXNzSW5mbyAk
e2NsYXNzTmFtZX1Qcm90b3R5cGU6OnNfaW5mbyA9IHsgXCIke3Zpc2libGVJbnRlcmZhY2VOYW1l
fVByb3RvdHlwZVwiLCAmQmFzZTo6c19pbmZvLCAmJHtjbGFzc05hbWV9UHJvdG90eXBlVGFibGUs
IENSRUFURV9NRVRIT0RfVEFCTEUoJHtjbGFzc05hbWV9UHJvdG90eXBlKSB9O1xuXG4iKTsKICAg
ICB9CiAKLSAgICBpZiAoUHJvdG90eXBlSGFzU3RhdGljUHJvcGVydHlUYWJsZSgkaW50ZXJmYWNl
KSAmJiAhSXNET01HbG9iYWxPYmplY3QoJGludGVyZmFjZSkpIHsKKyAgICBpZiAoUHJvdG90eXBl
SGFzU3RhdGljUHJvcGVydHlUYWJsZSgkaW50ZXJmYWNlKSAmJiAhSXNHbG9iYWxPclByaW1hcnlH
bG9iYWxJbnRlcmZhY2UoJGludGVyZmFjZSkpIHsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICJ2b2lkICR7Y2xhc3NOYW1lfVByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtKVxuIik7
CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAie1xuIik7CiAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAiICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtKTtcbiIpOwpAQCAtMzAwMSw3NSAr
Mjk5Niw4MiBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIn1cblxuIik7CiAgICAgfQogCi0gICAgaWYgKElzRE9NR2xvYmFsT2JqZWN0KCRp
bnRlcmZhY2UpKSB7Ci0gICAgICAgIGlmICgkaW50ZXJmYWNlTmFtZSBlcSAiRE9NV2luZG93Iikg
ewotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ2b2lkICR7Y2xhc3NOYW1lfTo6Zmlu
aXNoQ3JlYXRpb24oVk0mIHZtLCBKU0RPTVdpbmRvd1NoZWxsKiBzaGVsbClcbiIpOwotICAgICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsKLSAgICAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAiICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtLCBzaGVsbCk7XG5cbiIpOwotICAg
ICAgICB9IGVsc2UgewotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ2b2lkICR7Y2xh
c3NOYW1lfTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU1Byb3h5KiBwcm94eSlcbiIpOwotICAg
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsKLSAgICAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAiICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtLCBwcm94eSk7XG5cbiIpOwot
ICAgICAgICB9Ci0gICAgICAgICMgU3VwcG9ydCBmb3IgUnVudGltZUVuYWJsZWQgYXR0cmlidXRl
cyBvbiBnbG9iYWwgb2JqZWN0cy4KLSAgICAgICAgZm9yZWFjaCBteSAkYXR0cmlidXRlIChAeyRp
bnRlcmZhY2UtPmF0dHJpYnV0ZXN9KSB7Ci0gICAgICAgICAgICBuZXh0IHVubGVzcyAkYXR0cmli
dXRlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntFbmFibGVkQXRSdW50aW1lfTsKKyAgICBpZiAoJGlu
dGVyZmFjZU5hbWUgZXEgIkRPTVdpbmRvdyIpIHsKKyAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICJ2b2lkICR7Y2xhc3NOYW1lfTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0RPTVdpbmRvd1No
ZWxsKiBzaGVsbClcbiIpOworICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOworICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSwgc2hl
bGwpO1xuXG4iKTsKKyAgICB9IGVsc2lmICgkY29kZUdlbmVyYXRvci0+SW5oZXJpdHNJbnRlcmZh
Y2UoJGludGVyZmFjZSwgIldvcmtlckdsb2JhbFNjb3BlIikpIHsKKyAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICJ2b2lkICR7Y2xhc3NOYW1lfTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU1By
b3h5KiBwcm94eSlcbiIpOworICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOworICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSwgcHJv
eHkpO1xuXG4iKTsKKyAgICB9IGVsc2UgeworICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgInZv
aWQgJHtjbGFzc05hbWV9OjpmaW5pc2hDcmVhdGlvbihWTSYgdm0pXG4iKTsKKyAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICJ7XG4iKTsKKyAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAg
QmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pO1xuIik7CisgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAiICAgIEFTU0VSVChpbmhlcml0cyhpbmZvKCkpKTtcblxuIik7CisgICAgfQogCi0gICAgICAg
ICAgICBBZGRUb0ltcGxJbmNsdWRlcygiUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIik7Ci0gICAg
ICAgICAgICBteSAkY29uZGl0aW9uYWxTdHJpbmcgPSAkY29kZUdlbmVyYXRvci0+R2VuZXJhdGVD
b25kaXRpb25hbFN0cmluZygkYXR0cmlidXRlKTsKLSAgICAgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAiI2lmICR7Y29uZGl0aW9uYWxTdHJpbmd9XG4iKSBpZiAkY29uZGl0aW9uYWxTdHJpbmc7
Ci0gICAgICAgICAgICBteSAkZW5hYmxlX2Z1bmN0aW9uID0gR2V0UnVudGltZUVuYWJsZUZ1bmN0
aW9uTmFtZSgkYXR0cmlidXRlKTsKLSAgICAgICAgICAgIG15ICRhdHRyaWJ1dGVOYW1lID0gJGF0
dHJpYnV0ZS0+bmFtZTsKLSAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlmICgk
e2VuYWJsZV9mdW5jdGlvbn0oKSkge1xuIik7Ci0gICAgICAgICAgICBteSAkZ2V0dGVyID0gR2V0
QXR0cmlidXRlR2V0dGVyTmFtZSgkaW50ZXJmYWNlLCAkY2xhc3NOYW1lLCAkYXR0cmlidXRlKTsK
LSAgICAgICAgICAgIG15ICRzZXR0ZXIgPSBJc1JlYWRvbmx5KCRhdHRyaWJ1dGUpID8gIm51bGxw
dHIiIDogR2V0QXR0cmlidXRlU2V0dGVyTmFtZSgkaW50ZXJmYWNlLCAkY2xhc3NOYW1lLCAkYXR0
cmlidXRlKTsKLSAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICBhdXRvKiBj
dXN0b21HZXR0ZXJTZXR0ZXIgPSBDdXN0b21HZXR0ZXJTZXR0ZXI6OmNyZWF0ZSh2bSwgJGdldHRl
ciwgJHNldHRlcik7XG4iKTsKLSAgICAgICAgICAgIG15ICRqc2NBdHRyaWJ1dGVzID0gR2V0SlND
QXR0cmlidXRlc0ZvckF0dHJpYnV0ZSgkaW50ZXJmYWNlLCAkYXR0cmlidXRlKTsKLSAgICAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICBwdXREaXJlY3RDdXN0b21BY2Nlc3Nvcih2
bSwgdm0ucHJvcGVydHlOYW1lcy0+JGF0dHJpYnV0ZU5hbWUsIGN1c3RvbUdldHRlclNldHRlciwg
YXR0cmlidXRlc0ZvclN0cnVjdHVyZSgkanNjQXR0cmlidXRlcykpO1xuIik7Ci0gICAgICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICB9XG4iKTsKLSAgICAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAiI2VuZGlmXG4iKSBpZiAkY29uZGl0aW9uYWxTdHJpbmc7Ci0gICAgICAgIH0KKyAg
ICAjIFN1cHBvcnQgZm9yIFJ1bnRpbWVFbmFibGVkIGF0dHJpYnV0ZXMgb24gaW5zdGFuY2VzLgor
ICAgIGZvcmVhY2ggbXkgJGF0dHJpYnV0ZSAoQHskaW50ZXJmYWNlLT5hdHRyaWJ1dGVzfSkgewor
ICAgICAgICBuZXh0IHVubGVzcyAkYXR0cmlidXRlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntFbmFi
bGVkQXRSdW50aW1lfTsKKyAgICAgICAgbmV4dCB1bmxlc3MgQXR0cmlidXRlU2hvdWxkQmVPbklu
c3RhbmNlKCRpbnRlcmZhY2UsICRhdHRyaWJ1dGUpOwogCi0gICAgICAgICMgU3VwcG9ydCBQcml2
YXRlSWRlbnRpZmllciBhdHRyaWJ1dGVzIG9uIGdsb2JhbCBvYmplY3RzCi0gICAgICAgIGZvcmVh
Y2ggbXkgJGF0dHJpYnV0ZSAoQHskaW50ZXJmYWNlLT5hdHRyaWJ1dGVzfSkgewotICAgICAgICAg
ICAgbmV4dCB1bmxlc3MgJGF0dHJpYnV0ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57UHJpdmF0ZUlk
ZW50aWZpZXJ9OworICAgICAgICBBZGRUb0ltcGxJbmNsdWRlcygiUnVudGltZUVuYWJsZWRGZWF0
dXJlcy5oIik7CisgICAgICAgIG15ICRjb25kaXRpb25hbFN0cmluZyA9ICRjb2RlR2VuZXJhdG9y
LT5HZW5lcmF0ZUNvbmRpdGlvbmFsU3RyaW5nKCRhdHRyaWJ1dGUpOworICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgIiNpZiAke2NvbmRpdGlvbmFsU3RyaW5nfVxuIikgaWYgJGNvbmRpdGlvbmFs
U3RyaW5nOworICAgICAgICBteSAkZW5hYmxlX2Z1bmN0aW9uID0gR2V0UnVudGltZUVuYWJsZUZ1
bmN0aW9uTmFtZSgkYXR0cmlidXRlKTsKKyAgICAgICAgbXkgJGF0dHJpYnV0ZU5hbWUgPSAkYXR0
cmlidXRlLT5uYW1lOworICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAoJHtlbmFi
bGVfZnVuY3Rpb259KCkpIHtcbiIpOworICAgICAgICBteSAkZ2V0dGVyID0gR2V0QXR0cmlidXRl
R2V0dGVyTmFtZSgkaW50ZXJmYWNlLCAkY2xhc3NOYW1lLCAkYXR0cmlidXRlKTsKKyAgICAgICAg
bXkgJHNldHRlciA9IElzUmVhZG9ubHkoJGF0dHJpYnV0ZSkgPyAibnVsbHB0ciIgOiBHZXRBdHRy
aWJ1dGVTZXR0ZXJOYW1lKCRpbnRlcmZhY2UsICRjbGFzc05hbWUsICRhdHRyaWJ1dGUpOworICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgYXV0byogY3VzdG9tR2V0dGVyU2V0dGVy
ID0gQ3VzdG9tR2V0dGVyU2V0dGVyOjpjcmVhdGUodm0sICRnZXR0ZXIsICRzZXR0ZXIpO1xuIik7
CisgICAgICAgIG15ICRqc2NBdHRyaWJ1dGVzID0gR2V0SlNDQXR0cmlidXRlc0ZvckF0dHJpYnV0
ZSgkaW50ZXJmYWNlLCAkYXR0cmlidXRlKTsKKyAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIg
ICAgICAgIHB1dERpcmVjdEN1c3RvbUFjY2Vzc29yKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT4kYXR0
cmlidXRlTmFtZSwgY3VzdG9tR2V0dGVyU2V0dGVyLCBhdHRyaWJ1dGVzRm9yU3RydWN0dXJlKCRq
c2NBdHRyaWJ1dGVzKSk7XG4iKTsKKyAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgfVxu
Iik7CisgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiI2VuZGlmXG4iKSBpZiAkY29uZGl0aW9u
YWxTdHJpbmc7CisgICAgfQogCi0gICAgICAgICAgICBBZGRUb0ltcGxJbmNsdWRlcygiV2ViQ29y
ZUpTQ2xpZW50RGF0YS5oIik7Ci0gICAgICAgICAgICBteSAkY29uZGl0aW9uYWxTdHJpbmcgPSAk
Y29kZUdlbmVyYXRvci0+R2VuZXJhdGVDb25kaXRpb25hbFN0cmluZygkYXR0cmlidXRlKTsKLSAg
ICAgICAgICAgIG15ICRhdHRyaWJ1dGVOYW1lID0gJGF0dHJpYnV0ZS0+bmFtZTsKLSAgICAgICAg
ICAgIG15ICRnZXR0ZXIgPSBHZXRBdHRyaWJ1dGVHZXR0ZXJOYW1lKCRpbnRlcmZhY2UsICRjbGFz
c05hbWUsICRhdHRyaWJ1dGUpOworICAgICMgU3VwcG9ydCBQcml2YXRlSWRlbnRpZmllciBhdHRy
aWJ1dGVzIG9uIGluc3RhbmNlcy4KKyAgICBmb3JlYWNoIG15ICRhdHRyaWJ1dGUgKEB7JGludGVy
ZmFjZS0+YXR0cmlidXRlc30pIHsKKyAgICAgICAgbmV4dCB1bmxlc3MgJGF0dHJpYnV0ZS0+ZXh0
ZW5kZWRBdHRyaWJ1dGVzLT57UHJpdmF0ZUlkZW50aWZpZXJ9OworICAgICAgICBuZXh0IHVubGVz
cyBBdHRyaWJ1dGVTaG91bGRCZU9uSW5zdGFuY2UoJGludGVyZmFjZSwgJGF0dHJpYnV0ZSk7CiAK
LSAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiI2lmICR7Y29uZGl0aW9uYWxTdHJpbmd9
XG4iKSBpZiAkY29uZGl0aW9uYWxTdHJpbmc7Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIiAgICBwdXREaXJlY3RDdXN0b21BY2Nlc3Nvcih2bSwgc3RhdGljX2Nhc3Q8SlNWTUNsaWVu
dERhdGEqPih2bS5jbGllbnREYXRhKS0+YnVpbHRpbk5hbWVzKCkuIiAuICRhdHRyaWJ1dGVOYW1l
IC4gIlByaXZhdGVOYW1lKCksIEN1c3RvbUdldHRlclNldHRlcjo6Y3JlYXRlKHZtLCAkZ2V0dGVy
LCBudWxscHRyKSwgYXR0cmlidXRlc0ZvclN0cnVjdHVyZShEb250RGVsZXRlIHwgUmVhZE9ubHkp
KTtcbiIpOwotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIjZW5kaWZcbiIpIGlmICRj
b25kaXRpb25hbFN0cmluZzsKLSAgICAgICAgfQorICAgICAgICBBZGRUb0ltcGxJbmNsdWRlcygi
V2ViQ29yZUpTQ2xpZW50RGF0YS5oIik7CisgICAgICAgIG15ICRjb25kaXRpb25hbFN0cmluZyA9
ICRjb2RlR2VuZXJhdG9yLT5HZW5lcmF0ZUNvbmRpdGlvbmFsU3RyaW5nKCRhdHRyaWJ1dGUpOwor
ICAgICAgICBteSAkYXR0cmlidXRlTmFtZSA9ICRhdHRyaWJ1dGUtPm5hbWU7CisgICAgICAgIG15
ICRnZXR0ZXIgPSBHZXRBdHRyaWJ1dGVHZXR0ZXJOYW1lKCRpbnRlcmZhY2UsICRjbGFzc05hbWUs
ICRhdHRyaWJ1dGUpOwogCi0gICAgICAgICMgU3VwcG9ydCBmb3IgUnVudGltZUVuYWJsZWQgb3Bl
cmF0aW9ucyBvbiBnbG9iYWwgb2JqZWN0cy4KLSAgICAgICAgZm9yZWFjaCBteSAkZnVuY3Rpb24g
KEB7JGludGVyZmFjZS0+ZnVuY3Rpb25zfSkgewotICAgICAgICAgICAgbmV4dCB1bmxlc3MgJGZ1
bmN0aW9uLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntFbmFibGVkQXRSdW50aW1lfTsKLSAgICAgICAg
ICAgIG5leHQgaWYgJGZ1bmN0aW9uLT57b3ZlcmxvYWRJbmRleH0gJiYgJGZ1bmN0aW9uLT57b3Zl
cmxvYWRJbmRleH0gPiAxOworICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiNpZiAke2NvbmRp
dGlvbmFsU3RyaW5nfVxuIikgaWYgJGNvbmRpdGlvbmFsU3RyaW5nOworICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgIiAgICBwdXREaXJlY3RDdXN0b21BY2Nlc3Nvcih2bSwgc3RhdGljX2Nhc3Q8
SlNWTUNsaWVudERhdGEqPih2bS5jbGllbnREYXRhKS0+YnVpbHRpbk5hbWVzKCkuIiAuICRhdHRy
aWJ1dGVOYW1lIC4gIlByaXZhdGVOYW1lKCksIEN1c3RvbUdldHRlclNldHRlcjo6Y3JlYXRlKHZt
LCAkZ2V0dGVyLCBudWxscHRyKSwgYXR0cmlidXRlc0ZvclN0cnVjdHVyZShEb250RGVsZXRlIHwg
UmVhZE9ubHkpKTtcbiIpOworICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiNlbmRpZlxuIikg
aWYgJGNvbmRpdGlvbmFsU3RyaW5nOworICAgIH0KIAotICAgICAgICAgICAgQWRkVG9JbXBsSW5j
bHVkZXMoIlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIpOwotICAgICAgICAgICAgbXkgJGNvbmRp
dGlvbmFsU3RyaW5nID0gJGNvZGVHZW5lcmF0b3ItPkdlbmVyYXRlQ29uZGl0aW9uYWxTdHJpbmco
JGZ1bmN0aW9uKTsKLSAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiI2lmICR7Y29uZGl0
aW9uYWxTdHJpbmd9XG4iKSBpZiAkY29uZGl0aW9uYWxTdHJpbmc7Ci0gICAgICAgICAgICBteSAk
ZW5hYmxlX2Z1bmN0aW9uID0gR2V0UnVudGltZUVuYWJsZUZ1bmN0aW9uTmFtZSgkZnVuY3Rpb24p
OwotICAgICAgICAgICAgbXkgJGZ1bmN0aW9uTmFtZSA9ICRmdW5jdGlvbi0+bmFtZTsKLSAgICAg
ICAgICAgIG15ICRpbXBsZW1lbnRhdGlvbkZ1bmN0aW9uID0gR2V0RnVuY3Rpb25OYW1lKCRpbnRl
cmZhY2UsICRjbGFzc05hbWUsICRmdW5jdGlvbik7Ci0gICAgICAgICAgICBteSAkZnVuY3Rpb25M
ZW5ndGggPSBHZXRGdW5jdGlvbkxlbmd0aCgkZnVuY3Rpb24pOwotICAgICAgICAgICAgbXkgJGpz
QXR0cmlidXRlcyA9IENvbXB1dGVGdW5jdGlvblNwZWNpYWwoJGludGVyZmFjZSwgJGZ1bmN0aW9u
KTsKLSAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlmICgke2VuYWJsZV9mdW5j
dGlvbn0oKSlcbiIpOworICAgICMgU3VwcG9ydCBmb3IgUnVudGltZUVuYWJsZWQgb3BlcmF0aW9u
cyBvbiBpbnN0YW5jZXMuCisgICAgZm9yZWFjaCBteSAkZnVuY3Rpb24gKEB7JGludGVyZmFjZS0+
ZnVuY3Rpb25zfSkgeworICAgICAgICBuZXh0IHVubGVzcyAkZnVuY3Rpb24tPmV4dGVuZGVkQXR0
cmlidXRlcy0+e0VuYWJsZWRBdFJ1bnRpbWV9OworICAgICAgICBuZXh0IHVubGVzcyBPcGVyYXRp
b25TaG91bGRCZU9uSW5zdGFuY2UoJGludGVyZmFjZSwgJGZ1bmN0aW9uKTsKKyAgICAgICAgbmV4
dCBpZiAkZnVuY3Rpb24tPntvdmVybG9hZEluZGV4fSAmJiAkZnVuY3Rpb24tPntvdmVybG9hZElu
ZGV4fSA+IDE7CiAKLSAgICAgICAgICAgIG15ICRwcm9wZXJ0eU5hbWUgPSAidm0ucHJvcGVydHlO
YW1lcy0+JGZ1bmN0aW9uTmFtZSI7Ci0gICAgICAgICAgICAkcHJvcGVydHlOYW1lID0gInN0YXRp
Y19jYXN0PEpTVk1DbGllbnREYXRhKj4odm0uY2xpZW50RGF0YSktPmJ1aWx0aW5OYW1lcygpLiIg
LiAkZnVuY3Rpb25OYW1lIC4gIlByaXZhdGVOYW1lKCkiIGlmICRmdW5jdGlvbi0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57UHJpdmF0ZUlkZW50aWZpZXJ9OwotICAgICAgICAgICAgaWYgKElzSlNCdWls
dGluKCRpbnRlcmZhY2UsICRmdW5jdGlvbikpIHsKLSAgICAgICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIiAgICAgICAgcHV0RGlyZWN0QnVpbHRpbkZ1bmN0aW9uKHZtLCB0aGlzLCAkcHJv
cGVydHlOYW1lLCAkaW1wbGVtZW50YXRpb25GdW5jdGlvbih2bSksIGF0dHJpYnV0ZXNGb3JTdHJ1
Y3R1cmUoJGpzQXR0cmlidXRlcykpO1xuIik7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAg
ICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICBwdXREaXJlY3ROYXRpdmVGdW5j
dGlvbih2bSwgdGhpcywgJHByb3BlcnR5TmFtZSwgJGZ1bmN0aW9uTGVuZ3RoLCAkaW1wbGVtZW50
YXRpb25GdW5jdGlvbiwgTm9JbnRyaW5zaWMsIGF0dHJpYnV0ZXNGb3JTdHJ1Y3R1cmUoJGpzQXR0
cmlidXRlcykpO1xuIik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIiNlbmRpZlxuIikgaWYgJGNvbmRpdGlvbmFsU3RyaW5nOworICAgICAgICBBZGRUb0lt
cGxJbmNsdWRlcygiUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIik7CisgICAgICAgIG15ICRjb25k
aXRpb25hbFN0cmluZyA9ICRjb2RlR2VuZXJhdG9yLT5HZW5lcmF0ZUNvbmRpdGlvbmFsU3RyaW5n
KCRmdW5jdGlvbik7CisgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiI2lmICR7Y29uZGl0aW9u
YWxTdHJpbmd9XG4iKSBpZiAkY29uZGl0aW9uYWxTdHJpbmc7CisgICAgICAgIG15ICRlbmFibGVf
ZnVuY3Rpb24gPSBHZXRSdW50aW1lRW5hYmxlRnVuY3Rpb25OYW1lKCRmdW5jdGlvbik7CisgICAg
ICAgIG15ICRmdW5jdGlvbk5hbWUgPSAkZnVuY3Rpb24tPm5hbWU7CisgICAgICAgIG15ICRpbXBs
ZW1lbnRhdGlvbkZ1bmN0aW9uID0gR2V0RnVuY3Rpb25OYW1lKCRpbnRlcmZhY2UsICRjbGFzc05h
bWUsICRmdW5jdGlvbik7CisgICAgICAgIG15ICRmdW5jdGlvbkxlbmd0aCA9IEdldEZ1bmN0aW9u
TGVuZ3RoKCRmdW5jdGlvbik7CisgICAgICAgIG15ICRqc0F0dHJpYnV0ZXMgPSBDb21wdXRlRnVu
Y3Rpb25TcGVjaWFsKCRpbnRlcmZhY2UsICRmdW5jdGlvbik7CisgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAiICAgIGlmICgke2VuYWJsZV9mdW5jdGlvbn0oKSlcbiIpOworCisgICAgICAgIG15
ICRwcm9wZXJ0eU5hbWUgPSAidm0ucHJvcGVydHlOYW1lcy0+JGZ1bmN0aW9uTmFtZSI7CisgICAg
ICAgICRwcm9wZXJ0eU5hbWUgPSAic3RhdGljX2Nhc3Q8SlNWTUNsaWVudERhdGEqPih2bS5jbGll
bnREYXRhKS0+YnVpbHRpbk5hbWVzKCkuIiAuICRmdW5jdGlvbk5hbWUgLiAiUHJpdmF0ZU5hbWUo
KSIgaWYgJGZ1bmN0aW9uLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntQcml2YXRlSWRlbnRpZmllcn07
CisgICAgICAgIGlmIChJc0pTQnVpbHRpbigkaW50ZXJmYWNlLCAkZnVuY3Rpb24pKSB7CisgICAg
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgcHV0RGlyZWN0QnVpbHRpbkZ1bmN0
aW9uKHZtLCB0aGlzLCAkcHJvcGVydHlOYW1lLCAkaW1wbGVtZW50YXRpb25GdW5jdGlvbih2bSks
IGF0dHJpYnV0ZXNGb3JTdHJ1Y3R1cmUoJGpzQXR0cmlidXRlcykpO1xuIik7CisgICAgICAgIH0g
ZWxzZSB7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgcHV0RGlyZWN0
TmF0aXZlRnVuY3Rpb24odm0sIHRoaXMsICRwcm9wZXJ0eU5hbWUsICRmdW5jdGlvbkxlbmd0aCwg
JGltcGxlbWVudGF0aW9uRnVuY3Rpb24sIE5vSW50cmluc2ljLCBhdHRyaWJ1dGVzRm9yU3RydWN0
dXJlKCRqc0F0dHJpYnV0ZXMpKTtcbiIpOwogICAgICAgICB9Ci0gICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAifVxuXG4iKTsKKyAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIjZW5kaWZcbiIp
IGlmICRjb25kaXRpb25hbFN0cmluZzsKICAgICB9CisgICAgcHVzaChAaW1wbENvbnRlbnQsICJ9
XG5cbiIpOwogCiAgICAgdW5sZXNzIChTaG91bGRVc2VHbG9iYWxPYmplY3RQcm90b3R5cGUoJGlu
dGVyZmFjZSkpIHsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJKU09iamVjdCogJHtjbGFz
c05hbWV9OjpjcmVhdGVQcm90b3R5cGUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0KVxuIik7CkBAIC01OTkxLDcgKzU5OTMsNyBAQCBzdWIgR2VuZXJhdGVQcm90b3R5cGVEZWNs
YXJhdGlvbgogICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICB9XG4iKTsKIAogICAgIGlmIChQ
cm90b3R5cGVIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlKCRpbnRlcmZhY2UpKSB7Ci0gICAgICAgIGlm
IChJc0RPTUdsb2JhbE9iamVjdCgkaW50ZXJmYWNlKSkgeworICAgICAgICBpZiAoSXNHbG9iYWxP
clByaW1hcnlHbG9iYWxJbnRlcmZhY2UoJGludGVyZmFjZSkpIHsKICAgICAgICAgICAgICRzdHJ1
Y3R1cmVGbGFnc3siSlNDOjpIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlIn0gPSAxOwogICAgICAgICB9
IGVsc2UgewogICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiXG4iKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy50eHQgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMudHh0CmluZGV4IGRl
ZmRiY2Q2YjA3OWU0OTkyYzc2NzkzMGY0YzE3YzI1ZDFiY2NhODkuLjY4NGU4NTdiOWMzOGYxOTUw
MjI5YTJjMTc3NDU1YTkzYzBmMThjZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLnR4dApAQCAtNjcsNiArNjcsNyBAQCBGb3J3YXJkRGVj
bGFyZUluSGVhZGVyCiBHZW5lcmF0ZUlzUmVhY2hhYmxlPXxJbXBsfEltcGxXZWJHTFJlbmRlcmlu
Z0NvbnRleHR8SW1wbERvY3VtZW50fEltcGxFbGVtZW50Um9vdHxJbXBsRnJhbWV8SW1wbE93bmVy
Tm9kZVJvb3R8SW1wbFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQKIEdldHRlck1heVRocm93RXhjZXB0
aW9uCiBHZXR0ZXJNYXlUaHJvd0xlZ2FjeUV4Y2VwdGlvbgorR2xvYmFsPSoKIEltbXV0YWJsZQog
SW1wbGVtZW50ZWRBcz0qCiBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlCkBAIC0xMDAsNiArMTAx
LDcgQEAgTm9uZGV0ZXJtaW5pc3RpYwogTm90RW51bWVyYWJsZQogT3ZlcnJpZGVCdWlsdGlucwog
UGFzc0NvbnRleHQKK1ByaW1hcnlHbG9iYWwKIFByaXZhdGVJZGVudGlmaWVyCiBQdWJsaWNJZGVu
dGlmaWVyCiBQdXRGb3J3YXJkcz0qCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNJbnRlcmZhY2VOYW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU0ludGVyZmFjZU5hbWUuY3BwCmluZGV4IDI4N2U5OWJi
MGFkOWMyOWJjZjUyN2E5NzA1NjQyMTkxZGQ5MWRhNTguLjI1MmVkNDMyNDE1MzljYmFiYjI3MWFi
OGIwODliODBjNmNlZTMzZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU0ludGVyZmFjZU5hbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU0ludGVyZmFjZU5hbWUuY3BwCkBAIC05OSw2ICs5OSwx
MyBAQCBKU0ludGVyZmFjZU5hbWU6OkpTSW50ZXJmYWNlTmFtZShTdHJ1Y3R1cmUqIHN0cnVjdHVy
ZSwgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbAogewogfQogCit2b2lkIEpTSW50ZXJmYWNlTmFt
ZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtKQoreworICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZt
KTsKKyAgICBBU1NFUlQoaW5oZXJpdHMoaW5mbygpKSk7CisKK30KKwogSlNPYmplY3QqIEpTSW50
ZXJmYWNlTmFtZTo6Y3JlYXRlUHJvdG90eXBlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCkKIHsKICAgICByZXR1cm4gSlNJbnRlcmZhY2VOYW1lUHJvdG90eXBlOjpjcmVhdGUo
dm0sIGdsb2JhbE9iamVjdCwgSlNJbnRlcmZhY2VOYW1lUHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1
cmUodm0sIGdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0LT5vYmplY3RQcm90b3R5cGUoKSkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTSW50
ZXJmYWNlTmFtZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
SW50ZXJmYWNlTmFtZS5oCmluZGV4IDMyZWZhN2JkMTc4MTZhNTk1NTllNTU3Y2U0Y2Y4MjNjNjg3
YmVmMTAuLjc0NDFmYWM2ZjM0NWY1OTkyMWU1NDk1M2Q1ZWZiOGY3YzNmN2ExZTkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU0ludGVyZmFjZU5h
bWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNJbnRl
cmZhY2VOYW1lLmgKQEAgLTU1LDEyICs1NSw3IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICBK
U0ludGVyZmFjZU5hbWUoSlNDOjpTdHJ1Y3R1cmUqLCBKU0RPTUdsb2JhbE9iamVjdCYsIFJlZjxJ
bnRlcmZhY2VOYW1lPiYmKTsKIAotICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYgdm0p
Ci0gICAgewotICAgICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7Ci0gICAgICAgIEFTU0VS
VChpbmhlcml0cyhpbmZvKCkpKTsKLSAgICB9Ci0KKyAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpT
Qzo6Vk0mKTsKIH07CiAKIGNsYXNzIEpTSW50ZXJmYWNlTmFtZU93bmVyIDogcHVibGljIEpTQzo6
V2Vha0hhbmRsZU93bmVyIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVET01PYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEFjdGl2ZURPTU9iamVjdC5jcHAKaW5kZXgg
ZWU4MzVmNzllNDU5N2IwMjI4ZDA5NmVhOGI0ZjMxNTBjNGE4NTczMi4uZmMxOGE4ODJiYzI4NDY2
ZWE5NjZjNTEyOWZiM2FlZjNiYzExMmE2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEFjdGl2ZURPTU9iamVjdC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEFjdGl2ZURPTU9iamVj
dC5jcHAKQEAgLTEyNSw2ICsxMjUsMTMgQEAgSlNUZXN0QWN0aXZlRE9NT2JqZWN0OjpKU1Rlc3RB
Y3RpdmVET01PYmplY3QoU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRE9NR2xvYmFsT2IKIHsKIH0K
IAordm9pZCBKU1Rlc3RBY3RpdmVET01PYmplY3Q6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSkKK3sK
KyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7CisgICAgQVNTRVJUKGluaGVyaXRzKGluZm8o
KSkpOworCit9CisKIEpTT2JqZWN0KiBKU1Rlc3RBY3RpdmVET01PYmplY3Q6OmNyZWF0ZVByb3Rv
dHlwZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiB7CiAgICAgcmV0dXJu
IEpTVGVzdEFjdGl2ZURPTU9iamVjdFByb3RvdHlwZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3Qs
IEpTVGVzdEFjdGl2ZURPTU9iamVjdFByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKHZtLCBnbG9i
YWxPYmplY3QsIGdsb2JhbE9iamVjdC0+b2JqZWN0UHJvdG90eXBlKCkpKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVET01P
YmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RB
Y3RpdmVET01PYmplY3QuaAppbmRleCA1NjVkM2ViYzJiYzA1NDlhNTlmZDhmMjRiNGE1YmFjYTI3
ZmExMDM5Li5hYjQ2ZDY0ZGQ2ZjM0NjkyYzZiOGVlMTMyY2VhMDU5ZWQxMWE3OTM1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0QWN0aXZl
RE9NT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdEFjdGl2ZURPTU9iamVjdC5oCkBAIC01NCwxMiArNTQsNyBAQCBwdWJsaWM6CiBwcm90
ZWN0ZWQ6CiAgICAgSlNUZXN0QWN0aXZlRE9NT2JqZWN0KEpTQzo6U3RydWN0dXJlKiwgSlNET01H
bG9iYWxPYmplY3QmLCBSZWY8VGVzdEFjdGl2ZURPTU9iamVjdD4mJik7CiAKLSAgICB2b2lkIGZp
bmlzaENyZWF0aW9uKEpTQzo6Vk0mIHZtKQotICAgIHsKLSAgICAgICAgQmFzZTo6ZmluaXNoQ3Jl
YXRpb24odm0pOwotICAgICAgICBBU1NFUlQoaW5oZXJpdHMoaW5mbygpKSk7Ci0gICAgfQotCisg
ICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZNJik7CiB9OwogCiBjbGFzcyBKU1Rlc3RBY3Rp
dmVET01PYmplY3RPd25lciA6IHB1YmxpYyBKU0M6OldlYWtIYW5kbGVPd25lciB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q0VSZWFj
dGlvbnMuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dENFUmVhY3Rpb25zLmNwcAppbmRleCBmMjBiNjJmMGI4ZmEyYzM0NWNiNTU5MThhODU1NTc2YmI0
ZDFjZGUyLi40OWIxY2Y2MjdiYTQ0MDlhNGE5NWM2ODdlZTQ3NmJmM2U4NDQ1MzU5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q0VSZWFj
dGlvbnMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RDRVJlYWN0aW9ucy5jcHAKQEAgLTExOSw2ICsxMTksMTMgQEAgSlNUZXN0Q0VSZWFjdGlv
bnM6OkpTVGVzdENFUmVhY3Rpb25zKFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUdsb2JhbE9i
amVjdCYgZ2wKIHsKIH0KIAordm9pZCBKU1Rlc3RDRVJlYWN0aW9uczo6ZmluaXNoQ3JlYXRpb24o
Vk0mIHZtKQoreworICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtKTsKKyAgICBBU1NFUlQoaW5o
ZXJpdHMoaW5mbygpKSk7CisKK30KKwogSlNPYmplY3QqIEpTVGVzdENFUmVhY3Rpb25zOjpjcmVh
dGVQcm90b3R5cGUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQogewogICAg
IHJldHVybiBKU1Rlc3RDRVJlYWN0aW9uc1Byb3RvdHlwZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmpl
Y3QsIEpTVGVzdENFUmVhY3Rpb25zUHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUodm0sIGdsb2Jh
bE9iamVjdCwgZ2xvYmFsT2JqZWN0LT5vYmplY3RQcm90b3R5cGUoKSkpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENFUmVhY3Rpb25z
LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q0VSZWFj
dGlvbnMuaAppbmRleCAxMDk5YjJkOTY3MWJkYmExZjYxM2UyMjhiZGFhZjRmMWVhNDJkM2JhLi44
MDA5YjA3MjlhNWIzOGMxNTBkMDAwZjYyMzZmOWEzZjU0MzdmYjdmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q0VSZWFjdGlvbnMuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q0VSZWFj
dGlvbnMuaApAQCAtNTIsMTIgKzUyLDcgQEAgcHVibGljOgogcHJvdGVjdGVkOgogICAgIEpTVGVz
dENFUmVhY3Rpb25zKEpTQzo6U3RydWN0dXJlKiwgSlNET01HbG9iYWxPYmplY3QmLCBSZWY8VGVz
dENFUmVhY3Rpb25zPiYmKTsKIAotICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYgdm0p
Ci0gICAgewotICAgICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7Ci0gICAgICAgIEFTU0VS
VChpbmhlcml0cyhpbmZvKCkpKTsKLSAgICB9Ci0KKyAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpT
Qzo6Vk0mKTsKIH07CiAKIGNsYXNzIEpTVGVzdENFUmVhY3Rpb25zT3duZXIgOiBwdWJsaWMgSlND
OjpXZWFrSGFuZGxlT3duZXIgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENFUmVhY3Rpb25zU3RyaW5n
aWZpZXIuY3BwCmluZGV4IDYxMWQ0NzUzMGMxZGNhOTkwMWE1MzBkYmJhMGM5NGRlNmEyYjc2NmIu
LmRmNjU5N2Q0NzNjNTg2MGZkZGMwYTk5NDA2MTZjYmQ3Njg0ZTdjYmEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDRVJlYWN0aW9uc1N0
cmluZ2lmaWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllci5jcHAKQEAgLTExMSw2ICsxMTEsMTMgQEAg
SlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllcjo6SlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmll
cihTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwKIHsKIH0KIAordm9pZCBKU1Rlc3RDRVJlYWN0aW9uc1N0
cmluZ2lmaWVyOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0pCit7CisgICAgQmFzZTo6ZmluaXNoQ3Jl
YXRpb24odm0pOworICAgIEFTU0VSVChpbmhlcml0cyhpbmZvKCkpKTsKKworfQorCiBKU09iamVj
dCogSlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllcjo6Y3JlYXRlUHJvdG90eXBlKFZNJiB2bSwg
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKIHsKICAgICByZXR1cm4gSlNUZXN0Q0VSZWFj
dGlvbnNTdHJpbmdpZmllclByb3RvdHlwZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIEpTVGVz
dENFUmVhY3Rpb25zU3RyaW5naWZpZXJQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZSh2bSwgZ2xv
YmFsT2JqZWN0LCBnbG9iYWxPYmplY3QtPm9iamVjdFByb3RvdHlwZSgpKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q0VSZWFjdGlv
bnNTdHJpbmdpZmllci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXIuaAppbmRleCA5NDRiYzFhYzIxZjdkM2M1YmM0
MmZmZTE2Y2E1MzM2ZjI0MmU2ZWEyLi4yNDkwODAxOGI5YzM0NGQ2ODEwM2U4MTE1YzViZDAyZWMx
YWEwNjJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyLmgKQEAg
LTUyLDEyICs1Miw3IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICBKU1Rlc3RDRVJlYWN0aW9u
c1N0cmluZ2lmaWVyKEpTQzo6U3RydWN0dXJlKiwgSlNET01HbG9iYWxPYmplY3QmLCBSZWY8VGVz
dENFUmVhY3Rpb25zU3RyaW5naWZpZXI+JiYpOwogCi0gICAgdm9pZCBmaW5pc2hDcmVhdGlvbihK
U0M6OlZNJiB2bSkKLSAgICB7Ci0gICAgICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtKTsKLSAg
ICAgICAgQVNTRVJUKGluaGVyaXRzKGluZm8oKSkpOwotICAgIH0KLQorICAgIHZvaWQgZmluaXNo
Q3JlYXRpb24oSlNDOjpWTSYpOwogfTsKIAogY2xhc3MgSlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdp
Zmllck93bmVyIDogcHVibGljIEpTQzo6V2Vha0hhbmRsZU93bmVyIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDbGFzc1dpdGhKU0J1
aWx0aW5Db25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3IuY3BwCmluZGV4IGEyY2Vj
ODFhNGZlYWJhYTJmMzI5ZjkwNjdmNjkxYjhiMjg4NmIzMzMuLjBjNjUwMzQ4MjYwYjVlYzJhMzY0
NjEwNzczMTg5MzMxMjAyZmFkNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3Rvci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENsYXNz
V2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yLmNwcApAQCAtMTA1LDYgKzEwNSwxMyBAQCBKU1Rlc3RD
bGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3Rvcjo6SlNUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29u
c3RydWN0b3IoU3RydWN0dQogewogfQogCit2b2lkIEpTVGVzdENsYXNzV2l0aEpTQnVpbHRpbkNv
bnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0pCit7CisgICAgQmFzZTo6ZmluaXNoQ3Jl
YXRpb24odm0pOworICAgIEFTU0VSVChpbmhlcml0cyhpbmZvKCkpKTsKKworfQorCiBKU09iamVj
dCogSlNUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3I6OmNyZWF0ZVByb3RvdHlwZShW
TSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiB7CiAgICAgcmV0dXJuIEpTVGVz
dENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yUHJvdG90eXBlOjpjcmVhdGUodm0sIGdsb2Jh
bE9iamVjdCwgSlNUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3JQcm90b3R5cGU6OmNy
ZWF0ZVN0cnVjdHVyZSh2bSwgZ2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3QtPm9iamVjdFByb3Rv
dHlwZSgpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3IuaCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25z
dHJ1Y3Rvci5oCmluZGV4IDFhYWUyM2JlMmJhNjA4OGQyMmU5NTE5ODMxNDg2YzVjZjNiZjZhOGYu
LjcxMjk2ZDcwNTcxNDU2NzA4NzZmMjgwMWE1ZTlmMDY3NjhlMThmNGIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDbGFzc1dpdGhKU0J1
aWx0aW5Db25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3Rvci5oCkBAIC01NCwxMiAr
NTQsNyBAQCBwdWJsaWM6CiBwcm90ZWN0ZWQ6CiAgICAgSlNUZXN0Q2xhc3NXaXRoSlNCdWlsdGlu
Q29uc3RydWN0b3IoSlNDOjpTdHJ1Y3R1cmUqLCBKU0RPTUdsb2JhbE9iamVjdCYsIFJlZjxUZXN0
Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3I+JiYpOwogCi0gICAgdm9pZCBmaW5pc2hDcmVh
dGlvbihKU0M6OlZNJiB2bSkKLSAgICB7Ci0gICAgICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZt
KTsKLSAgICAgICAgQVNTRVJUKGluaGVyaXRzKGluZm8oKSkpOwotICAgIH0KLQorICAgIHZvaWQg
ZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYpOwogfTsKIAogY2xhc3MgSlNUZXN0Q2xhc3NXaXRoSlNC
dWlsdGluQ29uc3RydWN0b3JPd25lciA6IHB1YmxpYyBKU0M6OldlYWtIYW5kbGVPd25lciB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
Q3VzdG9tQ29uc3RydWN0b3JXaXRoTm9JbnRlcmZhY2VPYmplY3QuY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1c3RvbUNvbnN0cnVjdG9yV2l0aE5v
SW50ZXJmYWNlT2JqZWN0LmNwcAppbmRleCBmMmM4OTgwOTUxN2ZlNjUzZjBiMjliZTM2ZmZlOTcz
ZmQ2OTM5ZjBhLi5lODJmNTg0Y2Y3OTFmNTI4ZDk1YjJkNGIyODNiYTFjYzYwMzdkOTFjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q3Vz
dG9tQ29uc3RydWN0b3JXaXRoTm9JbnRlcmZhY2VPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21Db25zdHJ1Y3RvcldpdGhO
b0ludGVyZmFjZU9iamVjdC5jcHAKQEAgLTEwNSw2ICsxMDUsMTMgQEAgSlNUZXN0Q3VzdG9tQ29u
c3RydWN0b3JXaXRoTm9JbnRlcmZhY2VPYmplY3Q6OkpTVGVzdEN1c3RvbUNvbnN0cnVjdG9yV2l0
aE5vSW50ZXIKIHsKIH0KIAordm9pZCBKU1Rlc3RDdXN0b21Db25zdHJ1Y3RvcldpdGhOb0ludGVy
ZmFjZU9iamVjdDo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtKQoreworICAgIEJhc2U6OmZpbmlzaENy
ZWF0aW9uKHZtKTsKKyAgICBBU1NFUlQoaW5oZXJpdHMoaW5mbygpKSk7CisKK30KKwogSlNPYmpl
Y3QqIEpTVGVzdEN1c3RvbUNvbnN0cnVjdG9yV2l0aE5vSW50ZXJmYWNlT2JqZWN0OjpjcmVhdGVQ
cm90b3R5cGUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQogewogICAgIHJl
dHVybiBKU1Rlc3RDdXN0b21Db25zdHJ1Y3RvcldpdGhOb0ludGVyZmFjZU9iamVjdFByb3RvdHlw
ZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIEpTVGVzdEN1c3RvbUNvbnN0cnVjdG9yV2l0aE5v
SW50ZXJmYWNlT2JqZWN0UHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUodm0sIGdsb2JhbE9iamVj
dCwgZ2xvYmFsT2JqZWN0LT5vYmplY3RQcm90b3R5cGUoKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1c3RvbUNvbnN0cnVjdG9y
V2l0aE5vSW50ZXJmYWNlT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0Q3VzdG9tQ29uc3RydWN0b3JXaXRoTm9JbnRlcmZhY2VPYmplY3QuaApp
bmRleCAwNzYzMzBiMGM3YzI5MGI3ZTVmMThhMTg5YzVjOTI4NWQxMzgzNjE0Li40ODZjMzVmZDE2
Mjk2NTJkN2E3NWJkOGNjZjY3ZTY2NTQwYmY0MzU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q3VzdG9tQ29uc3RydWN0b3JXaXRoTm9J
bnRlcmZhY2VPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0Q3VzdG9tQ29uc3RydWN0b3JXaXRoTm9JbnRlcmZhY2VPYmplY3QuaApAQCAt
NTEsMTIgKzUxLDcgQEAgcHVibGljOgogcHJvdGVjdGVkOgogICAgIEpTVGVzdEN1c3RvbUNvbnN0
cnVjdG9yV2l0aE5vSW50ZXJmYWNlT2JqZWN0KEpTQzo6U3RydWN0dXJlKiwgSlNET01HbG9iYWxP
YmplY3QmLCBSZWY8VGVzdEN1c3RvbUNvbnN0cnVjdG9yV2l0aE5vSW50ZXJmYWNlT2JqZWN0PiYm
KTsKIAotICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYgdm0pCi0gICAgewotICAgICAg
ICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7Ci0gICAgICAgIEFTU0VSVChpbmhlcml0cyhpbmZv
KCkpKTsKLSAgICB9Ci0KKyAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6Vk0mKTsKIH07CiAK
IGNsYXNzIEpTVGVzdEN1c3RvbUNvbnN0cnVjdG9yV2l0aE5vSW50ZXJmYWNlT2JqZWN0T3duZXIg
OiBwdWJsaWMgSlNDOjpXZWFrSGFuZGxlT3duZXIgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1c3RvbU5hbWVkR2V0dGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21OYW1l
ZEdldHRlci5jcHAKaW5kZXggYzE0Mjk3ZDBlNWIzNThkY2Y5YTA1MmZhOGNiMTFkYWZmNTMyYzQx
OS4uZDA0ZDRlYTE5NjI5Yzc4YTEwYTFiZTgyOGQyYTliMzQ2ZmQ3NTk4YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1c3RvbU5hbWVk
R2V0dGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuY3BwCkBAIC0xMDgsNiArMTA4LDEzIEBAIEpTVGVzdEN1
c3RvbU5hbWVkR2V0dGVyOjpKU1Rlc3RDdXN0b21OYW1lZEdldHRlcihTdHJ1Y3R1cmUqIHN0cnVj
dHVyZSwgSlNET01HbG9iCiB7CiB9CiAKK3ZvaWQgSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXI6OmZp
bmlzaENyZWF0aW9uKFZNJiB2bSkKK3sKKyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7Cisg
ICAgQVNTRVJUKGluaGVyaXRzKGluZm8oKSkpOworCit9CisKIEpTT2JqZWN0KiBKU1Rlc3RDdXN0
b21OYW1lZEdldHRlcjo6Y3JlYXRlUHJvdG90eXBlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCkKIHsKICAgICByZXR1cm4gSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJQcm90b3R5
cGU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBKU1Rlc3RDdXN0b21OYW1lZEdldHRlclByb3Rv
dHlwZTo6Y3JlYXRlU3RydWN0dXJlKHZtLCBnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC0+b2Jq
ZWN0UHJvdG90eXBlKCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21OYW1lZEdldHRlci5oIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1c3RvbU5hbWVkR2V0dGVyLmgKaW5kZXgg
YTVmZDQ1ZjE1Y2IzNWYzZTRkM2UxODQwMzliMGZiOTQwZWUwYzUxNS4uMWFjYmU3YzY3ZjE0YWU1
YTU1ZjJkYjU2YzYyNWMzYzIzNTBlODM5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1c3RvbU5hbWVkR2V0dGVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1c3RvbU5hbWVkR2V0
dGVyLmgKQEAgLTU2LDEyICs1Niw3IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICBKU1Rlc3RD
dXN0b21OYW1lZEdldHRlcihKU0M6OlN0cnVjdHVyZSosIEpTRE9NR2xvYmFsT2JqZWN0JiwgUmVm
PFRlc3RDdXN0b21OYW1lZEdldHRlcj4mJik7CiAKLSAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpT
Qzo6Vk0mIHZtKQotICAgIHsKLSAgICAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOwotICAg
ICAgICBBU1NFUlQoaW5oZXJpdHMoaW5mbygpKSk7Ci0gICAgfQotCisgICAgdm9pZCBmaW5pc2hD
cmVhdGlvbihKU0M6OlZNJik7CiBwcml2YXRlOgogICAgIGJvb2wgbmFtZUdldHRlcihKU0M6OkV4
ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6OkpTVmFsdWUmKTsKIH07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RE9NSklU
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RET01K
SVQuY3BwCmluZGV4IGY1NTdhMDdlYWM3NTU3MjVlOTRiY2UwYzk3MDkyOGIzNmE0ODc3YzQuLjIz
ZWFmOTBlZjAyOGUwN2YyMzkzZGJlMjFhNDIyMzM4OGIzM2UwNmUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RET01KSVQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RET01KSVQuY3Bw
CkBAIC0yMjgsNiArMjI4LDEzIEBAIEpTVGVzdERPTUpJVDo6SlNUZXN0RE9NSklUKFN0cnVjdHVy
ZSogc3RydWN0dXJlLCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0CiB7CiB9CiAKK3Zv
aWQgSlNUZXN0RE9NSklUOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0pCit7CisgICAgQmFzZTo6Zmlu
aXNoQ3JlYXRpb24odm0pOworICAgIEFTU0VSVChpbmhlcml0cyhpbmZvKCkpKTsKKworfQorCiBK
U09iamVjdCogSlNUZXN0RE9NSklUOjpjcmVhdGVQcm90b3R5cGUoVk0mIHZtLCBKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0KQogewogICAgIHJldHVybiBKU1Rlc3RET01KSVRQcm90b3R5cGU6
OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBKU1Rlc3RET01KSVRQcm90b3R5cGU6OmNyZWF0ZVN0
cnVjdHVyZSh2bSwgZ2xvYmFsT2JqZWN0LCBKU05vZGU6OnByb3RvdHlwZSh2bSwgZ2xvYmFsT2Jq
ZWN0KSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdERPTUpJVC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdERPTUpJVC5oCmluZGV4IDI2MDk2YTk1ZDExYmUxNDhiZTAwMjg1ZGFmZjQ3MjZk
ZmE0YzAzYjQuLjExNDdhNGEwMmFmZDM4ZWIwMDVkNzhjZWMyMDZjY2NhMmIyMDcyNzEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RET01K
SVQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
RE9NSklULmgKQEAgLTU3LDEyICs1Nyw3IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICBKU1Rl
c3RET01KSVQoSlNDOjpTdHJ1Y3R1cmUqLCBKU0RPTUdsb2JhbE9iamVjdCYsIFJlZjxUZXN0RE9N
SklUPiYmKTsKIAotICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYgdm0pCi0gICAgewot
ICAgICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7Ci0gICAgICAgIEFTU0VSVChpbmhlcml0
cyhpbmZvKCkpKTsKLSAgICB9Ci0KKyAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6Vk0mKTsK
IH07CiAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdEV2ZW50Q29uc3RydWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50Q29uc3RydWN0b3IuY3BwCmluZGV4IDQzZmU1NTA2
YWU0YjFjYzVhZmQ4N2M1NDMwOTE5Mjc0MTJmYTcxMGUuLjYxNTNhZWRkYzQxY2RlMjcyODQ1Njc4
OWY1Mzk2OTEyYzU2YmRiMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudENvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvci5jcHAK
QEAgLTE3Niw2ICsxNzYsMTMgQEAgSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvcjo6SlNUZXN0RXZlbnRD
b25zdHJ1Y3RvcihTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01HbG9iYWwKIHsKIH0KIAordm9p
ZCBKU1Rlc3RFdmVudENvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0pCit7CisgICAg
QmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOworICAgIEFTU0VSVChpbmhlcml0cyhpbmZvKCkpKTsK
KworfQorCiBKU09iamVjdCogSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvcjo6Y3JlYXRlUHJvdG90eXBl
KFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKIHsKICAgICByZXR1cm4gSlNU
ZXN0RXZlbnRDb25zdHJ1Y3RvclByb3RvdHlwZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIEpT
VGVzdEV2ZW50Q29uc3RydWN0b3JQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZSh2bSwgZ2xvYmFs
T2JqZWN0LCBKU0V2ZW50Ojpwcm90b3R5cGUodm0sIGdsb2JhbE9iamVjdCkpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudENv
bnN0cnVjdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0RXZlbnRDb25zdHJ1Y3Rvci5oCmluZGV4IGEzYTZkNGU0YWY1YTE4MThjZDIwNDM3NWVmNDE5
ZGMyZmNlYzA3MDcuLmUxYTY5YzY1NDUzYTI3ZTE1MmFmNWQyYTcyZDU2MjFjNzY3NmRhZjIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RF
dmVudENvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdEV2ZW50Q29uc3RydWN0b3IuaApAQCAtNTUsMTIgKzU1LDcgQEAgcHVibGlj
OgogcHJvdGVjdGVkOgogICAgIEpTVGVzdEV2ZW50Q29uc3RydWN0b3IoSlNDOjpTdHJ1Y3R1cmUq
LCBKU0RPTUdsb2JhbE9iamVjdCYsIFJlZjxUZXN0RXZlbnRDb25zdHJ1Y3Rvcj4mJik7CiAKLSAg
ICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6Vk0mIHZtKQotICAgIHsKLSAgICAgICAgQmFzZTo6
ZmluaXNoQ3JlYXRpb24odm0pOwotICAgICAgICBBU1NFUlQoaW5oZXJpdHMoaW5mbygpKSk7Ci0g
ICAgfQotCisgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZNJik7CiB9OwogCiBKU0M6OkpT
VmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiwgVGVzdEV2ZW50
Q29uc3RydWN0b3ImKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RFdmVudFRhcmdldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRUYXJnZXQuY3BwCmluZGV4IGZhNzA0OGNiMTU2
YzE3OTlkYTI0ZWUxYmZiMjllZmNhMTM4MjJhOTkuLmE1OWVhZTFmNTI2NDhlMmM2NmFiNWIyMDc1
MzZhYTA0ZWRjNzhjZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RFdmVudFRhcmdldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0LmNwcApAQCAtMTA4LDYgKzEw
OCwxMyBAQCBKU1Rlc3RFdmVudFRhcmdldDo6SlNUZXN0RXZlbnRUYXJnZXQoU3RydWN0dXJlKiBz
dHJ1Y3R1cmUsIEpTRE9NR2xvYmFsT2JqZWN0JiBnbAogewogfQogCit2b2lkIEpTVGVzdEV2ZW50
VGFyZ2V0OjpmaW5pc2hDcmVhdGlvbihWTSYgdm0pCit7CisgICAgQmFzZTo6ZmluaXNoQ3JlYXRp
b24odm0pOworICAgIEFTU0VSVChpbmhlcml0cyhpbmZvKCkpKTsKKworfQorCiBKU09iamVjdCog
SlNUZXN0RXZlbnRUYXJnZXQ6OmNyZWF0ZVByb3RvdHlwZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QpCiB7CiAgICAgcmV0dXJuIEpTVGVzdEV2ZW50VGFyZ2V0UHJvdG90eXBl
OjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgSlNUZXN0RXZlbnRUYXJnZXRQcm90b3R5cGU6OmNy
ZWF0ZVN0cnVjdHVyZSh2bSwgZ2xvYmFsT2JqZWN0LCBKU0V2ZW50VGFyZ2V0Ojpwcm90b3R5cGUo
dm0sIGdsb2JhbE9iamVjdCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudFRhcmdldC5oIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0LmgKaW5kZXggZjlkMDU3MTg1
ZmJlYzcwYzg3MjFmZDZmODc2NmIyNGJiMzlkZWM3Ni4uMDQ3OWEwY2ViZmU1NzExOTRhZDYzOTU5
NzAxYmI2MDgzNGUyNmM2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0LmgKQEAgLTYzLDEyICs2Myw3
IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICBKU1Rlc3RFdmVudFRhcmdldChKU0M6OlN0cnVj
dHVyZSosIEpTRE9NR2xvYmFsT2JqZWN0JiwgUmVmPFRlc3RFdmVudFRhcmdldD4mJik7CiAKLSAg
ICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6Vk0mIHZtKQotICAgIHsKLSAgICAgICAgQmFzZTo6
ZmluaXNoQ3JlYXRpb24odm0pOwotICAgICAgICBBU1NFUlQoaW5oZXJpdHMoaW5mbygpKSk7Ci0g
ICAgfQotCisgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZNJik7CiBwcml2YXRlOgogICAg
IGJvb2wgbmFtZUdldHRlcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6
OkpTVmFsdWUmKTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0RXhjZXB0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFeGNlcHRpb24uY3BwCmluZGV4IGIzZjI4ZThiZWJlMDMz
NDFlN2Y1OGVmZGJiZTZhYWUyOGZhNGExYjMuLjcxYTEyOGI2YmU2NzJkNTJlNzA1ZWFkZjYzMjAx
OTA5ZDRkNzQwYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RFeGNlcHRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFeGNlcHRpb24uY3BwCkBAIC0xMTUsNiArMTE1LDEzIEBA
IEpTVGVzdEV4Y2VwdGlvbjo6SlNUZXN0RXhjZXB0aW9uKFN0cnVjdHVyZSogc3RydWN0dXJlLCBK
U0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsCiB7CiB9CiAKK3ZvaWQgSlNUZXN0RXhjZXB0aW9uOjpm
aW5pc2hDcmVhdGlvbihWTSYgdm0pCit7CisgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOwor
ICAgIEFTU0VSVChpbmhlcml0cyhpbmZvKCkpKTsKKworfQorCiBKU09iamVjdCogSlNUZXN0RXhj
ZXB0aW9uOjpjcmVhdGVQcm90b3R5cGUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0KQogewogICAgIHJldHVybiBKU1Rlc3RFeGNlcHRpb25Qcm90b3R5cGU6OmNyZWF0ZSh2bSwg
Z2xvYmFsT2JqZWN0LCBKU1Rlc3RFeGNlcHRpb25Qcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZSh2
bSwgZ2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3QtPmVycm9yUHJvdG90eXBlKCkpKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFeGNl
cHRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RF
eGNlcHRpb24uaAppbmRleCAwNDVjYmY2M2VlZWRhZjIwNjFhZTFlZjJjOWM4M2RlZTI4MmRhZDZm
Li4yYjc5YWQ2MTZkNDEzZmU4MjExY2Y3NDBhM2E0ZTBmYjI2MzM1ZDc3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXhjZXB0aW9uLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV4Y2Vw
dGlvbi5oCkBAIC01NSwxMiArNTUsNyBAQCBwdWJsaWM6CiBwcm90ZWN0ZWQ6CiAgICAgSlNUZXN0
RXhjZXB0aW9uKEpTQzo6U3RydWN0dXJlKiwgSlNET01HbG9iYWxPYmplY3QmLCBSZWY8VGVzdEV4
Y2VwdGlvbj4mJik7CiAKLSAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6Vk0mIHZtKQotICAg
IHsKLSAgICAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOwotICAgICAgICBBU1NFUlQoaW5o
ZXJpdHMoaW5mbygpKSk7Ci0gICAgfQotCisgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZN
Jik7CiB9OwogCiBjbGFzcyBKU1Rlc3RFeGNlcHRpb25Pd25lciA6IHB1YmxpYyBKU0M6OldlYWtI
YW5kbGVPd25lciB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZS5jcHAKaW5k
ZXggNmZlN2JkZTcyMmRjY2NlNDZlYzIzNDEyYTgyN2I3ODlhMmZmM2Y4OC4uNWVmZTM4YzUyYzAy
ZDA5Mzk4MTMwYWVhMGIzN2JmZmQzNDY5MTNlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RHZW5lcmF0
ZUlzUmVhY2hhYmxlLmNwcApAQCAtOTksNiArOTksMTMgQEAgSlNUZXN0R2VuZXJhdGVJc1JlYWNo
YWJsZTo6SlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZShTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNE
T00KIHsKIH0KIAordm9pZCBKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlOjpmaW5pc2hDcmVhdGlv
bihWTSYgdm0pCit7CisgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOworICAgIEFTU0VSVChp
bmhlcml0cyhpbmZvKCkpKTsKKworfQorCiBKU09iamVjdCogSlNUZXN0R2VuZXJhdGVJc1JlYWNo
YWJsZTo6Y3JlYXRlUHJvdG90eXBlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCkKIHsKICAgICByZXR1cm4gSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZVByb3RvdHlwZTo6Y3Jl
YXRlKHZtLCBnbG9iYWxPYmplY3QsIEpTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGVQcm90b3R5cGU6
OmNyZWF0ZVN0cnVjdHVyZSh2bSwgZ2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3QtPm9iamVjdFBy
b3RvdHlwZSgpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZS5oIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUuaAppbmRleCA1
M2E4NTQxNjk1NTU5Yzg3YTlmMDI3NzNhYzMxODg2MjU4MTI4MzRlLi44MDg1MjdjODQzMjhjMmYw
ZDliYWZhM2Y4ZDE4ZjcxNDA3ZTU1Y2RhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RHZW5lcmF0ZUlzUmVh
Y2hhYmxlLmgKQEAgLTUyLDEyICs1Miw3IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICBKU1Rl
c3RHZW5lcmF0ZUlzUmVhY2hhYmxlKEpTQzo6U3RydWN0dXJlKiwgSlNET01HbG9iYWxPYmplY3Qm
LCBSZWY8VGVzdEdlbmVyYXRlSXNSZWFjaGFibGU+JiYpOwogCi0gICAgdm9pZCBmaW5pc2hDcmVh
dGlvbihKU0M6OlZNJiB2bSkKLSAgICB7Ci0gICAgICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZt
KTsKLSAgICAgICAgQVNTRVJUKGluaGVyaXRzKGluZm8oKSkpOwotICAgIH0KLQorICAgIHZvaWQg
ZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYpOwogfTsKIAogY2xhc3MgSlNUZXN0R2VuZXJhdGVJc1Jl
YWNoYWJsZU93bmVyIDogcHVibGljIEpTQzo6V2Vha0hhbmRsZU93bmVyIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RHbG9iYWxPYmpl
Y3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEds
b2JhbE9iamVjdC5jcHAKaW5kZXggZWI3MTU5NzRiY2I1MjAyM2ZjYzNiMzUwYjMyNGNlMzJiZDc2
MzdjMC4uN2ExMzJmYTIzYzI1ZTZhZmUyYjdhZjU2Y2ZlYzJjMWY3MmZhOWE3ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdsb2JhbE9i
amVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdEdsb2JhbE9iamVjdC5jcHAKQEAgLTE0MSw5ICsxNDEsMTAgQEAgSlNUZXN0R2xvYmFsT2Jq
ZWN0OjpKU1Rlc3RHbG9iYWxPYmplY3QoU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRE9NR2xvYmFs
T2JqZWN0JgogewogfQogCi12b2lkIEpTVGVzdEdsb2JhbE9iamVjdDo6ZmluaXNoQ3JlYXRpb24o
Vk0mIHZtLCBKU1Byb3h5KiBwcm94eSkKK3ZvaWQgSlNUZXN0R2xvYmFsT2JqZWN0OjpmaW5pc2hD
cmVhdGlvbihWTSYgdm0pCiB7Ci0gICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0sIHByb3h5KTsK
KyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7CisgICAgQVNTRVJUKGluaGVyaXRzKGluZm8o
KSkpOwogCiAjaWYgRU5BQkxFKFRFU1RfRkVBVFVSRSkKICAgICBpZiAoUnVudGltZUVuYWJsZWRG
ZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS50ZXN0RmVhdHVyZUVuYWJsZWQoKSkgewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdsb2Jh
bE9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dEdsb2JhbE9iamVjdC5oCmluZGV4IDU3YjBkYmIzZDlhNzE4OTNkZjhiYzQzZjA1MTk5YmVhOGJl
YWMzNmYuLmRlMWUwODk2YzQ4NjNiZDRhYjJkZTk1YTNlN2Q0NDcyNWNjNjJiNTYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RHbG9iYWxP
YmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0R2xvYmFsT2JqZWN0LmgKQEAgLTU2LDEzICs1Niw3IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoK
ICAgICBKU1Rlc3RHbG9iYWxPYmplY3QoSlNDOjpTdHJ1Y3R1cmUqLCBKU0RPTUdsb2JhbE9iamVj
dCYsIFJlZjxUZXN0R2xvYmFsT2JqZWN0PiYmKTsKIAotICAgIHZvaWQgZmluaXNoQ3JlYXRpb24o
SlNDOjpWTSYgdm0pCi0gICAgewotICAgICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7Ci0g
ICAgICAgIEFTU0VSVChpbmhlcml0cyhpbmZvKCkpKTsKLSAgICB9Ci0KLSAgICB2b2lkIGZpbmlz
aENyZWF0aW9uKEpTQzo6Vk0mLCBKU0M6OkpTUHJveHkqKTsKKyAgICB2b2lkIGZpbmlzaENyZWF0
aW9uKEpTQzo6Vk0mKTsKIH07CiAKIGNsYXNzIEpTVGVzdEdsb2JhbE9iamVjdE93bmVyIDogcHVi
bGljIEpTQzo6V2Vha0hhbmRsZU93bmVyIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5jcHAKaW5kZXggZTg1
YzVmNGNhNDBhZGNlYTg0NzljNzhiNDQ1OWRjMTg3MGJmMDk0Mi4uNTBjYWIzZGQ4NDVmM2UxZTI0
OTA5MDlmZGZhMjZhYTZkOTAxZDg2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5jcHAKQEAgLTM4MSw2
ICszODEsMTMgQEAgSlNUZXN0SW50ZXJmYWNlOjpKU1Rlc3RJbnRlcmZhY2UoU3RydWN0dXJlKiBz
dHJ1Y3R1cmUsIEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWwKIHsKIH0KIAordm9pZCBKU1Rlc3RJ
bnRlcmZhY2U6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSkKK3sKKyAgICBCYXNlOjpmaW5pc2hDcmVh
dGlvbih2bSk7CisgICAgQVNTRVJUKGluaGVyaXRzKGluZm8oKSkpOworCit9CisKIEpTT2JqZWN0
KiBKU1Rlc3RJbnRlcmZhY2U6OmNyZWF0ZVByb3RvdHlwZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QpCiB7CiAgICAgcmV0dXJuIEpTVGVzdEludGVyZmFjZVByb3RvdHlwZTo6
Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIEpTVGVzdEludGVyZmFjZVByb3RvdHlwZTo6Y3JlYXRl
U3RydWN0dXJlKHZtLCBnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC0+b2JqZWN0UHJvdG90eXBl
KCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RJbnRlcmZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RJbnRlcmZhY2UuaAppbmRleCBhZDY2MjQyZjc3MmU5YTU1YjM5ZDBkNWY4OGNi
NTQwMmU1YTU1NmUxLi41MGQyOGQ0NGEwMzhmZWI5MDQ5YzM3YzFjY2RiNTNjMTVlMzEzYzA5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
SW50ZXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdEludGVyZmFjZS5oCkBAIC03OSwxMiArNzksNyBAQCBwdWJsaWM6CiBwcm90ZWN0ZWQ6
CiAgICAgSlNUZXN0SW50ZXJmYWNlKEpTQzo6U3RydWN0dXJlKiwgSlNET01HbG9iYWxPYmplY3Qm
LCBSZWY8VGVzdEludGVyZmFjZT4mJik7CiAKLSAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6
Vk0mIHZtKQotICAgIHsKLSAgICAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOwotICAgICAg
ICBBU1NFUlQoaW5oZXJpdHMoaW5mbygpKSk7Ci0gICAgfQotCisgICAgdm9pZCBmaW5pc2hDcmVh
dGlvbihKU0M6OlZNJik7CiB9OwogCiBjbGFzcyBKU1Rlc3RJbnRlcmZhY2VPd25lciA6IHB1Ymxp
YyBKU0M6OldlYWtIYW5kbGVPd25lciB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFj
ZUxlYWRpbmdVbmRlcnNjb3JlLmNwcAppbmRleCA5NTc1MmRjODM0OTNjZGRiMzUzYWVhMjMzMDBk
NDZkZDEzYjE5MGEwLi4wOTgzMDNmZDBhYzQ4MGM2NDQ2NWFjMzkzNzI2ZDNlMzQzZjI3YzU3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZS5jcHAK
QEAgLTEwMiw2ICsxMDIsMTMgQEAgSlNUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmU6OkpT
VGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlKFN0cnVjdHVyZSogc3QKIHsKIH0KIAordm9p
ZCBKU1Rlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZt
KQoreworICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtKTsKKyAgICBBU1NFUlQoaW5oZXJpdHMo
aW5mbygpKSk7CisKK30KKwogSlNPYmplY3QqIEpTVGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNj
b3JlOjpjcmVhdGVQcm90b3R5cGUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
KQogewogICAgIHJldHVybiBKU1Rlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZVByb3RvdHlw
ZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIEpTVGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNj
b3JlUHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUodm0sIGdsb2JhbE9iamVjdCwgZ2xvYmFsT2Jq
ZWN0LT5vYmplY3RQcm90b3R5cGUoKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNl
TGVhZGluZ1VuZGVyc2NvcmUuaAppbmRleCA1YjlhMzhlZTQ3NDY4ZGNjODA3ODVjNWMyOTBiOGI2
MzkxMDM3NWIzLi42ZmU2MWEyNDE2NGIxOTVjZjc3YzkyODVjNjY3M2E1Y2VkZjczYWY5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50
ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmUuaApAQCAtNTIs
MTIgKzUyLDcgQEAgcHVibGljOgogcHJvdGVjdGVkOgogICAgIEpTVGVzdEludGVyZmFjZUxlYWRp
bmdVbmRlcnNjb3JlKEpTQzo6U3RydWN0dXJlKiwgSlNET01HbG9iYWxPYmplY3QmLCBSZWY8VGVz
dEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlPiYmKTsKIAotICAgIHZvaWQgZmluaXNoQ3JlYXRp
b24oSlNDOjpWTSYgdm0pCi0gICAgewotICAgICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7
Ci0gICAgICAgIEFTU0VSVChpbmhlcml0cyhpbmZvKCkpKTsKLSAgICB9Ci0KKyAgICB2b2lkIGZp
bmlzaENyZWF0aW9uKEpTQzo6Vk0mKTsKIH07CiAKIGNsYXNzIEpTVGVzdEludGVyZmFjZUxlYWRp
bmdVbmRlcnNjb3JlT3duZXIgOiBwdWJsaWMgSlNDOjpXZWFrSGFuZGxlT3duZXIgewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEl0ZXJh
YmxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJ
dGVyYWJsZS5jcHAKaW5kZXggODQ5YmM3MmViMzc3NWRlMGI1MGQzZmVmNjJlMGVlYTY1MWNhMjQ1
ZC4uYjVkZTBiNzBkZGNhMTljNjNlMTllNmY3YTk0MGUyNjc3OGVkMTY2NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEl0ZXJhYmxlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SXRl
cmFibGUuY3BwCkBAIC0xMTMsNiArMTEzLDEzIEBAIEpTVGVzdEl0ZXJhYmxlOjpKU1Rlc3RJdGVy
YWJsZShTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iCiB7
CiB9CiAKK3ZvaWQgSlNUZXN0SXRlcmFibGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSkKK3sKKyAg
ICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7CisgICAgQVNTRVJUKGluaGVyaXRzKGluZm8oKSkp
OworCit9CisKIEpTT2JqZWN0KiBKU1Rlc3RJdGVyYWJsZTo6Y3JlYXRlUHJvdG90eXBlKFZNJiB2
bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKIHsKICAgICByZXR1cm4gSlNUZXN0SXRl
cmFibGVQcm90b3R5cGU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBKU1Rlc3RJdGVyYWJsZVBy
b3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKHZtLCBnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC0+
b2JqZWN0UHJvdG90eXBlKCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJdGVyYWJsZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEl0ZXJhYmxlLmgKaW5kZXggNGFjNzEwNTBkOTEyYzEz
YTg5YTQ3NmYzYTk5NmJkNzRkOTIwNjE4Mi4uNWExNWRhOTNhY2EzNTJiZjIwMzQxMzkxZGVkM2Y4
N2U2ZjA4MWVmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdEl0ZXJhYmxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdEl0ZXJhYmxlLmgKQEAgLTUyLDEyICs1Miw3IEBAIHB1YmxpYzoK
IHByb3RlY3RlZDoKICAgICBKU1Rlc3RJdGVyYWJsZShKU0M6OlN0cnVjdHVyZSosIEpTRE9NR2xv
YmFsT2JqZWN0JiwgUmVmPFRlc3RJdGVyYWJsZT4mJik7CiAKLSAgICB2b2lkIGZpbmlzaENyZWF0
aW9uKEpTQzo6Vk0mIHZtKQotICAgIHsKLSAgICAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0p
OwotICAgICAgICBBU1NFUlQoaW5oZXJpdHMoaW5mbygpKSk7Ci0gICAgfQotCisgICAgdm9pZCBm
aW5pc2hDcmVhdGlvbihKU0M6OlZNJik7CiB9OwogCiBjbGFzcyBKU1Rlc3RJdGVyYWJsZU93bmVy
IDogcHVibGljIEpTQzo6V2Vha0hhbmRsZU93bmVyIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3Rvci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SlNCdWls
dGluQ29uc3RydWN0b3IuY3BwCmluZGV4IGRkNDg5NzRmYWJjMDkyYTBmOWMzODQ0N2FjMmQ4YTkx
OTRjZTQ2NjkuLjA0YTdhMzYyZTlkNTczMTViN2FmOGU3MWZlNTBkNjQ3ZTg2NWZjOGEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RKU0J1
aWx0aW5Db25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yLmNwcApAQCAtMTE2LDYgKzExNiwx
MyBAQCBjb25zdCBDbGFzc0luZm8gSlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3I6OnNfaW5mbyA9
IHsgIlRlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvcgogSlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3I6
OkpTVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yKFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUds
b2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQogICAgIDogSlNET01PYmplY3Qoc3RydWN0dXJlLCBn
bG9iYWxPYmplY3QpIHsgfQogCit2b2lkIEpTVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yOjpmaW5p
c2hDcmVhdGlvbihWTSYgdm0pCit7CisgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOworICAg
IEFTU0VSVChpbmhlcml0cyhpbmZvKCkpKTsKKworfQorCiBKU09iamVjdCogSlNUZXN0SlNCdWls
dGluQ29uc3RydWN0b3I6OmNyZWF0ZVByb3RvdHlwZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QpCiB7CiAgICAgcmV0dXJuIEpTVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yUHJv
dG90eXBlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgSlNUZXN0SlNCdWlsdGluQ29uc3RydWN0
b3JQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZSh2bSwgZ2xvYmFsT2JqZWN0LCBnbG9iYWxPYmpl
Y3QtPm9iamVjdFByb3RvdHlwZSgpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3IuaCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RKU0J1aWx0aW5Db25zdHJ1
Y3Rvci5oCmluZGV4IGI4YzU5MzEyY2FmZjM1YzM0ZjM0OWQxNmJjZmMwZDU2ODljNjI1ZTAuLjY1
YmMwMDU3MmI5MDY0ZDc0MjU0YWZkYzk1ZTM1ZDViMTg4NGFmYjYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RKU0J1aWx0aW5Db25zdHJ1
Y3Rvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RKU0J1aWx0aW5Db25zdHJ1Y3Rvci5oCkBAIC01OSw2ICs1OSw3IEBAIHB1YmxpYzoKIHByb3Rl
Y3RlZDoKICAgICBKU1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvcihKU0M6OlN0cnVjdHVyZSosIEpT
RE9NR2xvYmFsT2JqZWN0Jik7CiAKKyAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6Vk0mKTsK
IH07CiAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwCmlu
ZGV4IDU4N2E5ZTQyZGQzMDdmYjFmZmZiZWFmNzU5NmY2YjJiZjkwY2NmNzEuLmY4OGRjMjUyMjZl
YWIzNDNhNjBhMDBmYzA0Nzc0NzRiZWY0NWU4NzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVk
aWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAKQEAgLTEwNyw2ICsxMDcsMTMgQEAgSlNUZXN0TWVkaWFR
dWVyeUxpc3RMaXN0ZW5lcjo6SlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcihTdHJ1Y3R1cmUq
IHN0cnVjdHVyZSwKIHsKIH0KIAordm9pZCBKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyOjpm
aW5pc2hDcmVhdGlvbihWTSYgdm0pCit7CisgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOwor
ICAgIEFTU0VSVChpbmhlcml0cyhpbmZvKCkpKTsKKworfQorCiBKU09iamVjdCogSlNUZXN0TWVk
aWFRdWVyeUxpc3RMaXN0ZW5lcjo6Y3JlYXRlUHJvdG90eXBlKFZNJiB2bSwgSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCkKIHsKICAgICByZXR1cm4gSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0
ZW5lclByb3RvdHlwZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIEpTVGVzdE1lZGlhUXVlcnlM
aXN0TGlzdGVuZXJQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZSh2bSwgZ2xvYmFsT2JqZWN0LCBn
bG9iYWxPYmplY3QtPm9iamVjdFByb3RvdHlwZSgpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5l
ci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlh
UXVlcnlMaXN0TGlzdGVuZXIuaAppbmRleCBlYmNjOTEzMDJiOTYyYzZmMWVmM2Q2ZmVkNjAyZDE1
NzNmOWJmM2JkLi40NDY5M2JhMjNkOWQyYTI2MDkwZWYxN2M3Zjg1MjAzOWFhYTc3NjczIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVk
aWFRdWVyeUxpc3RMaXN0ZW5lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmgKQEAgLTUyLDEyICs1Miw3
IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICBKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVy
KEpTQzo6U3RydWN0dXJlKiwgSlNET01HbG9iYWxPYmplY3QmLCBSZWY8VGVzdE1lZGlhUXVlcnlM
aXN0TGlzdGVuZXI+JiYpOwogCi0gICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZNJiB2bSkK
LSAgICB7Ci0gICAgICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtKTsKLSAgICAgICAgQVNTRVJU
KGluaGVyaXRzKGluZm8oKSkpOwotICAgIH0KLQorICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlND
OjpWTSYpOwogfTsKIAogY2xhc3MgSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lck93bmVyIDog
cHVibGljIEpTQzo6V2Vha0hhbmRsZU93bmVyIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZENvbnN0cnVjdG9yLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZENvbnN0cnVj
dG9yLmNwcAppbmRleCA4Nzg2ZjQzN2YyOWEyNzk3ZGY5NWNkOGY3ODgyYjhlY2ZiMGE5MzQ4Li42
OThjYTQ0OWZiMDMxNjJhYTUxN2FmMTlkNzczMjhiN2U3ZWFiNDRhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRDb25zdHJ1Y3Rv
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE5hbWVkQ29uc3RydWN0b3IuY3BwCkBAIC0xNDIsNiArMTQyLDEzIEBAIEpTVGVzdE5hbWVkQ29u
c3RydWN0b3I6OkpTVGVzdE5hbWVkQ29uc3RydWN0b3IoU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpT
RE9NR2xvYmFsCiB7CiB9CiAKK3ZvaWQgSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3Jl
YXRpb24oVk0mIHZtKQoreworICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtKTsKKyAgICBBU1NF
UlQoaW5oZXJpdHMoaW5mbygpKSk7CisKK30KKwogSlNPYmplY3QqIEpTVGVzdE5hbWVkQ29uc3Ry
dWN0b3I6OmNyZWF0ZVByb3RvdHlwZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QpCiB7CiAgICAgcmV0dXJuIEpTVGVzdE5hbWVkQ29uc3RydWN0b3JQcm90b3R5cGU6OmNyZWF0
ZSh2bSwgZ2xvYmFsT2JqZWN0LCBKU1Rlc3ROYW1lZENvbnN0cnVjdG9yUHJvdG90eXBlOjpjcmVh
dGVTdHJ1Y3R1cmUodm0sIGdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0LT5vYmplY3RQcm90b3R5
cGUoKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE5hbWVkQ29uc3RydWN0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZENvbnN0cnVjdG9yLmgKaW5kZXggM2FhYTE0NThmMzA4
Nzc5YjY4ZTM3OTYxYTkzNGNhODY1NjQ2NWY5ZS4uNWI4OTQxMWE2MDYzMGRjNjdmMjhkMzFlNDVh
MWVjMjlkOTJmMjhhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE5hbWVkQ29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvci5oCkBAIC01Mywx
MiArNTMsNyBAQCBwdWJsaWM6CiBwcm90ZWN0ZWQ6CiAgICAgSlNUZXN0TmFtZWRDb25zdHJ1Y3Rv
cihKU0M6OlN0cnVjdHVyZSosIEpTRE9NR2xvYmFsT2JqZWN0JiwgUmVmPFRlc3ROYW1lZENvbnN0
cnVjdG9yPiYmKTsKIAotICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYgdm0pCi0gICAg
ewotICAgICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7Ci0gICAgICAgIEFTU0VSVChpbmhl
cml0cyhpbmZvKCkpKTsKLSAgICB9Ci0KKyAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6Vk0m
KTsKIH07CiAKIGNsYXNzIEpTVGVzdE5hbWVkQ29uc3RydWN0b3JPd25lciA6IHB1YmxpYyBKU0M6
OldlYWtIYW5kbGVPd25lciB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9kZS5jcHAKaW5kZXggMzM3MTBiMTNjZmZiNjBmZDQ2N2Q3
YTI2MDIyYTQwZTQ1NGNhNDZkOC4uMjdjNTY3ZTEwN2Q5Zjk4NDk2YTEzZTQ2ZDBhOWMxZmZlZTM4
ZTczYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3ROb2RlLmNwcApAQCAtMTU2LDYgKzE1NiwxMyBAQCBKU1Rlc3ROb2RlOjpKU1Rl
c3ROb2RlKFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2Jq
ZWN0LCBSZQogewogfQogCit2b2lkIEpTVGVzdE5vZGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSkK
K3sKKyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7CisgICAgQVNTRVJUKGluaGVyaXRzKGlu
Zm8oKSkpOworCit9CisKIEpTT2JqZWN0KiBKU1Rlc3ROb2RlOjpjcmVhdGVQcm90b3R5cGUoVk0m
IHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQogewogICAgIHJldHVybiBKU1Rlc3RO
b2RlUHJvdG90eXBlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgSlNUZXN0Tm9kZVByb3RvdHlw
ZTo6Y3JlYXRlU3RydWN0dXJlKHZtLCBnbG9iYWxPYmplY3QsIEpTTm9kZTo6cHJvdG90eXBlKHZt
LCBnbG9iYWxPYmplY3QpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9kZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE5vZGUuaAppbmRleCA4MDNkOTU3M2ZiZmVkM2ViMjVhZTYwM2M5
OWQ5ZDExZGNmYjYxNDM1Li5lZDhhMzQ3YzY0ZWU1ODliNWEzMGU1ZjljNmU1OWE2MzBlYTQ4YjNl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0Tm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3ROb2RlLmgKQEAgLTU2LDEyICs1Niw3IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICBK
U1Rlc3ROb2RlKEpTQzo6U3RydWN0dXJlKiwgSlNET01HbG9iYWxPYmplY3QmLCBSZWY8VGVzdE5v
ZGU+JiYpOwogCi0gICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZNJiB2bSkKLSAgICB7Ci0g
ICAgICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtKTsKLSAgICAgICAgQVNTRVJUKGluaGVyaXRz
KGluZm8oKSkpOwotICAgIH0KLQorICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYpOwog
fTsKIAogV0VCQ09SRV9URVNUU1VQUE9SVF9FWFBPUlQgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpF
eGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCosIFRlc3ROb2RlJik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9uZGV0ZXJtaW5p
c3RpYy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
Tm9uZGV0ZXJtaW5pc3RpYy5jcHAKaW5kZXggM2IxNjE3NzEyMmUzM2VmNDk3NmUxNWJiNzRiYmE5
ZGE5ODRmNDMzYS4uNjllYWQzNGVlNGIyOGE3NDllMzI0NDAxMzVhZjE2Y2I1OTI2OWNmYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5v
bmRldGVybWluaXN0aWMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3ROb25kZXRlcm1pbmlzdGljLmNwcApAQCAtMTI2LDYgKzEyNiwxMyBAQCBK
U1Rlc3ROb25kZXRlcm1pbmlzdGljOjpKU1Rlc3ROb25kZXRlcm1pbmlzdGljKFN0cnVjdHVyZSog
c3RydWN0dXJlLCBKU0RPTUdsb2JhbAogewogfQogCit2b2lkIEpTVGVzdE5vbmRldGVybWluaXN0
aWM6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSkKK3sKKyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2
bSk7CisgICAgQVNTRVJUKGluaGVyaXRzKGluZm8oKSkpOworCit9CisKIEpTT2JqZWN0KiBKU1Rl
c3ROb25kZXRlcm1pbmlzdGljOjpjcmVhdGVQcm90b3R5cGUoVk0mIHZtLCBKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0KQogewogICAgIHJldHVybiBKU1Rlc3ROb25kZXRlcm1pbmlzdGljUHJv
dG90eXBlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgSlNUZXN0Tm9uZGV0ZXJtaW5pc3RpY1By
b3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKHZtLCBnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC0+
b2JqZWN0UHJvdG90eXBlKCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb25kZXRlcm1pbmlzdGljLmggYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9uZGV0ZXJtaW5pc3RpYy5oCmluZGV4
IGEzNDIxYTVlOTg3NDY4NjRkOTk2ZGQ0NjEyMDA0MjViZWRhZWU3ZmYuLjcwNTVlNjZhMDRmZWYx
Njg2ZDU5ZWZjOTYyZjgwZmY0ZmQ4NzI2YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb25kZXRlcm1pbmlzdGljLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vbmRldGVybWluaXN0
aWMuaApAQCAtNTIsMTIgKzUyLDcgQEAgcHVibGljOgogcHJvdGVjdGVkOgogICAgIEpTVGVzdE5v
bmRldGVybWluaXN0aWMoSlNDOjpTdHJ1Y3R1cmUqLCBKU0RPTUdsb2JhbE9iamVjdCYsIFJlZjxU
ZXN0Tm9uZGV0ZXJtaW5pc3RpYz4mJik7CiAKLSAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6
Vk0mIHZtKQotICAgIHsKLSAgICAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOwotICAgICAg
ICBBU1NFUlQoaW5oZXJpdHMoaW5mbygpKSk7Ci0gICAgfQotCisgICAgdm9pZCBmaW5pc2hDcmVh
dGlvbihKU0M6OlZNJik7CiB9OwogCiBjbGFzcyBKU1Rlc3ROb25kZXRlcm1pbmlzdGljT3duZXIg
OiBwdWJsaWMgSlNDOjpXZWFrSGFuZGxlT3duZXIgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAppbmRleCA4NTBjMWMxZjJl
MjM4N2E2MjBmYzM1YzdkMjdhNjQ5YWVlMTE1YTE3Li41MDY1NjcxNTAyNzUzYzIzNDZlN2YxOGVk
YTFhYTI2Mzk1OWNlNGVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcApAQCAtMTc2MSw2ICsxNzYxLDEzIEBAIEpTVGVz
dE9iajo6SlNUZXN0T2JqKFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUdsb2JhbE9iamVjdCYg
Z2xvYmFsT2JqZWN0LCBSZWY8CiB7CiB9CiAKK3ZvaWQgSlNUZXN0T2JqOjpmaW5pc2hDcmVhdGlv
bihWTSYgdm0pCit7CisgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOworICAgIEFTU0VSVChp
bmhlcml0cyhpbmZvKCkpKTsKKworfQorCiBKU09iamVjdCogSlNUZXN0T2JqOjpjcmVhdGVQcm90
b3R5cGUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQogewogICAgIHJldHVy
biBKU1Rlc3RPYmpQcm90b3R5cGU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBKU1Rlc3RPYmpQ
cm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZSh2bSwgZ2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3Qt
Pm9iamVjdFByb3RvdHlwZSgpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmgKaW5kZXggNjQxODc3NTM2YTIzODBmMGI3MzQxNmU4
ZTliOTAyZDMzMGM2YmVhOS4uYzQ0YjFlNGY3MWJmOTMzMzI0ODA2OGQ3YmQ3MWJlNDRiZmMzMWIy
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE9iai5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RPYmouaApAQCAtNzIsMTIgKzcyLDcgQEAgcHVibGljOgogcHJvdGVjdGVkOgogICAgIEpT
VGVzdE9iaihKU0M6OlN0cnVjdHVyZSosIEpTRE9NR2xvYmFsT2JqZWN0JiwgUmVmPFRlc3RPYmo+
JiYpOwogCi0gICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZNJiB2bSkKLSAgICB7Ci0gICAg
ICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtKTsKLSAgICAgICAgQVNTRVJUKGluaGVyaXRzKGlu
Zm8oKSkpOwotICAgIH0KLQorICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYpOwogfTsK
IAogY2xhc3MgSlNUZXN0T2JqT3duZXIgOiBwdWJsaWMgSlNDOjpXZWFrSGFuZGxlT3duZXIgewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMuY3BwCmluZGV4IDc5ZWNl
OWRmZTdhYzFjOWE2YzU5NWNhZTE1OGUxMmE2NTZmOGI2YzIuLmFkZTk0M2RkNGRkNTAzNzlhMzgz
YWUwMmU4YTNjZGJmMjcyYzdhYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENv
bnN0cnVjdG9ycy5jcHAKQEAgLTIwMCw2ICsyMDAsMTMgQEAgSlNUZXN0T3ZlcmxvYWRlZENvbnN0
cnVjdG9yczo6SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycyhTdHJ1Y3R1cmUqIHN0cnVjdHVy
ZSwKIHsKIH0KIAordm9pZCBKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzOjpmaW5pc2hDcmVh
dGlvbihWTSYgdm0pCit7CisgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOworICAgIEFTU0VS
VChpbmhlcml0cyhpbmZvKCkpKTsKKworfQorCiBKU09iamVjdCogSlNUZXN0T3ZlcmxvYWRlZENv
bnN0cnVjdG9yczo6Y3JlYXRlUHJvdG90eXBlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCkKIHsKICAgICByZXR1cm4gSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1Byb3Rv
dHlwZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3Rv
cnNQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZSh2bSwgZ2xvYmFsT2JqZWN0LCBnbG9iYWxPYmpl
Y3QtPm9iamVjdFByb3RvdHlwZSgpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5oIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25z
dHJ1Y3RvcnMuaAppbmRleCBjNmJhMzJkN2NhOGNjYzg3ODBjOWUzNzIzYThmN2ZiOGI4YmQyMDBh
Li45NmQxMDNmNDNkYTY2MzQ2MmUxYTdkYjkxMWQ1NDY5OTZmNGEyOGRkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENv
bnN0cnVjdG9ycy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzLmgKQEAgLTUyLDEyICs1Miw3IEBAIHB1Ymxp
YzoKIHByb3RlY3RlZDoKICAgICBKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzKEpTQzo6U3Ry
dWN0dXJlKiwgSlNET01HbG9iYWxPYmplY3QmLCBSZWY8VGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3Rv
cnM+JiYpOwogCi0gICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZNJiB2bSkKLSAgICB7Ci0g
ICAgICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtKTsKLSAgICAgICAgQVNTRVJUKGluaGVyaXRz
KGluZm8oKSkpOwotICAgIH0KLQorICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYpOwog
fTsKIAogY2xhc3MgSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc093bmVyIDogcHVibGljIEpT
Qzo6V2Vha0hhbmRsZU93bmVyIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbmNl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVy
bG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbmNlLmNwcAppbmRleCA0OGIwNmYwMzNkMjAyY2Yz
YTkyNTc0NDdjYmFkYzE0OTRkZjE2Yjg5Li41ODExNGQ4NzkzODdmYmVjZjY1YjM1NDNhMTAyZGJi
MmYzNmI1NDlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRD
b25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2UuY3BwCkBAIC0xNTEsNiArMTUxLDEzIEBAIEpTVGVzdE92
ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2U6OkpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1
Y3RvcnNXaXRoU2VxdWVuCiB7CiB9CiAKK3ZvaWQgSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9y
c1dpdGhTZXF1ZW5jZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtKQoreworICAgIEJhc2U6OmZpbmlz
aENyZWF0aW9uKHZtKTsKKyAgICBBU1NFUlQoaW5oZXJpdHMoaW5mbygpKSk7CisKK30KKwogSlNP
YmplY3QqIEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2U6OmNyZWF0ZVBy
b3RvdHlwZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiB7CiAgICAgcmV0
dXJuIEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2VQcm90b3R5cGU6OmNy
ZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNl
cXVlbmNlUHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUodm0sIGdsb2JhbE9iamVjdCwgZ2xvYmFs
T2JqZWN0LT5vYmplY3RQcm90b3R5cGUoKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRo
U2VxdWVuY2UuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbmNlLmgKaW5kZXggOWI4OTdlNTMzZThh
MTBmZTIyNTFjMjI3NDZmY2E2YzY2MzAxYmY0YS4uZGI5NDVlYzEzNmNlYWQ1MmIzOGJmNDc4YTk2
NmJlZmE5NWQxZjRhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2UuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRl
ZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZS5oCkBAIC01MiwxMiArNTIsNyBAQCBwdWJsaWM6CiBw
cm90ZWN0ZWQ6CiAgICAgSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZShK
U0M6OlN0cnVjdHVyZSosIEpTRE9NR2xvYmFsT2JqZWN0JiwgUmVmPFRlc3RPdmVybG9hZGVkQ29u
c3RydWN0b3JzV2l0aFNlcXVlbmNlPiYmKTsKIAotICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlND
OjpWTSYgdm0pCi0gICAgewotICAgICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7Ci0gICAg
ICAgIEFTU0VSVChpbmhlcml0cyhpbmZvKCkpKTsKLSAgICB9Ci0KKyAgICB2b2lkIGZpbmlzaENy
ZWF0aW9uKEpTQzo6Vk0mKTsKIH07CiAKIGNsYXNzIEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3Rv
cnNXaXRoU2VxdWVuY2VPd25lciA6IHB1YmxpYyBKU0M6OldlYWtIYW5kbGVPd25lciB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3Zl
cnJpZGVCdWlsdGlucy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0T3ZlcnJpZGVCdWlsdGlucy5jcHAKaW5kZXggMWYwNzRkZjRjYjViZDFkYzlhMTAx
NGYwYjMxNTI1YmJlZDkyZDE4Yy4uNDE3YmNiZjg1ZTgxMDEzY2E4MGI5MTEzYWE0N2E3NmY0YzRi
MTVjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE92ZXJyaWRlQnVpbHRpbnMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVycmlkZUJ1aWx0aW5zLmNwcApAQCAtMTA5LDYgKzEw
OSwxMyBAQCBKU1Rlc3RPdmVycmlkZUJ1aWx0aW5zOjpKU1Rlc3RPdmVycmlkZUJ1aWx0aW5zKFN0
cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUdsb2JhbAogewogfQogCit2b2lkIEpTVGVzdE92ZXJy
aWRlQnVpbHRpbnM6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSkKK3sKKyAgICBCYXNlOjpmaW5pc2hD
cmVhdGlvbih2bSk7CisgICAgQVNTRVJUKGluaGVyaXRzKGluZm8oKSkpOworCit9CisKIEpTT2Jq
ZWN0KiBKU1Rlc3RPdmVycmlkZUJ1aWx0aW5zOjpjcmVhdGVQcm90b3R5cGUoVk0mIHZtLCBKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQogewogICAgIHJldHVybiBKU1Rlc3RPdmVycmlkZUJ1
aWx0aW5zUHJvdG90eXBlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgSlNUZXN0T3ZlcnJpZGVC
dWlsdGluc1Byb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKHZtLCBnbG9iYWxPYmplY3QsIGdsb2Jh
bE9iamVjdC0+b2JqZWN0UHJvdG90eXBlKCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVycmlkZUJ1aWx0aW5zLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcnJpZGVCdWlsdGlu
cy5oCmluZGV4IGVkNWZhZTE0ZTU4OTgxN2Y4NTJkZGZlMWVlMjU3M2NlNmZmMzVjYjUuLjczNDg4
YzRlMTZlN2E3YTljZWIyMDRjNTkyYmFhODIwNDlmYjJmNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVycmlkZUJ1aWx0aW5zLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJy
aWRlQnVpbHRpbnMuaApAQCAtNTcsMTIgKzU3LDcgQEAgcHVibGljOgogcHJvdGVjdGVkOgogICAg
IEpTVGVzdE92ZXJyaWRlQnVpbHRpbnMoSlNDOjpTdHJ1Y3R1cmUqLCBKU0RPTUdsb2JhbE9iamVj
dCYsIFJlZjxUZXN0T3ZlcnJpZGVCdWlsdGlucz4mJik7CiAKLSAgICB2b2lkIGZpbmlzaENyZWF0
aW9uKEpTQzo6Vk0mIHZtKQotICAgIHsKLSAgICAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0p
OwotICAgICAgICBBU1NFUlQoaW5oZXJpdHMoaW5mbygpKSk7Ci0gICAgfQotCisgICAgdm9pZCBm
aW5pc2hDcmVhdGlvbihKU0M6OlZNJik7CiBwcml2YXRlOgogICAgIGJvb2wgbmFtZUdldHRlcihK
U0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6OkpTVmFsdWUmKTsKIH07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
U2VyaWFsaXphdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0U2VyaWFsaXphdGlvbi5jcHAKaW5kZXggNjhkMjQ1YjgxOGIyZGE1OGRmNjIyYTYx
ZTE5MDRkZjFmZmE4OWQyMi4uOGIzODE5ZDBkYmIxYzU3OTYyYjdlM2FjNDE4ZTNjZWVkMmNmZDUz
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdFNlcmlhbGl6YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemF0aW9uLmNwcApAQCAtMTIyLDYgKzEyMiwxMyBAQCBK
U1Rlc3RTZXJpYWxpemF0aW9uOjpKU1Rlc3RTZXJpYWxpemF0aW9uKFN0cnVjdHVyZSogc3RydWN0
dXJlLCBKU0RPTUdsb2JhbE9iamVjdAogewogfQogCit2b2lkIEpTVGVzdFNlcmlhbGl6YXRpb246
OmZpbmlzaENyZWF0aW9uKFZNJiB2bSkKK3sKKyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7
CisgICAgQVNTRVJUKGluaGVyaXRzKGluZm8oKSkpOworCit9CisKIEpTT2JqZWN0KiBKU1Rlc3RT
ZXJpYWxpemF0aW9uOjpjcmVhdGVQcm90b3R5cGUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0KQogewogICAgIHJldHVybiBKU1Rlc3RTZXJpYWxpemF0aW9uUHJvdG90eXBlOjpj
cmVhdGUodm0sIGdsb2JhbE9iamVjdCwgSlNUZXN0U2VyaWFsaXphdGlvblByb3RvdHlwZTo6Y3Jl
YXRlU3RydWN0dXJlKHZtLCBnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC0+b2JqZWN0UHJvdG90
eXBlKCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RTZXJpYWxpemF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXphdGlvbi5oCmluZGV4IDY2N2Y2OWQ2ZDE5M2YyYzU0
MzFkOWUwZGQxYmJiOGY4ZDZiZWViZTUuLjRlMzBiYmRiZGUyODJiOGIxMzY1ZjBhNmQzYzA0ODNj
YjA5NmYyODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RTZXJpYWxpemF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6YXRpb24uaApAQCAtNTIsMTIgKzUyLDcgQEAg
cHVibGljOgogcHJvdGVjdGVkOgogICAgIEpTVGVzdFNlcmlhbGl6YXRpb24oSlNDOjpTdHJ1Y3R1
cmUqLCBKU0RPTUdsb2JhbE9iamVjdCYsIFJlZjxUZXN0U2VyaWFsaXphdGlvbj4mJik7CiAKLSAg
ICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6Vk0mIHZtKQotICAgIHsKLSAgICAgICAgQmFzZTo6
ZmluaXNoQ3JlYXRpb24odm0pOwotICAgICAgICBBU1NFUlQoaW5oZXJpdHMoaW5mbygpKSk7Ci0g
ICAgfQotCisgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZNJik7CiB9OwogCiBjbGFzcyBK
U1Rlc3RTZXJpYWxpemF0aW9uT3duZXIgOiBwdWJsaWMgSlNDOjpXZWFrSGFuZGxlT3duZXIgewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNl
LmNwcAppbmRleCA3MDZmMjQ0ZmYzNTFkZDJjMGIyZGYxMzE1ZGVhMDNkMDIzZTI4NTdmLi5jMTcy
ZWRiNjdlNzhlNDI1ZDQ5MjI5MjgwNzNjMjgyNmIzNGU5ODI4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZh
bHVlSW50ZXJmYWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmNwcApAQCAtMTE4LDYg
KzExOCwxMyBAQCBKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2U6OkpTVGVzdFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZShTdHJ1YwogewogfQogCit2b2lkIEpTVGVzdFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtKQorewor
ICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtKTsKKyAgICBBU1NFUlQoaW5oZXJpdHMoaW5mbygp
KSk7CisKK30KKwogSlNPYmplY3QqIEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFj
ZTo6Y3JlYXRlUHJvdG90eXBlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkK
IHsKICAgICByZXR1cm4gSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlUHJvdG90
eXBlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVl
SW50ZXJmYWNlUHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUodm0sIGdsb2JhbE9iamVjdCwgZ2xv
YmFsT2JqZWN0LT5vYmplY3RQcm90b3R5cGUoKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUlu
dGVyZmFjZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5oCmluZGV4IGYxN2YxN2Q4NTMxYTBjMTZm
NDkxNjgxMzhiMDEzNjY1MmM4NTU3ZjYuLmMyNmUyNDQxMmEzMjdlMDdjMWQ5YzcwNjlhYjllYjFh
MmRjZDM5NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZh
bHVlSW50ZXJmYWNlLmgKQEAgLTU4LDEyICs1OCw3IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAg
ICBKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UoSlNDOjpTdHJ1Y3R1cmUqLCBK
U0RPTUdsb2JhbE9iamVjdCYsIFJlZjxUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNl
PiYmKTsKIAotICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYgdm0pCi0gICAgewotICAg
ICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7Ci0gICAgICAgIEFTU0VSVChpbmhlcml0cyhp
bmZvKCkpKTsKLSAgICB9Ci0KKyAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6Vk0mKTsKIH07
CiAKIGNsYXNzIEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZU93bmVyIDogcHVi
bGljIEpTQzo6V2Vha0hhbmRsZU93bmVyIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RUeXBlZGVmcy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlwZWRlZnMuY3BwCmluZGV4IGJhMGMw
OTUxMDA2NjBjOTY1OTFjNzBiNWI0Yzk1NjQ4NDVjODk4ZjkuLmE3Y2E0YjBiNmE5YWIzMDgxZDQx
NTJhZWZjNjBmMDg5ZmIyYmY4YTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RUeXBlZGVmcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmNwcApAQCAtMjAzLDYgKzIw
MywxMyBAQCBKU1Rlc3RUeXBlZGVmczo6SlNUZXN0VHlwZWRlZnMoU3RydWN0dXJlKiBzdHJ1Y3R1
cmUsIEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYgogewogfQogCit2b2lkIEpTVGVzdFR5cGVk
ZWZzOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0pCit7CisgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24o
dm0pOworICAgIEFTU0VSVChpbmhlcml0cyhpbmZvKCkpKTsKKworfQorCiBKU09iamVjdCogSlNU
ZXN0VHlwZWRlZnM6OmNyZWF0ZVByb3RvdHlwZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QpCiB7CiAgICAgcmV0dXJuIEpTVGVzdFR5cGVkZWZzUHJvdG90eXBlOjpjcmVhdGUo
dm0sIGdsb2JhbE9iamVjdCwgSlNUZXN0VHlwZWRlZnNQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVy
ZSh2bSwgZ2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3QtPm9iamVjdFByb3RvdHlwZSgpKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
VHlwZWRlZnMuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RUeXBlZGVmcy5oCmluZGV4IDZlOWI2MDk2MjY5NjljNDg1Mzg0NTlmYTllZDhlN2IyOGQ0Zjdi
NDAuLjRhNmYyYmVhYTNlZmEyZTRiMmQ3Mzc1MGIwYjY0YTBjYmJmNGI3ZGQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RUeXBlZGVmcy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RUeXBl
ZGVmcy5oCkBAIC01NCwxMiArNTQsNyBAQCBwdWJsaWM6CiBwcm90ZWN0ZWQ6CiAgICAgSlNUZXN0
VHlwZWRlZnMoSlNDOjpTdHJ1Y3R1cmUqLCBKU0RPTUdsb2JhbE9iamVjdCYsIFJlZjxUZXN0VHlw
ZWRlZnM+JiYpOwogCi0gICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZNJiB2bSkKLSAgICB7
Ci0gICAgICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtKTsKLSAgICAgICAgQVNTRVJUKGluaGVy
aXRzKGluZm8oKSkpOwotICAgIH0KLQorICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYp
OwogfTsKIAogY2xhc3MgSlNUZXN0VHlwZWRlZnNPd25lciA6IHB1YmxpYyBKU0M6OldlYWtIYW5k
bGVPd25lciB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvVGVzdEdsb2JhbE9iamVjdC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvVGVzdEdsb2JhbE9iamVjdC5pZGwKaW5kZXggMDE1NTBjMjUyYjNjODc5N2JiYWM4NzNj
OGM1OWQwODM3MmI2NWQxYy4uYzk0MWIzNDlkN2RlOWE2YmYyMDA5MGVjNDBlMGU2ZWQ5N2QzZjMw
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RH
bG9iYWxPYmplY3QuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9UZXN0R2xvYmFsT2JqZWN0LmlkbApAQCAtMjQsNyArMjQsOSBAQAogICovCiAKIC8vIFRoaXMg
aW50ZXJmYWNlIGlzIHJlY29nbml6ZWQgYXMgYSBnbG9iYWwgb2JqZWN0IGJ5IHRoZSBiaW5kaW5n
cyBnZW5lcmF0b3IuCi1pbnRlcmZhY2UgVGVzdEdsb2JhbE9iamVjdCB7CitbCisgICAgR2xvYmFs
LAorXSBpbnRlcmZhY2UgVGVzdEdsb2JhbE9iamVjdCB7CiAgICAgYXR0cmlidXRlIERPTVN0cmlu
ZyByZWd1bGFyQXR0cmlidXRlOwogICAgIFtQcml2YXRlSWRlbnRpZmllciwgUHVibGljSWRlbnRp
Zmllcl0gYXR0cmlidXRlIERPTVN0cmluZyBwdWJsaWNBbmRQcml2YXRlQXR0cmlidXRlOwogICAg
IFtDb25kaXRpb25hbD1URVNUX0ZFQVRVUkUsIFByaXZhdGVJZGVudGlmaWVyLCBQdWJsaWNJZGVu
dGlmaWVyXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHB1YmxpY0FuZFByaXZhdGVDb25kaXRpb25hbEF0
dHJpYnV0ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbAppbmRleCBmYjc2MWFjYzc2NGU5MGJl
YzdjNzhjNjczNDUwNmYzMDFmNDA5OTY1Li4wYTMyYjY5YzMzZTFmZmI3NGZkYjA2MzVkM2QwZTA5
Yjg3ZWY1YmE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCkBAIC00MCw2ICs0MCw3IEBA
CiAgICAgSlNDdXN0b21NYXJrRnVuY3Rpb24sCiAgICAgSlNDdXN0b21Ub05hdGl2ZU9iamVjdCwK
ICAgICBKU0xlZ2FjeVBhcmVudD1KU0RPTVdpbmRvd0Jhc2UsCisgICAgUHJpbWFyeUdsb2JhbCwK
IF0gaW50ZXJmYWNlIERPTVdpbmRvdyA6IEV2ZW50VGFyZ2V0IHsKICAgICBbUmVwbGFjZWFibGVd
IHJlYWRvbmx5IGF0dHJpYnV0ZSBTY3JlZW4gc2NyZWVuOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBIaXN0b3J5IGhpc3Rvcnk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0Rl
ZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVk
aWNhdGVkV29ya2VyR2xvYmFsU2NvcGUuaWRsCmluZGV4IGNjNWVjZjEzOGNlNGY0ZDg4OGE4MDgz
ZWNmOTY4YmU3ZjU4YmY3OGYuLjEzYTlhODZjOThhZjAyZTlmOTAzMWNhYjhiNDYzN2EyNDI1OWVm
YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVkaWNhdGVkV29ya2VyR2xv
YmFsU2NvcGUuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVkaWNhdGVkV29ya2Vy
R2xvYmFsU2NvcGUuaWRsCkBAIC0zMSw2ICszMSw3IEBACiBbCiAgICAgQ3VzdG9tUHJveHlUb0pT
T2JqZWN0LAogICAgIEV4cG9zZWQ9RGVkaWNhdGVkV29ya2VyLAorICAgIEdsb2JhbD0oV29ya2Vy
LERlZGljYXRlZFdvcmtlciksCiAgICAgSlNHZW5lcmF0ZVRvTmF0aXZlT2JqZWN0LAogXSBpbnRl
cmZhY2UgRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUgOiBXb3JrZXJHbG9iYWxTY29wZSB7CiAg
ICAgW0N1c3RvbSwgTWF5VGhyb3dFeGNlcHRpb25dIHZvaWQgcG9zdE1lc3NhZ2UoYW55IG1lc3Nh
Z2UsIG9wdGlvbmFsIEFycmF5IG1lc3NhZ2VQb3J0cyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZDM3YTM1YTA1MGVjY2Uy
NzgzZTg4NDkxNzdiNDViMmVlNDhiMmFjYS4uNWYyYmE3YjVkYTUyNmU2ZDY3ODNjZjM5YThiNzhi
YzliZTFkNWY3MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE2LTExLTExICBDaHJpcyBEdW1l
eiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgV29ya2VyR2xvYmFsU2NvcGUncyBpbmRl
eGVkREIgcHJvcGVydHkgc2hvdWxkIGJlIG9uIHRoZSBwcm90b3R5cGUsIG5vdCB0aGUgaW5zdGFu
Y2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NDY0
NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEV4dGVu
ZCBsYXlvdXQgdGVzdCBjb3ZlcmFnZSB0byBjaGVjayB0aGF0OgorICAgICAgICAtIFdvcmtlckds
b2JhbFNjb3BlLmluZGV4ZWREQiBpcyBvbiB0aGUgcHJvdG90eXBlLgorICAgICAgICAtIFdvcmtl
ckdsb2JhbFNjb3BlLklEQkRhdGFiYXNlIGNvbnN0cnVjdG9yIGlzIG9uIHRoZSBpbnN0YW5jZQor
CisgICAgICAgIEJvdGggYXJlIGVuYWJsZWQgYXQgcnVudGltZSBwcm9wZXJ0aWVzLgorCisgICAg
ICAgICogZmFzdC93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLXByb3BlcnRpZXMtcHJvdG90eXBl
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUt
cHJvcGVydGllcy1wcm90b3R5cGUuaHRtbDoKKyAgICAgICAgKiBmYXN0L3dvcmtlcnMvc2VsZi1o
YXNPd25Qcm9wZXJ0eS1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC93b3JrZXJzL3NlbGYt
aGFzT3duUHJvcGVydHkuaHRtbDoKKwogMjAxNi0xMS0xMCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpA
YXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04gKHIyMDg1MjIpOiBMYXlvdXRUZXN0IGZh
c3QvbG9hZGVyL3JlbG9hZC16ZXJvLWJ5dGUtcGx1Z2luLmh0bWwgaXMgYSBmbGFreSBmYWlsdXJl
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUt
cHJvcGVydGllcy1wcm90b3R5cGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC93b3Jr
ZXJzL1dvcmtlckdsb2JhbFNjb3BlLXByb3BlcnRpZXMtcHJvdG90eXBlLWV4cGVjdGVkLnR4dApp
bmRleCA2ZjQ0YzNkOWZhN2M1ZWRhYzM5OGMxMmE3NDE5ZDExYzNlNGY4YmFiLi41YWFmODYzOWZi
MGQ5YmEyOGY5YmViY2QzZjZjYmU5MmMxMmIyOTg1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUtcHJvcGVydGllcy1wcm90b3R5cGUtZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS1w
cm9wZXJ0aWVzLXByb3RvdHlwZS1leHBlY3RlZC50eHQKQEAgLTQsMTEgKzQsMTQgQEAgT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUKIAogCiBzZWxmLl9fcHJvdG9fXy5fX3Byb3RvX18gPT09IFdvcmtl
ckdsb2JhbFNjb3BlLnByb3RvdHlwZTogdHJ1ZQorc2VsZi5fX3Byb3RvX18uX19wcm90b19fLl9f
cHJvdG9fXyA9PT0gRXZlbnRUYXJnZXQucHJvdG90eXBlOiB0cnVlCitzZWxmLl9fcHJvdG9fXy5f
X3Byb3RvX18uX19wcm90b19fLl9fcHJvdG9fXyA9PT0ge30uX19wcm90b19fOiB0cnVlCiBzZWxm
Ll9fcHJvdG9fXy5fX3Byb3RvX18uaGFzT3duUHJvcGVydHkoJ25hdmlnYXRvcicpID09PSB0cnVl
OiB0cnVlCiBzZWxmLl9fcHJvdG9fXy5fX3Byb3RvX18uaGFzT3duUHJvcGVydHkoJ3NlbGYnKSA9
PT0gdHJ1ZTogdHJ1ZQogc2VsZi5fX3Byb3RvX18uX19wcm90b19fLmhhc093blByb3BlcnR5KCds
b2NhdGlvbicpID09PSB0cnVlOiB0cnVlCiBzZWxmLl9fcHJvdG9fXy5fX3Byb3RvX18uaGFzT3du
UHJvcGVydHkoJ2Nsb3NlJykgPT09IHRydWU6IHRydWUKIHNlbGYuX19wcm90b19fLl9fcHJvdG9f
Xy5oYXNPd25Qcm9wZXJ0eSgnaW1wb3J0U2NyaXB0cycpID09PSB0cnVlOiB0cnVlCitzZWxmLl9f
cHJvdG9fXy5fX3Byb3RvX18uaGFzT3duUHJvcGVydHkoJ2luZGV4ZWREQicpID09PSB0cnVlOiB0
cnVlCiBzZWxmLmhhc093blByb3BlcnR5KCduYXZpZ2F0b3InKSA9PT0gZmFsc2U6IHRydWUKIHNl
bGYuaGFzT3duUHJvcGVydHkoJ2xvY2F0aW9uJykgPT09IGZhbHNlOiB0cnVlCiBzZWxmLmhhc093
blByb3BlcnR5KCdjbG9zZScpID09PSBmYWxzZTogdHJ1ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLXByb3BlcnRpZXMtcHJvdG90eXBlLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUtcHJvcGVydGll
cy1wcm90b3R5cGUuaHRtbAppbmRleCBiOWQ4NmQyMGYwMTBhZGMwNmQ3NDhjYzE1ZjJlYTlmMzNk
NmY3NGJiLi42ZjdiYjYxZTVjODkyZjYzOWZmZjRhYjAxZWRmNzRjN2JiNzI4ODYyIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUtcHJvcGVydGll
cy1wcm90b3R5cGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvV29ya2VyR2xv
YmFsU2NvcGUtcHJvcGVydGllcy1wcm90b3R5cGUuaHRtbApAQCAtOSwxMSArOSwxNCBAQCBkZXNj
cmlwdGlvbigiVGVzdHMgdGhhdCBXb3JrZXJHbG9iYWxTY29wZSdzIHByb3BlcnRpZXMgYXJlIG9u
IHRoZSBwcm90b3R5cGUuIik7CiAKIHZhciB3b3JrZXIgPSBjcmVhdGVXb3JrZXIoKTsKIHdvcmtl
ci5wb3N0TWVzc2FnZSgiZXZhbCBzZWxmLl9fcHJvdG9fXy5fX3Byb3RvX18gPT09IFdvcmtlckds
b2JhbFNjb3BlLnByb3RvdHlwZSIpOword29ya2VyLnBvc3RNZXNzYWdlKCJldmFsIHNlbGYuX19w
cm90b19fLl9fcHJvdG9fXy5fX3Byb3RvX18gPT09IEV2ZW50VGFyZ2V0LnByb3RvdHlwZSIpOwor
d29ya2VyLnBvc3RNZXNzYWdlKCJldmFsIHNlbGYuX19wcm90b19fLl9fcHJvdG9fXy5fX3Byb3Rv
X18uX19wcm90b19fID09PSB7fS5fX3Byb3RvX18iKTsKIHdvcmtlci5wb3N0TWVzc2FnZSgiZXZh
bCBzZWxmLl9fcHJvdG9fXy5fX3Byb3RvX18uaGFzT3duUHJvcGVydHkoJ25hdmlnYXRvcicpID09
PSB0cnVlIik7CiB3b3JrZXIucG9zdE1lc3NhZ2UoImV2YWwgc2VsZi5fX3Byb3RvX18uX19wcm90
b19fLmhhc093blByb3BlcnR5KCdzZWxmJykgPT09IHRydWUiKTsKIHdvcmtlci5wb3N0TWVzc2Fn
ZSgiZXZhbCBzZWxmLl9fcHJvdG9fXy5fX3Byb3RvX18uaGFzT3duUHJvcGVydHkoJ2xvY2F0aW9u
JykgPT09IHRydWUiKTsKIHdvcmtlci5wb3N0TWVzc2FnZSgiZXZhbCBzZWxmLl9fcHJvdG9fXy5f
X3Byb3RvX18uaGFzT3duUHJvcGVydHkoJ2Nsb3NlJykgPT09IHRydWUiKTsKIHdvcmtlci5wb3N0
TWVzc2FnZSgiZXZhbCBzZWxmLl9fcHJvdG9fXy5fX3Byb3RvX18uaGFzT3duUHJvcGVydHkoJ2lt
cG9ydFNjcmlwdHMnKSA9PT0gdHJ1ZSIpOword29ya2VyLnBvc3RNZXNzYWdlKCJldmFsIHNlbGYu
X19wcm90b19fLl9fcHJvdG9fXy5oYXNPd25Qcm9wZXJ0eSgnaW5kZXhlZERCJykgPT09IHRydWUi
KTsKIHdvcmtlci5wb3N0TWVzc2FnZSgiZXZhbCBzZWxmLmhhc093blByb3BlcnR5KCduYXZpZ2F0
b3InKSA9PT0gZmFsc2UiKTsKIHdvcmtlci5wb3N0TWVzc2FnZSgiZXZhbCBzZWxmLmhhc093blBy
b3BlcnR5KCdsb2NhdGlvbicpID09PSBmYWxzZSIpOwogd29ya2VyLnBvc3RNZXNzYWdlKCJldmFs
IHNlbGYuaGFzT3duUHJvcGVydHkoJ2Nsb3NlJykgPT09IGZhbHNlIik7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvc2VsZi1oYXNPd25Qcm9wZXJ0eS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvc2VsZi1oYXNPd25Qcm9wZXJ0eS1leHBlY3RlZC50
eHQKaW5kZXggZjRhN2EyNGRjYWE2NDczNjM1YzVlMTExZjQzOThhNzBhZTgyZjdlMi4uMTUzMTli
NGI5MmY1ZmViZjZhNGQyMmE0YmZiNTY5ZjBjNGM1Njg4ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC93b3JrZXJzL3NlbGYtaGFzT3duUHJvcGVydHktZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL2Zhc3Qvd29ya2Vycy9zZWxmLWhhc093blByb3BlcnR5LWV4cGVjdGVkLnR4dApA
QCAtNiw2ICs2LDcgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIHNlbGYuaGFzT3duUHJvcGVy
dHkoJ0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlJyk6IHRydWUKIHNlbGYuaGFzT3duUHJvcGVy
dHkoJ1dvcmtlckdsb2JhbFNjb3BlJyk6IHRydWUKIHNlbGYuaGFzT3duUHJvcGVydHkoJ3Bvc3RN
ZXNzYWdlJyk6IHRydWUKK3NlbGYuaGFzT3duUHJvcGVydHkoJ0lEQkRhdGFiYXNlJyk6IHRydWUK
IFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3NlbGYtaGFzT3duUHJvcGVydHkuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy9zZWxmLWhhc093blByb3BlcnR5Lmh0bWwKaW5kZXgg
MDhkNWIyNmI1YmFiOWU2YTA2OTk1ZWE5NjdlMmIyY2Y1ZGM3NmRlNi4uZTM1ZTlkZWI1Mjc5Njhi
ZDQzZTlhYzU2MjIzYmIxNzVmNDQzZWM2YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC93
b3JrZXJzL3NlbGYtaGFzT3duUHJvcGVydHkuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3dv
cmtlcnMvc2VsZi1oYXNPd25Qcm9wZXJ0eS5odG1sCkBAIC0xMSw2ICsxMSw3IEBAIHZhciB3b3Jr
ZXIgPSBjcmVhdGVXb3JrZXIoKTsKIHdvcmtlci5wb3N0TWVzc2FnZSgiZXZhbCBzZWxmLmhhc093
blByb3BlcnR5KCdEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZScpIik7CiB3b3JrZXIucG9zdE1l
c3NhZ2UoImV2YWwgc2VsZi5oYXNPd25Qcm9wZXJ0eSgnV29ya2VyR2xvYmFsU2NvcGUnKSIpOwog
d29ya2VyLnBvc3RNZXNzYWdlKCJldmFsIHNlbGYuaGFzT3duUHJvcGVydHkoJ3Bvc3RNZXNzYWdl
JykiKTsKK3dvcmtlci5wb3N0TWVzc2FnZSgiZXZhbCBzZWxmLmhhc093blByb3BlcnR5KCdJREJE
YXRhYmFzZScpIik7CiB3b3JrZXIucG9zdE1lc3NhZ2UoImV2YWwgRE9ORSIpOwogCiB3b3JrZXIu
b25tZXNzYWdlID0gZnVuY3Rpb24oZXZ0KSB7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>