<?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>230941</bug_id>
          
          <creation_ts>2021-09-29 02:10:59 -0700</creation_ts>
          <short_desc>Some WebIDL operations / attributes incorrectly use _current_ realm instead of _relevant_</short_desc>
          <delta_ts>2022-02-04 06:31:17 -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>DOM</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://github.com/web-platform-tests/wpt/pull/32012</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=234238</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=235279</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Trivial</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>231702</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Shvayka">ashvayka</reporter>
          <assigned_to name="Alexey Shvayka">ashvayka</assigned_to>
          <cc>alecflett</cc>
    
    <cc>beidson</cc>
    
    <cc>cdumez</cc>
    
    <cc>clopez</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>joepeck</cc>
    
    <cc>jsbell</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kevin_neal</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1798222</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2021-09-29 02:10:59 -0700</bug_when>
    <thetext>Some WebIDL operations / attributes incorrectly use _current_ realm instead of _relevant_</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1798231</commentid>
    <comment_count>1</comment_count>
      <attachid>439585</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2021-09-29 02:37:14 -0700</bug_when>
    <thetext>Created attachment 439585
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1798232</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2021-09-29 02:38:09 -0700</bug_when>
    <thetext>This patch modifies the imported WPT tests. Please ensure that any changes on the tests (not coming from a WPT import) are exported to WPT. Please see https://trac.webkit.org/wiki/WPTExportProcess</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1798407</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-09-29 09:54:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/83675608&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1805271</commentid>
    <comment_count>4</comment_count>
      <attachid>439585</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-10-16 09:36:24 -0700</bug_when>
    <thetext>Comment on attachment 439585
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=439585&amp;action=review

&gt; Source/WebCore/ChangeLog:22
&gt; +        Most of the remaining [CallWith=GlobalObject] instances are correctly used for
&gt; +        converting JS arguments to WebIDL values; the rest, along with _current_ Document
&gt; +        and ScriptExecutionContext, either match the spec or replacing them with _relevant_
&gt; +        global object is not directly observable (see condition #3).

It would be great to have some guidance to others in the future that need to figure out which the correct document/globalObject,scriptExecutionContext is the right one to use (though I don&apos;t have a great idea where to put this guidance).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1805273</commentid>
    <comment_count>5</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-10-16 09:38:20 -0700</bug_when>
    <thetext>Perhaps also remaining the non-prefixed ones to use Current/Entry/etc prefixes would help, since people would feel they need to understand the concept before picking.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1805275</commentid>
    <comment_count>6</comment_count>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2021-10-16 09:50:57 -0700</bug_when>
    <thetext>(In reply to Sam Weinig from comment #5)

Thanks for review!

&gt; Perhaps also remaining the non-prefixed ones to use Current/Entry/etc
&gt; prefixes would help, since people would feel they need to understand the
&gt; concept before picking.

Yeah, that is the plan. Having _current_ by default, for non-prefixed values, is prone to introducing incompatibilities.

For now I will add a spec link to both IDLAttributes.json and CodeGeneratorJS.pm; WHATWG editors did a great job explaining the concepts.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1815085</commentid>
    <comment_count>7</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-11-15 09:02:31 -0800</bug_when>
    <thetext>(In reply to Alexey Shvayka from comment #6)
&gt; (In reply to Sam Weinig from comment #5)
&gt; 
&gt; Thanks for review!
&gt; 
&gt; &gt; Perhaps also remaining the non-prefixed ones to use Current/Entry/etc
&gt; &gt; prefixes would help, since people would feel they need to understand the
&gt; &gt; concept before picking.
&gt; 
&gt; Yeah, that is the plan. Having _current_ by default, for non-prefixed
&gt; values, is prone to introducing incompatibilities.
&gt; 
&gt; For now I will add a spec link to both IDLAttributes.json and
&gt; CodeGeneratorJS.pm; WHATWG editors did a great job explaining the concepts.

Sounds great. (The more we can use spec names in our code, the better in my book. I would love to see more done in this area, especially in the area of JSC functions that WebCore bindings have to interact with).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1823107</commentid>
    <comment_count>8</comment_count>
      <attachid>446847</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2021-12-10 17:03:58 -0800</bug_when>
    <thetext>Created attachment 446847
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1823108</commentid>
    <comment_count>9</comment_count>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2021-12-10 17:05:53 -0800</bug_when>
    <thetext>(In reply to Alexey Shvayka from comment #8)
&gt; Created attachment 446847 [details]
&gt; Patch for landing

Also added bindings tests for newly added Relevant* values.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1823137</commentid>
    <comment_count>10</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-12-10 18:27:51 -0800</bug_when>
    <thetext>Committed r286895 (245123@main): &lt;https://commits.webkit.org/245123@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 446847.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1837344</commentid>
    <comment_count>11</comment_count>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2022-02-04 06:31:17 -0800</bug_when>
    <thetext>(In reply to Sam Weinig from comment #5)
&gt; Perhaps also remaining the non-prefixed ones to use Current/Entry/etc
&gt; prefixes would help, since people would feel they need to understand the
&gt; concept before picking.

Hey Sam, that change is now up for available for review: https://bugs.webkit.org/show_bug.cgi?id=236137. Thanks!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439585</attachid>
            <date>2021-09-29 02:37:14 -0700</date>
            <delta_ts>2021-12-10 17:03:51 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230941-20210929123712.patch</filename>
            <type>text/plain</type>
            <size>39491</size>
            <attacher name="Alexey Shvayka">ashvayka</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI4MzA5MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDgwIEBACisyMDIxLTA5LTI5ICBBbGV4ZXkg
U2h2YXlrYSAgPHNodmFpa2FsZXNoQGdtYWlsLmNvbT4KKworICAgICAgICBTb21lIFdlYklETCBv
cGVyYXRpb25zIC8gYXR0cmlidXRlcyBpbmNvcnJlY3RseSB1c2UgX2N1cnJlbnRfIHJlYWxtIGlu
c3RlYWQgb2YgX3JlbGV2YW50XworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjMwOTQxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVGhpcyBwYXRjaCByZXBsYWNlcyBfY3VycmVudF8gZ2xvYmFsIG9iamVjdCB3
aXRoIF9yZWxldmFudF8sIGFzIHBlciByZWNvbW1lbmRhdGlvbgorICAgICAgICBmb3Igc3BlYyBh
dXRob3JzIFsxXSwgZm9yIHNlbGVjdCBXZWJJREwgb3BlcmF0aW9ucyAvIGF0dHJpYnV0ZXMgdGhh
dCBzYXRpc2Z5IGFsbAorICAgICAgICB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisKKyAgICAg
ICAgICAxKSBpdCdzIGFuIGluc3RhbmNlIG1lbWJlcjogc3RhdGljIG9uZXMgYW5kIGNvbnN0cnVj
dG9ycyBjYW4ndCB1c2UgX3JlbGV2YW50XzsKKyAgICAgICAgICAyKSBpdCdzIG9uIHN0YW5kYXJk
cyB0cmFjayAobm90IGRlcHJlY2F0ZWQgLyBXZWJLaXQtb25seSAvIGludGVybmFsKTsKKyAgICAg
ICAgICAzKSB0aGUgY2hhbmdlIGlzIGRpcmVjdGx5IG9ic2VydmFibGU6IGdsb2JhbCBvYmplY3Qg
aXMgdXNlZCBmb3Igc29tZXRoaW5nCisgICAgICAgICAgICAgYmV5b25kIGxpZmVjeWNsZSAvIGV2
ZW50IGxvb3AgLyBwYXJzaW5nIENTUyBldGM7CisgICAgICAgICAgNCkgdGhlIGNoYW5nZSBlaXRo
ZXIgYWxpZ25zIFdlYktpdCB3aXRoIGJvdGggQmxpbmsgYW5kIEdlY2tvLAorICAgICAgICAgICAg
IG9yIHRoZSBzcGVjIGV4cGxpY2l0bHkgcmVxdWlyZXMgX3JlbGV2YW50XyByZWFsbSAvIHNldHRp
bmdzIG9iamVjdC4KKworICAgICAgICBNb3N0IG9mIHRoZSByZW1haW5pbmcgW0NhbGxXaXRoPUds
b2JhbE9iamVjdF0gaW5zdGFuY2VzIGFyZSBjb3JyZWN0bHkgdXNlZCBmb3IKKyAgICAgICAgY29u
dmVydGluZyBKUyBhcmd1bWVudHMgdG8gV2ViSURMIHZhbHVlczsgdGhlIHJlc3QsIGFsb25nIHdp
dGggX2N1cnJlbnRfIERvY3VtZW50CisgICAgICAgIGFuZCBTY3JpcHRFeGVjdXRpb25Db250ZXh0
LCBlaXRoZXIgbWF0Y2ggdGhlIHNwZWMgb3IgcmVwbGFjaW5nIHRoZW0gd2l0aCBfcmVsZXZhbnRf
CisgICAgICAgIGdsb2JhbCBvYmplY3QgaXMgbm90IGRpcmVjdGx5IG9ic2VydmFibGUgKHNlZSBj
b25kaXRpb24gIzMpLgorCisgICAgICAgIFRoaXMgY2hhbmdlIGlzIGFpbWVkIGF0IGZpeGluZyB3
ZWItZXhwb3NlZCBBUElzIHJhdGhlciB0aGFuIHBlcmZvcm1pbmcgYSBnbG9iYWwgY2xlYW51cC4K
KworICAgICAgICBbMV0gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvd2Vi
YXBwYXBpcy5odG1sI2NvbmNlcHQtY3VycmVudC1ldmVyeXRoaW5nCisKKyAgICAgICAgVGVzdHM6
IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9FdmVudC10aW1lc3Rh
bXAtY3Jvc3MtcmVhbG0tZ2V0dGVyLmh0bWwKKyAgICAgICAgICAgICAgIGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy9oaXN0b3J5L3RoZS1oaXN0b3J5LWludGVy
ZmFjZS9oaXN0b3J5X2JhY2tfY3Jvc3NfcmVhbG1fbWV0aG9kLmh0bWwKKyAgICAgICAgICAgICAg
IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy9oaXN0b3J5L3Ro
ZS1oaXN0b3J5LWludGVyZmFjZS9oaXN0b3J5X2ZvcndhcmRfY3Jvc3NfcmVhbG1fbWV0aG9kLmh0
bWwKKyAgICAgICAgICAgICAgIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9i
cm93c2Vycy9oaXN0b3J5L3RoZS1oaXN0b3J5LWludGVyZmFjZS9oaXN0b3J5X2dvX2Nyb3NzX3Jl
YWxtX21ldGhvZC5odG1sCisgICAgICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvd2ViYXBwYXBpcy9zY3JpcHRpbmcvcmVwb3J0ZXJyb3ItY3Jvc3MtcmVhbG0t
bWV0aG9kLmh0bWwKKyAgICAgICAgICAgICAgIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvaHRtbC93ZWJhcHBhcGlzL3N0cnVjdHVyZWQtY2xvbmUvc3RydWN0dXJlZC1jbG9uZS1jcm9z
cy1yZWFsbS1tZXRob2QuaHRtbAorICAgICAgICAgICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9yZXF1ZXN0aWRsZWNhbGxiYWNrL2NhbGxiYWNrLXRpbWVSZW1haW5pbmctY3Jv
c3MtcmVhbG0tbWV0aG9kLmh0bWwKKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkZh
Y3RvcnkuaWRsOgorICAgICAgICBodHRwczovL3d3dy53My5vcmcvVFIvSW5kZXhlZERCLyNkb20t
aWRiZmFjdG9yeS1vcGVuIChzdGVwIDIpCisgICAgICAgIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9J
bmRleGVkREIvI2RvbS1pZGJmYWN0b3J5LWRlbGV0ZWRhdGFiYXNlIChzdGVwIDEpCisgICAgICAg
IGh0dHBzOi8vd3d3LnczLm9yZy9UUi9JbmRleGVkREIvI2RvbS1pZGJmYWN0b3J5LWRhdGFiYXNl
cyAoc3RlcCAxKQorCisgICAgICAgICogTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVx
dWVzdC5pZGw6CisgICAgICAgIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9wYXltZW50LXJlcXVlc3Qv
I3Nob3ctbWV0aG9kIChzdGVwcyAyLTQpCisgICAgICAgIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9w
YXltZW50LXJlcXVlc3QvI2Nhbi1tYWtlLXBheW1lbnQtYWxnb3JpdGhtIChiZWZvcmUgc3RlcCAx
KQorCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAg
ICAgIChHZW5lcmF0ZUNhbGxXaXRoKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0lETEF0
dHJpYnV0ZXMuanNvbjoKKyAgICAgICAgKiBkb20vRXZlbnQuaWRsOgorICAgICAgICBodHRwczov
L2RvbS5zcGVjLndoYXR3Zy5vcmcvI2lubmVyLWV2ZW50LWNyZWF0aW9uLXN0ZXBzIChzdGVwIDMp
CisKKyAgICAgICAgKiBkb20vSWRsZURlYWRsaW5lLmlkbDoKKyAgICAgICAgaHR0cHM6Ly93M2Mu
Z2l0aHViLmlvL3JlcXVlc3RpZGxlY2FsbGJhY2svI3RoZS1yZXF1ZXN0aWRsZWNhbGxiYWNrLW1l
dGhvZCAoc3RlcCAxKQorCisgICAgICAgICogcGFnZS9IaXN0b3J5LmlkbDoKKyAgICAgICAgaHR0
cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2UvaGlzdG9yeS5odG1sI2RvbS1oaXN0
b3J5LWdvIChzdGVwIDEpCisgICAgICAgIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVs
dGlwYWdlL2hpc3RvcnkuaHRtbCNkb20taGlzdG9yeS1iYWNrIChzdGVwIDEpCisgICAgICAgIGh0
dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL2hpc3RvcnkuaHRtbCNkb20taGlz
dG9yeS1mb3J3YXJkIChzdGVwIDEpCisKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OnNldFRpbWVvdXQpOgorICAgICAgICAoV2ViQ29y
ZTo6RE9NV2luZG93OjpzZXRJbnRlcnZhbCk6CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuaDoK
KyAgICAgICAgKiB3b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Oldvcmtlckdsb2JhbFNjb3BlOjpzZXRUaW1lb3V0KToKKyAgICAgICAgKFdlYkNvcmU6Oldv
cmtlckdsb2JhbFNjb3BlOjpzZXRJbnRlcnZhbCk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJH
bG9iYWxTY29wZS5oOgorICAgICAgICBBbHRob3VnaCBjb25kaXRpb24gIzQgaXNuJ3Qgc2F0aXNm
aWVkIGZvciBzZXRUaW1lb3V0KCkgLyBzZXRJbnRlcnZhbCgpIGJlY2F1c2UKKyAgICAgICAgX2N1
cnJlbnRfIGdsb2JhbCBvYmplY3QgaXMgdXNlZCBvbmx5IGZvciBsb2dnaW5nLCByZXBsYWNpbmcg
aXQgd2l0aCBfcmVsZXZhbnRfCisgICAgICAgIG5pY2VseSBjbGVhbnMgdXAgbWV0aG9kIHNpZ25h
dHVyZXMuCisKKyAgICAgICAgKiBwYWdlL1dpbmRvd09yV29ya2VyR2xvYmFsU2NvcGUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6V2luZG93T3JXb3JrZXJHbG9iYWxTY29wZTo6c3RydWN0dXJlZENs
b25lKToKKyAgICAgICAgKiBwYWdlL1dpbmRvd09yV29ya2VyR2xvYmFsU2NvcGUuaDoKKyAgICAg
ICAgKiBwYWdlL1dpbmRvd09yV29ya2VyR2xvYmFsU2NvcGUuaWRsOgorICAgICAgICBodHRwczov
L2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS93ZWJhcHBhcGlzLmh0bWwjcmVwb3J0LXRo
ZS1leGNlcHRpb24KKyAgICAgICAgaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBh
Z2Uvc3RydWN0dXJlZC1kYXRhLmh0bWwjc3RydWN0dXJlZC1jbG9uaW5nIChzdGVwIDIpCisKIDIw
MjEtMDktMjYgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIExp
bmUgaXRlcmF0b3IgZmlyc3RSdW4vbGFzdFJ1biBtYXkgcmV0dXJuIHJ1bnMgZnJvbSB3cm9uZyBs
aW5lcwpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5p
ZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFj
dG9yeS5pZGwJKHJldmlzaW9uIDI4MzA5MSkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQkZhY3RvcnkuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yNywxMCArMjcsMTAgQEAK
ICAgICBTa2lwVlRhYmxlVmFsaWRhdGlvbiwKICAgICBFeHBvc2VkPShXaW5kb3csV29ya2VyKQog
XSBpbnRlcmZhY2UgSURCRmFjdG9yeSB7Ci0gICAgW05ld09iamVjdCwgQ2FsbFdpdGg9U2NyaXB0
RXhlY3V0aW9uQ29udGV4dF0gSURCT3BlbkRCUmVxdWVzdCBvcGVuKERPTVN0cmluZyBuYW1lLCBv
cHRpb25hbCBbRW5mb3JjZVJhbmdlXSB1bnNpZ25lZCBsb25nIGxvbmcgdmVyc2lvbik7Ci0gICAg
W05ld09iamVjdCwgQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gSURCT3BlbkRCUmVx
dWVzdCBkZWxldGVEYXRhYmFzZShET01TdHJpbmcgbmFtZSk7CisgICAgW05ld09iamVjdCwgQ2Fs
bFdpdGg9UmVsZXZhbnRTY3JpcHRFeGVjdXRpb25Db250ZXh0XSBJREJPcGVuREJSZXF1ZXN0IG9w
ZW4oRE9NU3RyaW5nIG5hbWUsIG9wdGlvbmFsIFtFbmZvcmNlUmFuZ2VdIHVuc2lnbmVkIGxvbmcg
bG9uZyB2ZXJzaW9uKTsKKyAgICBbTmV3T2JqZWN0LCBDYWxsV2l0aD1SZWxldmFudFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHRdIElEQk9wZW5EQlJlcXVlc3QgZGVsZXRlRGF0YWJhc2UoRE9NU3RyaW5n
IG5hbWUpOwogICAgIAotICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSBQcm9t
aXNlPHNlcXVlbmNlPElEQkRhdGFiYXNlSW5mbz4+IGRhdGFiYXNlcygpOworICAgIFtDYWxsV2l0
aD1SZWxldmFudFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIFByb21pc2U8c2VxdWVuY2U8SURCRGF0
YWJhc2VJbmZvPj4gZGF0YWJhc2VzKCk7CiAgICAgCiAgICAgW0NhbGxXaXRoPUdsb2JhbE9iamVj
dF0gc2hvcnQgY21wKGFueSBmaXJzdCwgYW55IHNlY29uZCk7CiB9OwpJbmRleDogU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5pZGwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVz
dC5pZGwJKHJldmlzaW9uIDI4MzA5MSkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVu
dHJlcXVlc3QvUGF5bWVudFJlcXVlc3QuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw5ICszMyw5
IEBACiBdIGludGVyZmFjZSBQYXltZW50UmVxdWVzdCA6IEV2ZW50VGFyZ2V0IHsKICAgICBbQ2Fs
bFdpdGg9RG9jdW1lbnRdIGNvbnN0cnVjdG9yKHNlcXVlbmNlPFBheW1lbnRNZXRob2REYXRhPiBt
ZXRob2REYXRhLCBQYXltZW50RGV0YWlsc0luaXQgZGV0YWlscywgb3B0aW9uYWwgUGF5bWVudE9w
dGlvbnMgb3B0aW9ucyk7CiAKLSAgICBbQ2FsbFdpdGg9RG9jdW1lbnRdIFByb21pc2U8UGF5bWVu
dFJlc3BvbnNlPiBzaG93KG9wdGlvbmFsIFByb21pc2U8UGF5bWVudERldGFpbHNVcGRhdGU+IGRl
dGFpbHNQcm9taXNlKTsKKyAgICBbQ2FsbFdpdGg9UmVsZXZhbnREb2N1bWVudF0gUHJvbWlzZTxQ
YXltZW50UmVzcG9uc2U+IHNob3cob3B0aW9uYWwgUHJvbWlzZTxQYXltZW50RGV0YWlsc1VwZGF0
ZT4gZGV0YWlsc1Byb21pc2UpOwogICAgIFByb21pc2U8dW5kZWZpbmVkPiBhYm9ydCgpOwotICAg
IFtDYWxsV2l0aD1Eb2N1bWVudF0gUHJvbWlzZTxib29sZWFuPiBjYW5NYWtlUGF5bWVudCgpOwor
ICAgIFtDYWxsV2l0aD1SZWxldmFudERvY3VtZW50XSBQcm9taXNlPGJvb2xlYW4+IGNhbk1ha2VQ
YXltZW50KCk7CiAKICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGlkOwogICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBQYXltZW50QWRkcmVzcz8gc2hpcHBpbmdBZGRyZXNzOwpJbmRleDog
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMu
cG0JKHJldmlzaW9uIDI4MzA5MSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
Q29kZUdlbmVyYXRvckpTLnBtCSh3b3JraW5nIGNvcHkpCkBAIC01OTQxLDEyICs1OTQxLDIyIEBA
IHN1YiBHZW5lcmF0ZUNhbGxXaXRoCiAgICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5FeHRlbmRlZEF0
dHJpYnV0ZUNvbnRhaW5zKCRjYWxsV2l0aCwgIkdsb2JhbE9iamVjdCIpKSB7CiAgICAgICAgIHB1
c2goQGNhbGxXaXRoQXJncywgIioke2dsb2JhbE9iamVjdH0iKTsKICAgICB9CisgICAgbXkgJHJl
bGV2YW50R2xvYmFsT2JqZWN0UG9pbnRlciA9ICIoJHt0aGlzUmVmZXJlbmNlfSkuZ2xvYmFsT2Jq
ZWN0KCkiOworICAgIGlmICgkY29kZUdlbmVyYXRvci0+RXh0ZW5kZWRBdHRyaWJ1dGVDb250YWlu
cygkY2FsbFdpdGgsICJSZWxldmFudEdsb2JhbE9iamVjdCIpKSB7CisgICAgICAgIHB1c2goQGNh
bGxXaXRoQXJncywgIioke3JlbGV2YW50R2xvYmFsT2JqZWN0UG9pbnRlcn0iKTsKKyAgICB9CiAg
ICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5FeHRlbmRlZEF0dHJpYnV0ZUNvbnRhaW5zKCRjYWxsV2l0
aCwgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQiKSkgewogICAgICAgICBwdXNoKEAkb3V0cHV0QXJy
YXksICRpbmRlbnQgLiAiYXV0byogY29udGV4dCA9ICR7c2NyaXB0RXhlY3V0aW9uQ29udGV4dEFj
Y2Vzc29yfS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpO1xuIik7CiAgICAgICAgIHB1c2goQCRv
dXRwdXRBcnJheSwgJGluZGVudCAuICJpZiAoVU5MSUtFTFkoIWNvbnRleHQpKVxuIik7CiAgICAg
ICAgIHB1c2goQCRvdXRwdXRBcnJheSwgJGluZGVudCAuICIgICAgcmV0dXJuIiAuICgkY29udGV4
dE1pc3NpbmcgPyAiICIgLiAkY29udGV4dE1pc3NpbmcgOiAiIikgLiAiO1xuIik7CiAgICAgICAg
IHB1c2goQGNhbGxXaXRoQXJncywgIipjb250ZXh0Iik7CiAgICAgfQorICAgIGlmICgkY29kZUdl
bmVyYXRvci0+RXh0ZW5kZWRBdHRyaWJ1dGVDb250YWlucygkY2FsbFdpdGgsICJSZWxldmFudFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQiKSkgeworICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICRp
bmRlbnQgLiAiYXV0byogY29udGV4dCA9ICR7cmVsZXZhbnRHbG9iYWxPYmplY3RQb2ludGVyfS0+
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpO1xuIik7CisgICAgICAgIHB1c2goQCRvdXRwdXRBcnJh
eSwgJGluZGVudCAuICJpZiAoVU5MSUtFTFkoIWNvbnRleHQpKVxuIik7CisgICAgICAgIHB1c2go
QCRvdXRwdXRBcnJheSwgJGluZGVudCAuICIgICAgcmV0dXJuIiAuICgkY29udGV4dE1pc3Npbmcg
PyAiICIgLiAkY29udGV4dE1pc3NpbmcgOiAiIikgLiAiO1xuIik7CisgICAgICAgIHB1c2goQGNh
bGxXaXRoQXJncywgIipjb250ZXh0Iik7CisgICAgfQogICAgIGlmICgkY29kZUdlbmVyYXRvci0+
RXh0ZW5kZWRBdHRyaWJ1dGVDb250YWlucygkY2FsbFdpdGgsICJEb2N1bWVudCIpKSB7CiAgICAg
ICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJEb2N1bWVudC5oIik7CiAgICAgICAgIHB1c2goQCRvdXRw
dXRBcnJheSwgJGluZGVudCAuICJhdXRvKiBjb250ZXh0ID0gJHtzY3JpcHRFeGVjdXRpb25Db250
ZXh0QWNjZXNzb3J9LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7XG4iKTsKQEAgLTU5NTYsNiAr
NTk2NiwxNSBAQCBzdWIgR2VuZXJhdGVDYWxsV2l0aAogICAgICAgICBwdXNoKEAkb3V0cHV0QXJy
YXksICRpbmRlbnQgLiAiYXV0byYgZG9jdW1lbnQgPSBkb3duY2FzdDxEb2N1bWVudD4oKmNvbnRl
eHQpO1xuIik7CiAgICAgICAgIHB1c2goQGNhbGxXaXRoQXJncywgImRvY3VtZW50Iik7CiAgICAg
fQorICAgIGlmICgkY29kZUdlbmVyYXRvci0+RXh0ZW5kZWRBdHRyaWJ1dGVDb250YWlucygkY2Fs
bFdpdGgsICJSZWxldmFudERvY3VtZW50IikpIHsKKyAgICAgICAgQWRkVG9JbXBsSW5jbHVkZXMo
IkRvY3VtZW50LmgiKTsKKyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAkaW5kZW50IC4gImF1
dG8qIGNvbnRleHQgPSAke3JlbGV2YW50R2xvYmFsT2JqZWN0UG9pbnRlcn0tPnNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKTtcbiIpOworICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICRpbmRlbnQg
LiAiaWYgKFVOTElLRUxZKCFjb250ZXh0KSlcbiIpOworICAgICAgICBwdXNoKEAkb3V0cHV0QXJy
YXksICRpbmRlbnQgLiAiICAgIHJldHVybiIgLiAoJGNvbnRleHRNaXNzaW5nID8gIiAiIC4gJGNv
bnRleHRNaXNzaW5nIDogIiIpIC4gIjtcbiIpOworICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXks
ICRpbmRlbnQgLiAiQVNTRVJUKGNvbnRleHQtPmlzRG9jdW1lbnQoKSk7XG4iKTsKKyAgICAgICAg
cHVzaChAJG91dHB1dEFycmF5LCAkaW5kZW50IC4gImF1dG8mIGRvY3VtZW50ID0gZG93bmNhc3Q8
RG9jdW1lbnQ+KCpjb250ZXh0KTtcbiIpOworICAgICAgICBwdXNoKEBjYWxsV2l0aEFyZ3MsICJk
b2N1bWVudCIpOworICAgIH0KICAgICBpZiAoJGNvZGVHZW5lcmF0b3ItPkV4dGVuZGVkQXR0cmli
dXRlQ29udGFpbnMoJGNhbGxXaXRoLCAiSW5jdW1iZW50RG9jdW1lbnQiKSkgewogICAgICAgICBB
ZGRUb0ltcGxJbmNsdWRlcygiRE9NV2luZG93LmgiKTsKICAgICAgICAgQWRkVG9JbXBsSW5jbHVk
ZXMoIkpTRE9NV2luZG93QmFzZS5oIik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL0lETEF0dHJpYnV0ZXMuanNvbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMuanNvbgkocmV2aXNpb24gMjgzMDkxKQorKysg
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLmpzb24JKHdvcmtp
bmcgY29weSkKQEAgLTUxLDcgKzUxLDcgQEAKICAgICAgICAgfSwKICAgICAgICAgIkNhbGxXaXRo
IjogewogICAgICAgICAgICAgImNvbnRleHRzQWxsb3dlZCI6IFsiYXR0cmlidXRlIiwgIm9wZXJh
dGlvbiJdLAotICAgICAgICAgICAgInZhbHVlcyI6IFsiRG9jdW1lbnQiLCAiRXhlY1N0YXRlIiwg
IlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQiLCAiR2xvYmFsT2JqZWN0IiwgIkFjdGl2ZVdpbmRvdyIs
ICJGaXJzdFdpbmRvdyIsICJSZXNwb25zaWJsZURvY3VtZW50IiwgIldvcmxkIiwgIlByb3BlcnR5
TmFtZSJdLAorICAgICAgICAgICAgInZhbHVlcyI6IFsiRG9jdW1lbnQiLCAiUmVsZXZhbnREb2N1
bWVudCIsICJFeGVjU3RhdGUiLCAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dCIsICJSZWxldmFudFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQiLCAiR2xvYmFsT2JqZWN0IiwgIlJlbGV2YW50R2xvYmFsT2Jq
ZWN0IiwgIkFjdGl2ZVdpbmRvdyIsICJGaXJzdFdpbmRvdyIsICJSZXNwb25zaWJsZURvY3VtZW50
IiwgIldvcmxkIiwgIlByb3BlcnR5TmFtZSJdLAogICAgICAgICAgICAgInN1cHBvcnRzQ29uanVu
Y3Rpb24iOiB0cnVlCiAgICAgICAgIH0sCiAgICAgICAgICJDaGVja1NlY3VyaXR5IjogewpJbmRl
eDogU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9kb20vRXZlbnQuaWRsCShyZXZpc2lvbiAyODMwOTEpCisrKyBTb3VyY2UvV2ViQ29yZS9k
b20vRXZlbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC01MSw3ICs1MSw3IEBAIHR5cGVkZWYgZG91
YmxlIERPTUhpZ2hSZXNUaW1lU3RhbXA7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4g
Y29tcG9zZWQ7CiAKICAgICBbTGVnYWN5VW5mb3JnZWFibGVdIHJlYWRvbmx5IGF0dHJpYnV0ZSBi
b29sZWFuIGlzVHJ1c3RlZDsKLSAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dCwg
SW1wbGVtZW50ZWRBcz10aW1lU3RhbXBGb3JCaW5kaW5nc10gcmVhZG9ubHkgYXR0cmlidXRlIERP
TUhpZ2hSZXNUaW1lU3RhbXAgdGltZVN0YW1wOworICAgIFtDYWxsV2l0aD1SZWxldmFudFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQsIEltcGxlbWVudGVkQXM9dGltZVN0YW1wRm9yQmluZGluZ3NdIHJl
YWRvbmx5IGF0dHJpYnV0ZSBET01IaWdoUmVzVGltZVN0YW1wIHRpbWVTdGFtcDsKIAogICAgIHVu
ZGVmaW5lZCBpbml0RXZlbnQoRE9NU3RyaW5nIHR5cGUsIG9wdGlvbmFsIGJvb2xlYW4gYnViYmxl
cyA9IGZhbHNlLCBvcHRpb25hbCBib29sZWFuIGNhbmNlbGFibGUgPSBmYWxzZSk7IC8vIEhpc3Rv
cmljYWwuCiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9JZGxlRGVhZGxpbmUuaWRsCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9JZGxlRGVhZGxpbmUuaWRsCShyZXZpc2lvbiAy
ODMwOTEpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vSWRsZURlYWRsaW5lLmlkbAkod29ya2luZyBj
b3B5KQpAQCAtMzAsNiArMzAsNiBAQCB0eXBlZGVmIGRvdWJsZSBET01IaWdoUmVzVGltZVN0YW1w
OwogICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUsCiAgICAgRXhwb3NlZD1XaW5kb3cKIF0g
aW50ZXJmYWNlIElkbGVEZWFkbGluZSB7Ci0gICAgW0NhbGxXaXRoPURvY3VtZW50XSBET01IaWdo
UmVzVGltZVN0YW1wIHRpbWVSZW1haW5pbmcoKTsKLSAgICBbQ2FsbFdpdGg9RG9jdW1lbnRdIHJl
YWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGRpZFRpbWVvdXQ7CisgICAgW0NhbGxXaXRoPVJlbGV2
YW50RG9jdW1lbnRdIERPTUhpZ2hSZXNUaW1lU3RhbXAgdGltZVJlbWFpbmluZygpOworICAgIFtD
YWxsV2l0aD1SZWxldmFudERvY3VtZW50XSByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBkaWRU
aW1lb3V0OwogfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAJKHJldmlzaW9uIDI4
MzA5MSkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTc5MSw3ICsxNzkxLDcgQEAgdm9pZCBET01XaW5kb3c6OnJlc2l6ZVRvKGZsb2F0IHdp
ZHRoLCBmbAogICAgIHBhZ2UtPmNocm9tZSgpLnNldFdpbmRvd1JlY3QoYWRqdXN0V2luZG93UmVj
dCgqcGFnZSwgdXBkYXRlKSk7CiB9CiAKLUV4Y2VwdGlvbk9yPGludD4gRE9NV2luZG93OjpzZXRU
aW1lb3V0KEpTQzo6SlNHbG9iYWxPYmplY3QmIHN0YXRlLCBzdGQ6OnVuaXF1ZV9wdHI8U2NoZWR1
bGVkQWN0aW9uPiBhY3Rpb24sIGludCB0aW1lb3V0LCBWZWN0b3I8SlNDOjpTdHJvbmc8SlNDOjpV
bmtub3duPj4mJiBhcmd1bWVudHMpCitFeGNlcHRpb25PcjxpbnQ+IERPTVdpbmRvdzo6c2V0VGlt
ZW91dChzdGQ6OnVuaXF1ZV9wdHI8U2NoZWR1bGVkQWN0aW9uPiBhY3Rpb24sIGludCB0aW1lb3V0
LCBWZWN0b3I8SlNDOjpTdHJvbmc8SlNDOjpVbmtub3duPj4mJiBhcmd1bWVudHMpCiB7CiAgICAg
UmVmUHRyIGNvbnRleHQgPSBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7CiAgICAgaWYgKCFjb250
ZXh0KQpAQCAtMTc5OSw3ICsxNzk5LDcgQEAgRXhjZXB0aW9uT3I8aW50PiBET01XaW5kb3c6OnNl
dFRpbWVvdXQoSgogCiAgICAgLy8gRklYTUU6IFNob3VsZCB0aGlzIGNoZWNrIHJlYWxseSBoYXBw
ZW4gaGVyZT8gT3Igc2hvdWxkIGl0IGhhcHBlbiB3aGVuIGNvZGUgaXMgYWJvdXQgdG8gZXZhbD8K
ICAgICBpZiAoYWN0aW9uLT50eXBlKCkgPT0gU2NoZWR1bGVkQWN0aW9uOjpUeXBlOjpDb2RlKSB7
Ci0gICAgICAgIGlmICghY29udGV4dC0+Y29udGVudFNlY3VyaXR5UG9saWN5KCktPmFsbG93RXZh
bCgmc3RhdGUpKQorICAgICAgICBpZiAoIWNvbnRleHQtPmNvbnRlbnRTZWN1cml0eVBvbGljeSgp
LT5hbGxvd0V2YWwoY29udGV4dC0+Z2xvYmFsT2JqZWN0KCkpKQogICAgICAgICAgICAgcmV0dXJu
IDA7CiAgICAgfQogCkBAIC0xODE2LDcgKzE4MTYsNyBAQCB2b2lkIERPTVdpbmRvdzo6Y2xlYXJU
aW1lb3V0KGludCB0aW1lb3V0CiAgICAgRE9NVGltZXI6OnJlbW92ZUJ5SWQoKmNvbnRleHQsIHRp
bWVvdXRJZCk7CiB9CiAKLUV4Y2VwdGlvbk9yPGludD4gRE9NV2luZG93OjpzZXRJbnRlcnZhbChK
U0M6OkpTR2xvYmFsT2JqZWN0JiBzdGF0ZSwgc3RkOjp1bmlxdWVfcHRyPFNjaGVkdWxlZEFjdGlv
bj4gYWN0aW9uLCBpbnQgdGltZW91dCwgVmVjdG9yPEpTQzo6U3Ryb25nPEpTQzo6VW5rbm93bj4+
JiYgYXJndW1lbnRzKQorRXhjZXB0aW9uT3I8aW50PiBET01XaW5kb3c6OnNldEludGVydmFsKHN0
ZDo6dW5pcXVlX3B0cjxTY2hlZHVsZWRBY3Rpb24+IGFjdGlvbiwgaW50IHRpbWVvdXQsIFZlY3Rv
cjxKU0M6OlN0cm9uZzxKU0M6OlVua25vd24+PiYmIGFyZ3VtZW50cykKIHsKICAgICBSZWZQdHIg
Y29udGV4dCA9IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKICAgICBpZiAoIWNvbnRleHQpCkBA
IC0xODI0LDcgKzE4MjQsNyBAQCBFeGNlcHRpb25PcjxpbnQ+IERPTVdpbmRvdzo6c2V0SW50ZXJ2
YWwoCiAKICAgICAvLyBGSVhNRTogU2hvdWxkIHRoaXMgY2hlY2sgcmVhbGx5IGhhcHBlbiBoZXJl
PyBPciBzaG91bGQgaXQgaGFwcGVuIHdoZW4gY29kZSBpcyBhYm91dCB0byBldmFsPwogICAgIGlm
IChhY3Rpb24tPnR5cGUoKSA9PSBTY2hlZHVsZWRBY3Rpb246OlR5cGU6OkNvZGUpIHsKLSAgICAg
ICAgaWYgKCFjb250ZXh0LT5jb250ZW50U2VjdXJpdHlQb2xpY3koKS0+YWxsb3dFdmFsKCZzdGF0
ZSkpCisgICAgICAgIGlmICghY29udGV4dC0+Y29udGVudFNlY3VyaXR5UG9saWN5KCktPmFsbG93
RXZhbChjb250ZXh0LT5nbG9iYWxPYmplY3QoKSkpCiAgICAgICAgICAgICByZXR1cm4gMDsKICAg
ICB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaAkocmV2aXNpb24gMjgzMDkxKQorKysg
U291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaAkod29ya2luZyBjb3B5KQpAQCAtMjkzLDkg
KzI5Myw5IEBAIHB1YmxpYzoKICAgICBWaXN1YWxWaWV3cG9ydCYgdmlzdWFsVmlld3BvcnQoKTsK
IAogICAgIC8vIFRpbWVycwotICAgIEV4Y2VwdGlvbk9yPGludD4gc2V0VGltZW91dChKU0M6OkpT
R2xvYmFsT2JqZWN0Jiwgc3RkOjp1bmlxdWVfcHRyPFNjaGVkdWxlZEFjdGlvbj4sIGludCB0aW1l
b3V0LCBWZWN0b3I8SlNDOjpTdHJvbmc8SlNDOjpVbmtub3duPj4mJiBhcmd1bWVudHMpOworICAg
IEV4Y2VwdGlvbk9yPGludD4gc2V0VGltZW91dChzdGQ6OnVuaXF1ZV9wdHI8U2NoZWR1bGVkQWN0
aW9uPiwgaW50IHRpbWVvdXQsIFZlY3RvcjxKU0M6OlN0cm9uZzxKU0M6OlVua25vd24+PiYmIGFy
Z3VtZW50cyk7CiAgICAgdm9pZCBjbGVhclRpbWVvdXQoaW50IHRpbWVvdXRJZCk7Ci0gICAgRXhj
ZXB0aW9uT3I8aW50PiBzZXRJbnRlcnZhbChKU0M6OkpTR2xvYmFsT2JqZWN0Jiwgc3RkOjp1bmlx
dWVfcHRyPFNjaGVkdWxlZEFjdGlvbj4sIGludCB0aW1lb3V0LCBWZWN0b3I8SlNDOjpTdHJvbmc8
SlNDOjpVbmtub3duPj4mJiBhcmd1bWVudHMpOworICAgIEV4Y2VwdGlvbk9yPGludD4gc2V0SW50
ZXJ2YWwoc3RkOjp1bmlxdWVfcHRyPFNjaGVkdWxlZEFjdGlvbj4sIGludCB0aW1lb3V0LCBWZWN0
b3I8SlNDOjpTdHJvbmc8SlNDOjpVbmtub3duPj4mJiBhcmd1bWVudHMpOwogICAgIHZvaWQgY2xl
YXJJbnRlcnZhbChpbnQgdGltZW91dElkKTsKIAogICAgIGludCByZXF1ZXN0QW5pbWF0aW9uRnJh
bWUoUmVmPFJlcXVlc3RBbmltYXRpb25GcmFtZUNhbGxiYWNrPiYmKTsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3BhZ2UvSGlzdG9yeS5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFn
ZS9IaXN0b3J5LmlkbAkocmV2aXNpb24gMjgzMDkxKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9I
aXN0b3J5LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMzMsOSArMzMsOSBAQAogICAgIGF0dHJpYnV0
ZSBTY3JvbGxSZXN0b3JhdGlvbiBzY3JvbGxSZXN0b3JhdGlvbjsKICAgICBbQ3VzdG9tXSByZWFk
b25seSBhdHRyaWJ1dGUgYW55IHN0YXRlOwogCi0gICAgW0NhbGxXaXRoPURvY3VtZW50XSB1bmRl
ZmluZWQgYmFjaygpOwotICAgIFtDYWxsV2l0aD1Eb2N1bWVudF0gdW5kZWZpbmVkIGZvcndhcmQo
KTsKLSAgICBbQ2FsbFdpdGg9RG9jdW1lbnRdIHVuZGVmaW5lZCBnbyhvcHRpb25hbCBsb25nIGRl
bHRhID0gMCk7CisgICAgW0NhbGxXaXRoPVJlbGV2YW50RG9jdW1lbnRdIHVuZGVmaW5lZCBiYWNr
KCk7CisgICAgW0NhbGxXaXRoPVJlbGV2YW50RG9jdW1lbnRdIHVuZGVmaW5lZCBmb3J3YXJkKCk7
CisgICAgW0NhbGxXaXRoPVJlbGV2YW50RG9jdW1lbnRdIHVuZGVmaW5lZCBnbyhvcHRpb25hbCBs
b25nIGRlbHRhID0gMCk7CiAKICAgICAvLyBGSVhNRTogdGl0bGUgc2hvdWxkIG5vdCBiZSBudWxs
YWJsZSBhcyBwZXIgdGhlIEhUTUwgc3BlY2lmaWNhdGlvbi4KICAgICB1bmRlZmluZWQgcHVzaFN0
YXRlKFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSBkYXRhLCBET01TdHJpbmc/IHRpdGxlLCBvcHRpb25h
bCBVU1ZTdHJpbmc/IHVybCA9IG51bGwpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9XaW5k
b3dPcldvcmtlckdsb2JhbFNjb3BlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
YWdlL1dpbmRvd09yV29ya2VyR2xvYmFsU2NvcGUuY3BwCShyZXZpc2lvbiAyODMwOTEpCisrKyBT
b3VyY2UvV2ViQ29yZS9wYWdlL1dpbmRvd09yV29ya2VyR2xvYmFsU2NvcGUuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC00NiwxMCArNDYsMTAgQEAgdm9pZCBXaW5kb3dPcldvcmtlckdsb2JhbFNjb3Bl
OjpyZXBvcnRFcgogICAgIHJlcG9ydEV4Y2VwdGlvbigmZ2xvYmFsT2JqZWN0LCBleGNlcHRpb24p
OwogfQogCi1FeGNlcHRpb25PcjxKU0M6OkpTVmFsdWU+IFdpbmRvd09yV29ya2VyR2xvYmFsU2Nv
cGU6OnN0cnVjdHVyZWRDbG9uZShKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0LCBKU0M6
OkpTVmFsdWUgdmFsdWUsIFN0cnVjdHVyZWRTZXJpYWxpemVPcHRpb25zJiYgb3B0aW9ucykKK0V4
Y2VwdGlvbk9yPEpTQzo6SlNWYWx1ZT4gV2luZG93T3JXb3JrZXJHbG9iYWxTY29wZTo6c3RydWN0
dXJlZENsb25lKEpTRE9NR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0RPTUds
b2JhbE9iamVjdCYgcmVsZXZhbnRHbG9iYWxPYmplY3QsIEpTQzo6SlNWYWx1ZSB2YWx1ZSwgU3Ry
dWN0dXJlZFNlcmlhbGl6ZU9wdGlvbnMmJiBvcHRpb25zKQogewogICAgIFZlY3RvcjxSZWZQdHI8
TWVzc2FnZVBvcnQ+PiBwb3J0czsKLSAgICBhdXRvIG1lc3NhZ2VEYXRhID0gU2VyaWFsaXplZFNj
cmlwdFZhbHVlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCB2YWx1ZSwgV1RGTW92ZShvcHRpb25zLnRy
YW5zZmVyKSwgcG9ydHMsIFNlcmlhbGl6YXRpb25Db250ZXh0OjpXaW5kb3dQb3N0TWVzc2FnZSk7
CisgICAgYXV0byBtZXNzYWdlRGF0YSA9IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6Y3JlYXRlKGxl
eGljYWxHbG9iYWxPYmplY3QsIHZhbHVlLCBXVEZNb3ZlKG9wdGlvbnMudHJhbnNmZXIpLCBwb3J0
cywgU2VyaWFsaXphdGlvbkNvbnRleHQ6OldpbmRvd1Bvc3RNZXNzYWdlKTsKICAgICBpZiAobWVz
c2FnZURhdGEuaGFzRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiBtZXNzYWdlRGF0YS5yZWxl
YXNlRXhjZXB0aW9uKCk7CiAKQEAgLTU4LDEwICs1OCwxMCBAQCBFeGNlcHRpb25PcjxKU0M6OkpT
VmFsdWU+IFdpbmRvd09yV29ya2VyCiAgICAgICAgIHJldHVybiBkaXNlbnRhbmdsZWRQb3J0cy5y
ZWxlYXNlRXhjZXB0aW9uKCk7CiAKICAgICBWZWN0b3I8UmVmUHRyPE1lc3NhZ2VQb3J0Pj4gZW50
YW5nbGVkUG9ydHM7Ci0gICAgaWYgKGF1dG8qIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQgPSBnbG9i
YWxPYmplY3Quc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQorICAgIGlmIChhdXRvKiBzY3JpcHRF
eGVjdXRpb25Db250ZXh0ID0gcmVsZXZhbnRHbG9iYWxPYmplY3Quc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpKQogICAgICAgICBlbnRhbmdsZWRQb3J0cyA9IE1lc3NhZ2VQb3J0OjplbnRhbmdsZVBv
cnRzKCpzY3JpcHRFeGVjdXRpb25Db250ZXh0LCBkaXNlbnRhbmdsZWRQb3J0cy5yZWxlYXNlUmV0
dXJuVmFsdWUoKSk7CiAKLSAgICByZXR1cm4gbWVzc2FnZURhdGEucmV0dXJuVmFsdWUoKS0+ZGVz
ZXJpYWxpemUoZ2xvYmFsT2JqZWN0LCAmZ2xvYmFsT2JqZWN0LCBXVEZNb3ZlKGVudGFuZ2xlZFBv
cnRzKSk7CisgICAgcmV0dXJuIG1lc3NhZ2VEYXRhLnJldHVyblZhbHVlKCktPmRlc2VyaWFsaXpl
KGxleGljYWxHbG9iYWxPYmplY3QsICZyZWxldmFudEdsb2JhbE9iamVjdCwgV1RGTW92ZShlbnRh
bmdsZWRQb3J0cykpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wYWdlL1dpbmRvd09yV29ya2VyR2xvYmFsU2NvcGUuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wYWdlL1dpbmRvd09yV29ya2VyR2xvYmFsU2NvcGUuaAkocmV2aXNpb24g
MjgzMDkxKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9XaW5kb3dPcldvcmtlckdsb2JhbFNjb3Bl
LmgJKHdvcmtpbmcgY29weSkKQEAgLTM5LDcgKzM5LDcgQEAgc3RydWN0IFN0cnVjdHVyZWRTZXJp
YWxpemVPcHRpb25zOwogY2xhc3MgV2luZG93T3JXb3JrZXJHbG9iYWxTY29wZSB7CiBwdWJsaWM6
CiAgICAgc3RhdGljIHZvaWQgcmVwb3J0RXJyb3IoSlNET01HbG9iYWxPYmplY3QmLCBKU0M6OkpT
VmFsdWUpOwotICAgIHN0YXRpYyBFeGNlcHRpb25PcjxKU0M6OkpTVmFsdWU+IHN0cnVjdHVyZWRD
bG9uZShKU0RPTUdsb2JhbE9iamVjdCYsIEpTQzo6SlNWYWx1ZSwgU3RydWN0dXJlZFNlcmlhbGl6
ZU9wdGlvbnMmJik7CisgICAgc3RhdGljIEV4Y2VwdGlvbk9yPEpTQzo6SlNWYWx1ZT4gc3RydWN0
dXJlZENsb25lKEpTRE9NR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0RPTUds
b2JhbE9iamVjdCYgcmVsZXZhbnRHbG9iYWxPYmplY3QsIEpTQzo6SlNWYWx1ZSwgU3RydWN0dXJl
ZFNlcmlhbGl6ZU9wdGlvbnMmJik7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1dpbmRvd09yV29ya2VyR2xvYmFsU2NvcGUuaWRsCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvV2luZG93T3JXb3JrZXJHbG9iYWxTY29wZS5p
ZGwJKHJldmlzaW9uIDI4MzA5MSkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvV2luZG93T3JXb3Jr
ZXJHbG9iYWxTY29wZS5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTQ5LDcgKzQ5LDcgQEAgaW50ZXJm
YWNlIG1peGluIFdpbmRvd09yV29ya2VyR2xvYmFsU2NvcAogCiAgICAgW0VuYWJsZWRCeVNldHRp
bmc9Q3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3ldIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGNy
b3NzT3JpZ2luSXNvbGF0ZWQ7CiAKLSAgICBbQ2FsbFdpdGg9R2xvYmFsT2JqZWN0XSB1bmRlZmlu
ZWQgcmVwb3J0RXJyb3IoYW55IGVycm9yKTsKKyAgICBbQ2FsbFdpdGg9UmVsZXZhbnRHbG9iYWxP
YmplY3RdIHVuZGVmaW5lZCByZXBvcnRFcnJvcihhbnkgZXJyb3IpOwogCiAgICAgLy8gQmFzZTY0
IHV0aWxpdHkgbWV0aG9kcy4KICAgICBET01TdHJpbmcgYXRvYihET01TdHJpbmcgc3RyaW5nKTsK
QEAgLTU3LDEwICs1NywxMCBAQCBpbnRlcmZhY2UgbWl4aW4gV2luZG93T3JXb3JrZXJHbG9iYWxT
Y29wCiAKICAgICAvLyBUaW1lcnMuCiAgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIHRha2UgYSBU
aW1lckhhbmRsZXIgKGEuay5hLiAoRE9NU3RyaW5nIG9yIEZ1bmN0aW9uKSkgcmF0aGVyIHRoYW4g
YSBTY2hlZHVsZWRBY3Rpb24uCi0gICAgW0NhbGxXaXRoPUdsb2JhbE9iamVjdF0gbG9uZyBzZXRU
aW1lb3V0KFNjaGVkdWxlZEFjdGlvbiBoYW5kbGVyLCBvcHRpb25hbCBsb25nIHRpbWVvdXQgPSAw
LCBhbnkuLi4gYXJndW1lbnRzKTsKKyAgICBsb25nIHNldFRpbWVvdXQoU2NoZWR1bGVkQWN0aW9u
IGhhbmRsZXIsIG9wdGlvbmFsIGxvbmcgdGltZW91dCA9IDAsIGFueS4uLiBhcmd1bWVudHMpOwog
ICAgIHVuZGVmaW5lZCBjbGVhclRpbWVvdXQob3B0aW9uYWwgbG9uZyBoYW5kbGUgPSAwKTsKICAg
ICAvLyBGSVhNRTogVGhpcyBzaG91bGQgdGFrZSBhIFRpbWVySGFuZGxlciAoYS5rLmEuIChET01T
dHJpbmcgb3IgRnVuY3Rpb24pKSByYXRoZXIgdGhhbiBhIFNjaGVkdWxlZEFjdGlvbi4KLSAgICBb
Q2FsbFdpdGg9R2xvYmFsT2JqZWN0XSBsb25nIHNldEludGVydmFsKFNjaGVkdWxlZEFjdGlvbiBo
YW5kbGVyLCBvcHRpb25hbCBsb25nIHRpbWVvdXQgPSAwLCBhbnkuLi4gYXJndW1lbnRzKTsKKyAg
ICBsb25nIHNldEludGVydmFsKFNjaGVkdWxlZEFjdGlvbiBoYW5kbGVyLCBvcHRpb25hbCBsb25n
IHRpbWVvdXQgPSAwLCBhbnkuLi4gYXJndW1lbnRzKTsKICAgICB1bmRlZmluZWQgY2xlYXJJbnRl
cnZhbChvcHRpb25hbCBsb25nIGhhbmRsZSA9IDApOwogCiAgICAgLy8gbWljcm90YXNrIHF1ZXVp
bmcuCkBAIC03MSw1ICs3MSw1IEBAIGludGVyZmFjZSBtaXhpbiBXaW5kb3dPcldvcmtlckdsb2Jh
bFNjb3AKICAgICBbRW5hYmxlZEF0UnVudGltZT1JbWFnZUJpdG1hcF0gUHJvbWlzZTxJbWFnZUJp
dG1hcD4gY3JlYXRlSW1hZ2VCaXRtYXAoSW1hZ2VCaXRtYXBTb3VyY2UgaW1hZ2UsIGxvbmcgc3gs
IGxvbmcgc3ksIGxvbmcgc3csIGxvbmcgc2gsIG9wdGlvbmFsIEltYWdlQml0bWFwT3B0aW9ucyBv
cHRpb25zKTsKIAogICAgIC8vIHN0cnVjdHVyZWQgY2xvbmluZwotICAgIFtDYWxsV2l0aD1HbG9i
YWxPYmplY3RdIGFueSBzdHJ1Y3R1cmVkQ2xvbmUoYW55IHZhbHVlLCBvcHRpb25hbCBTdHJ1Y3R1
cmVkU2VyaWFsaXplT3B0aW9ucyBvcHRpb25zKTsKKyAgICBbQ2FsbFdpdGg9R2xvYmFsT2JqZWN0
JlJlbGV2YW50R2xvYmFsT2JqZWN0XSBhbnkgc3RydWN0dXJlZENsb25lKGFueSB2YWx1ZSwgb3B0
aW9uYWwgU3RydWN0dXJlZFNlcmlhbGl6ZU9wdGlvbnMgb3B0aW9ucyk7CiB9OwpJbmRleDogU291
cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5jcHAJKHJldmlzaW9uIDI4
MzA5MSkKKysrIFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0yNTIsMTEgKzI1MiwxMSBAQCB2b2lkIFdvcmtlckdsb2JhbFNjb3Bl
OjpzZXRJc09ubGluZShib29sCiAgICAgICAgIG1fbmF2aWdhdG9yLT5zZXRJc09ubGluZShpc09u
bGluZSk7CiB9CiAKLUV4Y2VwdGlvbk9yPGludD4gV29ya2VyR2xvYmFsU2NvcGU6OnNldFRpbWVv
dXQoSlNDOjpKU0dsb2JhbE9iamVjdCYgc3RhdGUsIHN0ZDo6dW5pcXVlX3B0cjxTY2hlZHVsZWRB
Y3Rpb24+IGFjdGlvbiwgaW50IHRpbWVvdXQsIFZlY3RvcjxKU0M6OlN0cm9uZzxKU0M6OlVua25v
d24+PiYmIGFyZ3VtZW50cykKK0V4Y2VwdGlvbk9yPGludD4gV29ya2VyR2xvYmFsU2NvcGU6OnNl
dFRpbWVvdXQoc3RkOjp1bmlxdWVfcHRyPFNjaGVkdWxlZEFjdGlvbj4gYWN0aW9uLCBpbnQgdGlt
ZW91dCwgVmVjdG9yPEpTQzo6U3Ryb25nPEpTQzo6VW5rbm93bj4+JiYgYXJndW1lbnRzKQogewog
ICAgIC8vIEZJWE1FOiBTaG91bGQgdGhpcyBjaGVjayByZWFsbHkgaGFwcGVuIGhlcmU/IE9yIHNo
b3VsZCBpdCBoYXBwZW4gd2hlbiBjb2RlIGlzIGFib3V0IHRvIGV2YWw/CiAgICAgaWYgKGFjdGlv
bi0+dHlwZSgpID09IFNjaGVkdWxlZEFjdGlvbjo6VHlwZTo6Q29kZSkgewotICAgICAgICBpZiAo
IWNvbnRlbnRTZWN1cml0eVBvbGljeSgpLT5hbGxvd0V2YWwoJnN0YXRlKSkKKyAgICAgICAgaWYg
KCFjb250ZW50U2VjdXJpdHlQb2xpY3koKS0+YWxsb3dFdmFsKGdsb2JhbE9iamVjdCgpKSkKICAg
ICAgICAgICAgIHJldHVybiAwOwogICAgIH0KIApAQCAtMjcwLDExICsyNzAsMTEgQEAgdm9pZCBX
b3JrZXJHbG9iYWxTY29wZTo6Y2xlYXJUaW1lb3V0KGludAogICAgIERPTVRpbWVyOjpyZW1vdmVC
eUlkKCp0aGlzLCB0aW1lb3V0SWQpOwogfQogCi1FeGNlcHRpb25PcjxpbnQ+IFdvcmtlckdsb2Jh
bFNjb3BlOjpzZXRJbnRlcnZhbChKU0M6OkpTR2xvYmFsT2JqZWN0JiBzdGF0ZSwgc3RkOjp1bmlx
dWVfcHRyPFNjaGVkdWxlZEFjdGlvbj4gYWN0aW9uLCBpbnQgdGltZW91dCwgVmVjdG9yPEpTQzo6
U3Ryb25nPEpTQzo6VW5rbm93bj4+JiYgYXJndW1lbnRzKQorRXhjZXB0aW9uT3I8aW50PiBXb3Jr
ZXJHbG9iYWxTY29wZTo6c2V0SW50ZXJ2YWwoc3RkOjp1bmlxdWVfcHRyPFNjaGVkdWxlZEFjdGlv
bj4gYWN0aW9uLCBpbnQgdGltZW91dCwgVmVjdG9yPEpTQzo6U3Ryb25nPEpTQzo6VW5rbm93bj4+
JiYgYXJndW1lbnRzKQogewogICAgIC8vIEZJWE1FOiBTaG91bGQgdGhpcyBjaGVjayByZWFsbHkg
aGFwcGVuIGhlcmU/IE9yIHNob3VsZCBpdCBoYXBwZW4gd2hlbiBjb2RlIGlzIGFib3V0IHRvIGV2
YWw/CiAgICAgaWYgKGFjdGlvbi0+dHlwZSgpID09IFNjaGVkdWxlZEFjdGlvbjo6VHlwZTo6Q29k
ZSkgewotICAgICAgICBpZiAoIWNvbnRlbnRTZWN1cml0eVBvbGljeSgpLT5hbGxvd0V2YWwoJnN0
YXRlKSkKKyAgICAgICAgaWYgKCFjb250ZW50U2VjdXJpdHlQb2xpY3koKS0+YWxsb3dFdmFsKGds
b2JhbE9iamVjdCgpKSkKICAgICAgICAgICAgIHJldHVybiAwOwogICAgIH0KIApJbmRleDogU291
cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuaAkocmV2aXNpb24gMjgzMDkx
KQorKysgU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xMDAsOSArMTAwLDkgQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRJc09ubGlu
ZShib29sKTsKIAotICAgIEV4Y2VwdGlvbk9yPGludD4gc2V0VGltZW91dChKU0M6OkpTR2xvYmFs
T2JqZWN0Jiwgc3RkOjp1bmlxdWVfcHRyPFNjaGVkdWxlZEFjdGlvbj4sIGludCB0aW1lb3V0LCBW
ZWN0b3I8SlNDOjpTdHJvbmc8SlNDOjpVbmtub3duPj4mJiBhcmd1bWVudHMpOworICAgIEV4Y2Vw
dGlvbk9yPGludD4gc2V0VGltZW91dChzdGQ6OnVuaXF1ZV9wdHI8U2NoZWR1bGVkQWN0aW9uPiwg
aW50IHRpbWVvdXQsIFZlY3RvcjxKU0M6OlN0cm9uZzxKU0M6OlVua25vd24+PiYmIGFyZ3VtZW50
cyk7CiAgICAgdm9pZCBjbGVhclRpbWVvdXQoaW50IHRpbWVvdXRJZCk7Ci0gICAgRXhjZXB0aW9u
T3I8aW50PiBzZXRJbnRlcnZhbChKU0M6OkpTR2xvYmFsT2JqZWN0Jiwgc3RkOjp1bmlxdWVfcHRy
PFNjaGVkdWxlZEFjdGlvbj4sIGludCB0aW1lb3V0LCBWZWN0b3I8SlNDOjpTdHJvbmc8SlNDOjpV
bmtub3duPj4mJiBhcmd1bWVudHMpOworICAgIEV4Y2VwdGlvbk9yPGludD4gc2V0SW50ZXJ2YWwo
c3RkOjp1bmlxdWVfcHRyPFNjaGVkdWxlZEFjdGlvbj4sIGludCB0aW1lb3V0LCBWZWN0b3I8SlND
OjpTdHJvbmc8SlNDOjpVbmtub3duPj4mJiBhcmd1bWVudHMpOwogICAgIHZvaWQgY2xlYXJJbnRl
cnZhbChpbnQgdGltZW91dElkKTsKIAogICAgIGJvb2wgaXNTZWN1cmVDb250ZXh0KCkgY29uc3Qg
ZmluYWw7CkluZGV4OiBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI4MzIx
MikKKysrIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkK
QEAgLTEsMyArMSwyNSBAQAorMjAyMS0wOS0yOSAgQWxleGV5IFNodmF5a2EgIDxzaHZhaWthbGVz
aEBnbWFpbC5jb20+CisKKyAgICAgICAgU29tZSBXZWJJREwgb3BlcmF0aW9ucyAvIGF0dHJpYnV0
ZXMgaW5jb3JyZWN0bHkgdXNlIF9jdXJyZW50XyByZWFsbSBpbnN0ZWFkIG9mIF9yZWxldmFudF8K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMDk0MQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd2ViLXBs
YXRmb3JtLXRlc3RzL2RvbS9ldmVudHMvRXZlbnQtdGltZXN0YW1wLWNyb3NzLXJlYWxtLWdldHRl
ci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9kb20v
ZXZlbnRzL0V2ZW50LXRpbWVzdGFtcC1jcm9zcy1yZWFsbS1nZXR0ZXIuaHRtbDogQWRkZWQuCisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvaGlzdG9yeS90aGUtaGlz
dG9yeS1pbnRlcmZhY2UvaGlzdG9yeV9iYWNrX2Nyb3NzX3JlYWxtX21ldGhvZC1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL2hp
c3RvcnkvdGhlLWhpc3RvcnktaW50ZXJmYWNlL2hpc3RvcnlfYmFja19jcm9zc19yZWFsbV9tZXRo
b2QuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3Nl
cnMvaGlzdG9yeS90aGUtaGlzdG9yeS1pbnRlcmZhY2UvaGlzdG9yeV9mb3J3YXJkX2Nyb3NzX3Jl
YWxtX21ldGhvZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL2Jyb3dzZXJzL2hpc3RvcnkvdGhlLWhpc3RvcnktaW50ZXJmYWNlL2hpc3Rvcnlf
Zm9yd2FyZF9jcm9zc19yZWFsbV9tZXRob2QuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvaGlzdG9yeS90aGUtaGlzdG9yeS1pbnRlcmZhY2Uv
aGlzdG9yeV9nb19jcm9zc19yZWFsbV9tZXRob2QtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy9oaXN0b3J5L3RoZS1oaXN0b3J5
LWludGVyZmFjZS9oaXN0b3J5X2dvX2Nyb3NzX3JlYWxtX21ldGhvZC5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC93ZWJhcHBhcGlzL3NjcmlwdGluZy9yZXBv
cnRlcnJvci1jcm9zcy1yZWFsbS1tZXRob2QtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC93ZWJhcHBhcGlzL3NjcmlwdGluZy9yZXBvcnRlcnJv
ci1jcm9zcy1yZWFsbS1tZXRob2QuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvd2ViYXBwYXBpcy9zdHJ1Y3R1cmVkLWNsb25lL3N0cnVjdHVyZWQtY2xvbmUt
Y3Jvc3MtcmVhbG0tbWV0aG9kLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvd2ViYXBwYXBpcy9zdHJ1Y3R1cmVkLWNsb25lL3N0cnVjdHVyZWQt
Y2xvbmUtY3Jvc3MtcmVhbG0tbWV0aG9kLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9yZXF1ZXN0aWRsZWNhbGxiYWNrL2NhbGxiYWNrLXRpbWVSZW1haW5pbmctY3Jv
c3MtcmVhbG0tbWV0aG9kLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL3JlcXVlc3RpZGxlY2FsbGJhY2svY2FsbGJhY2stdGltZVJlbWFpbmluZy1jcm9z
cy1yZWFsbS1tZXRob2QuaHRtbDogQWRkZWQuCisKIDIwMjEtMDktMjggIENhbWVyb24gTWNDb3Jt
YWNrICA8aGV5Y2FtQGFwcGxlLmNvbT4KIAogICAgICAgICBQcmVzZXJ2ZSBjb2xvciBzcGFjZSB3
aGVuIHN0cnVjdHVyZWQgY2xvbmluZyBJbWFnZUJpdG1hcHMKSW5kZXg6IExheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9FdmVudC10aW1lc3RhbXAt
Y3Jvc3MtcmVhbG0tZ2V0dGVyLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVudHMvRXZlbnQtdGltZXN0
YW1wLWNyb3NzLXJlYWxtLWdldHRlci1leHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50KQorKysgTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vZXZlbnRzL0V2ZW50
LXRpbWVzdGFtcC1jcm9zcy1yZWFsbS1nZXR0ZXItZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkp
CkBAIC0wLDAgKzEsNCBAQAorCisKK1BBU1MgZXZlbnQudGltZVN0YW1wIGlzIGluaXRpYWxpemVk
IHVzaW5nIGV2ZW50J3MgcmVsZXZhbnQgZ2xvYmFsIG9iamVjdAorCkluZGV4OiBMYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVudHMvRXZlbnQtdGltZXN0
YW1wLWNyb3NzLXJlYWxtLWdldHRlci5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9FdmVudC10aW1lc3RhbXAt
Y3Jvc3MtcmVhbG0tZ2V0dGVyLmh0bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vZXZlbnRzL0V2ZW50LXRpbWVzdGFtcC1j
cm9zcy1yZWFsbS1nZXR0ZXIuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDI3IEBACis8
IWRvY3R5cGUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5ldmVudC50aW1l
U3RhbXAgaXMgaW5pdGlhbGl6ZWQgdXNpbmcgZXZlbnQncyByZWxldmFudCBnbG9iYWwgb2JqZWN0
PC90aXRsZT4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kb20uc3BlYy53aGF0d2cu
b3JnLyNyZWYtZm9yLWRvbS1ldmVudC10aW1lc3RhbXAlRTIlOTElQTEiPgorPHNjcmlwdCBzcmM9
Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNv
dXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorCis8Ym9keT4KKzxzY3JpcHQ+
Citjb25zdCB0ID0gYXN5bmNfdGVzdCgpOwordC5zdGVwX3RpbWVvdXQoKCkgPT4geworICBjb25z
dCBpZnJhbWVEZWxheWVkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7CisgIGlm
cmFtZURlbGF5ZWQub25sb2FkID0gdC5zdGVwX2Z1bmNfZG9uZSgoKSA9PiB7CisgICAgLy8gVXNl
IGV2YWwoKSB0byBlbGltaW5hdGUgZmFsc2UtcG9zaXRpdmUgdGVzdCByZXN1bHQgZm9yIFdlYktp
dCBidWlsZHMgYmVmb3JlIHIyODAyNTYsCisgICAgLy8gd2hpY2ggaW52b2tlZCBXZWJJREwgYWNj
ZXNzb3JzIGluIGNvbnRleHQgb2YgbGV4aWNhbCAoY2FsbGVyKSBnbG9iYWwgb2JqZWN0LgorICAg
IGNvbnN0IHRpbWVTdGFtcEV4cGVjdGVkID0gaWZyYW1lRGVsYXllZC5jb250ZW50V2luZG93LmV2
YWwoYG5ldyBFdmVudCgiZm9vIikudGltZVN0YW1wYCk7CisgICAgY29uc3QgZXZlbnREZWxheWVk
ID0gbmV3IGlmcmFtZURlbGF5ZWQuY29udGVudFdpbmRvdy5FdmVudCgiZm9vIik7CisKKyAgICBj
b25zdCB7Z2V0fSA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXZlbnQucHJvdG90
eXBlLCAidGltZVN0YW1wIik7CisgICAgYXNzZXJ0X2FwcHJveF9lcXVhbHMoZ2V0LmNhbGwoZXZl
bnREZWxheWVkKSwgdGltZVN0YW1wRXhwZWN0ZWQsIDUsICJ2aWEgT2JqZWN0LmdldE93blByb3Bl
cnR5RGVzY3JpcHRvciIpOworCisgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKGV2ZW50RGVsYXll
ZCwgRXZlbnQucHJvdG90eXBlKTsKKyAgICBhc3NlcnRfYXBwcm94X2VxdWFscyhldmVudERlbGF5
ZWQudGltZVN0YW1wLCB0aW1lU3RhbXBFeHBlY3RlZCwgNSwgInZpYSBPYmplY3Quc2V0UHJvdG90
eXBlT2YiKTsKKyAgfSk7CisgIGRvY3VtZW50LmJvZHkuYXBwZW5kKGlmcmFtZURlbGF5ZWQpOwor
fSwgMTAwMCk7Cis8L3NjcmlwdD4KSW5kZXg6IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy9oaXN0b3J5L3RoZS1oaXN0b3J5LWludGVyZmFj
ZS9oaXN0b3J5X2JhY2tfY3Jvc3NfcmVhbG1fbWV0aG9kLWV4cGVjdGVkLnR4dAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJv
d3NlcnMvaGlzdG9yeS90aGUtaGlzdG9yeS1pbnRlcmZhY2UvaGlzdG9yeV9iYWNrX2Nyb3NzX3Jl
YWxtX21ldGhvZC1leHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL2hpc3RvcnkvdGhlLWhp
c3RvcnktaW50ZXJmYWNlL2hpc3RvcnlfYmFja19jcm9zc19yZWFsbV9tZXRob2QtZXhwZWN0ZWQu
dHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNCBAQAorCisKK1BBU1MgaGlzdG9yeS5iYWNr
KCkgdXNlcyB0aGlzJ3MgYXNzb2NpYXRlZCBkb2N1bWVudCdzIGJyb3dzaW5nIGNvbnRleHQgdG8g
ZGV0ZXJtaW5lIGlmIG5hdmlnYXRpb24gaXMgYWxsb3dlZAorCkluZGV4OiBMYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvaGlzdG9yeS90aGUt
aGlzdG9yeS1pbnRlcmZhY2UvaGlzdG9yeV9iYWNrX2Nyb3NzX3JlYWxtX21ldGhvZC5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbC9icm93c2Vycy9oaXN0b3J5L3RoZS1oaXN0b3J5LWludGVyZmFjZS9oaXN0b3J5X2JhY2tf
Y3Jvc3NfcmVhbG1fbWV0aG9kLmh0bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL2hpc3RvcnkvdGhlLWhp
c3RvcnktaW50ZXJmYWNlL2hpc3RvcnlfYmFja19jcm9zc19yZWFsbV9tZXRob2QuaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtMCwwICsxLDIyIEBACis8IWRvY3R5cGUgaHRtbD4KKzxtZXRhIGNoYXJz
ZXQ9InV0Zi04Ij4KKzx0aXRsZT5oaXN0b3J5LmJhY2soKSB1c2VzIHRoaXMncyBhc3NvY2lhdGVk
IGRvY3VtZW50J3MgYnJvd3NpbmcgY29udGV4dCB0byBkZXRlcm1pbmUgaWYgbmF2aWdhdGlvbiBp
cyBhbGxvd2VkPC90aXRsZT4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9odG1sLnNw
ZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2UvaGlzdG9yeS5odG1sI2RvbS1oaXN0b3J5LWJhY2siPgor
PHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorCis8aWZy
YW1lIGlkPSJzYW5kYm94ZWRJZnJhbWUiIHNyY2RvYz0iaGVsbG8iIHNhbmRib3g9ImFsbG93LXNj
cmlwdHMgYWxsb3ctc2FtZS1vcmlnaW4iPjwvaWZyYW1lPgorPHNjcmlwdD4KK2NvbnN0IHQgPSBh
c3luY190ZXN0KCk7CisKK3Quc3RlcCgoKSA9PiB7CisgIGhpc3RvcnkucHVzaFN0YXRlKHt9LCBu
dWxsLCAiP3ByZXYiKTsKKyAgaGlzdG9yeS5wdXNoU3RhdGUoe30sIG51bGwsICI/Y3VycmVudCIp
OworCisgIHNhbmRib3hlZElmcmFtZS5jb250ZW50V2luZG93Lmhpc3RvcnkuYmFjay5jYWxsKGhp
c3RvcnkpOworfSk7CisKK3dpbmRvdy5vbnBvcHN0YXRlID0gdC5zdGVwX2Z1bmNfZG9uZSgoKSA9
PiB7CisgIGFzc2VydF9lcXVhbHMobG9jYXRpb24uc2VhcmNoLCAiP3ByZXYiKTsKK30pOworPC9z
Y3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvYnJvd3NlcnMvaGlzdG9yeS90aGUtaGlzdG9yeS1pbnRlcmZhY2UvaGlzdG9yeV9mb3J3
YXJkX2Nyb3NzX3JlYWxtX21ldGhvZC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL2hpc3Rv
cnkvdGhlLWhpc3RvcnktaW50ZXJmYWNlL2hpc3RvcnlfZm9yd2FyZF9jcm9zc19yZWFsbV9tZXRo
b2QtZXhwZWN0ZWQudHh0CShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy9oaXN0b3J5L3RoZS1oaXN0b3J5LWlu
dGVyZmFjZS9oaXN0b3J5X2ZvcndhcmRfY3Jvc3NfcmVhbG1fbWV0aG9kLWV4cGVjdGVkLnR4dAko
d29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQgQEAKKworCitQQVNTIGhpc3RvcnkuZm9yd2FyZCgp
IHVzZXMgdGhpcydzIGFzc29jaWF0ZWQgZG9jdW1lbnQncyBicm93c2luZyBjb250ZXh0IHRvIGRl
dGVybWluZSBpZiBuYXZpZ2F0aW9uIGlzIGFsbG93ZWQKKwpJbmRleDogTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL2hpc3RvcnkvdGhlLWhp
c3RvcnktaW50ZXJmYWNlL2hpc3RvcnlfZm9yd2FyZF9jcm9zc19yZWFsbV9tZXRob2QuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvYnJvd3NlcnMvaGlzdG9yeS90aGUtaGlzdG9yeS1pbnRlcmZhY2UvaGlzdG9yeV9mb3J3
YXJkX2Nyb3NzX3JlYWxtX21ldGhvZC5odG1sCShub25leGlzdGVudCkKKysrIExheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy9oaXN0b3J5L3Ro
ZS1oaXN0b3J5LWludGVyZmFjZS9oaXN0b3J5X2ZvcndhcmRfY3Jvc3NfcmVhbG1fbWV0aG9kLmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyOCBAQAorPCFkb2N0eXBlIGh0bWw+Cis8bWV0
YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+aGlzdG9yeS5mb3J3YXJkKCkgdXNlcyB0aGlzJ3Mg
YXNzb2NpYXRlZCBkb2N1bWVudCdzIGJyb3dzaW5nIGNvbnRleHQgdG8gZGV0ZXJtaW5lIGlmIG5h
dmlnYXRpb24gaXMgYWxsb3dlZDwvdGl0bGU+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBz
Oi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL2hpc3RvcnkuaHRtbCNkb20taGlzdG9y
eS1mb3J3YXJkIj4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Nj
cmlwdD4KKworPGlmcmFtZSBpZD0ic2FuZGJveGVkSWZyYW1lIiBzcmNkb2M9ImhlbGxvIiBzYW5k
Ym94PSJhbGxvdy1zY3JpcHRzIGFsbG93LXNhbWUtb3JpZ2luIj48L2lmcmFtZT4KKzxzY3JpcHQ+
Citjb25zdCB0ID0gYXN5bmNfdGVzdCgpOworCit0LnN0ZXAoKCkgPT4geworICBoaXN0b3J5LnB1
c2hTdGF0ZSh7fSwgbnVsbCwgIj9wcmV2Iik7CisgIGhpc3RvcnkucHVzaFN0YXRlKHt9LCBudWxs
LCAiP2N1cnJlbnQiKTsKKyAgaGlzdG9yeS5iYWNrKCk7Cit9KTsKKworbGV0IGlzQ3Jvc3NSZWFs
bUZvcndhcmQgPSBmYWxzZTsKK3dpbmRvdy5vbnBvcHN0YXRlID0gdC5zdGVwX2Z1bmMoKCkgPT4g
eworICBpZiAoaXNDcm9zc1JlYWxtRm9yd2FyZCkgeworICAgIGFzc2VydF9lcXVhbHMobG9jYXRp
b24uc2VhcmNoLCAiP2N1cnJlbnQiKTsKKyAgICB0LmRvbmUoKTsKKyAgfSBlbHNlIHsKKyAgICBz
YW5kYm94ZWRJZnJhbWUuY29udGVudFdpbmRvdy5oaXN0b3J5LmZvcndhcmQuY2FsbChoaXN0b3J5
KTsKKyAgICBpc0Nyb3NzUmVhbG1Gb3J3YXJkID0gdHJ1ZTsKKyAgfQorfSk7Cis8L3NjcmlwdD4K
SW5kZXg6IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9i
cm93c2Vycy9oaXN0b3J5L3RoZS1oaXN0b3J5LWludGVyZmFjZS9oaXN0b3J5X2dvX2Nyb3NzX3Jl
YWxtX21ldGhvZC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL2hpc3RvcnkvdGhlLWhpc3Rv
cnktaW50ZXJmYWNlL2hpc3RvcnlfZ29fY3Jvc3NfcmVhbG1fbWV0aG9kLWV4cGVjdGVkLnR4dAko
bm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvYnJvd3NlcnMvaGlzdG9yeS90aGUtaGlzdG9yeS1pbnRlcmZhY2UvaGlzdG9yeV9n
b19jcm9zc19yZWFsbV9tZXRob2QtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAg
KzEsNCBAQAorCisKK1BBU1MgaGlzdG9yeS5nbygpIHVzZXMgdGhpcydzIGFzc29jaWF0ZWQgZG9j
dW1lbnQncyBicm93c2luZyBjb250ZXh0IHRvIGRldGVybWluZSBpZiBuYXZpZ2F0aW9uIGlzIGFs
bG93ZWQKKwpJbmRleDogTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL2Jyb3dzZXJzL2hpc3RvcnkvdGhlLWhpc3RvcnktaW50ZXJmYWNlL2hpc3RvcnlfZ29f
Y3Jvc3NfcmVhbG1fbWV0aG9kLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL2hpc3RvcnkvdGhlLWhpc3Rv
cnktaW50ZXJmYWNlL2hpc3RvcnlfZ29fY3Jvc3NfcmVhbG1fbWV0aG9kLmh0bWwJKG5vbmV4aXN0
ZW50KQorKysgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1s
L2Jyb3dzZXJzL2hpc3RvcnkvdGhlLWhpc3RvcnktaW50ZXJmYWNlL2hpc3RvcnlfZ29fY3Jvc3Nf
cmVhbG1fbWV0aG9kLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyMyBAQAorPCFkb2N0
eXBlIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+aGlzdG9yeS5nbygpIHVz
ZXMgdGhpcydzIGFzc29jaWF0ZWQgZG9jdW1lbnQncyBicm93c2luZyBjb250ZXh0IHRvIGRldGVy
bWluZSBpZiBuYXZpZ2F0aW9uIGlzIGFsbG93ZWQ8L3RpdGxlPgorPGxpbmsgcmVsPSJoZWxwIiBo
cmVmPSJodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9oaXN0b3J5Lmh0bWwj
ZG9tLWhpc3RvcnktZ28iPgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMi
Pjwvc2NyaXB0PgorCis8aWZyYW1lIGlkPSJzYW5kYm94ZWRJZnJhbWUiIHNyY2RvYz0iaGVsbG8i
IHNhbmRib3g9ImFsbG93LXNjcmlwdHMgYWxsb3ctc2FtZS1vcmlnaW4iPjwvaWZyYW1lPgorPHNj
cmlwdD4KK2NvbnN0IHQgPSBhc3luY190ZXN0KCk7CisKK3Quc3RlcCgoKSA9PiB7CisgIGhpc3Rv
cnkucHVzaFN0YXRlKHt9LCBudWxsLCAiP3ByZXY9MiIpOworICBoaXN0b3J5LnB1c2hTdGF0ZSh7
fSwgbnVsbCwgIj9wcmV2PTEiKTsKKyAgaGlzdG9yeS5wdXNoU3RhdGUoe30sIG51bGwsICI/Y3Vy
cmVudCIpOworCisgIHNhbmRib3hlZElmcmFtZS5jb250ZW50V2luZG93Lmhpc3RvcnkuZ28uY2Fs
bChoaXN0b3J5LCAtMik7Cit9KTsKKword2luZG93Lm9ucG9wc3RhdGUgPSB0LnN0ZXBfZnVuY19k
b25lKCgpID0+IHsKKyAgYXNzZXJ0X2VxdWFscyhsb2NhdGlvbi5zZWFyY2gsICI/cHJldj0yIik7
Cit9KTsKKzwvc2NyaXB0PgpJbmRleDogTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9odG1sL3dlYmFwcGFwaXMvc2NyaXB0aW5nL3JlcG9ydGVycm9yLWNyb3NzLXJl
YWxtLW1ldGhvZC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3dlYmFwcGFwaXMvc2NyaXB0aW5nL3JlcG9y
dGVycm9yLWNyb3NzLXJlYWxtLW1ldGhvZC1leHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50KQorKysg
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3dlYmFwcGFw
aXMvc2NyaXB0aW5nL3JlcG9ydGVycm9yLWNyb3NzLXJlYWxtLW1ldGhvZC1leHBlY3RlZC50eHQJ
KHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1IEBACitDT05TT0xFIE1FU1NBR0U6IFR5cGVFcnJv
cjogZm9vCisKKworUEFTUyBzZWxmLnJlcG9ydEVycm9yKCkgZGlzcGF0Y2hlcyBhbiAiZXJyb3Ii
IGV2ZW50IGZvciB0aGlzJ3MgcmVsZXZhbnQgZ2xvYmFsIG9iamVjdAorCkluZGV4OiBMYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvd2ViYXBwYXBpcy9zY3Jp
cHRpbmcvcmVwb3J0ZXJyb3ItY3Jvc3MtcmVhbG0tbWV0aG9kLmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3dlYmFwcGFw
aXMvc2NyaXB0aW5nL3JlcG9ydGVycm9yLWNyb3NzLXJlYWxtLW1ldGhvZC5odG1sCShub25leGlz
dGVudCkKKysrIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC93ZWJhcHBhcGlzL3NjcmlwdGluZy9yZXBvcnRlcnJvci1jcm9zcy1yZWFsbS1tZXRob2QuaHRt
bAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDMwIEBACis8IWRvY3R5cGUgaHRtbD4KKzxtZXRh
IGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5zZWxmLnJlcG9ydEVycm9yKCkgZGlzcGF0Y2hlcyBh
biAiZXJyb3IiIGV2ZW50IGZvciB0aGlzJ3MgcmVsZXZhbnQgZ2xvYmFsIG9iamVjdDwvdGl0bGU+
Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVs
dGlwYWdlL3dlYmFwcGFwaXMuaHRtbCNkb20tcmVwb3J0ZXJyb3IiPgorPHNjcmlwdCBzcmM9Ii9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorCis8Ym9keT4KKzxzY3JpcHQ+Citz
ZXR1cCh7IGFsbG93X3VuY2F1Z2h0X2V4Y2VwdGlvbjogdHJ1ZSB9KTsKKworYXN5bmNfdGVzdCh0
ID0+IHsKKyAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIiwgdC51bnJlYWNoZWRfZnVu
YygiJ2Vycm9yJyBldmVudCBzaG91bGQgbm90IGJlIGRpc3BhdGNoZWQgZm9yIHRvcCB3aW5kb3ch
IikpOworCisgIGNvbnN0IGlmcmFtZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIp
OworICBpZnJhbWUub25sb2FkID0gdC5zdGVwX2Z1bmNfZG9uZSgoKSA9PiB7CisgICAgbGV0IGV2
ZW50RmlyZWQgPSBmYWxzZTsKKyAgICBjb25zdCBlcnJvciA9IG5ldyBUeXBlRXJyb3IoImZvbyIp
OworICAgIGNvbnN0IG90aGVyV2luZG93ID0gaWZyYW1lLmNvbnRlbnRXaW5kb3c7CisgICAgb3Ro
ZXJXaW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiZXJyb3IiLCB0LnN0ZXBfZnVuYyhldmVudCA9PiB7
CisgICAgICBhc3NlcnRfZXF1YWxzKGV2ZW50LmVycm9yLCBlcnJvcik7CisgICAgICBldmVudEZp
cmVkID0gdHJ1ZTsKKyAgICB9KSk7CisKKyAgICB3aW5kb3cucmVwb3J0RXJyb3IuY2FsbChvdGhl
cldpbmRvdywgZXJyb3IpOworICAgIGFzc2VydF90cnVlKGV2ZW50RmlyZWQpOworICB9KTsKKyAg
ZG9jdW1lbnQuYm9keS5hcHBlbmQoaWZyYW1lKTsKK30pOworPC9zY3JpcHQ+CkluZGV4OiBMYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvd2ViYXBwYXBpcy9z
dHJ1Y3R1cmVkLWNsb25lL3N0cnVjdHVyZWQtY2xvbmUtY3Jvc3MtcmVhbG0tbWV0aG9kLWV4cGVj
dGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvd2ViYXBwYXBpcy9zdHJ1Y3R1cmVkLWNsb25lL3N0cnVjdHVyZWQtY2xv
bmUtY3Jvc3MtcmVhbG0tbWV0aG9kLWV4cGVjdGVkLnR4dAkobm9uZXhpc3RlbnQpCisrKyBMYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvd2ViYXBwYXBpcy9z
dHJ1Y3R1cmVkLWNsb25lL3N0cnVjdHVyZWQtY2xvbmUtY3Jvc3MtcmVhbG0tbWV0aG9kLWV4cGVj
dGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDcgQEAKKworCitQQVNTIE9iamVjdCBp
bnN0YW5jZQorUEFTUyBBcnJheSBpbnN0YW5jZQorUEFTUyBEYXRlIGluc3RhbmNlCitQQVNTIFJl
Z0V4cCBpbnN0YW5jZQorCkluZGV4OiBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvd2ViYXBwYXBpcy9zdHJ1Y3R1cmVkLWNsb25lL3N0cnVjdHVyZWQtY2xv
bmUtY3Jvc3MtcmVhbG0tbWV0aG9kLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3dlYmFwcGFwaXMvc3RydWN0dXJlZC1j
bG9uZS9zdHJ1Y3R1cmVkLWNsb25lLWNyb3NzLXJlYWxtLW1ldGhvZC5odG1sCShub25leGlzdGVu
dCkKKysrIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC93
ZWJhcHBhcGlzL3N0cnVjdHVyZWQtY2xvbmUvc3RydWN0dXJlZC1jbG9uZS1jcm9zcy1yZWFsbS1t
ZXRob2QuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDIwIEBACis8IWRvY3R5cGUgaHRt
bD4KKzx0aXRsZT5zZWxmLnN0cnVjdHVyZWRDbG9uZSgpIHVzZXMgdGhpcydzIHJlbGV2YW50IFJl
YWxtIGZvciBkZXNlcmlhbGl6YXRpb248L3RpdGxlPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJo
dHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9zdHJ1Y3R1cmVkLWRhdGEuaHRt
bCNzdHJ1Y3R1cmVkLWNsb25pbmciPgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5l
c3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBv
cnQuanMiPjwvc2NyaXB0PgorCis8Ym9keT4KKzxzY3JpcHQ+Citjb25zdCBpZnJhbWUgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKK2lmcmFtZS5vbmxvYWQgPSAoKSA9PiB7Cisg
IGNvbnN0IG90aGVyV2luZG93ID0gaWZyYW1lLmNvbnRlbnRXaW5kb3c7CisgIGZvciAoY29uc3Qg
a2V5IG9mIFsiT2JqZWN0IiwgIkFycmF5IiwgIkRhdGUiLCAiUmVnRXhwIl0pIHsKKyAgICB0ZXN0
KCgpID0+IHsKKyAgICAgIGNvbnN0IGNsb25lZCA9IG90aGVyV2luZG93LnN0cnVjdHVyZWRDbG9u
ZS5jYWxsKHdpbmRvdywgbmV3IG90aGVyV2luZG93W2tleV0pOworICAgICAgYXNzZXJ0X3RydWUo
Y2xvbmVkIGluc3RhbmNlb2Ygd2luZG93W2tleV0pOworICAgIH0sIGAke2tleX0gaW5zdGFuY2Vg
KTsKKyAgfQorfTsKK2RvY3VtZW50LmJvZHkuYXBwZW5kKGlmcmFtZSk7Cis8L3NjcmlwdD4KSW5k
ZXg6IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVxdWVzdGlk
bGVjYWxsYmFjay9jYWxsYmFjay10aW1lUmVtYWluaW5nLWNyb3NzLXJlYWxtLW1ldGhvZC1leHBl
Y3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9yZXF1ZXN0aWRsZWNhbGxiYWNrL2NhbGxiYWNrLXRpbWVSZW1haW5pbmctY3Jv
c3MtcmVhbG0tbWV0aG9kLWV4cGVjdGVkLnR4dAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3JlcXVlc3RpZGxlY2FsbGJhY2svY2Fs
bGJhY2stdGltZVJlbWFpbmluZy1jcm9zcy1yZWFsbS1tZXRob2QtZXhwZWN0ZWQudHh0CSh3b3Jr
aW5nIGNvcHkpCkBAIC0wLDAgKzEsNCBAQAorCisKK1BBU1MgSWRsZURlYWRsaW5lOjp0aW1lUmVt
YWluaW5nKCkgdXNlcyByZWxldmFudCBnbG9iYWwgb2JqZWN0IGFzIGEgaGlnaC1yZXMgdGltZXN0
YW1wIG9yaWdpbgorCkluZGV4OiBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3JlcXVlc3RpZGxlY2FsbGJhY2svY2FsbGJhY2stdGltZVJlbWFpbmluZy1jcm9zcy1y
ZWFsbS1tZXRob2QuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3JlcXVlc3RpZGxlY2FsbGJhY2svY2FsbGJhY2stdGltZVJlbWFp
bmluZy1jcm9zcy1yZWFsbS1tZXRob2QuaHRtbAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3JlcXVlc3RpZGxlY2FsbGJhY2svY2Fs
bGJhY2stdGltZVJlbWFpbmluZy1jcm9zcy1yZWFsbS1tZXRob2QuaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtMCwwICsxLDI1IEBACis8IWRvY3R5cGUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5l
ciBbIFJlcXVlc3RJZGxlQ2FsbGJhY2tFbmFibGVkPXRydWUgXSAtLT4KKzxtZXRhIGNoYXJzZXQ9
InV0Zi04Ij4KKzxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciPgorPHRpdGxlPklk
bGVEZWFkbGluZTo6dGltZVJlbWFpbmluZygpIHVzZXMgcmVsZXZhbnQgZ2xvYmFsIG9iamVjdCBh
cyBhIGhpZ2gtcmVzIHRpbWVzdGFtcCBvcmlnaW48L3RpdGxlPgorPGxpbmsgcmVsPSJoZWxwIiBo
cmVmPSJodHRwczovL3czYy5naXRodWIuaW8vcmVxdWVzdGlkbGVjYWxsYmFjay8jZG9tLWlkbGVk
ZWFkbGluZS10aW1lcmVtYWluaW5nIj4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzIj48L3NjcmlwdD4KKworPGJvZHk+Cis8c2NyaXB0PgorY29uc3QgdCA9IGFzeW5jX3Rl
c3QoKTsKK3Quc3RlcF90aW1lb3V0KCgpID0+IHsKKyAgY29uc3QgaWZyYW1lRGVsYXllZCA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOworICBpZnJhbWVEZWxheWVkLm9ubG9hZCA9
IHQuc3RlcF9mdW5jKCgpID0+IHsKKyAgICByZXF1ZXN0SWRsZUNhbGxiYWNrKHQuc3RlcF9mdW5j
X2RvbmUoZGVhZGxpbmUgPT4geworICAgICAgYXNzZXJ0X2FwcHJveF9lcXVhbHMoCisgICAgICAg
IGlmcmFtZURlbGF5ZWQuY29udGVudFdpbmRvdy5JZGxlRGVhZGxpbmUucHJvdG90eXBlLnRpbWVS
ZW1haW5pbmcuY2FsbChkZWFkbGluZSksCisgICAgICAgIGRlYWRsaW5lLnRpbWVSZW1haW5pbmco
KSwKKyAgICAgICAgNSwKKyAgICAgICk7CisgICAgfSkpOworICB9KTsKKyAgZG9jdW1lbnQuYm9k
eS5hcHBlbmQoaWZyYW1lRGVsYXllZCk7Cit9LCAxMDAwKTsKKzwvc2NyaXB0Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446847</attachid>
            <date>2021-12-10 17:03:58 -0800</date>
            <delta_ts>2021-12-10 18:27:54 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-230941-20211211010356.patch</filename>
            <type>text/plain</type>
            <size>51841</size>
            <attacher name="Alexey Shvayka">ashvayka</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI4Njg4MikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDgyIEBACisyMDIxLTEyLTEwICBBbGV4ZXkg
U2h2YXlrYSAgPGFzaHZheWthQGFwcGxlLmNvbT4KKworICAgICAgICBTb21lIFdlYklETCBvcGVy
YXRpb25zIC8gYXR0cmlidXRlcyBpbmNvcnJlY3RseSB1c2UgX2N1cnJlbnRfIHJlYWxtIGluc3Rl
YWQgb2YgX3JlbGV2YW50XworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjMwOTQxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2FtIFdlaW5pZy4KKworICAg
ICAgICBUaGlzIHBhdGNoIHJlcGxhY2VzIF9jdXJyZW50XyBnbG9iYWwgb2JqZWN0IHdpdGggX3Jl
bGV2YW50XywgYXMgcGVyIHJlY29tbWVuZGF0aW9uCisgICAgICAgIGZvciBzcGVjIGF1dGhvcnMg
WzFdLCBmb3Igc2VsZWN0IFdlYklETCBvcGVyYXRpb25zIC8gYXR0cmlidXRlcyB0aGF0IHNhdGlz
ZnkgYWxsCisgICAgICAgIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKworICAgICAgICAgIDEp
IGl0J3MgYW4gaW5zdGFuY2UgbWVtYmVyOiBzdGF0aWMgb25lcyBhbmQgY29uc3RydWN0b3JzIGNh
bid0IHVzZSBfcmVsZXZhbnRfOworICAgICAgICAgIDIpIGl0J3Mgb24gc3RhbmRhcmRzIHRyYWNr
IChub3QgZGVwcmVjYXRlZCAvIFdlYktpdC1vbmx5IC8gaW50ZXJuYWwpOworICAgICAgICAgIDMp
IHRoZSBjaGFuZ2UgaXMgZGlyZWN0bHkgb2JzZXJ2YWJsZTogZ2xvYmFsIG9iamVjdCBpcyB1c2Vk
IGZvciBzb21ldGhpbmcKKyAgICAgICAgICAgICBiZXlvbmQgbGlmZWN5Y2xlIC8gZXZlbnQgbG9v
cCAvIHBhcnNpbmcgQ1NTIGV0YzsKKyAgICAgICAgICA0KSB0aGUgY2hhbmdlIGVpdGhlciBhbGln
bnMgV2ViS2l0IHdpdGggYm90aCBCbGluayBhbmQgR2Vja28sCisgICAgICAgICAgICAgb3IgdGhl
IHNwZWMgZXhwbGljaXRseSByZXF1aXJlcyBfcmVsZXZhbnRfIHJlYWxtIC8gc2V0dGluZ3Mgb2Jq
ZWN0LgorCisgICAgICAgIE1vc3Qgb2YgdGhlIHJlbWFpbmluZyBbQ2FsbFdpdGg9R2xvYmFsT2Jq
ZWN0XSBpbnN0YW5jZXMgYXJlIGNvcnJlY3RseSB1c2VkIGZvcgorICAgICAgICBjb252ZXJ0aW5n
IEpTIGFyZ3VtZW50cyB0byBXZWJJREwgdmFsdWVzOyB0aGUgcmVzdCwgYWxvbmcgd2l0aCBfY3Vy
cmVudF8gRG9jdW1lbnQKKyAgICAgICAgYW5kIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIGVpdGhl
ciBtYXRjaCB0aGUgc3BlYyBvciByZXBsYWNpbmcgdGhlbSB3aXRoIF9yZWxldmFudF8KKyAgICAg
ICAgZ2xvYmFsIG9iamVjdCBpcyBub3QgZGlyZWN0bHkgb2JzZXJ2YWJsZSAoc2VlIGNvbmRpdGlv
biAjMykuCisKKyAgICAgICAgVGhpcyBjaGFuZ2UgaXMgYWltZWQgYXQgZml4aW5nIHdlYi1leHBv
c2VkIEFQSXMgcmF0aGVyIHRoYW4gcGVyZm9ybWluZyBhIGdsb2JhbCBjbGVhbnVwLgorCisgICAg
ICAgIFsxXSBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS93ZWJhcHBhcGlz
Lmh0bWwjY29uY2VwdC1jdXJyZW50LWV2ZXJ5dGhpbmcKKworICAgICAgICBUZXN0czogaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vZXZlbnRzL0V2ZW50LXRpbWVzdGFtcC1jcm9z
cy1yZWFsbS1nZXR0ZXIuaHRtbAorICAgICAgICAgICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL2hpc3RvcnkvdGhlLWhpc3RvcnktaW50ZXJmYWNlL2hp
c3RvcnlfYmFja19jcm9zc19yZWFsbV9tZXRob2QuaHRtbAorICAgICAgICAgICAgICAgaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL2hpc3RvcnkvdGhlLWhpc3Rv
cnktaW50ZXJmYWNlL2hpc3RvcnlfZm9yd2FyZF9jcm9zc19yZWFsbV9tZXRob2QuaHRtbAorICAg
ICAgICAgICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJz
L2hpc3RvcnkvdGhlLWhpc3RvcnktaW50ZXJmYWNlL2hpc3RvcnlfZ29fY3Jvc3NfcmVhbG1fbWV0
aG9kLmh0bWwKKyAgICAgICAgICAgICAgIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbC93ZWJhcHBhcGlzL3NjcmlwdGluZy9yZXBvcnRlcnJvci1jcm9zcy1yZWFsbS1tZXRob2Qu
aHRtbAorICAgICAgICAgICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1s
L3dlYmFwcGFwaXMvc3RydWN0dXJlZC1jbG9uZS9zdHJ1Y3R1cmVkLWNsb25lLWNyb3NzLXJlYWxt
LW1ldGhvZC5odG1sCisgICAgICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3JlcXVlc3RpZGxlY2FsbGJhY2svY2FsbGJhY2stdGltZVJlbWFpbmluZy1jcm9zcy1yZWFs
bS1tZXRob2QuaHRtbAorCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5p
ZGw6CisgICAgICAgIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9JbmRleGVkREIvI2RvbS1pZGJmYWN0
b3J5LW9wZW4gKHN0ZXAgMikKKyAgICAgICAgaHR0cHM6Ly93d3cudzMub3JnL1RSL0luZGV4ZWRE
Qi8jZG9tLWlkYmZhY3RvcnktZGVsZXRlZGF0YWJhc2UgKHN0ZXAgMSkKKyAgICAgICAgaHR0cHM6
Ly93d3cudzMub3JnL1RSL0luZGV4ZWREQi8jZG9tLWlkYmZhY3RvcnktZGF0YWJhc2VzIChzdGVw
IDEpCisKKyAgICAgICAgKiBNb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRSZXF1ZXN0Lmlk
bDoKKyAgICAgICAgaHR0cHM6Ly93d3cudzMub3JnL1RSL3BheW1lbnQtcmVxdWVzdC8jc2hvdy1t
ZXRob2QgKHN0ZXBzIDItNCkKKyAgICAgICAgaHR0cHM6Ly93d3cudzMub3JnL1RSL3BheW1lbnQt
cmVxdWVzdC8jY2FuLW1ha2UtcGF5bWVudC1hbGdvcml0aG0gKGJlZm9yZSBzdGVwIDEpCisKKyAg
ICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKEdl
bmVyYXRlQ2FsbFdpdGgpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRl
cy5qc29uOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3Bw
OgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbDoKKyAgICAgICAg
KiBkb20vRXZlbnQuaWRsOgorICAgICAgICBodHRwczovL2RvbS5zcGVjLndoYXR3Zy5vcmcvI2lu
bmVyLWV2ZW50LWNyZWF0aW9uLXN0ZXBzIChzdGVwIDMpCisKKyAgICAgICAgKiBkb20vSWRsZURl
YWRsaW5lLmlkbDoKKyAgICAgICAgaHR0cHM6Ly93M2MuZ2l0aHViLmlvL3JlcXVlc3RpZGxlY2Fs
bGJhY2svI3RoZS1yZXF1ZXN0aWRsZWNhbGxiYWNrLW1ldGhvZCAoc3RlcCAxKQorCisgICAgICAg
ICogcGFnZS9IaXN0b3J5LmlkbDoKKyAgICAgICAgaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9y
Zy9tdWx0aXBhZ2UvaGlzdG9yeS5odG1sI2RvbS1oaXN0b3J5LWdvIChzdGVwIDEpCisgICAgICAg
IGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL2hpc3RvcnkuaHRtbCNkb20t
aGlzdG9yeS1iYWNrIChzdGVwIDEpCisgICAgICAgIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5v
cmcvbXVsdGlwYWdlL2hpc3RvcnkuaHRtbCNkb20taGlzdG9yeS1mb3J3YXJkIChzdGVwIDEpCisK
KyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5k
b3c6OnNldFRpbWVvdXQpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpzZXRJbnRlcnZh
bCk6CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuaDoKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtl
ckdsb2JhbFNjb3BlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlckdsb2JhbFNjb3BlOjpz
ZXRUaW1lb3V0KToKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlckdsb2JhbFNjb3BlOjpzZXRJbnRl
cnZhbCk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5oOgorICAgICAgICBB
bHRob3VnaCBjb25kaXRpb24gIzQgaXNuJ3Qgc2F0aXNmaWVkIGZvciBzZXRUaW1lb3V0KCkgLyBz
ZXRJbnRlcnZhbCgpIGJlY2F1c2UKKyAgICAgICAgX2N1cnJlbnRfIGdsb2JhbCBvYmplY3QgaXMg
dXNlZCBvbmx5IGZvciBsb2dnaW5nLCByZXBsYWNpbmcgaXQgd2l0aCBfcmVsZXZhbnRfCisgICAg
ICAgIG5pY2VseSBjbGVhbnMgdXAgbWV0aG9kIHNpZ25hdHVyZXMuCisKKyAgICAgICAgKiBwYWdl
L1dpbmRvd09yV29ya2VyR2xvYmFsU2NvcGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2luZG93
T3JXb3JrZXJHbG9iYWxTY29wZTo6c3RydWN0dXJlZENsb25lKToKKyAgICAgICAgKiBwYWdlL1dp
bmRvd09yV29ya2VyR2xvYmFsU2NvcGUuaDoKKyAgICAgICAgKiBwYWdlL1dpbmRvd09yV29ya2Vy
R2xvYmFsU2NvcGUuaWRsOgorICAgICAgICBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211
bHRpcGFnZS93ZWJhcHBhcGlzLmh0bWwjcmVwb3J0LXRoZS1leGNlcHRpb24KKyAgICAgICAgaHR0
cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvc3RydWN0dXJlZC1kYXRhLmh0bWwj
c3RydWN0dXJlZC1jbG9uaW5nIChzdGVwIDIpCisKIDIwMjEtMTItMTAgIEFudG9pbmUgUXVpbnQg
IDxncmFvdXRzQHdlYmtpdC5vcmc+CiAKICAgICAgICAgRXhwb3NlIHRoZSBtYXhpbXVtIGRldmlj
ZSBmcmFtZSByYXRlIHRvIHRoZSBXZWIgQW5pbWF0aW9ucyBtb2RlbApJbmRleDogU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5pZGwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5pZGwJKHJldmlzaW9uIDI4
Njg4MikKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnkuaWRs
CSh3b3JraW5nIGNvcHkpCkBAIC0yNywxMCArMjcsMTAgQEAKICAgICBTa2lwVlRhYmxlVmFsaWRh
dGlvbiwKICAgICBFeHBvc2VkPShXaW5kb3csV29ya2VyKQogXSBpbnRlcmZhY2UgSURCRmFjdG9y
eSB7Ci0gICAgW05ld09iamVjdCwgQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gSURC
T3BlbkRCUmVxdWVzdCBvcGVuKERPTVN0cmluZyBuYW1lLCBvcHRpb25hbCBbRW5mb3JjZVJhbmdl
XSB1bnNpZ25lZCBsb25nIGxvbmcgdmVyc2lvbik7Ci0gICAgW05ld09iamVjdCwgQ2FsbFdpdGg9
U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gSURCT3BlbkRCUmVxdWVzdCBkZWxldGVEYXRhYmFzZShE
T01TdHJpbmcgbmFtZSk7CisgICAgW05ld09iamVjdCwgQ2FsbFdpdGg9UmVsZXZhbnRTY3JpcHRF
eGVjdXRpb25Db250ZXh0XSBJREJPcGVuREJSZXF1ZXN0IG9wZW4oRE9NU3RyaW5nIG5hbWUsIG9w
dGlvbmFsIFtFbmZvcmNlUmFuZ2VdIHVuc2lnbmVkIGxvbmcgbG9uZyB2ZXJzaW9uKTsKKyAgICBb
TmV3T2JqZWN0LCBDYWxsV2l0aD1SZWxldmFudFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIElEQk9w
ZW5EQlJlcXVlc3QgZGVsZXRlRGF0YWJhc2UoRE9NU3RyaW5nIG5hbWUpOwogICAgIAotICAgIFtD
YWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSBQcm9taXNlPHNlcXVlbmNlPElEQkRhdGFi
YXNlSW5mbz4+IGRhdGFiYXNlcygpOworICAgIFtDYWxsV2l0aD1SZWxldmFudFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHRdIFByb21pc2U8c2VxdWVuY2U8SURCRGF0YWJhc2VJbmZvPj4gZGF0YWJhc2Vz
KCk7CiAgICAgCiAgICAgW0NhbGxXaXRoPUdsb2JhbE9iamVjdF0gc2hvcnQgY21wKGFueSBmaXJz
dCwgYW55IHNlY29uZCk7CiB9OwpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50
cmVxdWVzdC9QYXltZW50UmVxdWVzdC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5pZGwJKHJldmlzaW9uIDI4Njg4
MikKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJlcXVl
c3QuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw5ICszMyw5IEBACiBdIGludGVyZmFjZSBQYXlt
ZW50UmVxdWVzdCA6IEV2ZW50VGFyZ2V0IHsKICAgICBbQ2FsbFdpdGg9RG9jdW1lbnRdIGNvbnN0
cnVjdG9yKHNlcXVlbmNlPFBheW1lbnRNZXRob2REYXRhPiBtZXRob2REYXRhLCBQYXltZW50RGV0
YWlsc0luaXQgZGV0YWlscywgb3B0aW9uYWwgUGF5bWVudE9wdGlvbnMgb3B0aW9ucyk7CiAKLSAg
ICBbQ2FsbFdpdGg9RG9jdW1lbnRdIFByb21pc2U8UGF5bWVudFJlc3BvbnNlPiBzaG93KG9wdGlv
bmFsIFByb21pc2U8UGF5bWVudERldGFpbHNVcGRhdGU+IGRldGFpbHNQcm9taXNlKTsKKyAgICBb
Q2FsbFdpdGg9UmVsZXZhbnREb2N1bWVudF0gUHJvbWlzZTxQYXltZW50UmVzcG9uc2U+IHNob3co
b3B0aW9uYWwgUHJvbWlzZTxQYXltZW50RGV0YWlsc1VwZGF0ZT4gZGV0YWlsc1Byb21pc2UpOwog
ICAgIFByb21pc2U8dW5kZWZpbmVkPiBhYm9ydCgpOwotICAgIFtDYWxsV2l0aD1Eb2N1bWVudF0g
UHJvbWlzZTxib29sZWFuPiBjYW5NYWtlUGF5bWVudCgpOworICAgIFtDYWxsV2l0aD1SZWxldmFu
dERvY3VtZW50XSBQcm9taXNlPGJvb2xlYW4+IGNhbk1ha2VQYXltZW50KCk7CiAKICAgICByZWFk
b25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGlkOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBQYXlt
ZW50QWRkcmVzcz8gc2hpcHBpbmdBZGRyZXNzOwpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0JKHJldmlzaW9uIDI4Njg4MikK
KysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCSh3
b3JraW5nIGNvcHkpCkBAIC01OTM2LDE1ICs1OTM2LDMwIEBAIHN1YiBHZW5lcmF0ZUNhbGxXaXRo
CiAgICAgICAgIHB1c2goQGNhbGxXaXRoQXJncywgIioke2dsb2JhbE9iamVjdH0iKTsKICAgICAg
ICAgcHVzaChAY2FsbFdpdGhBcmdzLCAkY2FsbEZyYW1lUmVmZXJlbmNlKTsKICAgICB9CisgICAg
IyBHbG9iYWwgb2JqZWN0IG9mIGN1cnJlbnQgcmVhbG0gKGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3
Zy5vcmcvbXVsdGlwYWdlL3dlYmFwcGFwaXMuaHRtbCNjb25jZXB0LWN1cnJlbnQtZXZlcnl0aGlu
ZykKICAgICBpZiAoJGNvZGVHZW5lcmF0b3ItPkV4dGVuZGVkQXR0cmlidXRlQ29udGFpbnMoJGNh
bGxXaXRoLCAiR2xvYmFsT2JqZWN0IikpIHsKICAgICAgICAgcHVzaChAY2FsbFdpdGhBcmdzLCAi
KiR7Z2xvYmFsT2JqZWN0fSIpOwogICAgIH0KKyAgICBteSAkcmVsZXZhbnRHbG9iYWxPYmplY3RQ
b2ludGVyID0gIigke3RoaXNSZWZlcmVuY2V9KS5nbG9iYWxPYmplY3QoKSI7CisgICAgIyBHbG9i
YWwgb2JqZWN0IG9mIHJlbGV2YW50IHJlYWxtIChodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3Jn
L211bHRpcGFnZS93ZWJhcHBhcGlzLmh0bWwjY29uY2VwdC1yZWxldmFudC1ldmVyeXRoaW5nKQor
ICAgIGlmICgkY29kZUdlbmVyYXRvci0+RXh0ZW5kZWRBdHRyaWJ1dGVDb250YWlucygkY2FsbFdp
dGgsICJSZWxldmFudEdsb2JhbE9iamVjdCIpKSB7CisgICAgICAgIHB1c2goQGNhbGxXaXRoQXJn
cywgIioke3JlbGV2YW50R2xvYmFsT2JqZWN0UG9pbnRlcn0iKTsKKyAgICB9CisgICAgIyBTY3Jp
cHQgZXhlY3V0aW9uIGNvbnRleHQgb2YgY3VycmVudCByZWFsbSAoaHR0cHM6Ly9odG1sLnNwZWMu
d2hhdHdnLm9yZy9tdWx0aXBhZ2Uvd2ViYXBwYXBpcy5odG1sI2NvbmNlcHQtY3VycmVudC1ldmVy
eXRoaW5nKQogICAgIGlmICgkY29kZUdlbmVyYXRvci0+RXh0ZW5kZWRBdHRyaWJ1dGVDb250YWlu
cygkY2FsbFdpdGgsICJTY3JpcHRFeGVjdXRpb25Db250ZXh0IikpIHsKICAgICAgICAgcHVzaChA
JG91dHB1dEFycmF5LCAkaW5kZW50IC4gImF1dG8qIGNvbnRleHQgPSAke3NjcmlwdEV4ZWN1dGlv
bkNvbnRleHRBY2Nlc3Nvcn0tPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTtcbiIpOwogICAgICAg
ICBwdXNoKEAkb3V0cHV0QXJyYXksICRpbmRlbnQgLiAiaWYgKFVOTElLRUxZKCFjb250ZXh0KSlc
biIpOwogICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICRpbmRlbnQgLiAiICAgIHJldHVybiIg
LiAoJGNvbnRleHRNaXNzaW5nID8gIiAiIC4gJGNvbnRleHRNaXNzaW5nIDogIiIpIC4gIjtcbiIp
OwogICAgICAgICBwdXNoKEBjYWxsV2l0aEFyZ3MsICIqY29udGV4dCIpOwogICAgIH0KKyAgICAj
IFNjcmlwdCBleGVjdXRpb24gY29udGV4dCBvZiByZWxldmFudCByZWFsbSAoaHR0cHM6Ly9odG1s
LnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvd2ViYXBwYXBpcy5odG1sI2NvbmNlcHQtcmVsZXZh
bnQtZXZlcnl0aGluZykKKyAgICBpZiAoJGNvZGVHZW5lcmF0b3ItPkV4dGVuZGVkQXR0cmlidXRl
Q29udGFpbnMoJGNhbGxXaXRoLCAiUmVsZXZhbnRTY3JpcHRFeGVjdXRpb25Db250ZXh0IikpIHsK
KyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAkaW5kZW50IC4gImF1dG8qIGNvbnRleHQgPSAk
e3JlbGV2YW50R2xvYmFsT2JqZWN0UG9pbnRlcn0tPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTtc
biIpOworICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICRpbmRlbnQgLiAiaWYgKFVOTElLRUxZ
KCFjb250ZXh0KSlcbiIpOworICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICRpbmRlbnQgLiAi
ICAgIHJldHVybiIgLiAoJGNvbnRleHRNaXNzaW5nID8gIiAiIC4gJGNvbnRleHRNaXNzaW5nIDog
IiIpIC4gIjtcbiIpOworICAgICAgICBwdXNoKEBjYWxsV2l0aEFyZ3MsICIqY29udGV4dCIpOwor
ICAgIH0KKyAgICAjIERvY3VtZW50IG9mIGN1cnJlbnQgcmVhbG0gKGh0dHBzOi8vaHRtbC5zcGVj
LndoYXR3Zy5vcmcvbXVsdGlwYWdlL3dlYmFwcGFwaXMuaHRtbCNjb25jZXB0LWN1cnJlbnQtZXZl
cnl0aGluZykKICAgICBpZiAoJGNvZGVHZW5lcmF0b3ItPkV4dGVuZGVkQXR0cmlidXRlQ29udGFp
bnMoJGNhbGxXaXRoLCAiRG9jdW1lbnQiKSkgewogICAgICAgICBBZGRUb0ltcGxJbmNsdWRlcygi
RG9jdW1lbnQuaCIpOwogICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICRpbmRlbnQgLiAiYXV0
byogY29udGV4dCA9ICR7c2NyaXB0RXhlY3V0aW9uQ29udGV4dEFjY2Vzc29yfS0+c2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCgpO1xuIik7CkBAIC01OTU0LDYgKzU5NjksMTYgQEAgc3ViIEdlbmVyYXRl
Q2FsbFdpdGgKICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAkaW5kZW50IC4gImF1dG8mIGRv
Y3VtZW50ID0gZG93bmNhc3Q8RG9jdW1lbnQ+KCpjb250ZXh0KTtcbiIpOwogICAgICAgICBwdXNo
KEBjYWxsV2l0aEFyZ3MsICJkb2N1bWVudCIpOwogICAgIH0KKyAgICAjIERvY3VtZW50IG9mIHJl
bGV2YW50IHJlYWxtIChodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS93ZWJh
cHBhcGlzLmh0bWwjY29uY2VwdC1yZWxldmFudC1ldmVyeXRoaW5nKQorICAgIGlmICgkY29kZUdl
bmVyYXRvci0+RXh0ZW5kZWRBdHRyaWJ1dGVDb250YWlucygkY2FsbFdpdGgsICJSZWxldmFudERv
Y3VtZW50IikpIHsKKyAgICAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIkRvY3VtZW50LmgiKTsKKyAg
ICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAkaW5kZW50IC4gImF1dG8qIGNvbnRleHQgPSAke3Jl
bGV2YW50R2xvYmFsT2JqZWN0UG9pbnRlcn0tPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTtcbiIp
OworICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICRpbmRlbnQgLiAiaWYgKFVOTElLRUxZKCFj
b250ZXh0KSlcbiIpOworICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICRpbmRlbnQgLiAiICAg
IHJldHVybiIgLiAoJGNvbnRleHRNaXNzaW5nID8gIiAiIC4gJGNvbnRleHRNaXNzaW5nIDogIiIp
IC4gIjtcbiIpOworICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICRpbmRlbnQgLiAiQVNTRVJU
KGNvbnRleHQtPmlzRG9jdW1lbnQoKSk7XG4iKTsKKyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5
LCAkaW5kZW50IC4gImF1dG8mIGRvY3VtZW50ID0gZG93bmNhc3Q8RG9jdW1lbnQ+KCpjb250ZXh0
KTtcbiIpOworICAgICAgICBwdXNoKEBjYWxsV2l0aEFyZ3MsICJkb2N1bWVudCIpOworICAgIH0K
ICAgICBpZiAoJGNvZGVHZW5lcmF0b3ItPkV4dGVuZGVkQXR0cmlidXRlQ29udGFpbnMoJGNhbGxX
aXRoLCAiSW5jdW1iZW50RG9jdW1lbnQiKSkgewogICAgICAgICBBZGRUb0ltcGxJbmNsdWRlcygi
RE9NV2luZG93LmgiKTsKICAgICAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIkpTRE9NV2luZG93QmFz
ZS5oIik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0
ZXMuanNvbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lE
TEF0dHJpYnV0ZXMuanNvbgkocmV2aXNpb24gMjg2ODgyKQorKysgU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLmpzb24JKHdvcmtpbmcgY29weSkKQEAgLTUxLDcg
KzUxLDExIEBACiAgICAgICAgIH0sCiAgICAgICAgICJDYWxsV2l0aCI6IHsKICAgICAgICAgICAg
ICJjb250ZXh0c0FsbG93ZWQiOiBbImF0dHJpYnV0ZSIsICJvcGVyYXRpb24iXSwKLSAgICAgICAg
ICAgICJ2YWx1ZXMiOiBbIkRvY3VtZW50IiwgIkV4ZWNTdGF0ZSIsICJTY3JpcHRFeGVjdXRpb25D
b250ZXh0IiwgIkdsb2JhbE9iamVjdCIsICJBY3RpdmVXaW5kb3ciLCAiRmlyc3RXaW5kb3ciLCAi
RW50cnlEb2N1bWVudCIsICJXb3JsZCIsICJQcm9wZXJ0eU5hbWUiXSwKKyAgICAgICAgICAgICJ2
YWx1ZXMiOiBbIkRvY3VtZW50IiwgIlJlbGV2YW50RG9jdW1lbnQiLCAiRXhlY1N0YXRlIiwgIlNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQiLCAiUmVsZXZhbnRTY3JpcHRFeGVjdXRpb25Db250ZXh0Iiwg
Ikdsb2JhbE9iamVjdCIsICJSZWxldmFudEdsb2JhbE9iamVjdCIsICJBY3RpdmVXaW5kb3ciLCAi
Rmlyc3RXaW5kb3ciLCAiRW50cnlEb2N1bWVudCIsICJXb3JsZCIsICJQcm9wZXJ0eU5hbWUiXSwK
KyAgICAgICAgICAgICJzdGFuZGFyZCI6IHsKKyAgICAgICAgICAgICAgICAidXJsIjogImh0dHBz
Oi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3dlYmFwcGFwaXMuaHRtbCNjb25jZXB0
LWN1cnJlbnQtZXZlcnl0aGluZyIsCisgICAgICAgICAgICAgICAgIm5vdGUiOiAiQ3VycmVudGx5
LCBEb2N1bWVudCAvIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQgLyBHbG9iYWxPYmplY3QgdmFsdWVz
IGRlbm90ZSBjdXJyZW50IHJlYWxtLCB3aGljaCBpcyBhIFtbUmVhbG1dXSBvZiB0aGUgY3VycmVu
dGx5LXJ1bm5pbmcgZnVuY3Rpb24gb2JqZWN0LiIKKyAgICAgICAgICAgIH0sCiAgICAgICAgICAg
ICAic3VwcG9ydHNDb25qdW5jdGlvbiI6IHRydWUKICAgICAgICAgfSwKICAgICAgICAgIkNoZWNr
U2VjdXJpdHkiOiB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
VGVzdE9iai5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L1Rlc3RPYmouaWRsCShyZXZpc2lvbiAyODY4ODIpCisrKyBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTE5MCwx
MSArMTkwLDE0IEBAIGVudW0gVGVzdENvbmZpZGVuY2UgeyAiaGlnaCIsICJraW5kYS1sb3cKIAog
ICAgIC8vICdDYWxsV2l0aCcgZXh0ZW5kZWQgYXR0cmlidXRlCiAgICAgW0NhbGxXaXRoPUdsb2Jh
bE9iamVjdF0gdW5kZWZpbmVkIHdpdGhFeGVjU3RhdGVWb2lkKCk7CisgICAgW0NhbGxXaXRoPVJl
bGV2YW50R2xvYmFsT2JqZWN0XSB1bmRlZmluZWQgd2l0aFJlbGV2YW50R2xvYmFsT2JqZWN0Vm9p
ZCgpOwogICAgIFtDYWxsV2l0aD1HbG9iYWxPYmplY3RdIFRlc3RPYmogd2l0aEV4ZWNTdGF0ZU9i
aigpOwogICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSB1bmRlZmluZWQgd2l0
aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKKyAgICBbQ2FsbFdpdGg9UmVsZXZhbnRTY3JpcHRF
eGVjdXRpb25Db250ZXh0XSB1bmRlZmluZWQgd2l0aFJlbGV2YW50U2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpOwogICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0JkV4ZWNTdGF0ZV0g
dW5kZWZpbmVkIHdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kRXhlY1N0YXRlKCk7CiAgICAg
W0NhbGxXaXRoPSAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCAgJiAgRXhlY1N0YXRlICBdIFRlc3RP
Ymogd2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRFeGVjU3RhdGVXaXRoU3BhY2VzKCk7CiAg
ICAgW0NhbGxXaXRoPURvY3VtZW50XSB1bmRlZmluZWQgd2l0aERvY3VtZW50QXJndW1lbnQoKTsK
KyAgICBbQ2FsbFdpdGg9UmVsZXZhbnREb2N1bWVudF0gdW5kZWZpbmVkIHdpdGhSZWxldmFudERv
Y3VtZW50QXJndW1lbnQoKTsKICAgICBbQ2FsbFdpdGg9SW5jdW1iZW50RG9jdW1lbnRdIHVuZGVm
aW5lZCB3aXRoQ2FsbGVyRG9jdW1lbnRBcmd1bWVudCgpOwogICAgIFtDYWxsV2l0aD1JbmN1bWJl
bnRXaW5kb3ddIHVuZGVmaW5lZCB3aXRoQ2FsbGVyV2luZG93QXJndW1lbnQoKTsKIApJbmRleDog
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE9iai5jcHAJKHJldmlzaW9uIDI4Njg4MikKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNTIwLDExICsx
NTIwLDE0IEBAIHN0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE8KIHN0YXRp
YyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX2Fk
ZEV2ZW50TGlzdGVuZXIpOwogc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25fcmVtb3ZlRXZlbnRMaXN0ZW5lcik7CiBzdGF0aWMgSlNDX0RF
Q0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl93aXRoRXhlY1N0
YXRlVm9pZCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbl93aXRoUmVsZXZhbnRHbG9iYWxPYmplY3RWb2lkKTsKIHN0YXRpYyBKU0Nf
REVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX3dpdGhFeGVj
U3RhdGVPYmopOwogc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25fd2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOworc3RhdGljIEpTQ19E
RUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fd2l0aFJlbGV2
YW50U2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7CiBzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl93aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dEFuZEV4ZWNTdGF0ZSk7CiBzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbl93aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZEV4ZWNTdGF0
ZVdpdGhTcGFjZXMpOwogc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25fd2l0aERvY3VtZW50QXJndW1lbnQpOworc3RhdGljIEpTQ19ERUNM
QVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fd2l0aFJlbGV2YW50
RG9jdW1lbnRBcmd1bWVudCk7CiBzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbl93aXRoQ2FsbGVyRG9jdW1lbnRBcmd1bWVudCk7CiBzdGF0
aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl93
aXRoQ2FsbGVyV2luZG93QXJndW1lbnQpOwogc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJ
T04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fbWV0aG9kV2l0aE9wdGlvbmFsQXJnKTsKQEAg
LTIyNDMsMTEgKzIyNDYsMTQgQEAgc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdE9i
alBybwogICAgIHsgImFkZEV2ZW50TGlzdGVuZXIiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlND
OjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qp
c3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
X2FkZEV2ZW50TGlzdGVuZXIpLCAoaW50cHRyX3QpICgyKSB9IH0sCiAgICAgeyAicmVtb3ZlRXZl
bnRMaXN0ZW5lciIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRl
OjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRp
dmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fcmVtb3ZlRXZlbnRMaXN0ZW5l
ciksIChpbnRwdHJfdCkgKDIpIH0gfSwKICAgICB7ICJ3aXRoRXhlY1N0YXRlVm9pZCIsIHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50
cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25fd2l0aEV4ZWNTdGF0ZVZvaWQpLCAoaW50cHRyX3QpICgwKSB9
IH0sCisgICAgeyAid2l0aFJlbGV2YW50R2xvYmFsT2JqZWN0Vm9pZCIsIHN0YXRpY19jYXN0PHVu
c2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7
IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25fd2l0aFJlbGV2YW50R2xvYmFsT2JqZWN0Vm9pZCksIChpbnRwdHJfdCkgKDAp
IH0gfSwKICAgICB7ICJ3aXRoRXhlY1N0YXRlT2JqIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpT
Qzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90
KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bl93aXRoRXhlY1N0YXRlT2JqKSwgKGludHB0cl90KSAoMCkgfSB9LAogICAgIHsgIndpdGhTY3Jp
cHRFeGVjdXRpb25Db250ZXh0Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlB
dHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0
PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl93aXRoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCksIChpbnRwdHJfdCkgKDApIH0gfSwKKyAgICB7ICJ3aXRoUmVsZXZh
bnRTY3JpcHRFeGVjdXRpb25Db250ZXh0Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJv
cGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRp
Y19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl93aXRo
UmVsZXZhbnRTY3JpcHRFeGVjdXRpb25Db250ZXh0KSwgKGludHB0cl90KSAoMCkgfSB9LAogICAg
IHsgIndpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kRXhlY1N0YXRlIiwgc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMs
IHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbl93aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZEV4ZWNTdGF0ZSksIChp
bnRwdHJfdCkgKDApIH0gfSwKICAgICB7ICJ3aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZEV4
ZWNTdGF0ZVdpdGhTcGFjZXMiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8
UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX3dpdGhTY3JpcHRF
eGVjdXRpb25Db250ZXh0QW5kRXhlY1N0YXRlV2l0aFNwYWNlcyksIChpbnRwdHJfdCkgKDApIH0g
fSwKICAgICB7ICJ3aXRoRG9jdW1lbnRBcmd1bWVudCIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJf
dClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25fd2l0aERvY3VtZW50QXJndW1lbnQpLCAoaW50cHRyX3QpICgwKSB9IH0sCisgICAgeyAid2l0
aFJlbGV2YW50RG9jdW1lbnRBcmd1bWVudCIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlBy
b3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0
aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fd2l0
aFJlbGV2YW50RG9jdW1lbnRBcmd1bWVudCksIChpbnRwdHJfdCkgKDApIH0gfSwKICAgICB7ICJ3
aXRoQ2FsbGVyRG9jdW1lbnRBcmd1bWVudCIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlBy
b3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0
aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fd2l0
aENhbGxlckRvY3VtZW50QXJndW1lbnQpLCAoaW50cHRyX3QpICgwKSB9IH0sCiAgICAgeyAid2l0
aENhbGxlcldpbmRvd0FyZ3VtZW50Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVy
dHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19j
YXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl93aXRoQ2Fs
bGVyV2luZG93QXJndW1lbnQpLCAoaW50cHRyX3QpICgwKSB9IH0sCiAgICAgeyAibWV0aG9kV2l0
aE9wdGlvbmFsQXJnIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1
dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05h
dGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9tZXRob2RXaXRoT3B0aW9u
YWxBcmcpLCAoaW50cHRyX3QpICgwKSB9IH0sCkBAIC02MjIwLDYgKzYyMjYsMjEgQEAgSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdAogICAgIHJldHVybiBJRExPcGVyYXRp
b248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl93aXRoRXhlY1N0
YXRlVm9pZEJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAid2l0aEV4ZWNT
dGF0ZVZvaWQiKTsKIH0KIAorc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uX3dpdGhSZWxldmFudEdsb2JhbE9iamVjdFZvaWRCb2R5KEpT
Qzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBj
YWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpDbGFzc1BhcmFtZXRl
ciBjYXN0ZWRUaGlzKQoreworICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFs
T2JqZWN0KTsKKyAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
KyAgICBVTlVTRURfUEFSQU0odGhyb3dTY29wZSk7CisgICAgVU5VU0VEX1BBUkFNKGNhbGxGcmFt
ZSk7CisgICAgYXV0byYgaW1wbCA9IGNhc3RlZFRoaXMtPndyYXBwZWQoKTsKKyAgICBSRUxFQVNF
X0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMVW5kZWZpbmVk
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgWyZdKCkgLT4gZGVjbHR5cGUoYXV0
bykgeyByZXR1cm4gaW1wbC53aXRoUmVsZXZhbnRHbG9iYWxPYmplY3RWb2lkKCooKmNhc3RlZFRo
aXMpLmdsb2JhbE9iamVjdCgpKTsgfSkpKTsKK30KKworSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX3dpdGhSZWxldmFudEdsb2JhbE9iamVjdFZvaWQs
IChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpKQoreworICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbl93aXRoUmVsZXZhbnRHbG9iYWxPYmplY3RWb2lkQm9keT4oKmxl
eGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJ3aXRoUmVsZXZhbnRHbG9iYWxPYmplY3RW
b2lkIik7Cit9CisKIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbl93aXRoRXhlY1N0YXRlT2JqQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFt
ZSBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKIHsK
ICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CkBAIC02MjUz
LDYgKzYyNzQsMjQgQEAgSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdAog
ICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbl93aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEJvZHk+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCAqY2FsbEZyYW1lLCAid2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQiKTsKIH0KIAor
c3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uX3dpdGhSZWxldmFudFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRCb2R5KEpTQzo6SlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5
cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlz
KQoreworICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKKyAg
ICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKyAgICBVTlVTRURf
UEFSQU0odGhyb3dTY29wZSk7CisgICAgVU5VU0VEX1BBUkFNKGNhbGxGcmFtZSk7CisgICAgYXV0
byYgaW1wbCA9IGNhc3RlZFRoaXMtPndyYXBwZWQoKTsKKyAgICBhdXRvKiBjb250ZXh0ID0gKCpj
YXN0ZWRUaGlzKS5nbG9iYWxPYmplY3QoKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOworICAg
IGlmIChVTkxJS0VMWSghY29udGV4dCkpCisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNVbmRlZmluZWQoKSk7CisgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFs
dWU6OmVuY29kZSh0b0pTPElETFVuZGVmaW5lZD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRocm93
U2NvcGUsIFsmXSgpIC0+IGRlY2x0eXBlKGF1dG8pIHsgcmV0dXJuIGltcGwud2l0aFJlbGV2YW50
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCgqY29udGV4dCk7IH0pKSk7Cit9CisKK0pTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl93aXRoUmVsZXZhbnRTY3Jp
cHRFeGVjdXRpb25Db250ZXh0LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK3sKKyAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVz
dE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fd2l0aFJlbGV2YW50U2NyaXB0
RXhlY3V0aW9uQ29udGV4dEJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAi
d2l0aFJlbGV2YW50U2NyaXB0RXhlY3V0aW9uQ29udGV4dCIpOworfQorCiBzdGF0aWMgaW5saW5l
IEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fd2l0aFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHRBbmRFeGVjU3RhdGVCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElE
TE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQogewogICAg
IGF1dG8mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKQEAgLTYzMDksNiAr
NjM0OCwyNiBAQCBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90CiAgICAg
cmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uX3dpdGhEb2N1bWVudEFyZ3VtZW50Qm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpj
YWxsRnJhbWUsICJ3aXRoRG9jdW1lbnRBcmd1bWVudCIpOwogfQogCitzdGF0aWMgaW5saW5lIEpT
Qzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fd2l0aFJlbGV2YW50
RG9jdW1lbnRBcmd1bWVudEJvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpT
VGVzdE9iaj46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCit7CisgICAgYXV0byYgdm0gPSBK
U0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOworICAgIGF1dG8gdGhyb3dTY29wZSA9IERF
Q0xBUkVfVEhST1dfU0NPUEUodm0pOworICAgIFVOVVNFRF9QQVJBTSh0aHJvd1Njb3BlKTsKKyAg
ICBVTlVTRURfUEFSQU0oY2FsbEZyYW1lKTsKKyAgICBhdXRvJiBpbXBsID0gY2FzdGVkVGhpcy0+
d3JhcHBlZCgpOworICAgIGF1dG8qIGNvbnRleHQgPSAoKmNhc3RlZFRoaXMpLmdsb2JhbE9iamVj
dCgpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7CisgICAgaWYgKFVOTElLRUxZKCFjb250ZXh0
KSkKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKKyAgICBB
U1NFUlQoY29udGV4dC0+aXNEb2N1bWVudCgpKTsKKyAgICBhdXRvJiBkb2N1bWVudCA9IGRvd25j
YXN0PERvY3VtZW50PigqY29udGV4dCk7CisgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2Nv
cGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETFVuZGVmaW5lZD4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsIHRocm93U2NvcGUsIFsmXSgpIC0+IGRlY2x0eXBlKGF1dG8pIHsgcmV0dXJuIGltcGwud2l0
aFJlbGV2YW50RG9jdW1lbnRBcmd1bWVudChkb2N1bWVudCk7IH0pKSk7Cit9CisKK0pTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl93aXRoUmVsZXZhbnRE
b2N1bWVudEFyZ3VtZW50LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKSkKK3sKKyAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9i
aj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fd2l0aFJlbGV2YW50RG9jdW1lbnRB
cmd1bWVudEJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAid2l0aFJlbGV2
YW50RG9jdW1lbnRBcmd1bWVudCIpOworfQorCiBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpT
VmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fd2l0aENhbGxlckRvY3VtZW50QXJndW1l
bnRCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2Fs
bEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpDbGFz
c1BhcmFtZXRlciBjYXN0ZWRUaGlzKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTShsZXhp
Y2FsR2xvYmFsT2JqZWN0KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9FdmVudC5pZGwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50LmlkbAkocmV2aXNpb24gMjg2ODgy
KQorKysgU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtNTEs
NyArNTEsNyBAQCB0eXBlZGVmIGRvdWJsZSBET01IaWdoUmVzVGltZVN0YW1wOwogICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBib29sZWFuIGNvbXBvc2VkOwogCiAgICAgW0xlZ2FjeVVuZm9yZ2VhYmxl
XSByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBpc1RydXN0ZWQ7Ci0gICAgW0NhbGxXaXRoPVNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQsIEltcGxlbWVudGVkQXM9dGltZVN0YW1wRm9yQmluZGluZ3Nd
IHJlYWRvbmx5IGF0dHJpYnV0ZSBET01IaWdoUmVzVGltZVN0YW1wIHRpbWVTdGFtcDsKKyAgICBb
Q2FsbFdpdGg9UmVsZXZhbnRTY3JpcHRFeGVjdXRpb25Db250ZXh0LCBJbXBsZW1lbnRlZEFzPXRp
bWVTdGFtcEZvckJpbmRpbmdzXSByZWFkb25seSBhdHRyaWJ1dGUgRE9NSGlnaFJlc1RpbWVTdGFt
cCB0aW1lU3RhbXA7CiAKICAgICB1bmRlZmluZWQgaW5pdEV2ZW50KERPTVN0cmluZyB0eXBlLCBv
cHRpb25hbCBib29sZWFuIGJ1YmJsZXMgPSBmYWxzZSwgb3B0aW9uYWwgYm9vbGVhbiBjYW5jZWxh
YmxlID0gZmFsc2UpOyAvLyBIaXN0b3JpY2FsLgogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20v
SWRsZURlYWRsaW5lLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vSWRsZURl
YWRsaW5lLmlkbAkocmV2aXNpb24gMjg2ODgyKQorKysgU291cmNlL1dlYkNvcmUvZG9tL0lkbGVE
ZWFkbGluZS5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDYgQEAgdHlwZWRlZiBkb3Vi
bGUgRE9NSGlnaFJlc1RpbWVTdGFtcDsKICAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlLAog
ICAgIEV4cG9zZWQ9V2luZG93CiBdIGludGVyZmFjZSBJZGxlRGVhZGxpbmUgewotICAgIFtDYWxs
V2l0aD1Eb2N1bWVudF0gRE9NSGlnaFJlc1RpbWVTdGFtcCB0aW1lUmVtYWluaW5nKCk7Ci0gICAg
W0NhbGxXaXRoPURvY3VtZW50XSByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBkaWRUaW1lb3V0
OworICAgIFtDYWxsV2l0aD1SZWxldmFudERvY3VtZW50XSBET01IaWdoUmVzVGltZVN0YW1wIHRp
bWVSZW1haW5pbmcoKTsKKyAgICBbQ2FsbFdpdGg9UmVsZXZhbnREb2N1bWVudF0gcmVhZG9ubHkg
YXR0cmlidXRlIGJvb2xlYW4gZGlkVGltZW91dDsKIH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
YWdlL0RPTVdpbmRvdy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9ET01X
aW5kb3cuY3BwCShyZXZpc2lvbiAyODY4ODIpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdp
bmRvdy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE3OTQsNyArMTc5NCw3IEBAIHZvaWQgRE9NV2lu
ZG93OjpyZXNpemVUbyhmbG9hdCB3aWR0aCwgZmwKICAgICBwYWdlLT5jaHJvbWUoKS5zZXRXaW5k
b3dSZWN0KGFkanVzdFdpbmRvd1JlY3QoKnBhZ2UsIHVwZGF0ZSkpOwogfQogCi1FeGNlcHRpb25P
cjxpbnQ+IERPTVdpbmRvdzo6c2V0VGltZW91dChKU0M6OkpTR2xvYmFsT2JqZWN0JiBzdGF0ZSwg
c3RkOjp1bmlxdWVfcHRyPFNjaGVkdWxlZEFjdGlvbj4gYWN0aW9uLCBpbnQgdGltZW91dCwgVmVj
dG9yPEpTQzo6U3Ryb25nPEpTQzo6VW5rbm93bj4+JiYgYXJndW1lbnRzKQorRXhjZXB0aW9uT3I8
aW50PiBET01XaW5kb3c6OnNldFRpbWVvdXQoc3RkOjp1bmlxdWVfcHRyPFNjaGVkdWxlZEFjdGlv
bj4gYWN0aW9uLCBpbnQgdGltZW91dCwgVmVjdG9yPEpTQzo6U3Ryb25nPEpTQzo6VW5rbm93bj4+
JiYgYXJndW1lbnRzKQogewogICAgIFJlZlB0ciBjb250ZXh0ID0gc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpOwogICAgIGlmICghY29udGV4dCkKQEAgLTE4MDIsNyArMTgwMiw3IEBAIEV4Y2VwdGlv
bk9yPGludD4gRE9NV2luZG93OjpzZXRUaW1lb3V0KEoKIAogICAgIC8vIEZJWE1FOiBTaG91bGQg
dGhpcyBjaGVjayByZWFsbHkgaGFwcGVuIGhlcmU/IE9yIHNob3VsZCBpdCBoYXBwZW4gd2hlbiBj
b2RlIGlzIGFib3V0IHRvIGV2YWw/CiAgICAgaWYgKGFjdGlvbi0+dHlwZSgpID09IFNjaGVkdWxl
ZEFjdGlvbjo6VHlwZTo6Q29kZSkgewotICAgICAgICBpZiAoIWNvbnRleHQtPmNvbnRlbnRTZWN1
cml0eVBvbGljeSgpLT5hbGxvd0V2YWwoJnN0YXRlLCBMb2dUb0NvbnNvbGU6OlllcykpCisgICAg
ICAgIGlmICghY29udGV4dC0+Y29udGVudFNlY3VyaXR5UG9saWN5KCktPmFsbG93RXZhbChjb250
ZXh0LT5nbG9iYWxPYmplY3QoKSwgTG9nVG9Db25zb2xlOjpZZXMpKQogICAgICAgICAgICAgcmV0
dXJuIDA7CiAgICAgfQogCkBAIC0xODE5LDcgKzE4MTksNyBAQCB2b2lkIERPTVdpbmRvdzo6Y2xl
YXJUaW1lb3V0KGludCB0aW1lb3V0CiAgICAgRE9NVGltZXI6OnJlbW92ZUJ5SWQoKmNvbnRleHQs
IHRpbWVvdXRJZCk7CiB9CiAKLUV4Y2VwdGlvbk9yPGludD4gRE9NV2luZG93OjpzZXRJbnRlcnZh
bChKU0M6OkpTR2xvYmFsT2JqZWN0JiBzdGF0ZSwgc3RkOjp1bmlxdWVfcHRyPFNjaGVkdWxlZEFj
dGlvbj4gYWN0aW9uLCBpbnQgdGltZW91dCwgVmVjdG9yPEpTQzo6U3Ryb25nPEpTQzo6VW5rbm93
bj4+JiYgYXJndW1lbnRzKQorRXhjZXB0aW9uT3I8aW50PiBET01XaW5kb3c6OnNldEludGVydmFs
KHN0ZDo6dW5pcXVlX3B0cjxTY2hlZHVsZWRBY3Rpb24+IGFjdGlvbiwgaW50IHRpbWVvdXQsIFZl
Y3RvcjxKU0M6OlN0cm9uZzxKU0M6OlVua25vd24+PiYmIGFyZ3VtZW50cykKIHsKICAgICBSZWZQ
dHIgY29udGV4dCA9IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKICAgICBpZiAoIWNvbnRleHQp
CkBAIC0xODI3LDcgKzE4MjcsNyBAQCBFeGNlcHRpb25PcjxpbnQ+IERPTVdpbmRvdzo6c2V0SW50
ZXJ2YWwoCiAKICAgICAvLyBGSVhNRTogU2hvdWxkIHRoaXMgY2hlY2sgcmVhbGx5IGhhcHBlbiBo
ZXJlPyBPciBzaG91bGQgaXQgaGFwcGVuIHdoZW4gY29kZSBpcyBhYm91dCB0byBldmFsPwogICAg
IGlmIChhY3Rpb24tPnR5cGUoKSA9PSBTY2hlZHVsZWRBY3Rpb246OlR5cGU6OkNvZGUpIHsKLSAg
ICAgICAgaWYgKCFjb250ZXh0LT5jb250ZW50U2VjdXJpdHlQb2xpY3koKS0+YWxsb3dFdmFsKCZz
dGF0ZSwgTG9nVG9Db25zb2xlOjpZZXMpKQorICAgICAgICBpZiAoIWNvbnRleHQtPmNvbnRlbnRT
ZWN1cml0eVBvbGljeSgpLT5hbGxvd0V2YWwoY29udGV4dC0+Z2xvYmFsT2JqZWN0KCksIExvZ1Rv
Q29uc29sZTo6WWVzKSkKICAgICAgICAgICAgIHJldHVybiAwOwogICAgIH0KIApJbmRleDogU291
cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wYWdlL0RPTVdpbmRvdy5oCShyZXZpc2lvbiAyODY4ODIpCisrKyBTb3VyY2UvV2ViQ29yZS9w
YWdlL0RPTVdpbmRvdy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOTMsOSArMjkzLDkgQEAgcHVibGlj
OgogICAgIFZpc3VhbFZpZXdwb3J0JiB2aXN1YWxWaWV3cG9ydCgpOwogCiAgICAgLy8gVGltZXJz
Ci0gICAgRXhjZXB0aW9uT3I8aW50PiBzZXRUaW1lb3V0KEpTQzo6SlNHbG9iYWxPYmplY3QmLCBz
dGQ6OnVuaXF1ZV9wdHI8U2NoZWR1bGVkQWN0aW9uPiwgaW50IHRpbWVvdXQsIFZlY3RvcjxKU0M6
OlN0cm9uZzxKU0M6OlVua25vd24+PiYmIGFyZ3VtZW50cyk7CisgICAgRXhjZXB0aW9uT3I8aW50
PiBzZXRUaW1lb3V0KHN0ZDo6dW5pcXVlX3B0cjxTY2hlZHVsZWRBY3Rpb24+LCBpbnQgdGltZW91
dCwgVmVjdG9yPEpTQzo6U3Ryb25nPEpTQzo6VW5rbm93bj4+JiYgYXJndW1lbnRzKTsKICAgICB2
b2lkIGNsZWFyVGltZW91dChpbnQgdGltZW91dElkKTsKLSAgICBFeGNlcHRpb25PcjxpbnQ+IHNl
dEludGVydmFsKEpTQzo6SlNHbG9iYWxPYmplY3QmLCBzdGQ6OnVuaXF1ZV9wdHI8U2NoZWR1bGVk
QWN0aW9uPiwgaW50IHRpbWVvdXQsIFZlY3RvcjxKU0M6OlN0cm9uZzxKU0M6OlVua25vd24+PiYm
IGFyZ3VtZW50cyk7CisgICAgRXhjZXB0aW9uT3I8aW50PiBzZXRJbnRlcnZhbChzdGQ6OnVuaXF1
ZV9wdHI8U2NoZWR1bGVkQWN0aW9uPiwgaW50IHRpbWVvdXQsIFZlY3RvcjxKU0M6OlN0cm9uZzxK
U0M6OlVua25vd24+PiYmIGFyZ3VtZW50cyk7CiAgICAgdm9pZCBjbGVhckludGVydmFsKGludCB0
aW1lb3V0SWQpOwogCiAgICAgaW50IHJlcXVlc3RBbmltYXRpb25GcmFtZShSZWY8UmVxdWVzdEFu
aW1hdGlvbkZyYW1lQ2FsbGJhY2s+JiYpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9IaXN0
b3J5LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0hpc3RvcnkuaWRsCShy
ZXZpc2lvbiAyODY4ODIpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0hpc3RvcnkuaWRsCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMyw5ICszMyw5IEBACiAgICAgYXR0cmlidXRlIFNjcm9sbFJlc3RvcmF0
aW9uIHNjcm9sbFJlc3RvcmF0aW9uOwogICAgIFtDdXN0b21dIHJlYWRvbmx5IGF0dHJpYnV0ZSBh
bnkgc3RhdGU7CiAKLSAgICBbQ2FsbFdpdGg9RG9jdW1lbnRdIHVuZGVmaW5lZCBiYWNrKCk7Ci0g
ICAgW0NhbGxXaXRoPURvY3VtZW50XSB1bmRlZmluZWQgZm9yd2FyZCgpOwotICAgIFtDYWxsV2l0
aD1Eb2N1bWVudF0gdW5kZWZpbmVkIGdvKG9wdGlvbmFsIGxvbmcgZGVsdGEgPSAwKTsKKyAgICBb
Q2FsbFdpdGg9UmVsZXZhbnREb2N1bWVudF0gdW5kZWZpbmVkIGJhY2soKTsKKyAgICBbQ2FsbFdp
dGg9UmVsZXZhbnREb2N1bWVudF0gdW5kZWZpbmVkIGZvcndhcmQoKTsKKyAgICBbQ2FsbFdpdGg9
UmVsZXZhbnREb2N1bWVudF0gdW5kZWZpbmVkIGdvKG9wdGlvbmFsIGxvbmcgZGVsdGEgPSAwKTsK
IAogICAgIC8vIEZJWE1FOiB0aXRsZSBzaG91bGQgbm90IGJlIG51bGxhYmxlIGFzIHBlciB0aGUg
SFRNTCBzcGVjaWZpY2F0aW9uLgogICAgIHVuZGVmaW5lZCBwdXNoU3RhdGUoU2VyaWFsaXplZFNj
cmlwdFZhbHVlIGRhdGEsIERPTVN0cmluZz8gdGl0bGUsIG9wdGlvbmFsIFVTVlN0cmluZz8gdXJs
ID0gbnVsbCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1dpbmRvd09yV29ya2VyR2xvYmFs
U2NvcGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvV2luZG93T3JXb3Jr
ZXJHbG9iYWxTY29wZS5jcHAJKHJldmlzaW9uIDI4Njg4MikKKysrIFNvdXJjZS9XZWJDb3JlL3Bh
Z2UvV2luZG93T3JXb3JrZXJHbG9iYWxTY29wZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDEw
ICs0NiwxMCBAQCB2b2lkIFdpbmRvd09yV29ya2VyR2xvYmFsU2NvcGU6OnJlcG9ydEVyCiAgICAg
cmVwb3J0RXhjZXB0aW9uKCZnbG9iYWxPYmplY3QsIGV4Y2VwdGlvbik7CiB9CiAKLUV4Y2VwdGlv
bk9yPEpTQzo6SlNWYWx1ZT4gV2luZG93T3JXb3JrZXJHbG9iYWxTY29wZTo6c3RydWN0dXJlZENs
b25lKEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QsIEpTQzo6SlNWYWx1ZSB2YWx1ZSwg
U3RydWN0dXJlZFNlcmlhbGl6ZU9wdGlvbnMmJiBvcHRpb25zKQorRXhjZXB0aW9uT3I8SlNDOjpK
U1ZhbHVlPiBXaW5kb3dPcldvcmtlckdsb2JhbFNjb3BlOjpzdHJ1Y3R1cmVkQ2xvbmUoSlNET01H
bG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTRE9NR2xvYmFsT2JqZWN0JiByZWxl
dmFudEdsb2JhbE9iamVjdCwgSlNDOjpKU1ZhbHVlIHZhbHVlLCBTdHJ1Y3R1cmVkU2VyaWFsaXpl
T3B0aW9ucyYmIG9wdGlvbnMpCiB7CiAgICAgVmVjdG9yPFJlZlB0cjxNZXNzYWdlUG9ydD4+IHBv
cnRzOwotICAgIGF1dG8gbWVzc2FnZURhdGEgPSBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmNyZWF0
ZShnbG9iYWxPYmplY3QsIHZhbHVlLCBXVEZNb3ZlKG9wdGlvbnMudHJhbnNmZXIpLCBwb3J0cywg
U2VyaWFsaXphdGlvbkNvbnRleHQ6OldpbmRvd1Bvc3RNZXNzYWdlKTsKKyAgICBhdXRvIG1lc3Nh
Z2VEYXRhID0gU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpjcmVhdGUobGV4aWNhbEdsb2JhbE9iamVj
dCwgdmFsdWUsIFdURk1vdmUob3B0aW9ucy50cmFuc2ZlciksIHBvcnRzLCBTZXJpYWxpemF0aW9u
Q29udGV4dDo6V2luZG93UG9zdE1lc3NhZ2UpOwogICAgIGlmIChtZXNzYWdlRGF0YS5oYXNFeGNl
cHRpb24oKSkKICAgICAgICAgcmV0dXJuIG1lc3NhZ2VEYXRhLnJlbGVhc2VFeGNlcHRpb24oKTsK
IApAQCAtNTgsMTAgKzU4LDEwIEBAIEV4Y2VwdGlvbk9yPEpTQzo6SlNWYWx1ZT4gV2luZG93T3JX
b3JrZXIKICAgICAgICAgcmV0dXJuIGRpc2VudGFuZ2xlZFBvcnRzLnJlbGVhc2VFeGNlcHRpb24o
KTsKIAogICAgIFZlY3RvcjxSZWZQdHI8TWVzc2FnZVBvcnQ+PiBlbnRhbmdsZWRQb3J0czsKLSAg
ICBpZiAoYXV0byogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCA9IGdsb2JhbE9iamVjdC5zY3JpcHRF
eGVjdXRpb25Db250ZXh0KCkpCisgICAgaWYgKGF1dG8qIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQg
PSByZWxldmFudEdsb2JhbE9iamVjdC5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCiAgICAgICAg
IGVudGFuZ2xlZFBvcnRzID0gTWVzc2FnZVBvcnQ6OmVudGFuZ2xlUG9ydHMoKnNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQsIGRpc2VudGFuZ2xlZFBvcnRzLnJlbGVhc2VSZXR1cm5WYWx1ZSgpKTsKIAot
ICAgIHJldHVybiBtZXNzYWdlRGF0YS5yZXR1cm5WYWx1ZSgpLT5kZXNlcmlhbGl6ZShnbG9iYWxP
YmplY3QsICZnbG9iYWxPYmplY3QsIFdURk1vdmUoZW50YW5nbGVkUG9ydHMpKTsKKyAgICByZXR1
cm4gbWVzc2FnZURhdGEucmV0dXJuVmFsdWUoKS0+ZGVzZXJpYWxpemUobGV4aWNhbEdsb2JhbE9i
amVjdCwgJnJlbGV2YW50R2xvYmFsT2JqZWN0LCBXVEZNb3ZlKGVudGFuZ2xlZFBvcnRzKSk7CiB9
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvV2lu
ZG93T3JXb3JrZXJHbG9iYWxTY29wZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Bh
Z2UvV2luZG93T3JXb3JrZXJHbG9iYWxTY29wZS5oCShyZXZpc2lvbiAyODY4ODIpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9wYWdlL1dpbmRvd09yV29ya2VyR2xvYmFsU2NvcGUuaAkod29ya2luZyBjb3B5
KQpAQCAtMzksNyArMzksNyBAQCBzdHJ1Y3QgU3RydWN0dXJlZFNlcmlhbGl6ZU9wdGlvbnM7CiBj
bGFzcyBXaW5kb3dPcldvcmtlckdsb2JhbFNjb3BlIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgdm9p
ZCByZXBvcnRFcnJvcihKU0RPTUdsb2JhbE9iamVjdCYsIEpTQzo6SlNWYWx1ZSk7Ci0gICAgc3Rh
dGljIEV4Y2VwdGlvbk9yPEpTQzo6SlNWYWx1ZT4gc3RydWN0dXJlZENsb25lKEpTRE9NR2xvYmFs
T2JqZWN0JiwgSlNDOjpKU1ZhbHVlLCBTdHJ1Y3R1cmVkU2VyaWFsaXplT3B0aW9ucyYmKTsKKyAg
ICBzdGF0aWMgRXhjZXB0aW9uT3I8SlNDOjpKU1ZhbHVlPiBzdHJ1Y3R1cmVkQ2xvbmUoSlNET01H
bG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTRE9NR2xvYmFsT2JqZWN0JiByZWxl
dmFudEdsb2JhbE9iamVjdCwgSlNDOjpKU1ZhbHVlLCBTdHJ1Y3R1cmVkU2VyaWFsaXplT3B0aW9u
cyYmKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3BhZ2UvV2luZG93T3JXb3JrZXJHbG9iYWxTY29wZS5pZGwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGFnZS9XaW5kb3dPcldvcmtlckdsb2JhbFNjb3BlLmlkbAkocmV2aXNpb24gMjg2
ODgyKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9XaW5kb3dPcldvcmtlckdsb2JhbFNjb3BlLmlk
bAkod29ya2luZyBjb3B5KQpAQCAtNDksNyArNDksNyBAQCBpbnRlcmZhY2UgbWl4aW4gV2luZG93
T3JXb3JrZXJHbG9iYWxTY29wCiAKICAgICBbRW5hYmxlZEJ5U2V0dGluZz1Dcm9zc09yaWdpbk9w
ZW5lclBvbGljeUVuYWJsZWRdIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGNyb3NzT3JpZ2lu
SXNvbGF0ZWQ7CiAKLSAgICBbQ2FsbFdpdGg9R2xvYmFsT2JqZWN0XSB1bmRlZmluZWQgcmVwb3J0
RXJyb3IoYW55IGVycm9yKTsKKyAgICBbQ2FsbFdpdGg9UmVsZXZhbnRHbG9iYWxPYmplY3RdIHVu
ZGVmaW5lZCByZXBvcnRFcnJvcihhbnkgZXJyb3IpOwogCiAgICAgLy8gQmFzZTY0IHV0aWxpdHkg
bWV0aG9kcy4KICAgICBET01TdHJpbmcgYXRvYihET01TdHJpbmcgc3RyaW5nKTsKQEAgLTU3LDEw
ICs1NywxMCBAQCBpbnRlcmZhY2UgbWl4aW4gV2luZG93T3JXb3JrZXJHbG9iYWxTY29wCiAKICAg
ICAvLyBUaW1lcnMuCiAgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIHRha2UgYSBUaW1lckhhbmRs
ZXIgKGEuay5hLiAoRE9NU3RyaW5nIG9yIEZ1bmN0aW9uKSkgcmF0aGVyIHRoYW4gYSBTY2hlZHVs
ZWRBY3Rpb24uCi0gICAgW0NhbGxXaXRoPUdsb2JhbE9iamVjdF0gbG9uZyBzZXRUaW1lb3V0KFNj
aGVkdWxlZEFjdGlvbiBoYW5kbGVyLCBvcHRpb25hbCBsb25nIHRpbWVvdXQgPSAwLCBhbnkuLi4g
YXJndW1lbnRzKTsKKyAgICBsb25nIHNldFRpbWVvdXQoU2NoZWR1bGVkQWN0aW9uIGhhbmRsZXIs
IG9wdGlvbmFsIGxvbmcgdGltZW91dCA9IDAsIGFueS4uLiBhcmd1bWVudHMpOwogICAgIHVuZGVm
aW5lZCBjbGVhclRpbWVvdXQob3B0aW9uYWwgbG9uZyBoYW5kbGUgPSAwKTsKICAgICAvLyBGSVhN
RTogVGhpcyBzaG91bGQgdGFrZSBhIFRpbWVySGFuZGxlciAoYS5rLmEuIChET01TdHJpbmcgb3Ig
RnVuY3Rpb24pKSByYXRoZXIgdGhhbiBhIFNjaGVkdWxlZEFjdGlvbi4KLSAgICBbQ2FsbFdpdGg9
R2xvYmFsT2JqZWN0XSBsb25nIHNldEludGVydmFsKFNjaGVkdWxlZEFjdGlvbiBoYW5kbGVyLCBv
cHRpb25hbCBsb25nIHRpbWVvdXQgPSAwLCBhbnkuLi4gYXJndW1lbnRzKTsKKyAgICBsb25nIHNl
dEludGVydmFsKFNjaGVkdWxlZEFjdGlvbiBoYW5kbGVyLCBvcHRpb25hbCBsb25nIHRpbWVvdXQg
PSAwLCBhbnkuLi4gYXJndW1lbnRzKTsKICAgICB1bmRlZmluZWQgY2xlYXJJbnRlcnZhbChvcHRp
b25hbCBsb25nIGhhbmRsZSA9IDApOwogCiAgICAgLy8gbWljcm90YXNrIHF1ZXVpbmcuCkBAIC03
MSw1ICs3MSw1IEBAIGludGVyZmFjZSBtaXhpbiBXaW5kb3dPcldvcmtlckdsb2JhbFNjb3AKICAg
ICBbRW5hYmxlZEF0UnVudGltZT1JbWFnZUJpdG1hcEVuYWJsZWRdIFByb21pc2U8SW1hZ2VCaXRt
YXA+IGNyZWF0ZUltYWdlQml0bWFwKEltYWdlQml0bWFwU291cmNlIGltYWdlLCBsb25nIHN4LCBs
b25nIHN5LCBsb25nIHN3LCBsb25nIHNoLCBvcHRpb25hbCBJbWFnZUJpdG1hcE9wdGlvbnMgb3B0
aW9ucyk7CiAKICAgICAvLyBzdHJ1Y3R1cmVkIGNsb25pbmcKLSAgICBbQ2FsbFdpdGg9R2xvYmFs
T2JqZWN0XSBhbnkgc3RydWN0dXJlZENsb25lKGFueSB2YWx1ZSwgb3B0aW9uYWwgU3RydWN0dXJl
ZFNlcmlhbGl6ZU9wdGlvbnMgb3B0aW9ucyk7CisgICAgW0NhbGxXaXRoPUdsb2JhbE9iamVjdCZS
ZWxldmFudEdsb2JhbE9iamVjdF0gYW55IHN0cnVjdHVyZWRDbG9uZShhbnkgdmFsdWUsIG9wdGlv
bmFsIFN0cnVjdHVyZWRTZXJpYWxpemVPcHRpb25zIG9wdGlvbnMpOwogfTsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuY3BwCShyZXZpc2lvbiAyODY4
ODIpCisrKyBTb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMzAyLDExICszMDIsMTEgQEAgdm9pZCBXb3JrZXJHbG9iYWxTY29wZTo6
c2V0SXNPbmxpbmUoYm9vbAogICAgICAgICBtX25hdmlnYXRvci0+c2V0SXNPbmxpbmUoaXNPbmxp
bmUpOwogfQogCi1FeGNlcHRpb25PcjxpbnQ+IFdvcmtlckdsb2JhbFNjb3BlOjpzZXRUaW1lb3V0
KEpTQzo6SlNHbG9iYWxPYmplY3QmIHN0YXRlLCBzdGQ6OnVuaXF1ZV9wdHI8U2NoZWR1bGVkQWN0
aW9uPiBhY3Rpb24sIGludCB0aW1lb3V0LCBWZWN0b3I8SlNDOjpTdHJvbmc8SlNDOjpVbmtub3du
Pj4mJiBhcmd1bWVudHMpCitFeGNlcHRpb25PcjxpbnQ+IFdvcmtlckdsb2JhbFNjb3BlOjpzZXRU
aW1lb3V0KHN0ZDo6dW5pcXVlX3B0cjxTY2hlZHVsZWRBY3Rpb24+IGFjdGlvbiwgaW50IHRpbWVv
dXQsIFZlY3RvcjxKU0M6OlN0cm9uZzxKU0M6OlVua25vd24+PiYmIGFyZ3VtZW50cykKIHsKICAg
ICAvLyBGSVhNRTogU2hvdWxkIHRoaXMgY2hlY2sgcmVhbGx5IGhhcHBlbiBoZXJlPyBPciBzaG91
bGQgaXQgaGFwcGVuIHdoZW4gY29kZSBpcyBhYm91dCB0byBldmFsPwogICAgIGlmIChhY3Rpb24t
PnR5cGUoKSA9PSBTY2hlZHVsZWRBY3Rpb246OlR5cGU6OkNvZGUpIHsKLSAgICAgICAgaWYgKCFj
b250ZW50U2VjdXJpdHlQb2xpY3koKS0+YWxsb3dFdmFsKCZzdGF0ZSwgTG9nVG9Db25zb2xlOjpZ
ZXMpKQorICAgICAgICBpZiAoIWNvbnRlbnRTZWN1cml0eVBvbGljeSgpLT5hbGxvd0V2YWwoZ2xv
YmFsT2JqZWN0KCksIExvZ1RvQ29uc29sZTo6WWVzKSkKICAgICAgICAgICAgIHJldHVybiAwOwog
ICAgIH0KIApAQCAtMzIwLDExICszMjAsMTEgQEAgdm9pZCBXb3JrZXJHbG9iYWxTY29wZTo6Y2xl
YXJUaW1lb3V0KGludAogICAgIERPTVRpbWVyOjpyZW1vdmVCeUlkKCp0aGlzLCB0aW1lb3V0SWQp
OwogfQogCi1FeGNlcHRpb25PcjxpbnQ+IFdvcmtlckdsb2JhbFNjb3BlOjpzZXRJbnRlcnZhbChK
U0M6OkpTR2xvYmFsT2JqZWN0JiBzdGF0ZSwgc3RkOjp1bmlxdWVfcHRyPFNjaGVkdWxlZEFjdGlv
bj4gYWN0aW9uLCBpbnQgdGltZW91dCwgVmVjdG9yPEpTQzo6U3Ryb25nPEpTQzo6VW5rbm93bj4+
JiYgYXJndW1lbnRzKQorRXhjZXB0aW9uT3I8aW50PiBXb3JrZXJHbG9iYWxTY29wZTo6c2V0SW50
ZXJ2YWwoc3RkOjp1bmlxdWVfcHRyPFNjaGVkdWxlZEFjdGlvbj4gYWN0aW9uLCBpbnQgdGltZW91
dCwgVmVjdG9yPEpTQzo6U3Ryb25nPEpTQzo6VW5rbm93bj4+JiYgYXJndW1lbnRzKQogewogICAg
IC8vIEZJWE1FOiBTaG91bGQgdGhpcyBjaGVjayByZWFsbHkgaGFwcGVuIGhlcmU/IE9yIHNob3Vs
ZCBpdCBoYXBwZW4gd2hlbiBjb2RlIGlzIGFib3V0IHRvIGV2YWw/CiAgICAgaWYgKGFjdGlvbi0+
dHlwZSgpID09IFNjaGVkdWxlZEFjdGlvbjo6VHlwZTo6Q29kZSkgewotICAgICAgICBpZiAoIWNv
bnRlbnRTZWN1cml0eVBvbGljeSgpLT5hbGxvd0V2YWwoJnN0YXRlLCBMb2dUb0NvbnNvbGU6Olll
cykpCisgICAgICAgIGlmICghY29udGVudFNlY3VyaXR5UG9saWN5KCktPmFsbG93RXZhbChnbG9i
YWxPYmplY3QoKSwgTG9nVG9Db25zb2xlOjpZZXMpKQogICAgICAgICAgICAgcmV0dXJuIDA7CiAg
ICAgfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5o
CShyZXZpc2lvbiAyODY4ODIpCisrKyBTb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2Jh
bFNjb3BlLmgJKHdvcmtpbmcgY29weSkKQEAgLTExMiw5ICsxMTIsOSBAQCBwdWJsaWM6CiAKICAg
ICB2b2lkIHNldElzT25saW5lKGJvb2wpOwogCi0gICAgRXhjZXB0aW9uT3I8aW50PiBzZXRUaW1l
b3V0KEpTQzo6SlNHbG9iYWxPYmplY3QmLCBzdGQ6OnVuaXF1ZV9wdHI8U2NoZWR1bGVkQWN0aW9u
PiwgaW50IHRpbWVvdXQsIFZlY3RvcjxKU0M6OlN0cm9uZzxKU0M6OlVua25vd24+PiYmIGFyZ3Vt
ZW50cyk7CisgICAgRXhjZXB0aW9uT3I8aW50PiBzZXRUaW1lb3V0KHN0ZDo6dW5pcXVlX3B0cjxT
Y2hlZHVsZWRBY3Rpb24+LCBpbnQgdGltZW91dCwgVmVjdG9yPEpTQzo6U3Ryb25nPEpTQzo6VW5r
bm93bj4+JiYgYXJndW1lbnRzKTsKICAgICB2b2lkIGNsZWFyVGltZW91dChpbnQgdGltZW91dElk
KTsKLSAgICBFeGNlcHRpb25PcjxpbnQ+IHNldEludGVydmFsKEpTQzo6SlNHbG9iYWxPYmplY3Qm
LCBzdGQ6OnVuaXF1ZV9wdHI8U2NoZWR1bGVkQWN0aW9uPiwgaW50IHRpbWVvdXQsIFZlY3RvcjxK
U0M6OlN0cm9uZzxKU0M6OlVua25vd24+PiYmIGFyZ3VtZW50cyk7CisgICAgRXhjZXB0aW9uT3I8
aW50PiBzZXRJbnRlcnZhbChzdGQ6OnVuaXF1ZV9wdHI8U2NoZWR1bGVkQWN0aW9uPiwgaW50IHRp
bWVvdXQsIFZlY3RvcjxKU0M6OlN0cm9uZzxKU0M6OlVua25vd24+PiYmIGFyZ3VtZW50cyk7CiAg
ICAgdm9pZCBjbGVhckludGVydmFsKGludCB0aW1lb3V0SWQpOwogCiAgICAgYm9vbCBpc1NlY3Vy
ZUNvbnRleHQoKSBjb25zdCBmaW5hbDsKSW5kZXg6IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9D
aGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxv
ZwkocmV2aXNpb24gMjg2ODgyKQorKysgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBACisyMDIxLTEyLTEwICBBbGV4ZXkgU2h2
YXlrYSAgPGFzaHZheWthQGFwcGxlLmNvbT4KKworICAgICAgICBTb21lIFdlYklETCBvcGVyYXRp
b25zIC8gYXR0cmlidXRlcyBpbmNvcnJlY3RseSB1c2UgX2N1cnJlbnRfIHJlYWxtIGluc3RlYWQg
b2YgX3JlbGV2YW50XworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjMwOTQxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2FtIFdlaW5pZy4KKworICAgICAg
ICBJbXBvcnQgV1BUIHRlc3RzIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10
ZXN0cy93cHQvcHVsbC8zMjAxMi4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9kb20v
ZXZlbnRzL0V2ZW50LXRpbWVzdGFtcC1jcm9zcy1yZWFsbS1nZXR0ZXItZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9FdmVudC10aW1l
c3RhbXAtY3Jvc3MtcmVhbG0tZ2V0dGVyLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL2hpc3RvcnkvdGhlLWhpc3RvcnktaW50ZXJmYWNlL2hp
c3RvcnlfYmFja19jcm9zc19yZWFsbV9tZXRob2QtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy9oaXN0b3J5L3RoZS1oaXN0b3J5
LWludGVyZmFjZS9oaXN0b3J5X2JhY2tfY3Jvc3NfcmVhbG1fbWV0aG9kLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL2hpc3RvcnkvdGhlLWhp
c3RvcnktaW50ZXJmYWNlL2hpc3RvcnlfZm9yd2FyZF9jcm9zc19yZWFsbV9tZXRob2QtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vy
cy9oaXN0b3J5L3RoZS1oaXN0b3J5LWludGVyZmFjZS9oaXN0b3J5X2ZvcndhcmRfY3Jvc3NfcmVh
bG1fbWV0aG9kLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9odG1s
L2Jyb3dzZXJzL2hpc3RvcnkvdGhlLWhpc3RvcnktaW50ZXJmYWNlL2hpc3RvcnlfZ29fY3Jvc3Nf
cmVhbG1fbWV0aG9kLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvYnJvd3NlcnMvaGlzdG9yeS90aGUtaGlzdG9yeS1pbnRlcmZhY2UvaGlzdG9y
eV9nb19jcm9zc19yZWFsbV9tZXRob2QuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvd2ViYXBwYXBpcy9zY3JpcHRpbmcvcmVwb3J0ZXJyb3ItY3Jvc3MtcmVh
bG0tbWV0aG9kLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvd2ViYXBwYXBpcy9zY3JpcHRpbmcvcmVwb3J0ZXJyb3ItY3Jvc3MtcmVhbG0tbWV0
aG9kLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3dlYmFw
cGFwaXMvc3RydWN0dXJlZC1jbG9uZS9zdHJ1Y3R1cmVkLWNsb25lLWNyb3NzLXJlYWxtLW1ldGhv
ZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9odG1s
L3dlYmFwcGFwaXMvc3RydWN0dXJlZC1jbG9uZS9zdHJ1Y3R1cmVkLWNsb25lLWNyb3NzLXJlYWxt
LW1ldGhvZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvcmVxdWVz
dGlkbGVjYWxsYmFjay9jYWxsYmFjay10aW1lUmVtYWluaW5nLWNyb3NzLXJlYWxtLW1ldGhvZC1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9yZXF1ZXN0
aWRsZWNhbGxiYWNrL2NhbGxiYWNrLXRpbWVSZW1haW5pbmctY3Jvc3MtcmVhbG0tbWV0aG9kLmh0
bWw6IEFkZGVkLgorCiAyMDIxLTEyLTEwICBBbGV4ZXkgU2h2YXlrYSAgPGFzaHZheWthQGFwcGxl
LmNvbT4KIAogICAgICAgICBFeHRlbmQgdGhlIHNjb3BlIHdoZXJlIHRoZSBXaW5kb3cncyBjdXJy
ZW50IGV2ZW50IGlzIHNldApJbmRleDogTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9kb20vZXZlbnRzL0V2ZW50LXRpbWVzdGFtcC1jcm9zcy1yZWFsbS1nZXR0ZXIt
ZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9FdmVudC10aW1lc3RhbXAtY3Jvc3MtcmVhbG0tZ2V0
dGVyLWV4cGVjdGVkLnR4dAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVudHMvRXZlbnQtdGltZXN0YW1wLWNyb3NzLXJl
YWxtLWdldHRlci1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0IEBACisK
KworUEFTUyBldmVudC50aW1lU3RhbXAgaXMgaW5pdGlhbGl6ZWQgdXNpbmcgZXZlbnQncyByZWxl
dmFudCBnbG9iYWwgb2JqZWN0CisKSW5kZXg6IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9FdmVudC10aW1lc3RhbXAtY3Jvc3MtcmVhbG0tZ2V0
dGVyLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9kb20vZXZlbnRzL0V2ZW50LXRpbWVzdGFtcC1jcm9zcy1yZWFsbS1nZXR0ZXIu
aHRtbAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2RvbS9ldmVudHMvRXZlbnQtdGltZXN0YW1wLWNyb3NzLXJlYWxtLWdldHRlci5o
dG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjcgQEAKKzwhZG9jdHlwZSBodG1sPgorPG1l
dGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPmV2ZW50LnRpbWVTdGFtcCBpcyBpbml0aWFsaXpl
ZCB1c2luZyBldmVudCdzIHJlbGV2YW50IGdsb2JhbCBvYmplY3Q8L3RpdGxlPgorPGxpbmsgcmVs
PSJoZWxwIiBocmVmPSJodHRwczovL2RvbS5zcGVjLndoYXR3Zy5vcmcvI3JlZi1mb3ItZG9tLWV2
ZW50LXRpbWVzdGFtcCVFMiU5MSVBMSI+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFy
bmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3Jl
cG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxib2R5PgorPHNjcmlwdD4KK2NvbnN0IHQgPSBhc3luY190
ZXN0KCk7Cit0LnN0ZXBfdGltZW91dCgoKSA9PiB7CisgIGNvbnN0IGlmcmFtZURlbGF5ZWQgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKKyAgaWZyYW1lRGVsYXllZC5vbmxvYWQg
PSB0LnN0ZXBfZnVuY19kb25lKCgpID0+IHsKKyAgICAvLyBVc2UgZXZhbCgpIHRvIGVsaW1pbmF0
ZSBmYWxzZS1wb3NpdGl2ZSB0ZXN0IHJlc3VsdCBmb3IgV2ViS2l0IGJ1aWxkcyBiZWZvcmUgcjI4
MDI1NiwKKyAgICAvLyB3aGljaCBpbnZva2VkIFdlYklETCBhY2Nlc3NvcnMgaW4gY29udGV4dCBv
ZiBsZXhpY2FsIChjYWxsZXIpIGdsb2JhbCBvYmplY3QuCisgICAgY29uc3QgdGltZVN0YW1wRXhw
ZWN0ZWQgPSBpZnJhbWVEZWxheWVkLmNvbnRlbnRXaW5kb3cuZXZhbChgbmV3IEV2ZW50KCJmb28i
KS50aW1lU3RhbXBgKTsKKyAgICBjb25zdCBldmVudERlbGF5ZWQgPSBuZXcgaWZyYW1lRGVsYXll
ZC5jb250ZW50V2luZG93LkV2ZW50KCJmb28iKTsKKworICAgIGNvbnN0IHtnZXR9ID0gT2JqZWN0
LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFdmVudC5wcm90b3R5cGUsICJ0aW1lU3RhbXAiKTsK
KyAgICBhc3NlcnRfYXBwcm94X2VxdWFscyhnZXQuY2FsbChldmVudERlbGF5ZWQpLCB0aW1lU3Rh
bXBFeHBlY3RlZCwgNSwgInZpYSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIik7CisK
KyAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YoZXZlbnREZWxheWVkLCBFdmVudC5wcm90b3R5cGUp
OworICAgIGFzc2VydF9hcHByb3hfZXF1YWxzKGV2ZW50RGVsYXllZC50aW1lU3RhbXAsIHRpbWVT
dGFtcEV4cGVjdGVkLCA1LCAidmlhIE9iamVjdC5zZXRQcm90b3R5cGVPZiIpOworICB9KTsKKyAg
ZG9jdW1lbnQuYm9keS5hcHBlbmQoaWZyYW1lRGVsYXllZCk7Cit9LCAxMDAwKTsKKzwvc2NyaXB0
PgpJbmRleDogTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1s
L2Jyb3dzZXJzL2hpc3RvcnkvdGhlLWhpc3RvcnktaW50ZXJmYWNlL2hpc3RvcnlfYmFja19jcm9z
c19yZWFsbV9tZXRob2QtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy9oaXN0b3J5L3RoZS1o
aXN0b3J5LWludGVyZmFjZS9oaXN0b3J5X2JhY2tfY3Jvc3NfcmVhbG1fbWV0aG9kLWV4cGVjdGVk
LnR4dAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvaGlzdG9yeS90aGUtaGlzdG9yeS1pbnRlcmZhY2UvaGlz
dG9yeV9iYWNrX2Nyb3NzX3JlYWxtX21ldGhvZC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkK
QEAgLTAsMCArMSw0IEBACisKKworUEFTUyBoaXN0b3J5LmJhY2soKSB1c2VzIHRoaXMncyBhc3Nv
Y2lhdGVkIGRvY3VtZW50J3MgYnJvd3NpbmcgY29udGV4dCB0byBkZXRlcm1pbmUgaWYgbmF2aWdh
dGlvbiBpcyBhbGxvd2VkCisKSW5kZXg6IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy9oaXN0b3J5L3RoZS1oaXN0b3J5LWludGVyZmFjZS9o
aXN0b3J5X2JhY2tfY3Jvc3NfcmVhbG1fbWV0aG9kLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL2hpc3Rv
cnkvdGhlLWhpc3RvcnktaW50ZXJmYWNlL2hpc3RvcnlfYmFja19jcm9zc19yZWFsbV9tZXRob2Qu
aHRtbAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvaGlzdG9yeS90aGUtaGlzdG9yeS1pbnRlcmZhY2UvaGlz
dG9yeV9iYWNrX2Nyb3NzX3JlYWxtX21ldGhvZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAg
KzEsMjIgQEAKKzwhZG9jdHlwZSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxl
Pmhpc3RvcnkuYmFjaygpIHVzZXMgdGhpcydzIGFzc29jaWF0ZWQgZG9jdW1lbnQncyBicm93c2lu
ZyBjb250ZXh0IHRvIGRldGVybWluZSBpZiBuYXZpZ2F0aW9uIGlzIGFsbG93ZWQ8L3RpdGxlPgor
PGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRp
cGFnZS9oaXN0b3J5Lmh0bWwjZG9tLWhpc3RvcnktYmFjayI+Cis8c2NyaXB0IHNyYz0iL3Jlc291
cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90
ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxpZnJhbWUgaWQ9InNhbmRib3hlZElm
cmFtZSIgc3JjZG9jPSJoZWxsbyIgc2FuZGJveD0iYWxsb3ctc2NyaXB0cyBhbGxvdy1zYW1lLW9y
aWdpbiI+PC9pZnJhbWU+Cis8c2NyaXB0PgorY29uc3QgdCA9IGFzeW5jX3Rlc3QoKTsKKwordC5z
dGVwKCgpID0+IHsKKyAgaGlzdG9yeS5wdXNoU3RhdGUoe30sIG51bGwsICI/cHJldiIpOworICBo
aXN0b3J5LnB1c2hTdGF0ZSh7fSwgbnVsbCwgIj9jdXJyZW50Iik7CisKKyAgc2FuZGJveGVkSWZy
YW1lLmNvbnRlbnRXaW5kb3cuaGlzdG9yeS5iYWNrLmNhbGwoaGlzdG9yeSk7Cit9KTsKKword2lu
ZG93Lm9ucG9wc3RhdGUgPSB0LnN0ZXBfZnVuY19kb25lKCgpID0+IHsKKyAgYXNzZXJ0X2VxdWFs
cyhsb2NhdGlvbi5zZWFyY2gsICI/cHJldiIpOworfSk7Cis8L3NjcmlwdD4KSW5kZXg6IExheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy9oaXN0
b3J5L3RoZS1oaXN0b3J5LWludGVyZmFjZS9oaXN0b3J5X2ZvcndhcmRfY3Jvc3NfcmVhbG1fbWV0
aG9kLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvaGlzdG9yeS90aGUtaGlzdG9yeS1pbnRl
cmZhY2UvaGlzdG9yeV9mb3J3YXJkX2Nyb3NzX3JlYWxtX21ldGhvZC1leHBlY3RlZC50eHQJKG5v
bmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL2Jyb3dzZXJzL2hpc3RvcnkvdGhlLWhpc3RvcnktaW50ZXJmYWNlL2hpc3RvcnlfZm9y
d2FyZF9jcm9zc19yZWFsbV9tZXRob2QtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0w
LDAgKzEsNCBAQAorCisKK1BBU1MgaGlzdG9yeS5mb3J3YXJkKCkgdXNlcyB0aGlzJ3MgYXNzb2Np
YXRlZCBkb2N1bWVudCdzIGJyb3dzaW5nIGNvbnRleHQgdG8gZGV0ZXJtaW5lIGlmIG5hdmlnYXRp
b24gaXMgYWxsb3dlZAorCkluZGV4OiBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvaGlzdG9yeS90aGUtaGlzdG9yeS1pbnRlcmZhY2UvaGlz
dG9yeV9mb3J3YXJkX2Nyb3NzX3JlYWxtX21ldGhvZC5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy9oaXN0
b3J5L3RoZS1oaXN0b3J5LWludGVyZmFjZS9oaXN0b3J5X2ZvcndhcmRfY3Jvc3NfcmVhbG1fbWV0
aG9kLmh0bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL2hpc3RvcnkvdGhlLWhpc3RvcnktaW50ZXJmYWNl
L2hpc3RvcnlfZm9yd2FyZF9jcm9zc19yZWFsbV9tZXRob2QuaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDI4IEBACis8IWRvY3R5cGUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4K
Kzx0aXRsZT5oaXN0b3J5LmZvcndhcmQoKSB1c2VzIHRoaXMncyBhc3NvY2lhdGVkIGRvY3VtZW50
J3MgYnJvd3NpbmcgY29udGV4dCB0byBkZXRlcm1pbmUgaWYgbmF2aWdhdGlvbiBpcyBhbGxvd2Vk
PC90aXRsZT4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdn
Lm9yZy9tdWx0aXBhZ2UvaGlzdG9yeS5odG1sI2RvbS1oaXN0b3J5LWZvcndhcmQiPgorPHNjcmlw
dCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorCis8aWZyYW1lIGlk
PSJzYW5kYm94ZWRJZnJhbWUiIHNyY2RvYz0iaGVsbG8iIHNhbmRib3g9ImFsbG93LXNjcmlwdHMg
YWxsb3ctc2FtZS1vcmlnaW4iPjwvaWZyYW1lPgorPHNjcmlwdD4KK2NvbnN0IHQgPSBhc3luY190
ZXN0KCk7CisKK3Quc3RlcCgoKSA9PiB7CisgIGhpc3RvcnkucHVzaFN0YXRlKHt9LCBudWxsLCAi
P3ByZXYiKTsKKyAgaGlzdG9yeS5wdXNoU3RhdGUoe30sIG51bGwsICI/Y3VycmVudCIpOworICBo
aXN0b3J5LmJhY2soKTsKK30pOworCitsZXQgaXNDcm9zc1JlYWxtRm9yd2FyZCA9IGZhbHNlOwor
d2luZG93Lm9ucG9wc3RhdGUgPSB0LnN0ZXBfZnVuYygoKSA9PiB7CisgIGlmIChpc0Nyb3NzUmVh
bG1Gb3J3YXJkKSB7CisgICAgYXNzZXJ0X2VxdWFscyhsb2NhdGlvbi5zZWFyY2gsICI/Y3VycmVu
dCIpOworICAgIHQuZG9uZSgpOworICB9IGVsc2UgeworICAgIHNhbmRib3hlZElmcmFtZS5jb250
ZW50V2luZG93Lmhpc3RvcnkuZm9yd2FyZC5jYWxsKGhpc3RvcnkpOworICAgIGlzQ3Jvc3NSZWFs
bUZvcndhcmQgPSB0cnVlOworICB9Cit9KTsKKzwvc2NyaXB0PgpJbmRleDogTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL2hpc3RvcnkvdGhl
LWhpc3RvcnktaW50ZXJmYWNlL2hpc3RvcnlfZ29fY3Jvc3NfcmVhbG1fbWV0aG9kLWV4cGVjdGVk
LnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvYnJvd3NlcnMvaGlzdG9yeS90aGUtaGlzdG9yeS1pbnRlcmZhY2UvaGlzdG9y
eV9nb19jcm9zc19yZWFsbV9tZXRob2QtZXhwZWN0ZWQudHh0CShub25leGlzdGVudCkKKysrIExh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy9o
aXN0b3J5L3RoZS1oaXN0b3J5LWludGVyZmFjZS9oaXN0b3J5X2dvX2Nyb3NzX3JlYWxtX21ldGhv
ZC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0IEBACisKKworUEFTUyBo
aXN0b3J5LmdvKCkgdXNlcyB0aGlzJ3MgYXNzb2NpYXRlZCBkb2N1bWVudCdzIGJyb3dzaW5nIGNv
bnRleHQgdG8gZGV0ZXJtaW5lIGlmIG5hdmlnYXRpb24gaXMgYWxsb3dlZAorCkluZGV4OiBMYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvaGlz
dG9yeS90aGUtaGlzdG9yeS1pbnRlcmZhY2UvaGlzdG9yeV9nb19jcm9zc19yZWFsbV9tZXRob2Qu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvYnJvd3NlcnMvaGlzdG9yeS90aGUtaGlzdG9yeS1pbnRlcmZhY2UvaGlzdG9y
eV9nb19jcm9zc19yZWFsbV9tZXRob2QuaHRtbAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvaGlzdG9yeS90
aGUtaGlzdG9yeS1pbnRlcmZhY2UvaGlzdG9yeV9nb19jcm9zc19yZWFsbV9tZXRob2QuaHRtbAko
d29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDIzIEBACis8IWRvY3R5cGUgaHRtbD4KKzxtZXRhIGNo
YXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5oaXN0b3J5LmdvKCkgdXNlcyB0aGlzJ3MgYXNzb2NpYXRl
ZCBkb2N1bWVudCdzIGJyb3dzaW5nIGNvbnRleHQgdG8gZGV0ZXJtaW5lIGlmIG5hdmlnYXRpb24g
aXMgYWxsb3dlZDwvdGl0bGU+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vaHRtbC5z
cGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL2hpc3RvcnkuaHRtbCNkb20taGlzdG9yeS1nbyI+Cis8
c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxpZnJh
bWUgaWQ9InNhbmRib3hlZElmcmFtZSIgc3JjZG9jPSJoZWxsbyIgc2FuZGJveD0iYWxsb3ctc2Ny
aXB0cyBhbGxvdy1zYW1lLW9yaWdpbiI+PC9pZnJhbWU+Cis8c2NyaXB0PgorY29uc3QgdCA9IGFz
eW5jX3Rlc3QoKTsKKwordC5zdGVwKCgpID0+IHsKKyAgaGlzdG9yeS5wdXNoU3RhdGUoe30sIG51
bGwsICI/cHJldj0yIik7CisgIGhpc3RvcnkucHVzaFN0YXRlKHt9LCBudWxsLCAiP3ByZXY9MSIp
OworICBoaXN0b3J5LnB1c2hTdGF0ZSh7fSwgbnVsbCwgIj9jdXJyZW50Iik7CisKKyAgc2FuZGJv
eGVkSWZyYW1lLmNvbnRlbnRXaW5kb3cuaGlzdG9yeS5nby5jYWxsKGhpc3RvcnksIC0yKTsKK30p
OworCit3aW5kb3cub25wb3BzdGF0ZSA9IHQuc3RlcF9mdW5jX2RvbmUoKCkgPT4geworICBhc3Nl
cnRfZXF1YWxzKGxvY2F0aW9uLnNlYXJjaCwgIj9wcmV2PTIiKTsKK30pOworPC9zY3JpcHQ+Cklu
ZGV4OiBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvd2Vi
YXBwYXBpcy9zY3JpcHRpbmcvcmVwb3J0ZXJyb3ItY3Jvc3MtcmVhbG0tbWV0aG9kLWV4cGVjdGVk
LnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvd2ViYXBwYXBpcy9zY3JpcHRpbmcvcmVwb3J0ZXJyb3ItY3Jvc3MtcmVhbG0t
bWV0aG9kLWV4cGVjdGVkLnR4dAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvd2ViYXBwYXBpcy9zY3JpcHRpbmcvcmVwb3J0
ZXJyb3ItY3Jvc3MtcmVhbG0tbWV0aG9kLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDUgQEAKK0NPTlNPTEUgTUVTU0FHRTogVHlwZUVycm9yOiBmb28KKworCitQQVNTIHNl
bGYucmVwb3J0RXJyb3IoKSBkaXNwYXRjaGVzIGFuICJlcnJvciIgZXZlbnQgZm9yIHRoaXMncyBy
ZWxldmFudCBnbG9iYWwgb2JqZWN0CisKSW5kZXg6IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC93ZWJhcHBhcGlzL3NjcmlwdGluZy9yZXBvcnRlcnJvci1j
cm9zcy1yZWFsbS1tZXRob2QuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvd2ViYXBwYXBpcy9zY3JpcHRpbmcvcmVwb3J0
ZXJyb3ItY3Jvc3MtcmVhbG0tbWV0aG9kLmh0bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3dlYmFwcGFwaXMvc2NyaXB0
aW5nL3JlcG9ydGVycm9yLWNyb3NzLXJlYWxtLW1ldGhvZC5odG1sCSh3b3JraW5nIGNvcHkpCkBA
IC0wLDAgKzEsMzAgQEAKKzwhZG9jdHlwZSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgor
PHRpdGxlPnNlbGYucmVwb3J0RXJyb3IoKSBkaXNwYXRjaGVzIGFuICJlcnJvciIgZXZlbnQgZm9y
IHRoaXMncyByZWxldmFudCBnbG9iYWwgb2JqZWN0PC90aXRsZT4KKzxsaW5rIHJlbD0iaGVscCIg
aHJlZj0iaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvd2ViYXBwYXBpcy5o
dG1sI2RvbS1yZXBvcnRlcnJvciI+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVz
cy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9y
dC5qcyI+PC9zY3JpcHQ+CisKKzxib2R5PgorPHNjcmlwdD4KK3NldHVwKHsgYWxsb3dfdW5jYXVn
aHRfZXhjZXB0aW9uOiB0cnVlIH0pOworCithc3luY190ZXN0KHQgPT4geworICB3aW5kb3cuYWRk
RXZlbnRMaXN0ZW5lcigiZXJyb3IiLCB0LnVucmVhY2hlZF9mdW5jKCInZXJyb3InIGV2ZW50IHNo
b3VsZCBub3QgYmUgZGlzcGF0Y2hlZCBmb3IgdG9wIHdpbmRvdyEiKSk7CisKKyAgY29uc3QgaWZy
YW1lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7CisgIGlmcmFtZS5vbmxvYWQg
PSB0LnN0ZXBfZnVuY19kb25lKCgpID0+IHsKKyAgICBsZXQgZXZlbnRGaXJlZCA9IGZhbHNlOwor
ICAgIGNvbnN0IGVycm9yID0gbmV3IFR5cGVFcnJvcigiZm9vIik7CisgICAgY29uc3Qgb3RoZXJX
aW5kb3cgPSBpZnJhbWUuY29udGVudFdpbmRvdzsKKyAgICBvdGhlcldpbmRvdy5hZGRFdmVudExp
c3RlbmVyKCJlcnJvciIsIHQuc3RlcF9mdW5jKGV2ZW50ID0+IHsKKyAgICAgIGFzc2VydF9lcXVh
bHMoZXZlbnQuZXJyb3IsIGVycm9yKTsKKyAgICAgIGV2ZW50RmlyZWQgPSB0cnVlOworICAgIH0p
KTsKKworICAgIHdpbmRvdy5yZXBvcnRFcnJvci5jYWxsKG90aGVyV2luZG93LCBlcnJvcik7Cisg
ICAgYXNzZXJ0X3RydWUoZXZlbnRGaXJlZCk7CisgIH0pOworICBkb2N1bWVudC5ib2R5LmFwcGVu
ZChpZnJhbWUpOworfSk7Cis8L3NjcmlwdD4KSW5kZXg6IExheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC93ZWJhcHBhcGlzL3N0cnVjdHVyZWQtY2xvbmUvc3Ry
dWN0dXJlZC1jbG9uZS1jcm9zcy1yZWFsbS1tZXRob2QtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC93ZWJh
cHBhcGlzL3N0cnVjdHVyZWQtY2xvbmUvc3RydWN0dXJlZC1jbG9uZS1jcm9zcy1yZWFsbS1tZXRo
b2QtZXhwZWN0ZWQudHh0CShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC93ZWJhcHBhcGlzL3N0cnVjdHVyZWQtY2xvbmUvc3Ry
dWN0dXJlZC1jbG9uZS1jcm9zcy1yZWFsbS1tZXRob2QtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNv
cHkpCkBAIC0wLDAgKzEsNyBAQAorCisKK1BBU1MgT2JqZWN0IGluc3RhbmNlCitQQVNTIEFycmF5
IGluc3RhbmNlCitQQVNTIERhdGUgaW5zdGFuY2UKK1BBU1MgUmVnRXhwIGluc3RhbmNlCisKSW5k
ZXg6IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC93ZWJh
cHBhcGlzL3N0cnVjdHVyZWQtY2xvbmUvc3RydWN0dXJlZC1jbG9uZS1jcm9zcy1yZWFsbS1tZXRo
b2QuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvd2ViYXBwYXBpcy9zdHJ1Y3R1cmVkLWNsb25lL3N0cnVjdHVyZWQtY2xv
bmUtY3Jvc3MtcmVhbG0tbWV0aG9kLmh0bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3dlYmFwcGFwaXMvc3RydWN0dXJl
ZC1jbG9uZS9zdHJ1Y3R1cmVkLWNsb25lLWNyb3NzLXJlYWxtLW1ldGhvZC5odG1sCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsMjAgQEAKKzwhZG9jdHlwZSBodG1sPgorPHRpdGxlPnNlbGYuc3Ry
dWN0dXJlZENsb25lKCkgdXNlcyB0aGlzJ3MgcmVsZXZhbnQgUmVhbG0gZm9yIGRlc2VyaWFsaXph
dGlvbjwvdGl0bGU+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vaHRtbC5zcGVjLndo
YXR3Zy5vcmcvbXVsdGlwYWdlL3N0cnVjdHVyZWQtZGF0YS5odG1sI3N0cnVjdHVyZWQtY2xvbmlu
ZyI+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisK
Kzxib2R5PgorPHNjcmlwdD4KK2NvbnN0IGlmcmFtZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
ImlmcmFtZSIpOworaWZyYW1lLm9ubG9hZCA9ICgpID0+IHsKKyAgY29uc3Qgb3RoZXJXaW5kb3cg
PSBpZnJhbWUuY29udGVudFdpbmRvdzsKKyAgZm9yIChjb25zdCBrZXkgb2YgWyJPYmplY3QiLCAi
QXJyYXkiLCAiRGF0ZSIsICJSZWdFeHAiXSkgeworICAgIHRlc3QoKCkgPT4geworICAgICAgY29u
c3QgY2xvbmVkID0gb3RoZXJXaW5kb3cuc3RydWN0dXJlZENsb25lLmNhbGwod2luZG93LCBuZXcg
b3RoZXJXaW5kb3dba2V5XSk7CisgICAgICBhc3NlcnRfdHJ1ZShjbG9uZWQgaW5zdGFuY2VvZiB3
aW5kb3dba2V5XSk7CisgICAgfSwgYCR7a2V5fSBpbnN0YW5jZWApOworICB9Cit9OworZG9jdW1l
bnQuYm9keS5hcHBlbmQoaWZyYW1lKTsKKzwvc2NyaXB0PgpJbmRleDogTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXF1ZXN0aWRsZWNhbGxiYWNrL2NhbGxiYWNr
LXRpbWVSZW1haW5pbmctY3Jvc3MtcmVhbG0tbWV0aG9kLWV4cGVjdGVkLnR4dAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3JlcXVlc3Rp
ZGxlY2FsbGJhY2svY2FsbGJhY2stdGltZVJlbWFpbmluZy1jcm9zcy1yZWFsbS1tZXRob2QtZXhw
ZWN0ZWQudHh0CShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvcmVxdWVzdGlkbGVjYWxsYmFjay9jYWxsYmFjay10aW1lUmVtYWluaW5n
LWNyb3NzLXJlYWxtLW1ldGhvZC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSw0IEBACisKKworUEFTUyBJZGxlRGVhZGxpbmU6OnRpbWVSZW1haW5pbmcoKSB1c2VzIHJlbGV2
YW50IGdsb2JhbCBvYmplY3QgYXMgYSBoaWdoLXJlcyB0aW1lc3RhbXAgb3JpZ2luCisKSW5kZXg6
IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVxdWVzdGlkbGVj
YWxsYmFjay9jYWxsYmFjay10aW1lUmVtYWluaW5nLWNyb3NzLXJlYWxtLW1ldGhvZC5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
cmVxdWVzdGlkbGVjYWxsYmFjay9jYWxsYmFjay10aW1lUmVtYWluaW5nLWNyb3NzLXJlYWxtLW1l
dGhvZC5odG1sCShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvcmVxdWVzdGlkbGVjYWxsYmFjay9jYWxsYmFjay10aW1lUmVtYWluaW5n
LWNyb3NzLXJlYWxtLW1ldGhvZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjUgQEAK
KzwhZG9jdHlwZSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgUmVxdWVzdElkbGVDYWxs
YmFja0VuYWJsZWQ9dHJ1ZSBdIC0tPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPG1ldGEgbmFt
ZT0idGltZW91dCIgY29udGVudD0ibG9uZyI+Cis8dGl0bGU+SWRsZURlYWRsaW5lOjp0aW1lUmVt
YWluaW5nKCkgdXNlcyByZWxldmFudCBnbG9iYWwgb2JqZWN0IGFzIGEgaGlnaC1yZXMgdGltZXN0
YW1wIG9yaWdpbjwvdGl0bGU+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vdzNjLmdp
dGh1Yi5pby9yZXF1ZXN0aWRsZWNhbGxiYWNrLyNkb20taWRsZWRlYWRsaW5lLXRpbWVyZW1haW5p
bmciPgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0Pgor
Cis8Ym9keT4KKzxzY3JpcHQ+Citjb25zdCB0ID0gYXN5bmNfdGVzdCgpOwordC5zdGVwX3RpbWVv
dXQoKCkgPT4geworICBjb25zdCBpZnJhbWVEZWxheWVkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgiaWZyYW1lIik7CisgIGlmcmFtZURlbGF5ZWQub25sb2FkID0gdC5zdGVwX2Z1bmMoKCkgPT4g
eworICAgIHJlcXVlc3RJZGxlQ2FsbGJhY2sodC5zdGVwX2Z1bmNfZG9uZShkZWFkbGluZSA9PiB7
CisgICAgICBhc3NlcnRfYXBwcm94X2VxdWFscygKKyAgICAgICAgaWZyYW1lRGVsYXllZC5jb250
ZW50V2luZG93LklkbGVEZWFkbGluZS5wcm90b3R5cGUudGltZVJlbWFpbmluZy5jYWxsKGRlYWRs
aW5lKSwKKyAgICAgICAgZGVhZGxpbmUudGltZVJlbWFpbmluZygpLAorICAgICAgICA1LAorICAg
ICAgKTsKKyAgICB9KSk7CisgIH0pOworICBkb2N1bWVudC5ib2R5LmFwcGVuZChpZnJhbWVEZWxh
eWVkKTsKK30sIDEwMDApOworPC9zY3JpcHQ+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>