<?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>50019</bug_id>
          
          <creation_ts>2010-11-24 05:15:15 -0800</creation_ts>
          <short_desc>Web Inspector: extension API cleanup</short_desc>
          <delta_ts>2010-12-05 18:54:42 -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>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andrey Kosyakov">caseq</reporter>
          <assigned_to name="Andrey Kosyakov">caseq</assigned_to>
          <cc>abarth</cc>
    
    <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>eric</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>sroussey</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>313244</commentid>
    <comment_count>0</comment_count>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2010-11-24 05:15:15 -0800</bug_when>
    <thetext>This change renames or removes some method in the WebInspector extension APIs:

- webInspector.log() removed (workaround is to use webInspector.inspectedWindow.eval(&quot;consoloe.log(...)&quot;, which provides support for different type of console messages and for passing objects)
- InspectorStatus removed (no more calls that may return an error)
- webInspector.inspectedWindow.evaluate() renamed to webInspector.inspectedWindow.eval()
- inspectedWindow.onLoaded and inspectedWindow.onDOMContentLoaded now receive event time in milliseconds since start of main resource event
- callback passed to webInspector.inspectedWindow.eval() now takes two arguments (result, isException), dedicated type is removed
- webInspector.resources.getAll() removed in favor of webInspector.resources.getHAR() (all resources available as har.entries)
- webInspector.resources.get() removed, either use getHAR() or use resources from webInspector.resource.onFinished()
- webInspector.resources.onFinished now takes a single argument, a HAR entry for resource. Resource ID and type are no longer supplied.
- webInspector.resources.getContent() is replaced with getContent method in a resource entry within HAR format
- webInspector.resources.getPageTiming() is removed, use webInspector.resources.getHAR()
- webInspector.panels.scripts getter removed (will be added later)
- ExtensionSidebar.setExpanded() is removed.
- Panel.onSelectionChanged will be panel-specific, currently only supported by Elements panel. No argum,ents are available to ElementsPanel.onSelectionChanged event handler (evaluate $0 within inspected page to get currently inspected node)
- Arguments of webInspector.panels.create() are now in the following order: title, iconURL, pageURL, callback</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>313252</commentid>
    <comment_count>1</comment_count>
      <attachid>74751</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2010-11-24 05:33:27 -0800</bug_when>
    <thetext>Created attachment 74751
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>313257</commentid>
    <comment_count>2</comment_count>
      <attachid>74751</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-11-24 05:48:17 -0800</bug_when>
    <thetext>Comment on attachment 74751
patch

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

&gt; LayoutTests/http/tests/inspector/inspector-test2.js:8
&gt; +    // make sure page-side dispatches are done (e.g. onload in case of reload) and then

This does not sound right. What does it fix?

&gt; LayoutTests/http/tests/inspector/inspector-test2.js:44
&gt;      if (resultsSynchronized)

What is resultsSynchronized?

&gt; LayoutTests/http/tests/inspector/inspector-test2.js:53
&gt; +    function clearResults()

output serves as a log in our tests. I can&apos;t imagine why you might want to clear it at runtime.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>313261</commentid>
    <comment_count>3</comment_count>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2010-11-24 06:13:05 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 74751 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=74751&amp;action=review
&gt; 
&gt; &gt; LayoutTests/http/tests/inspector/inspector-test2.js:8
&gt; &gt; +    // make sure page-side dispatches are done (e.g. onload in case of reload) and then
&gt; 
&gt; This does not sound right. What does it fix?

This ensures we always complete tests _after_ page onload handler is done and the dispatches it produced on front-end are executed. Here&apos;s the scenario:

1. Test produces some output with InspectorTest.addResult()
2. Test reloads a page
3. Reloading a page generates some events that are handled by test in front-end and produce additional output
4. Page&apos;s onload event is fired
5. runTest() method from insptector-test2.js is executed as a result of (4)
6. pageReloaded handler in front-end is executed as a result of (5)
7. InspectorTest.addResult() synchronizes pre-reload test output to page (see below on that)


&gt; &gt; LayoutTests/http/tests/inspector/inspector-test2.js:44
&gt; &gt;      if (resultsSynchronized)
&gt; What is resultsSynchronized?

This used to be part of inspector-test2 framework for quite some time. The idea is that we loose output as a result of inspected page reload. The code in InspectorTest.addResult() saves all output on front-end and pushes it down to page upon reload (resultsSynchronized is cleared in as a result of page&apos;s onload handler).

 
&gt; &gt; LayoutTests/http/tests/inspector/inspector-test2.js:53
&gt; &gt; +    function clearResults()
&gt; 
&gt; output serves as a log in our tests. I can&apos;t imagine why you might want to clear it at runtime.

This is triggered after page&apos;s onload event, so the output that was written after page loaded but before onload event was fired is duplicated. This change just removes this duplication.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>313265</commentid>
    <comment_count>4</comment_count>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2010-11-24 06:32:30 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (In reply to comment #2)
&gt; &gt; (From update of attachment 74751 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=74751&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; LayoutTests/http/tests/inspector/inspector-test2.js:8
&gt; &gt; &gt; +    // make sure page-side dispatches are done (e.g. onload in case of reload) and then
&gt; &gt; 
&gt; &gt; This does not sound right. What does it fix?
&gt; 
&gt; This ensures we always complete tests _after_ page onload handler is done and the dispatches it produced on front-end are executed. Here&apos;s the scenario:
&gt; 
&gt; 1. Test produces some output with InspectorTest.addResult()
&gt; 2. Test reloads a page
&gt; 3. Reloading a page generates some events that are handled by test in front-end and produce additional output
&gt; 4. Page&apos;s onload event is fired
&gt; 5. runTest() method from insptector-test2.js is executed as a result of (4)
&gt; 6. pageReloaded handler in front-end is executed as a result of (5)
&gt; 7. InspectorTest.addResult() synchronizes pre-reload test output to page (see below on that)

Sorry, got accidently sent incomplete story. If InspectorTest.completeTest() is called before onload either (5), (6), or (7), the test page will close web inspefctor and call layoutTestController.notifyDone().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>313290</commentid>
    <comment_count>5</comment_count>
      <attachid>74759</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2010-11-24 07:37:08 -0800</bug_when>
    <thetext>Created attachment 74759
patch

- Removed extra sync in InspectorTest.completeTest() as discussed offline.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>313365</commentid>
    <comment_count>6</comment_count>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2010-11-24 10:10:40 -0800</bug_when>
    <thetext>Manually committed r72683: http://trac.webkit.org/changeset/72683</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>313369</commentid>
    <comment_count>7</comment_count>
      <attachid>74776</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2010-11-24 10:13:47 -0800</bug_when>
    <thetext>Created attachment 74776
updated API doc</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>313392</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-11-24 11:07:38 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/72683 might have broken Leopard Intel Release (Tests)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>313409</commentid>
    <comment_count>9</comment_count>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2010-11-24 11:25:00 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; http://trac.webkit.org/changeset/72683 might have broken Leopard Intel Release (Tests)

Test rebaseline landed as r72693: http://trac.webkit.org/changeset/72693</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>74751</attachid>
            <date>2010-11-24 05:33:27 -0800</date>
            <delta_ts>2010-11-24 07:37:08 -0800</delta_ts>
            <desc>patch</desc>
            <filename>extension-api-cleanup.diff</filename>
            <type>text/plain</type>
            <size>89801</size>
            <attacher name="Andrey Kosyakov">caseq</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA5ZDRiMGU3Li40MWI5NmFlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDUgQEAKKzIwMTAtMTEt
MjQgIEFuZHJleSBLb3N5YWtvdiAgPGNhc2VxQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBleHRlbnNp
b24gQVBJIGNsZWFudXAKKyAgICAgICAgSW1wcm92ZSBzeW5jaHJvbml6YXRpb24gYmV0d2VlbiBk
aWZmZXJlbnQgcGFydHMgb2YgdGhlIHRlc3QgdG8gcmVkdWNlIGZsYWtpbmVzcy4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUwMDE5CisKKyAgICAgICAg
KiBodHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdDIuanM6IENsZWFuIGluc3BlY3Rl
ZCBwYWdlIHRlc3Qgb3V0cHV0IGJlZm9yZSBwdXNoaW5nIG91dHB1dCBmcm9tIGZyb250LWVuZC4K
KyAgICAgICAgKGluaXRpYWxpemVfSW5zcGVjdG9yVGVzdC5JbnNwZWN0b3JUZXN0LmNvbXBsZXRl
VGVzdCk6IERlbGF5IHRlc3QgY29tcGxldGlvbiB1bnRpbCBwYWdlJ3Mgb25sb2FkIGlzIGNvbXBs
ZXRlZCBhZnRlciByZWxvYWQuCisgICAgICAgIChpbml0aWFsaXplX0luc3BlY3RvclRlc3QuSW5z
cGVjdG9yVGVzdC5hZGRSZXN1bHQuY2xlYXJSZXN1bHRzKToKKyAgICAgICAgKGluaXRpYWxpemVf
SW5zcGVjdG9yVGVzdC5JbnNwZWN0b3JUZXN0LnJlbG9hZFBhZ2VJZk5lZWRlZCk6CisgICAgICAg
IChvdXRwdXQpOgorICAgICAgICAqIGluc3BlY3Rvci9leHRlbnNpb25zLWFwaS1leHBlY3RlZC50
eHQ6CisgICAgICAgICogaW5zcGVjdG9yL2V4dGVuc2lvbnMtYXVkaXRzLWFwaS1leHBlY3RlZC50
eHQ6CisgICAgICAgICogaW5zcGVjdG9yL2V4dGVuc2lvbnMtYXVkaXRzLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiBpbnNwZWN0b3IvZXh0ZW5zaW9ucy1hdWRpdHMtdGVzdHMuanM6CisgICAgICAg
IChleHRlbnNpb25fcnVuQXVkaXRzKToKKyAgICAgICAgKGluaXRpYWxpemVfRXh0ZW5zaW9uc0F1
ZGl0c1Rlc3QuSW5zcGVjdG9yVGVzdC5zdGFydEV4dGVuc2lvbkF1ZGl0cy5vbkF1ZGl0c0RvbmUp
OgorICAgICAgICAoaW5pdGlhbGl6ZV9FeHRlbnNpb25zQXVkaXRzVGVzdC5JbnNwZWN0b3JUZXN0
LnN0YXJ0RXh0ZW5zaW9uQXVkaXRzKToKKyAgICAgICAgKGluaXRpYWxpemVfRXh0ZW5zaW9uc0F1
ZGl0c1Rlc3QpOgorICAgICAgICAodGVzdCk6CisgICAgICAgICogaW5zcGVjdG9yL2V4dGVuc2lv
bnMtZXZhbC1leHBlY3RlZC50eHQ6CisgICAgICAgICogaW5zcGVjdG9yL2V4dGVuc2lvbnMtZXZh
bC5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9leHRlbnNpb25zLWV2ZW50cy1leHBlY3RlZC50
eHQ6CisgICAgICAgICogaW5zcGVjdG9yL2V4dGVuc2lvbnMtZXZlbnRzLmh0bWw6CisgICAgICAg
ICogaW5zcGVjdG9yL2V4dGVuc2lvbnMtcmVzb3VyY2VzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiBpbnNwZWN0b3IvZXh0ZW5zaW9ucy1yZXNvdXJjZXMuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0
b3IvZXh0ZW5zaW9ucy10ZXN0LmpzOgorICAgICAgICAoaW5pdGlhbGl6ZV9FeHRlbnNpb25zVGVz
dC5JbnNwZWN0b3JUZXN0LmRpc3BhdGNoT25NZXNzYWdlKToKKyAgICAgICAgKGluaXRpYWxpemVf
RXh0ZW5zaW9uc1Rlc3QuSW5zcGVjdG9yVGVzdC5ydW5FeHRlbnNpb25UZXN0cyk6CisgICAgICAg
IChpbml0aWFsaXplX0V4dGVuc2lvbnNUZXN0LmV4dGVuc2lvbk91dHB1dCk6CisgICAgICAgIChp
bml0aWFsaXplX0V4dGVuc2lvbnNUZXN0LmR1bXBTaWRlYmFyQ29udGVudCk6CisgICAgICAgIChp
bml0aWFsaXplX0V4dGVuc2lvbnNUZXN0LnJlbG9hZFBhZ2UpOgorICAgICAgICAqIGluc3BlY3Rv
ci9leHRlbnNpb25zLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL3Jlc291cmNlcy9leHRlbnNp
b24tbWFpbi5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9yZXNvdXJjZXMvZXh0ZW5zaW9uLW1h
aW4uanM6CisgICAgICAgIChmZXRjaFRlc3RzLmNhbGxiYWNrKToKKyAgICAgICAgKGZldGNoVGVz
dHMpOgorICAgICAgICAob25UZXN0c0RvbmUpOgorICAgICAgICAoZGlzcGF0Y2hPbkZyb250ZW5k
KToKKwogMjAxMC0xMS0yMiAgQW50b24gTXVoaW4gIDxhbnRvbm1AY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIE5vdCByZXZpZXdlZC4gIFJlYmFzZWxpbmluZyB2YXJpb3VzIFdpbi9MaW51eCBvbmx5
IGRldmlhdGlvbnMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rv
ci9pbnNwZWN0b3ItdGVzdDIuanMgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9p
bnNwZWN0b3ItdGVzdDIuanMKaW5kZXggNmRiNTc5Yy4uMGY2OWU4MSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QyLmpzCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0Mi5qcwpAQCAtNSw3
ICs1LDEzIEBAIHZhciByZXN1bHRzU3luY2hyb25pemVkID0gZmFsc2U7CiAKIEluc3BlY3RvclRl
c3QuY29tcGxldGVUZXN0ID0gZnVuY3Rpb24oKQogewotICAgIEluc3BlY3RvckJhY2tlbmQuZGlk
RXZhbHVhdGVGb3JUZXN0SW5Gcm9udGVuZChJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdENhbGxJ
ZCwgIiIpOworICAgIC8vIG1ha2Ugc3VyZSBwYWdlLXNpZGUgZGlzcGF0Y2hlcyBhcmUgZG9uZSAo
ZS5nLiBvbmxvYWQgaW4gY2FzZSBvZiByZWxvYWQpIGFuZCB0aGVuCisgICAgLy8gZnJvbnQtZW5k
IHNpZGUgZGlzcGF0Y2hlcyBhcmUgZG9uZSB0b28gKGUuZy4gcHVzaGluZyBvdXRwdXQgdG8gcGFn
ZSkuCisgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgiIiwgZnVuY3Rpb24oKSB7Cisg
ICAgICAgIEluc3BlY3RvclRlc3QucnVuQWZ0ZXJQZW5kaW5nRGlzcGF0Y2hlcyhmdW5jdGlvbigp
IHsKKyAgICAgICAgICAgIEluc3BlY3RvckJhY2tlbmQuZGlkRXZhbHVhdGVGb3JUZXN0SW5Gcm9u
dGVuZChJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdENhbGxJZCwgIiIpOworICAgICAgICB9KTsK
KyAgICB9KTsKIH0KIAogSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluQ29uc29sZSA9IGZ1bmN0aW9u
KGNvZGUsIGNhbGxiYWNrKQpAQCAtMzgsMTEgKzQ0LDE3IEBAIEluc3BlY3RvclRlc3QuYWRkUmVz
dWx0ID0gZnVuY3Rpb24odGV4dCkKICAgICBpZiAocmVzdWx0c1N5bmNocm9uaXplZCkKICAgICAg
ICAgYWRkUmVzdWx0VG9QYWdlKHRleHQpOwogICAgIGVsc2UgeworICAgICAgICBjbGVhclJlc3Vs
dHMoKTsKICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZXN1bHRzLmxlbmd0aDsgKytpKQog
ICAgICAgICAgICAgYWRkUmVzdWx0VG9QYWdlKHJlc3VsdHNbaV0pOwogICAgICAgICByZXN1bHRz
U3luY2hyb25pemVkID0gdHJ1ZTsKICAgICB9CiAKKyAgICBmdW5jdGlvbiBjbGVhclJlc3VsdHMo
KQorICAgIHsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgiQXJyYXkucHJv
dG90eXBlLmZvckVhY2guY2FsbChkb2N1bWVudC5ib2R5LnF1ZXJ5U2VsZWN0b3JBbGwoJ2Rpdi5v
dXRwdXQnKSwgZnVuY3Rpb24obm9kZSkgeyBub2RlLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQobm9k
ZSk7IH0pIik7CisgICAgfQorCiAgICAgZnVuY3Rpb24gYWRkUmVzdWx0VG9QYWdlKHRleHQpCiAg
ICAgewogICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJvdXRwdXQodW5lc2Nh
cGUoJyIgKyBlc2NhcGUodGV4dCkgKyAiJykpIik7CkBAIC04Nyw4ICs5OSwxMCBAQCBJbnNwZWN0
b3JUZXN0LnJlbG9hZFBhZ2VJZk5lZWRlZCA9IGZ1bmN0aW9uKGNhbGxiYWNrKQogICAgIGlmICgh
SW5zcGVjdG9yVGVzdC5fcGFnZVdhc1JlbG9hZGVkKSB7CiAgICAgICAgIEluc3BlY3RvclRlc3Qu
X3BhZ2VXYXNSZWxvYWRlZCA9IHRydWU7CiAgICAgICAgIEluc3BlY3RvclRlc3QucmVsb2FkUGFn
ZShjYWxsYmFjayk7Ci0gICAgfSBlbHNlCi0gICAgICAgIGNhbGxiYWNrKCk7CisgICAgfSBlbHNl
IHsKKyAgICAgICAgaWYgKGNhbGxiYWNrKSAKKyAgICAgICAgICAgIGNhbGxiYWNrKCk7CisgICAg
fQogfQogCiBJbnNwZWN0b3JUZXN0LnBhZ2VSZWxvYWRlZCA9IGZ1bmN0aW9uKCkKQEAgLTIyOSw3
ICsyNDMsNyBAQCBmdW5jdGlvbiBkaWRFdmFsdWF0ZUZvclRlc3RJbkZyb250ZW5kKGNhbGxJZCkK
IGZ1bmN0aW9uIG91dHB1dCh0ZXh0KQogewogICAgIHZhciBvdXRwdXRFbGVtZW50ID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Ci0gICAgb3V0cHV0RWxlbWVudC5pZCA9ICJvdXRwdXQi
OworICAgIG91dHB1dEVsZW1lbnQuY2xhc3NOYW1lID0gIm91dHB1dCI7CiAgICAgb3V0cHV0RWxl
bWVudC5zdHlsZS53aGl0ZVNwYWNlID0gInByZSI7CiAgICAgb3V0cHV0RWxlbWVudC5hcHBlbmRD
aGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh0ZXh0KSk7CiAgICAgb3V0cHV0RWxlbWVudC5h
cHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJiciIpKTsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zLWFwaS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy1hcGktZXhwZWN0ZWQudHh0CmluZGV4IDU2NTdlZWEu
LmM5NDFmNjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zLWFw
aS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMtYXBp
LWV4cGVjdGVkLnR4dApAQCAtMSw2ICsxLDUgQEAKIFRlc3RzIHB1YmxpYyBpbnRlcmZhY2Ugb2Yg
V2ViSW5zcGVjdG9yIEV4dGVuc2lvbnMgQVBJCiAKLVBhZ2UgcmVsb2FkZWQuCiBTdGFydGVkIGV4
dGVuc2lvbi4KIFJ1bm5pbmcgdGVzdHMuLi4KIFJVTk5JTkcgVEVTVDogZXh0ZW5zaW9uX3Rlc3RB
UEkKQEAgLTksMzcgKzgsMjkgQEAgUlVOTklORyBURVNUOiBleHRlbnNpb25fdGVzdEFQSQogICAg
ICAgICBhZGRDYXRlZ29yeSA6IDxmdW5jdGlvbj4KICAgICB9CiAgICAgaW5zcGVjdGVkV2luZG93
IDogewotICAgICAgICBvbkxvYWRlZCA6IHsKKyAgICAgICAgb25ET01Db250ZW50TG9hZGVkIDog
ewogICAgICAgICAgICAgYWRkTGlzdGVuZXIgOiA8ZnVuY3Rpb24+CiAgICAgICAgICAgICByZW1v
dmVMaXN0ZW5lciA6IDxmdW5jdGlvbj4KICAgICAgICAgfQotICAgICAgICBvbk5hdmlnYXRlZCA6
IHsKKyAgICAgICAgb25Mb2FkZWQgOiB7CiAgICAgICAgICAgICBhZGRMaXN0ZW5lciA6IDxmdW5j
dGlvbj4KICAgICAgICAgICAgIHJlbW92ZUxpc3RlbmVyIDogPGZ1bmN0aW9uPgogICAgICAgICB9
Ci0gICAgICAgIG9uRE9NQ29udGVudExvYWRlZCA6IHsKKyAgICAgICAgb25OYXZpZ2F0ZWQgOiB7
CiAgICAgICAgICAgICBhZGRMaXN0ZW5lciA6IDxmdW5jdGlvbj4KICAgICAgICAgICAgIHJlbW92
ZUxpc3RlbmVyIDogPGZ1bmN0aW9uPgogICAgICAgICB9CiAgICAgICAgIHJlbG9hZCA6IDxmdW5j
dGlvbj4KLSAgICAgICAgZXZhbHVhdGUgOiA8ZnVuY3Rpb24+CisgICAgICAgIGV2YWwgOiA8ZnVu
Y3Rpb24+CiAgICAgfQogICAgIHBhbmVscyA6IHsKICAgICAgICAgZWxlbWVudHMgOiB7Ci0gICAg
ICAgICAgICBvblNlbGVjdGlvbkNoYW5nZWQgOiB7Ci0gICAgICAgICAgICAgICAgYWRkTGlzdGVu
ZXIgOiA8ZnVuY3Rpb24+Ci0gICAgICAgICAgICAgICAgcmVtb3ZlTGlzdGVuZXIgOiA8ZnVuY3Rp
b24+Ci0gICAgICAgICAgICB9CiAgICAgICAgICAgICBjcmVhdGVTaWRlYmFyUGFuZSA6IDxmdW5j
dGlvbj4KICAgICAgICAgICAgIGNyZWF0ZVdhdGNoRXhwcmVzc2lvblNpZGViYXJQYW5lIDogPGZ1
bmN0aW9uPgotICAgICAgICB9Ci0gICAgICAgIHNjcmlwdHMgOiB7CiAgICAgICAgICAgICBvblNl
bGVjdGlvbkNoYW5nZWQgOiB7CiAgICAgICAgICAgICAgICAgYWRkTGlzdGVuZXIgOiA8ZnVuY3Rp
b24+CiAgICAgICAgICAgICAgICAgcmVtb3ZlTGlzdGVuZXIgOiA8ZnVuY3Rpb24+CiAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICBjcmVhdGVTaWRlYmFyUGFuZSA6IDxmdW5jdGlvbj4KLSAgICAg
ICAgICAgIGNyZWF0ZVdhdGNoRXhwcmVzc2lvblNpZGViYXJQYW5lIDogPGZ1bmN0aW9uPgogICAg
ICAgICB9CiAgICAgICAgIGNyZWF0ZSA6IDxmdW5jdGlvbj4KICAgICB9CkBAIC01OSwxMCArNTAs
NyBAQCBSVU5OSU5HIFRFU1Q6IGV4dGVuc2lvbl90ZXN0QVBJCiAgICAgICAgICAgICBXZWJTb2Nr
ZXQgOiAid2Vic29ja2V0IgogICAgICAgICAgICAgT3RoZXIgOiAib3RoZXIiCiAgICAgICAgIH0K
LSAgICAgICAgZ2V0QWxsIDogPGZ1bmN0aW9uPgotICAgICAgICBnZXQgOiA8ZnVuY3Rpb24+Ci0g
ICAgICAgIGdldFBhZ2VUaW1pbmdzIDogPGZ1bmN0aW9uPgotICAgICAgICBnZXRDb250ZW50IDog
PGZ1bmN0aW9uPgorICAgICAgICBnZXRIQVIgOiA8ZnVuY3Rpb24+CiAgICAgfQogICAgIG9uUmVz
ZXQgOiB7CiAgICAgICAgIGFkZExpc3RlbmVyIDogPGZ1bmN0aW9uPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMtYXVkaXRzLWFwaS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy1hdWRpdHMtYXBpLWV4cGVjdGVkLnR4dApp
bmRleCBmMTRiNmJiLi4wMzRhYWZkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
ZXh0ZW5zaW9ucy1hdWRpdHMtYXBpLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZXh0ZW5zaW9ucy1hdWRpdHMtYXBpLWV4cGVjdGVkLnR4dApAQCAtMSw2ICsxLDUgQEAK
IFRlc3RzIGF1ZGl0cyBzdXBwb3J0IGluIFdlYkluc3BlY3RvciBFeHRlbnNpb25zIEFQSQogCi1Q
YWdlIHJlbG9hZGVkLgogU3RhcnRlZCBleHRlbnNpb24uCiBSdW5uaW5nIHRlc3RzLi4uCiBSVU5O
SU5HIFRFU1Q6IGV4dGVuc2lvbl90ZXN0QXVkaXRzQVBJCkBAIC0xMSw2ICsxMCw3IEBAIEFkZGVk
IGF1ZGl0IGNhdGVnb3J5LCByZXN1bHQgZHVtcCBmb2xsb3dzOgogICAgICAgICByZW1vdmVMaXN0
ZW5lciA6IDxmdW5jdGlvbj4KICAgICB9CiB9CisgIEV4dGVuc2lvbiBhdWRpdHMKIGNhdGVnb3J5
Lm9uQXVkaXRTdGFydGVkIGZpcmVkLCByZXN1bHRzIGR1bXAgZm9sbG93czoKIHsKICAgICB1cmwg
OiA8ZnVuY3Rpb24+CkBAIC0zNCw2ICszNCw1IEBAIGNhdGVnb3J5Lm9uQXVkaXRTdGFydGVkIGZp
cmVkLCByZXN1bHRzIGR1bXAgZm9sbG93czoKICAgICBleHBhbmRlZCA6IGZhbHNlCiAgICAgYWRk
Q2hpbGQgOiA8ZnVuY3Rpb24+CiB9Ci0gIEV4dGVuc2lvbiBhdWRpdHMKIEFsbCB0ZXN0cyBkb25l
LgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy1hdWRpdHMt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMtYXVkaXRzLWV4
cGVjdGVkLnR4dAppbmRleCBlMjVmMzJjLi44OTRhN2VhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy1hdWRpdHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9leHRlbnNpb25zLWF1ZGl0cy1leHBlY3RlZC50eHQKQEAgLTEsMTIgKzEs
OSBAQAogVGVzdHMgYXVkaXRzIHN1cHBvcnQgaW4gV2ViSW5zcGVjdG9yIEV4dGVuc2lvbnMgQVBJ
CiAKLVBhZ2UgcmVsb2FkZWQuCiBTdGFydGVkIGV4dGVuc2lvbi4KIFJ1bm5pbmcgdGVzdHMuLi4K
IFJVTk5JTkcgVEVTVDogZXh0ZW5zaW9uX3Rlc3RBdWRpdHMKIEFkZGVkIGF1ZGl0IGNhdGVnb3J5
LgotY2F0ZWdvcnkub25BdWRpdFN0YXJ0ZWQgZmlyZWQKLWZhaWxlZENhdGVnb3J5Lm9uQXVkaXRT
dGFydGVkIGZpcmVkLCB0aHJvd2luZyBleGNlcHRpb24KICAgRXh0ZW5zaW9uIGF1ZGl0cwogICAg
IEZhaWxlZCBydWxlICg0MikKICAgICAgdGhpcyBydWxlIGFsd2F5cyBmYWlscwpAQCAtMjUsNSAr
MjIsNyBAQCBmYWlsZWRDYXRlZ29yeS5vbkF1ZGl0U3RhcnRlZCBmaXJlZCwgdGhyb3dpbmcgZXhj
ZXB0aW9uCiAgICAgUGFzc2VkIHJ1bGUKICAgICAgdGhpcyBydWxlIGFsd2F5cyBwYXNzZXMgb2sK
ICAgRXh0ZW5zaW9uIGF1ZGl0cyB0aGF0IGZhaWwKK2NhdGVnb3J5Lm9uQXVkaXRTdGFydGVkIGZp
cmVkCitmYWlsZWRDYXRlZ29yeS5vbkF1ZGl0U3RhcnRlZCBmaXJlZCwgdGhyb3dpbmcgZXhjZXB0
aW9uCiBBbGwgdGVzdHMgZG9uZS4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2V4dGVuc2lvbnMtYXVkaXRzLXRlc3RzLmpzIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVu
c2lvbnMtYXVkaXRzLXRlc3RzLmpzCmluZGV4IDNiYjFmYzIuLmY3YTNjNzUgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zLWF1ZGl0cy10ZXN0cy5qcworKysgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy1hdWRpdHMtdGVzdHMuanMKQEAgLTEsMTgg
KzEsMTIgQEAKIGZ1bmN0aW9uIGV4dGVuc2lvbl9ydW5BdWRpdHMoY2FsbGJhY2spCiB7Ci0gICAg
ZnVuY3Rpb24gb25NZXNzYWdlKGV2ZW50KQotICAgIHsKLSAgICAgICAgaWYgKGV2ZW50LmRhdGEg
PT09ICJhdWRpdHMtY29tcGxldGUiKQotICAgICAgICAgICAgY2FsbGJhY2soKTsKLSAgICB9Ci0g
ICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCBvbk1lc3NhZ2UsIGZhbHNlKTsK
LSAgICB0b3AucG9zdE1lc3NhZ2UoInJ1bi1hdWRpdHMiLCAiKiIpOworICAgIGRpc3BhdGNoT25G
cm9udGVuZCh7IGNvbW1hbmQ6ICJydW4tYXVkaXRzIiB9LCBjYWxsYmFjayk7CiB9CiAKIC8vIHJ1
bnMgaW4gZnJvbnQtZW5kCiB2YXIgaW5pdGlhbGl6ZV9FeHRlbnNpb25zQXVkaXRzVGVzdCA9IGZ1
bmN0aW9uKCkKIHsKLSAgICBJbnNwZWN0b3JUZXN0LnN0YXJ0RXh0ZW5zaW9uQXVkaXRzID0gZnVu
Y3Rpb24oKSAKKyAgICBJbnNwZWN0b3JUZXN0LnN0YXJ0RXh0ZW5zaW9uQXVkaXRzID0gZnVuY3Rp
b24obWVzc2FnZSwgcG9ydCkgCiAgICAgewogICAgICAgICBjb25zdCBsYXVuY2hlclZpZXcgPSBX
ZWJJbnNwZWN0b3IucGFuZWxzLmF1ZGl0cy5fbGF1bmNoZXJWaWV3OwogICAgICAgICBsYXVuY2hl
clZpZXcuX3NlbGVjdEFsbENsaWNrZWQoZmFsc2UpOwpAQCAtMjcsMTEgKzIxLDEwIEBAIHZhciBp
bml0aWFsaXplX0V4dGVuc2lvbnNBdWRpdHNUZXN0ID0gZnVuY3Rpb24oKQogICAgICAgICBmdW5j
dGlvbiBvbkF1ZGl0c0RvbmUoKQogICAgICAgICB7CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmNvbGxlY3RBdWRpdFJlc3VsdHMoKTsKLSAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
ZnJhbWVzLmxlbmd0aDsgKytpKQotICAgICAgICAgICAgICAgIGZyYW1lc1tpXS5wb3N0TWVzc2Fn
ZSgiYXVkaXRzLWNvbXBsZXRlIiwgIioiKTsKKyAgICAgICAgICAgIHBvcnQucG9zdE1lc3NhZ2Uo
IiIpOwogICAgICAgICB9Ci0KICAgICAgICAgSW5zcGVjdG9yVGVzdC5fYWRkU25pZmZlcihXZWJJ
bnNwZWN0b3IucGFuZWxzLmF1ZGl0cywgIl9hdWRpdEZpbmlzaGVkQ2FsbGJhY2siLCBvbkF1ZGl0
c0RvbmUsIHRydWUpOworCiAgICAgICAgIGxhdW5jaGVyVmlldy5fbGF1bmNoQnV0dG9uQ2xpY2tl
ZCgpOwogICAgIH0KIH0KQEAgLTQxLDQgKzM0LDMgQEAgdmFyIHRlc3QgPSBmdW5jdGlvbigpCiAg
ICAgSW5zcGVjdG9yVGVzdC5kaXNwYXRjaE9uTWVzc2FnZSgicnVuLWF1ZGl0cyIsIEluc3BlY3Rv
clRlc3Quc3RhcnRFeHRlbnNpb25BdWRpdHMpOwogICAgIEluc3BlY3RvclRlc3QucnVuRXh0ZW5z
aW9uVGVzdHMoKTsKIH0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVu
c2lvbnMtZXZhbC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9u
cy1ldmFsLWV4cGVjdGVkLnR4dAppbmRleCA0YzU4OWY1Li4zZDM5ZjJmIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy1ldmFsLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy1ldmFsLWV4cGVjdGVkLnR4dApAQCAtMSw2
ICsxLDUgQEAKIFRlc3RzIFdlYkluc3BlY3RvciBleHRlbnNpb24gQVBJCiAKLVBhZ2UgcmVsb2Fk
ZWQuCiBTdGFydGVkIGV4dGVuc2lvbi4KIFJ1bm5pbmcgdGVzdHMuLi4KIFJVTk5JTkcgVEVTVDog
ZXh0ZW5zaW9uX3Rlc3RFdmFsQ29uc29sZUFQSQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2V4dGVuc2lvbnMtZXZhbC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVu
c2lvbnMtZXZhbC5odG1sCmluZGV4IGVkNTRlOGEuLjRmZDNmOWMgMTAwNzU1Ci0tLSBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zLWV2YWwuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZXh0ZW5zaW9ucy1ldmFsLmh0bWwKQEAgLTgsMzkgKzgsMzkgQEAgd2luZG93Lmlu
c3BlY3RlZFZhbHVlID0geyBzdHI6ICJmb28iLCBudW06IDQyIH07CiAKIGZ1bmN0aW9uIGV4dGVu
c2lvbl90ZXN0RXZhbE9rKG5leHRUZXN0KQogewotICAgIHdlYkluc3BlY3Rvci5pbnNwZWN0ZWRX
aW5kb3cuZXZhbHVhdGUoImluc3BlY3RlZFZhbHVlIiwgY2FsbGJhY2tBbmROZXh0VGVzdChleHRl
bnNpb25fb25FdmFsdWF0ZSwgbmV4dFRlc3QpKTsKKyAgICB3ZWJJbnNwZWN0b3IuaW5zcGVjdGVk
V2luZG93LmV2YWwoImluc3BlY3RlZFZhbHVlIiwgY2FsbGJhY2tBbmROZXh0VGVzdChleHRlbnNp
b25fb25FdmFsLCBuZXh0VGVzdCkpOwogfQogCiBmdW5jdGlvbiBleHRlbnNpb25fdGVzdEV2YWxG
YWlsZWQobmV4dFRlc3QpCiB7Ci0gICAgd2ViSW5zcGVjdG9yLmluc3BlY3RlZFdpbmRvdy5ldmFs
dWF0ZSgiZG9jdW1lbnQuYm9keSIsIGNhbGxiYWNrQW5kTmV4dFRlc3QoZXh0ZW5zaW9uX29uRXZh
bHVhdGUsIG5leHRUZXN0KSk7CisgICAgd2ViSW5zcGVjdG9yLmluc3BlY3RlZFdpbmRvdy5ldmFs
KCJkb2N1bWVudC5ib2R5IiwgY2FsbGJhY2tBbmROZXh0VGVzdChleHRlbnNpb25fb25FdmFsLCBu
ZXh0VGVzdCkpOwogfQogCiBmdW5jdGlvbiBleHRlbnNpb25fdGVzdEV2YWxEZWZpbmVzR2xvYmFs
U3ltYm9scyhuZXh0VGVzdCkKIHsKLSAgICB3ZWJJbnNwZWN0b3IuaW5zcGVjdGVkV2luZG93LmV2
YWx1YXRlKCJmdW5jdGlvbiBleHRlbnNpb25GdW5jKCkge30iKTsKLSAgICB3ZWJJbnNwZWN0b3Iu
aW5zcGVjdGVkV2luZG93LmV2YWx1YXRlKCJleHRlbnNpb25WYXIgPSA0MjsiKTsKLSAgICB3ZWJJ
bnNwZWN0b3IuaW5zcGVjdGVkV2luZG93LmV2YWx1YXRlKCIoeyBmdW5jOiB0eXBlb2Ygd2luZG93
LmV4dGVuc2lvbkZ1bmMsIHZhcmlhYmxlOiB3aW5kb3cuZXh0ZW5zaW9uVmFyIH0pIiwgY2FsbGJh
Y2tBbmROZXh0VGVzdChleHRlbnNpb25fb25FdmFsdWF0ZSwgbmV4dFRlc3QpKTsKKyAgICB3ZWJJ
bnNwZWN0b3IuaW5zcGVjdGVkV2luZG93LmV2YWwoImZ1bmN0aW9uIGV4dGVuc2lvbkZ1bmMoKSB7
fSIpOworICAgIHdlYkluc3BlY3Rvci5pbnNwZWN0ZWRXaW5kb3cuZXZhbCgiZXh0ZW5zaW9uVmFy
ID0gNDI7Iik7CisgICAgd2ViSW5zcGVjdG9yLmluc3BlY3RlZFdpbmRvdy5ldmFsKCIoeyBmdW5j
OiB0eXBlb2Ygd2luZG93LmV4dGVuc2lvbkZ1bmMsIHZhcmlhYmxlOiB3aW5kb3cuZXh0ZW5zaW9u
VmFyIH0pIiwgY2FsbGJhY2tBbmROZXh0VGVzdChleHRlbnNpb25fb25FdmFsLCBuZXh0VGVzdCkp
OwogfQogCiBmdW5jdGlvbiBleHRlbnNpb25fdGVzdEV2YWxTdGF0ZW1lbnQobmV4dFRlc3QpCiB7
Ci0gICAgd2ViSW5zcGVjdG9yLmluc3BlY3RlZFdpbmRvdy5ldmFsdWF0ZSgidmFyIHggPSAzOyB3
aGlsZSAoLS14KTsgeCIsIGNhbGxiYWNrQW5kTmV4dFRlc3QoZXh0ZW5zaW9uX29uRXZhbHVhdGUs
IG5leHRUZXN0KSk7CisgICAgd2ViSW5zcGVjdG9yLmluc3BlY3RlZFdpbmRvdy5ldmFsKCJ2YXIg
eCA9IDM7IHdoaWxlICgtLXgpOyB4IiwgY2FsbGJhY2tBbmROZXh0VGVzdChleHRlbnNpb25fb25F
dmFsLCBuZXh0VGVzdCkpOwogfQogCiBmdW5jdGlvbiBleHRlbnNpb25fdGVzdEV2YWxVbmRlZmlu
ZWQobmV4dFRlc3QpCiB7Ci0gICAgd2ViSW5zcGVjdG9yLmluc3BlY3RlZFdpbmRvdy5ldmFsdWF0
ZSgidW5kZWZpbmVkIiwgY2FsbGJhY2tBbmROZXh0VGVzdChleHRlbnNpb25fb25FdmFsdWF0ZSwg
bmV4dFRlc3QpKTsKKyAgICB3ZWJJbnNwZWN0b3IuaW5zcGVjdGVkV2luZG93LmV2YWwoInVuZGVm
aW5lZCIsIGNhbGxiYWNrQW5kTmV4dFRlc3QoZXh0ZW5zaW9uX29uRXZhbCwgbmV4dFRlc3QpKTsK
IH0KIAogZnVuY3Rpb24gZXh0ZW5zaW9uX3Rlc3RFdmFsQ29uc29sZUFQSShuZXh0VGVzdCkKIHsK
LSAgICB3ZWJJbnNwZWN0b3IuaW5zcGVjdGVkV2luZG93LmV2YWx1YXRlKCJ0eXBlb2YgaW5zcGVj
dCIsIGNhbGxiYWNrQW5kTmV4dFRlc3QoZXh0ZW5zaW9uX29uRXZhbHVhdGUsIG5leHRUZXN0KSk7
CisgICAgd2ViSW5zcGVjdG9yLmluc3BlY3RlZFdpbmRvdy5ldmFsKCJ0eXBlb2YgaW5zcGVjdCIs
IGNhbGxiYWNrQW5kTmV4dFRlc3QoZXh0ZW5zaW9uX29uRXZhbCwgbmV4dFRlc3QpKTsKIH0KIAot
ZnVuY3Rpb24gZXh0ZW5zaW9uX29uRXZhbHVhdGUocmVzdWx0KQorZnVuY3Rpb24gZXh0ZW5zaW9u
X29uRXZhbCh2YWx1ZSwgaXNFeGNlcHRpb24pCiB7Ci0gICAgb3V0cHV0KCJFdmFsdWF0ZTogIiAr
IEpTT04uc3RyaW5naWZ5KHJlc3VsdC52YWx1ZSkgKyAiIChleGNlcHRpb246ICIgKyByZXN1bHQu
aXNFeGNlcHRpb24gKyAiKSIpOworICAgIG91dHB1dCgiRXZhbHVhdGU6ICIgKyBKU09OLnN0cmlu
Z2lmeSh2YWx1ZSkgKyAiIChleGNlcHRpb246ICIgKyBpc0V4Y2VwdGlvbiArICIpIik7CiB9CiAK
IDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMt
ZXZlbnRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zLWV2
ZW50cy1leHBlY3RlZC50eHQKaW5kZXggY2ExNDNhOC4uMjliZTAzYSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMtZXZlbnRzLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy1ldmVudHMtZXhwZWN0ZWQudHh0CkBAIC0x
LDIzICsxLDE1IEBACiBDT05TT0xFIE1FU1NBR0U6IGxpbmUgNjY5OiBbb2JqZWN0IEhUTUxQYXJh
Z3JhcGhFbGVtZW50XQogVGVzdHMgV2ViSW5zcGVjdG9yIGV4dGVuc2lvbiBBUEkKIAotUGFnZSBy
ZWxvYWRlZC4KIFN0YXJ0ZWQgZXh0ZW5zaW9uLgogUnVubmluZyB0ZXN0cy4uLgogUlVOTklORyBU
RVNUOiBleHRlbnNpb25fdGVzdE9uUmVzb3VyY2VGaW5pc2hlZAotR290IGNhbGxiYWNrLCBhcmd1
bWVudHMgZHVtcCBmb2xsb3dzOgotewotICAgIDAgOiB7Ci0gICAgICAgIGlkIDogPG51bWJlcj4K
LSAgICAgICAgdHlwZSA6ICJvdGhlciIKLSAgICAgICAgaGFyIDogPG9iamVjdD4KLSAgICB9Ci19
CitvbkZpbmlzaGVkIGZpcmVkCiBSVU5OSU5HIFRFU1Q6IGV4dGVuc2lvbl90ZXN0T25TZWxlY3Rp
b25DaGFuZ2VkCi1Hb3QgY2FsbGJhY2ssIGFyZ3VtZW50cyBkdW1wIGZvbGxvd3M6Ci17Ci0gICAg
MCA6ICJET01Ob2RlIgotICAgIDEgOiB1bmRlZmluZWQKLX0KK29uU2VsZWN0aW9uQ2hhbmdlZCBm
aXJlZAorUlVOTklORyBURVNUOiBleHRlbnNpb25fdGVzdFBhZ2VMb2FkRXZlbnRzCitvbkRPTUNv
bnRlbnRMb2FkZWQgZmlyZWQ6IG51bWJlcgorb25Mb2FkZWQgZmlyZWQ6IG51bWJlcgorUGFnZSBy
ZWxvYWRlZC4KIEFsbCB0ZXN0cyBkb25lLgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZXh0ZW5zaW9ucy1ldmVudHMuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRl
bnNpb25zLWV2ZW50cy5odG1sCmluZGV4IDk5ZmU1MzQuLjNkNjE3MDEgMTAwNzU1Ci0tLSBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zLWV2ZW50cy5odG1sCisrKyBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9leHRlbnNpb25zLWV2ZW50cy5odG1sCkBAIC00LDI2ICs0LDQ2IEBACiA8
c2NyaXB0IHNyYz0iZXh0ZW5zaW9ucy10ZXN0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0Ij4KIAotZnVuY3Rpb24gZXh0ZW5zaW9uX2NhbGxiYWNrKG5vbmRldGVy
bWVuaXN0aWNQcm9wcykKLXsKLSAgICBvdXRwdXQoIkdvdCBjYWxsYmFjaywgYXJndW1lbnRzIGR1
bXAgZm9sbG93czoiKTsKLSAgICBkdW1wT2JqZWN0KEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxs
KGFyZ3VtZW50cywgMSksIG5vbmRldGVybWVuaXN0aWNQcm9wcyk7Ci19CiAKIGZ1bmN0aW9uIGV4
dGVuc2lvbl90ZXN0T25TZWxlY3Rpb25DaGFuZ2VkKG5leHRUZXN0KQogewotICAgIHdlYkluc3Bl
Y3Rvci5wYW5lbHMuZWxlbWVudHMub25TZWxlY3Rpb25DaGFuZ2VkLmFkZExpc3RlbmVyKGNhbGxi
YWNrQW5kTmV4dFRlc3QoYmluZChleHRlbnNpb25fY2FsbGJhY2ssIG51bGwsIG51bGwpLCBuZXh0
VGVzdCkpOwotICAgIHdlYkluc3BlY3Rvci5pbnNwZWN0ZWRXaW5kb3cuZXZhbHVhdGUoImluc3Bl
Y3QoZG9jdW1lbnQuYm9keS5jaGlsZHJlblswXSkiKTsKKyAgICBmdW5jdGlvbiBvblNlbGVjdGlv
bkNoYW5nZWQoKQorICAgIHsKKyAgICAgICAgd2ViSW5zcGVjdG9yLnBhbmVscy5lbGVtZW50cy5v
blNlbGVjdGlvbkNoYW5nZWQucmVtb3ZlTGlzdGVuZXIob25TZWxlY3Rpb25DaGFuZ2VkKTsKKyAg
ICAgICAgb3V0cHV0KCJvblNlbGVjdGlvbkNoYW5nZWQgZmlyZWQiKTsKKyAgICAgICAgbmV4dFRl
c3QoKTsKKyAgICB9CisgICAgd2ViSW5zcGVjdG9yLnBhbmVscy5lbGVtZW50cy5vblNlbGVjdGlv
bkNoYW5nZWQuYWRkTGlzdGVuZXIob25TZWxlY3Rpb25DaGFuZ2VkKTsKKyAgICB3ZWJJbnNwZWN0
b3IuaW5zcGVjdGVkV2luZG93LmV2YWwoImluc3BlY3QoZG9jdW1lbnQuYm9keS5jaGlsZHJlblsw
XSkiKTsKIH0KIAogZnVuY3Rpb24gZXh0ZW5zaW9uX3Rlc3RPblJlc291cmNlRmluaXNoZWQobmV4
dFRlc3QpCiB7Ci0gICAgdmFyIG5vbmRldGVybWVuaXN0aWNQcm9wcyA9IHsKLSAgICAgICAgaGFy
OiAxLAotICAgICAgICBpZDogMQotICAgIH07Ci0gICAgd2ViSW5zcGVjdG9yLnJlc291cmNlcy5v
bkZpbmlzaGVkLmFkZExpc3RlbmVyKGNhbGxiYWNrQW5kTmV4dFRlc3QoYmluZChleHRlbnNpb25f
Y2FsbGJhY2ssIG51bGwsIG5vbmRldGVybWVuaXN0aWNQcm9wcyksIG5leHRUZXN0KSk7Ci0gICAg
d2ViSW5zcGVjdG9yLmluc3BlY3RlZFdpbmRvdy5ldmFsdWF0ZSgidmFyIHhociA9IG5ldyBYTUxI
dHRwUmVxdWVzdCgpOyB4aHIub3BlbignR0VUJywgJyIgKyBsb2NhdGlvbi5ocmVmICsgIicsIGZh
bHNlKTsgeGhyLnNlbmQobnVsbCk7Iik7CisgICAgZnVuY3Rpb24gb25GaW5pc2hlZCgpCisgICAg
eworICAgICAgICB3ZWJJbnNwZWN0b3IucmVzb3VyY2VzLm9uRmluaXNoZWQucmVtb3ZlTGlzdGVu
ZXIob25GaW5pc2hlZCk7CisgICAgICAgIG91dHB1dCgib25GaW5pc2hlZCBmaXJlZCIpOworICAg
ICAgICBuZXh0VGVzdCgpOworICAgIH0KKyAgICB3ZWJJbnNwZWN0b3IucmVzb3VyY2VzLm9uRmlu
aXNoZWQuYWRkTGlzdGVuZXIob25GaW5pc2hlZCk7CisgICAgd2ViSW5zcGVjdG9yLmluc3BlY3Rl
ZFdpbmRvdy5ldmFsKCJ2YXIgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7IHhoci5vcGVuKCdH
RVQnLCAnIiArIGxvY2F0aW9uLmhyZWYgKyAiJywgZmFsc2UpOyB4aHIuc2VuZChudWxsKTsiKTsK
K30KKworZnVuY3Rpb24gZXh0ZW5zaW9uX3Rlc3RQYWdlTG9hZEV2ZW50cyhuZXh0VGVzdCkKK3sK
KyAgICB2YXIgY2FsbGJhY2tDb3VudCA9IDA7CisgICAgd2ViSW5zcGVjdG9yLmluc3BlY3RlZFdp
bmRvdy5vbkRPTUNvbnRlbnRMb2FkZWQuYWRkTGlzdGVuZXIoZnVuY3Rpb24odGltZSkgeworICAg
ICAgICBvdXRwdXQoIm9uRE9NQ29udGVudExvYWRlZCBmaXJlZDogIiArIHR5cGVvZiB0aW1lKTsK
KyAgICB9KTsKKyAgICB3ZWJJbnNwZWN0b3IuaW5zcGVjdGVkV2luZG93Lm9uTG9hZGVkLmFkZExp
c3RlbmVyKGZ1bmN0aW9uKHRpbWUpIHsKKyAgICAgICAgb3V0cHV0KCJvbkxvYWRlZCBmaXJlZDog
IiArIHR5cGVvZiB0aW1lKTsKKyAgICAgICAgaWYgKCsrY2FsbGJhY2tDb3VudCA+IDEpCisgICAg
ICAgICAgICBuZXh0VGVzdCgpOworICAgIH0pOworICAgIGRpc3BhdGNoT25Gcm9udGVuZCh7IGNv
bW1hbmQ6ICJyZWxvYWQiIH0sIGZ1bmN0aW9uKCkgeworICAgICAgICBpZiAoKytjYWxsYmFja0Nv
dW50ID4gMSkKKyAgICAgICAgICAgIG5leHRUZXN0KCk7CisgICAgfSk7CiB9CiAKIDwvc2NyaXB0
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMtcmVzb3VyY2Vz
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zLXJlc291cmNl
cy1leHBlY3RlZC50eHQKaW5kZXggZTliNDdhZi4uYjFlM2I5YSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMtcmVzb3VyY2VzLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy1yZXNvdXJjZXMtZXhwZWN0ZWQudHh0CkBA
IC00LDUwICs0LDI2IEBAIFRlc3RzIFdlYkluc3BlY3RvciBleHRlbnNpb24gQVBJCiBQYWdlIHJl
bG9hZGVkLgogU3RhcnRlZCBleHRlbnNpb24uCiBSdW5uaW5nIHRlc3RzLi4uCi1SVU5OSU5HIFRF
U1Q6IGV4dGVuc2lvbl90ZXN0R2V0QWxsUmVzb3VyY2VzCi1yZXNvdXJjZTogLi4uL3Rlc3RzL2lu
c3BlY3Rvci9pbnNwZWN0b3ItdGVzdDIuanMsIHR5cGU6IHNjcmlwdAotcmVzb3VyY2U6IC4uLi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy1yZXNvdXJjZXMuaHRtbCwgdHlwZTogZG9j
dW1lbnQKLXJlc291cmNlOiAuLi4vTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMtcmVz
b3VyY2VzLmh0bWwsIHR5cGU6IHhocgotcmVzb3VyY2U6IC4uLi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZXh0ZW5zaW9ucy10ZXN0LmpzLCB0eXBlOiBzY3JpcHQKLXJlc291cmNlOiAuLi4vaW5zcGVj
dG9yL3Jlc291cmNlcy9hYmUucG5nLCB0eXBlOiBpbWFnZQotcmVzb3VyY2U6IC4uLi9pbnNwZWN0
b3IvcmVzb3VyY2VzL0FoZW0udHRmLCB0eXBlOiBmb250Ci1yZXNvdXJjZTogLi4uL2luc3BlY3Rv
ci9yZXNvdXJjZXMvYXVkaXRzLXN0eWxlMS5jc3MsIHR5cGU6IHN0eWxlc2hlZXQKLXJlc291cmNl
OiAuLi4vaW5zcGVjdG9yL3Jlc291cmNlcy9taXNzaW5nLWltYWdlLnBuZywgdHlwZTogb3RoZXIK
LVJVTk5JTkcgVEVTVDogZXh0ZW5zaW9uX3Rlc3RHZXRJbnZhbGlkUmVzb3VyY2UKLUF0dGVtcHRl
ZCB0byByZXRyaWV2ZSBpbnZhbGlkIHJlc291cmNlOiB7ImNvZGUiOiJFX05PVEZPVU5EIiwiZGVz
Y3JpcHRpb24iOiJPYmplY3Qgbm90IGZvdW5kOiAlcyIsImRldGFpbHMiOlsyMTI4NTA2XSwiaXNF
cnJvciI6dHJ1ZX0KLVJVTk5JTkcgVEVTVDogZXh0ZW5zaW9uX3Rlc3RHZXRQYWdlVGltaW5ncwot
R290IGNhbGxiYWNrIGZyb20gZ2V0UGFnZVRpbWluZ3MsIHBhZ2VUaW1pbmdzIGR1bXAgZm9sbG93
cwotewotICAgIG9uQ29udGVudExvYWQgOiA8bnVtYmVyPgotICAgIG9uTG9hZCA6IDxudW1iZXI+
Ci19CitSVU5OSU5HIFRFU1Q6IGV4dGVuc2lvbl90ZXN0R2V0SEFSCityZXNvdXJjZTogLi4uL3Rl
c3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdDIuanMKK3Jlc291cmNlOiAuLi4vTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMtcmVzb3VyY2VzLmh0bWwKK3Jlc291cmNlOiAuLi4vTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMtcmVzb3VyY2VzLmh0bWwKK3Jlc291cmNlOiAu
Li4vTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMtdGVzdC5qcworcmVzb3VyY2U6IC4u
Li9pbnNwZWN0b3IvcmVzb3VyY2VzL2FiZS5wbmcKK3Jlc291cmNlOiAuLi4vaW5zcGVjdG9yL3Jl
c291cmNlcy9BaGVtLnR0ZgorcmVzb3VyY2U6IC4uLi9pbnNwZWN0b3IvcmVzb3VyY2VzL2F1ZGl0
cy1zdHlsZTEuY3NzCityZXNvdXJjZTogLi4uL2luc3BlY3Rvci9yZXNvdXJjZXMvbWlzc2luZy1p
bWFnZS5wbmcKIFJVTk5JTkcgVEVTVDogZXh0ZW5zaW9uX3Rlc3RHZXRSZXNvdXJjZUNvbnRlbnQK
IHsKLSAgICAwIDogewotICAgICAgICBjb2RlIDogIkVfTk9URk9VTkQiCi0gICAgICAgIGRlc2Ny
aXB0aW9uIDogIk9iamVjdCBub3QgZm91bmQ6ICVzIgotICAgICAgICBkZXRhaWxzIDogewotICAg
ICAgICAgICAgMCA6IDIxMjY1MDYKLSAgICAgICAgfQotICAgICAgICBpc0Vycm9yIDogdHJ1ZQot
ICAgIH0KLSAgICAxIDogewotICAgICAgICBpZCA6IDxudW1iZXI+Ci0gICAgICAgIGVuY29kaW5n
IDogIiIKLSAgICAgICAgY29udGVudCA6ICIuc29tZS1zdHlsZSB7CisgICAgMCA6ICIuc29tZS1z
dHlsZSB7CiAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsKIH0iCi0gICAgfQotICAgIDIgOiB7
Ci0gICAgICAgIGlkIDogPG51bWJlcj4KLSAgICAgICAgZW5jb2RpbmcgOiAiYmFzZTY0IgotICAg
ICAgICBjb250ZW50IDogImlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFFd0FBQUJuQ0FJQUFBQWxu
ak9KQUFBQUNYQklXWE1BQUFzVEFBQUxFd0VBbXB3WUFBQWdBRWxFUVZSNG5HMThhV3djNTNuL3pP
ek03TXpzZlM5M2VSK2llSWlrcEVoUlNNbVdMY2VLYlRsSEhjV3VFenZObDdRb2doNmZpZ0pGZ2FK
bys2a0ZDalJBZzdiL3drbFFGMDFodUdrVnFYSWR5YlVzNnFZa2t1SWxMc1ZkY3NubDN2ZnM3Qnov
RHovTzY1SGMrVUFzOTVoNTMvZTVmcy92ZWQ2WHZuTGxpaUFJa2lTeExHc1locXFxbXFZWmhpRkpF
c013RE1QUU5FMVJGRTNUK0ZmVE5JN2pORTFyTnBzTXd6Z2NEazNUYXJXYUxNczJtNDJtNlhhNzNX
NjNkVjJuYVpxbWFVVlJPSTR6REVPV1pWVlZiVFlid3pDNnJxdXE2blE2T1k1ck5wdXFxZ3FDSUlv
aXd6QTJtODFtczJFa3VJbXU2KzEydTlWcXNTekw4enpIY2JnSmh0UnNOdkhDWnJrd0RGM1hEY1BR
ZFoxbFdaWmhHSXFpRE1QUU5BMHpwQ2lLNHpoTUR4L2hUWXFpV0piRmcyMDJteWlLZ2lCVUtwVlNx
ZVR4ZURSTm95akticmN6REZPdjE5dnROc013ZHJzZDcwdVNSRkdVcG1rMFRiTXMyMmcwMnUyMm9p
ZzJtODNsY2dtQ1lCaUdvaWlHWWRBMGJiUFpzRFQ0aWE3cnVDMG1RRkVVbVQ5R1Jac1htVHhraG5t
eWVKZE1tcUlvU014bXMrSDMrSWpJczkxdTIydzJRUkF3aUhhN0xRakN3TUJBdFZwdE5CcXFxaklN
WXhnR0Zwdm5lY2lFcG1tc1dxdlZ3cWR1dHhzeXhEZXg4SGdjR1FPZXFLcXFZUmo0T2RFc2lBUURJ
OU1qSThjN2hubnRUeGNMZzV1eUxBdUZ3YjNJSkhFanY5OWZyOWNwaW9KMmxjdGxXWllaaG5FNm5U
elBOeHFOZXIydXFpcHVnbDlCV2FDbFBNOWptWG1lNTNrZXoxVlZWVkVVdTkzdWNybHF0WnIxdDBS
dVdEdkt2TWdFaU9pSXhoS3pJcHJJa2c4d2RYSVhWVlhKN2F3cWtjMW1ZN0dZSkVrN096dUpSS0xS
YURpZFRyZmJuY2xrZkQ2ZklBaVFtOTF1MTNXOVZxc3hEQ01JQXN1eVdIaW9BRVZSaXFKb21zWXdE
R3lNb2lqOEZVVVJpd0tSRXRVbE9nVTU0eU5pK1dSdTVJS043SXNOQzBBc0RaZFZ5NTk1N2ZWNkRj
TzRlZlBtZSsrOTl6Ly84eitHWVlURFlaN25SMFpHUmtaR2hvYUc0RTR3ZEx2ZERqOUVVUlR4R1VR
T2VCWlVsNklvV1paYnJaWWtTUkFqUmtrRWlMK1lGZkdJRUJjUkk5Nzg0ckJadUFlZTU2Mlcrb3dk
NHdjWW1jZmorY1V2ZnZIM2YvLzNkKy9lZFRnY3NWaXMyV3htTXBuTnpjMjF0YlhSMGRGb05Ncnp2
Q0FJb1ZBb0hBN0xzcHpMNVF6RGlFYWpEb2VqVkNvVmkwVmQxOTF1TjVSRmtxUlFLQlFNQmlFdUtE
UCs0bC9NQklxQXNXRlcrQmNyUWdSSVptaFZlRmFXWldnWCtTV21CRjJDWWhDOTFYVjlaMmRuZG5a
MmFXbko0L0g0L2Y2OXZUMVpsZ09CQU1keGUzdDdxcXF1cjYvWGFyVjJ1ejA0T0hqNDhPR3RyYTNG
eFVWWmxnOGNPT0J5dVZaWFZ6YzJOblJkajBham9panlQQytLWWl3V0d4MGRIUmdZOEhxOWZyOGZN
N1FLQk1xRkFkQ1dDNnRnL1pkY1ZsdWxQL3JvSXl5ODNXNkhPa0h1TnB1dDNXNXJtb1ovOFRPTzQ0
ckY0dXV2djY0b1NyMWU5L2w4SE1lRncyR2Z6eWZMY25kMzkrRGdvTWZqS1pmTGlVUWlrVWprOC9u
ZTNsNVlZTEZZekdhejVYSVpIbFdXNVhnOFBqVTFOVHc4ekRCTVBwK25hZHJ2OS9NOEg0L0gzVzYz
S0lyeGVEd2FqWEljcCt1NkxNdVZTc1hsY3VtNlhxMVdvZFhRQlNJTUNCWjJRUXg0UDRRUXIwT2NP
SlFFVnZHTWlXNXZiMWVyVlYzWEZVVnBOQnBZZFZWVmg0YUdzdGxzS3BYeWVyMDlQVDM5L2YzZDNk
M1ZhblZ6YzNOdmJ5K1ZTdVZ5T1JpbnJ1dTRlYmxjem1ReVRxZFQxL1ZrTXBuTDVYUmRGd1RCWnJQ
VjYvVm1zK24xZXNmR3hzNmNPZlA4ODgrTG91aDJ1M1ZkNXpqTzcvZGpBb3FpUVB1c1V5SWVGRlBi
UndLMEpmTEFBUEE5cStwekhJZlZ5bWF6eEdzcGlnSy9VaTZYSHoxNkpFa1N4M0Y0MCtsMDl2YjJk
bloyUXJDNnJyZGFMY1JZc282RlFtRmhZV0YzZDlkbXN4V0xSUWlaNTNtNzNXNjMyMW1XM2RyYVNp
UVM4L1B6czdPejMvM3VkdzhlUE5ocXRmRG9TcVVpQ0FLUmtEVVFZQkVoVmZoVTFyQmNWZ0RSYnJk
aHFNU2hJYUJsczFtOENkMUdyRyszMndRaFlWMUtwZExpNHVMYTJ0cms1R1M5WG9jY0twVUs1bW0z
MnltS2FqUWErWHkrVUNnZzVESU1JNG9pUUJ6RE1BNkhReFRGYkRhYlNDVHE5ZnFoUTRjT0hqeUlS
enVkVGszVFhDNFg0QVN4UTZ1emhOWkFjcCtEQVN1c3NZWWdNa25nMWZYMTlXYXoyVzYzZVo0bjhW
QlJGTmdNWUFEbWdIOHJsUXIwQlRMSEd1TnVVQTM0R0VnQWtsUVVwVktwNVBONWo4ZURHTmhvTkJL
SkJPQXhWQlNCcWxnczRsbEVPYTJLU1p1NGw3WGEyek9PaTN3YnIyVlpMaGFMR3hzYkJEcmpxYmlS
TE10T3A1UGdkU0FZdDl0ZEtCVElTa1A0V0JUZ1pzd1RZSkNvR2N3U0MwZFJWTHZkcnRWcXhXS1Jv
cWlPam81NnZkNXF0ZXIxT3NJZUZJYzJNVG9KQjBDZHVDZHJ4UXBXUjB3c2s4RGFack9aeitlVHlT
Uk4wNUlrU1pKVXE5WGdmZ1ZCQ0lmRDBBaUdZZHh1Ti9LR1NxWGk4WGhncGJRSlg5dnRObEFSQWhY
Y0c4L3pVUDVXcXdVNVErd1lydFBwM05uWldWaFlpRVFpZ2lEQWNDaUtpa2FqbFVxRndGM0VSb3dX
ZDhQa240SjFWZ3NtWXNRazhmaHF0YnExdGRWdXQ5MXV0OXZ0aHNwSmtpU0tJb1RaYXJWa1dTYlFt
ZWY1YXJWS1ZBam8vQm04QnVOaEdBWkFEK0NXWVJnQVFOeU5vcWliTjIvKzVDYy9lZkxreWVUazVP
am9xTS9uS3hRSzlYcWRSQXZjOEl2aGdBSjJwVTFBaDlrVGNDY0lRclBaaEVwa01obVB4MU1xbFRp
TzgzZzhyVlpyYjI4UG9iWFpiQllLQlNJaUVvZzFUVk5WbGVNNHVFUkprbUNXSG8rbnU3djcxS2xU
SG8vSGJyZG5NcG1IRHg4dUx5OURzUkdmb2JHeUxQTTg3M0s1NEljMk5qWisvT01mZDNkMy84bWYv
TW1oUTRmY2JuZTlYaWY2aVZsZ2dhQ3JKSnl3QkJuUVQrTTlobUdxMVNyQlZqNmZyOWxzcnF5czFH
bzFBazBOdzJnMEdvMUdBNk94b21jU0RBbkNhamFiRkVVTkRnNSs2MXZmZXUyMTF3S0JnTlBwWkZt
MlhDNC9lZkxrenAwN0Z5OWV2SG56Sm1NbWFMVmF6VEFNaDhPaDYzcXBWSUszcDJrNm1VeCs4TUVI
a1VoRUZFV0h3L0ZNL21BTis1K0RBWkxGV01FQUhHQzlYdmQ0UE8xMkd5Nys4ZVBIMTY5ZlI4QWt3
b2MvRkFRQlZvZUkwbXExY0Z1Z3RuYTc3ZmY3angwN2R1Yk1tYW1wcVdBd2lQQUY2d29HZzdGWWJI
eDhmSEJ3Y0h4OC9GZS8rbFd0VnFNb3l1djExdXYxdmIwOVNaSzZ1cm9xbFFwdVc2MVdMMXk0OE9h
YmI0YkRZYmd4NnlTLzZEZ3BpbUt4MkFRbGtJVWg2d0czdWJXMTlmSEhIeTh0TFRtZFRpUzRSRThR
OTFxdEZ1YVBwOXJ0OW1BdzZQZjdqeHc1TWpvNk9qVTFGWTFHWWZ4Z09vQU5jQ3VIdytIMys3LzYx
YTlPVFUyTmpZMWR2SGp4MDA4L2JiVmF5RTVVVlMyVlNnNkhRMVZWR0dFbWswbW4wN0ZZREErMVlo
Mk0yVHBKbXFaWjR0OEpKTUJYVlZVVlJSRXExMjYzNzk2OWUvWHFWUXdMbmwyU0pPZ1BidFRUMCtQ
MWVqMGVENVRUNC9IMDlmVjFkWFc5OXRwclpBVTVqbU5aVnBibFVxa1VDQVFNd3lDY0NITGxycTZ1
SC96Z0I0Y1BIMzcvL2ZjdlhicFVMcGNGUWRBMHJkVnF3WUJydFJyUDg2MVdhM1oyZG54OG5DQ1Fa
NVNXTXJOVGlHby9uOFJiSklXREUyZFpGalJVclZhN2YvLys5dlkyTEFSZW51ZDVuODhuaXFMUDV3
c0VBckZZTEJnTVJpSVJsOHZGODd6YjdlN282QWlIdzZWU1NSQUVudWZoaDNCYm44K0g4QU8vd25F
Y3FCT2J6YVpwMnBlKzlDVy8zejh5TW5MMTZ0VTdkKzdJc3R6WDE1ZlA1d09CZ0tJb0ZFVXBpdkxa
WjU5QjhpUkJzYzZUc3BBSk5FMnpSSW1KSlBFOW51ZWhTNUlrYld4c0pCSUpPR3ZJTUJBSURBOFBk
M2QzZTczZWVEemUxZFhGY1p3a1NVNm5VNUlrVUJ2Z3Bod09CNVlQdHFwcEdzaEJ4Tko5Mk1XeTBC
bzh2Vnd1aTZMNDJtdXZqWTZPL3ZNLy8vT1ZLMWRLcFJKRTdYQTQ2dlc2cnV1WlRPYjI3ZHM5UFQw
K240OU16N0F3RzFZYWdTVUVqelZqaHVWVUtoVzh5R2F6aFVMQjZYU20wMm1lNS8xKy84VEV4TW1U
Sjd1N3V4RW5nOEZnS0JRQ0VvSkhZVmxXMS9WR28yRzMyeFZGQVg3QXhQQTF3RjNETUJBZVJWRzAy
V3l0VmtzUUJJZkRnZmpwOC9tQ3dTQnlGSVpoSUcxWmxpR2xodzhmUXVhMG1YQmFEZktwZEFScmpH
ZkRxYklzQy8wQmViTzd1OHR4WENBUXFGUXFUcWV6WHE4ZlBuejRsVmRlT1hMa2lNZmpjYmxjOFhn
Y1lpZlR3NjNoUWtuZW9DZ0t3ZE1rbThQNmFwcUczQXBmUTBCeXU5MWVyM2R3Y0xDL3Y5OHdESS9I
azB3bVgzMzFWUWc4bVV3K2VmSmtmbjQrazhrMEdnMDhGSlFhUWpkdElUVDJuMFMwbE1oZEZFVW9t
TjF1RDRmRFNHVEI1Unc3ZGl3YWpiSXNHNGxFRUE5Z1Y0UmxneEppN2F4WWlvQko2ME90bDJFWVBN
OERHMEVMUmtkSER4OCszTkhSQVFOakdPYWRkOTVCWWdteEE5OEREQ1BBZ29hRy9lTXZReWp6Wjl3
c0lTQUVRWEM3M1dBckdJWkIraTlKa2l6TGRydGRGRVhEek1lUkNzTGtvQVVlajRjZ0Irc0tHcFkw
MXdxU0NjV0dyTjh3akw2K3ZoTW5Ub3lPanJiYjdmNysvbXExT2pNek16MDlIWXZGRW9rRVFCSVNT
OHBrK21EMlZ1aTJQOGxuMXBXc2g5MXV4N2VEd1NDU1BVbVNZTFNBN0JSRlFWZGJUMThrbnlZU2Zv
Wk5zem81cTZpQmI1MU9wOTF1Qi8vVTJkazVPam9hREFacG1sNWVYcTdWYWlNakk4UER3NUZJWkdW
bEpaL1BJMUFUbnBIZ1dITHRKemhrMHNUSHd2V3BxZ3I0ZXVEQWdYQTRURElNRU1HTlJrUFRORW1T
bXMwbVNYTndRK2dxWUJEOUJhei9URXdqRjhGTTBGc0FHa21TT2pzN3o1NDl1NzYrUGo4L2YrZk9u
VUtod0hIY3E2KysybWcwbHBlWEs1VUtZZy9LTGNBUDFtVmxpTU8xWGxnTVdaYXIxYXFtYVI2UFoz
aDRPQmdNSXF4aEFvamdsVXFsMld4V0twVkdvOUZzTmx1dEZvYUlEQU9GRUhLUnhTWmgyam85S0Fo
MHAxNnZJL2RIY3V4MnU4K2VQWHZvMEtGU3FYVHg0c1ZDb2JDN3U5dHNObjArMy9MeWNqS1pWQlFG
SUJFQjNKbzY2N3IrMUQrazRJTUxyaC84djJFWUtHT0JmU2tVQ2lCNzRCanRkbnVsVXFsVUt0VnF0
VmFyWWNLS29pQjJrNHNBRHlqd00vTUVDS0hNMHBBc3k2Z21JSXhGSXBIZitxM2Y2dWpvZVB6NE1W
YjU4dVhMMjl2Ykd4c2JDd3NMZTN0N2dpREFGQWxYL2psMnRVNlNzb0JZQ01UaGNEaWR6a2Fqc2Iy
OW5VNm5rWCs1WEM0UWR2RjRIUDROR1RNY29KWDhoejhrc1pkTWhqTFJsVldTbUtTaUtENmZ6MmF6
d2VBWnM0TFNhclZHUmtiNit2cWF6V2F4V0F3R2c0OGVQZHJiMnp0OCtQRHk4dkx3OEhBMEdzWFN3
QXRhNmF0OTRNWllXRWtrKzRxaXVOM3VhclZxczlsQ29kRHM3Q3drdzdKc01wbk01L09xcW5xOTNv
TUhEMUlVQlNFamdxdXE2bkE0a0NzSGcwR0dZU3FWQ3J3MFNhWWhybUt4Q0pXR1NRUFdOaG9OU0Ur
U3BIUTZUVkVVR01CeXVmemd3WU5Iang1eEhKZE9wd09CQU5pZGxaVVZsbVdkVG1kSFJ3Zm9RaXdX
S0JWY0xCWWViMUZtbUFZNko1YTVzckp5Ly83OVRDYWo2M282blVia3dJTEJReUMxSTNVN1ZWVmhX
Z0Jva2lRaEYyczJteHpIT1J3T2VCU1B4NE1uUXVhS29xaXFHZ3dHbTgwbVlsZytuOS9ZMk9qcDZU
bDY5R2l6MlV3bWs2VlNTZGQxUUJTV1padk5acjFlWDFwYU1neGpmSHo4MkxGamtVaEVsdVZDb1lC
VWMxK1NFQjFqS1JEQVFTR2pwMm02VnF2ZHZYdjN4bzBibVV6RzYvVm1zOW1CZ1lHaG9TR2Z6OWZa
MlFsS0c3WG5WcXVGZUZpdFZqMGVEOHV5MEdwUzlCVkZFV2xLc1ZpVVpSbDRBL2txRmdXaEdORUxB
NWlibTh0bXMwZVBIbDFlWHA2Zm53ZEc3Kzd1YnJWYTRYQjRlM3U3VnF1cHFwclA1NHZGb3FxcXdQ
MTJ1OTNLWFQxbGt6QldUQnVKT2MveitYeCtZV0ZoYzNNVEViWFpiQ0o4WVJDUVBINGlTUklNVzFW
VmZCa0VLWlRUNFhESXNweEtwUllXRmg0K2ZGZ3FsYWFucDBkR1JrakJyMVFxd1F0Z3VXVlp4aU9X
bDVkM2RuWWtTWUovTGhhTG9paWVQWHQyYUdpb1Vxbjg5S2MvM2Q3ZWhoRUtnbEF1bDFtV3hWb1Fq
ODJTK1BaTVVFYUlVMVUxbFVwdGJtNEMzMm1hdHJhMjFtdzJGeFlXb0xSdXR6c1FDUGo5L3A2ZW52
SHhjYVF2OEhKUTdFcWxrczFtcTlWcXNWaGNYRng4K1BBaHRBNDFFaVNpV0UyNFIxbVc0YjFrV1Vh
T0JyK2R5K1ZxdFpyYjdRNkZRb2NQSHg0WUdMaDE2OWFkTzNlZ2QrMTJ1MVFxQVhVUjBFOGd4K2VT
Tkw1UVdxWW9xbDZ2bDBvbFZWVUJkSFJkejJhenhXSVJTWVpoR0FCOWtpU0JtM0s3M1dCZk9qczds
NWVYbnp4NTRuSzU1dWJtVmxaV2NybGNPcDBHMSt4ME9qYzJOajc4OEVOa0VpKysrT0xZMkJqSGNk
VnFGWGdkQlMrUHh3TUdoS0tvYkRhcjY3clg2eFZGOGQ2OWU3dTd1OWV1WGR2ZTN2WjZ2VWhXWkZs
dU5wdm81MEJ1L2JtNldxTXpZeWxaa3lEbThYaDZlbm9LaFVJcWxVTDZnNFFEdEpxaUtLamtvQ2pn
ZERxN3U3dkQ0ZkM3Nzc0cnkvS0hIMzZZeStWU3FaU2lLQmczeXBMVmFsVVV4ZTN0YllxaW90SG8x
dFpXUjBkSE1CaUU2eUxwcFNBSXJWWXJsOHZKc3B6SlpGd3UxN0ZqeCtyMSt0emNuQ2lLTDcvOHNp
UkpWNjVjQWM4Q1dneEJtOFRoejcwcndhdFdlV3FhQm13ZGk4VnF0ZHJXMWxZcWxkSjFIZURHWnJP
Sm9raFJGRHdFYkFtVTdPN3VialFhL1ozZitaMnVycTVVS29VZzVIUTZLWXFxMVdvMFRZUElSSXF6
czdOejRjS0ZYLy82MXlkUG5uem5uWGVtcDZmUkQwTFRkTEZZYkxWYWNNN2xjaG1ER1JvYVdsNWVo
Z3Y4eGplK0FaSjZlM3U3Mld6eVBCOEtoY0Iza1JUODh6aEowelNvUjZTekhNY1JaZ1ZMY3VEQWdV
d204K0RCQTU3blFjL0JNU0xuUkQrRXcrSEFwNXFtemN6TWdCUStmLzc4KysrL1h5NlhFUVkxVGZO
NnZhVlNxYSt2NytEQmc0SWdvR2dsQ01MTm16Y0ZRVUExSGlRZ1NwUTJtMjFuWjRlbTZYYTdQVEF3
a00xbWs4bGtOQm9OQkFLSVRNZU9IV3UzMitGdytFdGYrbEsxV2tXc3RncU1vaWpibTIrK3lWaXFD
QVFXRWNvVTRzcG1zNDhlUFVJUmpqQkFicmNiWC9ENWZQbDhuaVFjZlgxOXdXRFE1L1BGNDNHNG9t
UXlXYS9YQ1dqTzUvT3lMSStPam82UGo0T1ZMeGFMVHFmejRNR0QwV2dVZm91bTZWS3BkT3ZXclVR
aUlZcGliMit2cG1ucGRCcjE3RmdzTmpJeTR2ZjdPem82aG9hR1JrZEhBNEVBYmJMeUdCNlpsKzNO
Tjk4azJJcGtkRWhEQ2ZZREZiS3lzcks3dTB2RWlEUUt4U3lLb3ZBbWdNNzU4K2RQbmp6WjFkV0Zm
Qm9WZFRqR2JEYUwya205WHI5Mzc5N0t5Z3BOMCtGd0dQcmNhcldtcHFZY0RnZXFadFZxdFZBb2xN
dmxBd2NPbkR4NXNsZ3N6czNOSWNEQ3gwYWpVVm1XSTVHSUpFbjdtc215WU51ZXNrbkswbzVFY2dV
NFphZ2Y2Qm0vM3grUHg5ZlcxZ2pqaGt6SzZYUWlMNmxVS3NDcjdYWWJtQVlQaU1WaUw3MzBVcjFl
Lytpamp5aUtpc1Zpa1Voa2ZYMjl2Ny8vK1BIanAwNmRhcmZiK1h4ZUVBU29UTFBaQkg1QVNqazFO
VlVvRkhwN2V5Y25KMVZWdlhuelpxVlNRZTBNdmdEa29DekxLTENUVkJhVlJZekI5cDN2ZkVjM2Ey
WWtGVUswUURZTTJFblROSUlWd0JwTjA2SW9nbE1DZW9Za1daYU54K052dlBFR1hHV2owVUJWWTNo
NEdGQWVZYkM3dTd0V3ErVnl1V0F3ZVB6NDhVT0hEb1ZDSWEvWDI5L2Y3M1E2VVFnRDllNXdPUEw1
L01EQXdPRGdJTU13Q3dzTDYrdnJ1cTZQam80Kzk5eHpTR3RSTWdLWnFKdnRhS1RWZ3dhNWJMVlJJ
bUpJSEZvT1lRNE1EQnc4ZURDVlNvR2I4bnE5ZHJ1OVdxMjJXaTJYeXdYMTd1bnBlZVdWVjc3ODVT
OHpERk1zRmdGRSt2djc4L2s4T1BVVEowNVVxOVhkM2QzVHAwOGZPSERnNk5HalNPTEFyeU5zSU1P
aUtNcHV0eU5hQm9OQnU5MCtNREF3TVRGeC8vNTl1OTNlMWRYbDkvdkJIdVR6K1hBNDNHcTFhcldh
MStzbFpVK1MzOWplZU9NTm9MQm5zajRnUUZKTFE5S0VlTkRiMjR1aGRIWjJ1dDF1dkVna0VtTmpZ
K2ZPblh2eHhSZjlmbitwVkZJVUJab01LT055dVRZMk50YlcxcUxSNlBlKzk3MnBxU20vMysveitV
RDVZVFJkWFYyb3Q1T3NUWmJsemMzTmVEd09uckpRS096czdIUjFkWDN0YTE4YkdSbEJJK0wxNjlk
QktSbUc0WGE3MGE1aFpkQnQzL3ptTjBtVjI1cmFvVlNNZ0dHWVRZREZZakVVQ3IzNDRvdXFxcTZ1
cnFJYXQ3cTZXaWdVWG43NTVlZWVlMjVpWWdKckdRNkg3WFo3c1ZqRWNqUWFqYTk4NVNzOVBUMnFx
bTV0YmMzT3pnSllnemNDYkFLMEFQT1B1bDJqMGNobXN5c3JLOEZnME9WeUdZWlJyVmJ6K1h4UFQ4
LzA5TFRmNzFkVjllT1BQLzdidi8xYlhkZFJwM0M1WE9WeUdWOG1jMkVialFaQnJmdG1hck1oa0FB
S3d5d2xTVUozWnpnY3BpanF6Smt6TE1zdUxDd2NQSGp3aFJkZWNEcWRNek16Nit2ckd4c2JCdzRj
UU9CT0pwUG83d0Vsa1VxbGVudDd6NTQ5KzhZYmIrVHorZDNkWFRoVmtoSkFnS1FJclNqSyt2cjY3
dTd1cjMvOTYwT0hEb0dZalVhamYvaUhmd2hvQ2t4eS8vNzlVQ2lFRUlBVjlIcTl5SitJMHJLQUFT
U0VVQ2JiUmNnSXcreEVaRmxXa3FUYnQyK0xvamc4UER3NU9UazRPSWkwbU9PNDFkWFZYQzczd2dz
dmtCNUNBRUJGVWJxNnV0YlgxeDBPUjZWU2dWVjdQSjU0UEk1NkVRWUVJa0xYZGF4TFBwOWZYVjI5
ZXZYcWpSczNRUE9VU2lXZnp3ZGZTcGtNeHVibVpqQVlmUG5sbDQ4ZlArN3hlSURwRWZEZ1hmY05r
SHI2SWxnQmdkdXc5TDJ3TEl0RjJ0blpLUmFMZnI4L0Zvc0JKMFVpa2NIQndYYTdqV0tCWVJoZ2dB
UkI2T3pzdkgvL1BqcStzRmlqbzZNb0xZSUtKTTlDWHAvSlpGUlZUYWZUcTZ1cjE2OWYzOXpjSEJ3
Y3JGYXJkcnZkNy9lN1hDNThNeEFJb0JBK09EaDQ2dFNwUTRjT3dTNUliR01zcERaakpkRm9zK2NY
UkJCSkZDbVRNVUNMNVBiMmRxVlNRV0tLSk12bGN2M3lsNy9jMmRsQnl3NVFDNElINUZhdFZpOWR1
Z1M4dHJHeGdUQ0lYQm5FUEdxUFcxdGI1WEs1VXFuSXN0eHV0M2QyZHB4T1p6d2VCMzVBa29tOERL
c3ZTZExZMkZnNEhFWVU4WHE5RE1PZ01ZVEVENHFpVE9EemYvV0FRSklFSnhobWNYdHpjeE90Y0R6
UFJ5SVJYZGMvL1BERFR6Lzk5UGp4NHgwZEhhSW9vdWJSYnJlejJXeXBWTUlxNVBQNW4vemtKd0Fv
d0lQd01kRFljcmxjTEJiWDF0WVdGeGV2WDcrdTZ6cHF6SkZJWkdCZ1lIUjBsSERxTHBkTEZNVkdv
MUdyMVZ3dVZ6UWFSV29PZUlBcHdGMVRacEs4MzFoa1BGM2NNMHdTR3FrblhpQ0lqWTJOL2V4blB3
TlZJUWdDV0luTGx5K1BqNCtIUXFGa010blYxWVg2TEZGWFFKWndPUHpuZi83bmlVVGlyLzdxcjN3
K0h5d1oybDZyMVZDaUtSUUtxNnVyWHErM3U3djc4ZVBINCtQakl5TWpYcS8zeXBVcnp6Ly9QRWdE
UVA5Q29hRHJPaHdzU2lQTlpyTlVLb0Y1c2xvZlRkUDdBUDJMRjJBNlRCRm9CaDQvR0F4ZXZYcDFh
V2tKbWVTZE8zZnUzYnZYYnJjYmpjYkN3c0tEQnc4Zy9FYWpnWndBT1NHYXVIcDZlajc4OE1ORUlo
R0x4UWdjQTZ5RDY1NmJtMk5aZG5Cd01CcU5aaktaOGZIeDhmSHgyN2R2Ly9WZi8zVW9GSEk2bmRW
cWRXTmpJNS9QSTRFRzNFSHVCaWVIMUE4UmdjaU1OWjRtN1luR0F1ekNzNU5hRmNNd2tVams5T25U
Ly9WZi8zWDU4bVd3VlpWS3hlMTIrLzMrK2ZsNWlxSSsvdmhqdTkzZTM5OFBtSnJOWnRIZjg2ZC8r
cWZ2dlBQTyt2cjYrKysvdjdhMjl0WmJiM1YyZGxJVUpVa1M2QUswZkE4T0RvcWltRXFsWG4vOWRX
VG45KzdkVXhUbHovN3N6Mzd2OTM2dnA2Y25uOCtIUXFIUjBWRkpra0NMUXJha3ZNOVl5RWRJa29X
aUEwbVJaZ3FiMmR3REQ0VCtBOXlDcHVuVHAwOS84TUVIU0NuOGZqOVNyY25KeVVhanNibTVhYlBa
eXVYeXJWdTNrRlh6UE85ME90OTQ0dzJIdzhHeTdIZS8rMTJPNDM3Kzg1Ly8zZC85WFc5djc4VEV4
SzFidHdZR0JsNTY2U1ZCRUk0ZVBlcHdPRkNRaEhJbWswblFKYkZZck5GbytIeStrWkVSUVJEQStn
R3Z3alIweTJZRWVDWVNCVm5DY3pObVF3OWxOa1VUZUlVTFZxUW9TamdjUG5Ma3lPenNMSkxhY0Rn
OFBqNU9Hdm5RSllhNmlOZnJQWExreUFzdnZIRDY5R2tRSDBlT0hORjF2VnF0L3VkLy9pZkRNRjFk
WGQvKzlyZi80aS8rWW5sNStSLy84UjlEb1JDY09VSUxsbWwwZExTcnF5c1dpL1gzOS9mMDlMamRi
cXc0bkw5aGFTYW5MZFZCWW5jVVJkbmVldXN0RWpuSURDRlNBQmZ5SnNxUElMV0t4ZUsxYTlkRVVR
U2QwZDNkUFRBd3NMT3pnOVpPUlZIUVBQSGxMMy81L1BuekowNmM2Tzd1cHMxcURGRHhpeSsrdUxh
MmR1Zk9uV1BIam1VeW1TZFBuZ3dORFFVQ0FUaGVVUlRobG5aM2Q3MWU3NGtUSjhiSHh6czZPdUJh
RWVoSjVlWVpuaEh6dE1ZTDIyLys1bStTNUlNWXErM3BDOVlNK3haRkVSWHZ6ejc3REwvQ0hxYTl2
VDFkMXlPUkNINUNVVlE0SEQ1Ly92elJvMGRCbWVMTENHTGo0K09xcWs1TVRFeE9UbDY2ZEtsWUxK
NDdkMjVrWkNTYnpZWkNJWVpoMFBpTjZtQWtFa0VRd2h5UXRhSTZTS3p1LzV3a2VmT3BmUzRrS3RK
bUl5dmtqcTV1cUM1MkJQVDI5cDQ2ZGVydTNiczJtNjFXcXlXVFNYUVVxS3BhTEJiRDRURHc1TmJX
Vmo2Zmh4dXNWcXRnSlVGMlFFcmYvdmEzR1liNWYvL3YvNEhkN096c3hGT0F6b1BCSUVoNnh1eUJn
aDBTUWhSbGMwSndXNmVnV3pxMVdJTGRpRUx2QjFDV2JadGJpMGptb3VzNkFIMDBHaDBmSDc5Ly96
NUZVV2hpOGZsOFBwOHZsVW8xbTgxc05sdXBWRFJOeStWeWx5OWZSdE1MekpWaG1OM2QzVVFpTVRJ
eWN1VElFVVZSaG9lSDIrMTJQQjczK1h4NDMrbDBLb3FTU0NSV1ZsWkE0Y0RCWUhwUVk4ckMrbHNs
WkZqYVhjakZrbWFOejVFZXc4RHhHR2FYQ0hRRHJ4dU5Cb2htbEprQjBORDhmdWJNR2ZSVTUvUDV1
Yms1dDl2ZDA5TVRpVVNRS01iamNVM1RzdG5zMHRMU3ZYdjNETVA0MXJlK0ZZdkZIajkrck90Nkpw
TkpwVkxZMktTcTZ1N3U3cE1uVC9iMjlqaU82K3pzSkhWVlpDZEVTMEhFMEpZbUpNUHMzYkZPZUg4
M3dUTStDcUdHQkZNU1p1Q2ZVUFpKSnBNVVJTR3I1amp1OGVQSDlYcGRsdVh6NTgrZk8zZnUzTGx6
c1ZnTVpUd3MvK3JxNnZ6OHZOZnJmZlhWVjcvMnRhOEJMZFJxTlRTQlhyMTZsZWY1bDE5KzJXNjM1
M0k1OUs3d1BOL2IyNHM4bURTb0lRYUM0TkhNYlFHVWhmdTNUbWQva2dpR3BFUkpmQTl0N2t6Yjk4
S21NV0JXSG84bkZBb3BpaUpKVXFQUjZPcnE0bmwrZVhsWkZNV2YvdlNuVjY1YzZldnJ3NmMybXkw
ZWozL3l5U2QydS8zZGQ5Lzl5bGUrc3JlM3AybGFQcDlQcFZLaFVPaktsU3RlcnpjWURLYlRhWEJR
eVdSUzA3UlVLdFhUMDBPcWw3QjVWSTJhelNZcWkraW50Ym9mRE5YcWRXaWFaclduOTBoOC9vR3B4
a1JwY2FIREpoQUk3T3pzUkNLUlRDYWphUnJ5a2xnc1ZxMVdzOWxzcTlWNi9QaHhwVktwMSt1eFdD
eWZ6MDlNVFB6b1J6OGFIaDR1bDh0b0Qwa2tFbHRiVy9mdjMwYzFDZTJpeVdSU2xtVlpsaDgrZkxp
NXVZa09IbzdqVXFrVTNBL2dJYUF2dGlFZ3JtSnN1dGxhWmp6ZHljSmFNWjdWTXEzaXRocTYzKzh2
RkFvbzFvTWNRZm9UaVVUUW9EQTJObFlxbFFxRnd2UFBQeCtQeDd1N3UrMTIrOFRFeE1qSVNES1pk
TGxjcFZMcDVzMmJWNjVjQWZwdE5tT0cxRmtBQUE5NFNVUkJWSnR1dDl0dXQ4Zmo4VlFxdGJpNFdL
bFVybCsvM3QvZlB6NCtEc05CRWdQS3QxcXR1bHd1VGRQQUljRkU2YWU3ZUkybjI2QllrdS9RbG0y
azVLLzFJL3dlRS92WGYvM1hkRHBkcTlWNmUzdEJSbUNCSFE3SEs2KzgwdG5aK2Vtbm4zWjJkdjd3
aHo5RS96OFdaWDE5L2NHREIvLzd2LzhyaXVMUzBoSUFEV0FUZEtkU3FYenl5U2U0MWNtVEp3Y0dC
dEM0NXZmN1oyZG5aVmsrZlBnd3gzRW9qU0REdEpybC8zblJOTTFhRXhQcjlFajhwQzNOMi9DdWRy
dDlaV1VGYlpHaFVBakxqSjJ3TDczMDBzR0RCMnUxMnNURWhDaUtjM056K1h4K2VYbjV4bzBiaUwz
ejgvT1BIajA2YytZTUFyM2Rib2NDY3h5M3RyYTJ1N3U3dDdmbjlYcS8vdld2ejh6TVFIUTh6MlBM
eE5MU2tzL25pMFFpYURJREgvbEZCYlRpMDMzblFqSmpxL2xSWnR2Rk04cXQ2em9zSHUwZVlFTzZ1
cnAwWGQvYTJ1cnM3Q3dXaS8vOTMvOGRpVVFNdzlqYTJqcDQ4T0JubjMwR3JJZmk0WUVEQjRnL3E5
ZnJXRFZNNCs3ZHU0Z1pLSFdneWtCUkZQS21ZREQ0M252dk9aM08xMTU3cmJPekUwUjdxOVVpVERt
WnJWV0d4SU95cEVlSnNteDFvWjZPdHVSZjhCUlRVMU8vL09VdlFWVlFGRlV1bDBPaFVMbGMzdDNk
amNmakR4OCtMQmFMbXFhdHI2L0xzbHlyMVhwNmVnS0JRTDFlVDZmVDJHbUk5SStpS0ZRdktwVktz
VmpNNVhJZEhSM1liK1p3T0Z3dUZ6WVBZd2ZlOXZiMnIzNzFLMVZWWDMvOWRiL2ZqL3pZS2tQaUhh
M0Rwc2lXQ1RJcjYrc3ZUaEtFRU0venAwNmRtcGlZZVBEZ2dhWnBpVVFDVU1IcjlXNXNiSlJLSlpx
bWM3bWN6K2RqV1RhZFRrdVNSTHh1TUJqRS9pUnNMZ0VoMEc2M1VYSUVNSjZlbnU3cDZjRWNHSVlC
MmVGd09BUkJXRmxaUWNTYW5wNTJ1OTJDSURRYWpXZjhqVzd1dXlLVHRQM3U3LzZ1YnJiWE1aYU9L
YklGd21adXZzWHpIQTRIT3NKRG9WQ3BWRnBmWDBjN1BKcCtnTjNoR094MmV6NmZCemVCMW1Oc2hF
SnBEVWdOVGhMbEdqeHViR3pzOU9uVGc0T0RzVmdNWFE0WWR6S1p2SFRwa3FJb3BWSXBsVW9oRTNR
Nm5iQm5pUFFaSVgwdVNmZ1kwdnBCZkF6cGtpT0tTbEVVR29mUm5uZjQ4R0ZabHJlM3Q1ZVhsMkc5
NE5RWTg1QUJCSEZpMk5hL0ZFWGhTQUhEYkluQXRBT0JnTS9uaTBhajBFYVNjR0RoUUt1Q0FmeVhm
L21YK2ZuNXIzNzFxeWRQbm9SeEFxbWpYUU5Cbmt4bkg4VmJKL01NQ0h3bWJFSnpFRWhlZXVrbGxt
VXZYcnk0dExTMHNiRkJXZEp6VGROUXEwVFVRY0hQNnNNUS9hQ3JTSkU5SHMvQXdBQjJ2enFkVHN5
Zk1VOHQyTnZiZy8xTGtxUW95dTd1TGx6eDR1SmlmMy8vb1VPSGVudDcwWTllcTlYcTlUcTQrWDJn
WmsydWlXWVRrbzRremNCRFVGM1U2cHJOWmtkSHgrdXZ2ejQ0T0hqejVzMi8rWnUvcVZhcnNpeWpZ
UkZsVnMzY2M2MWJta0RKQytpcVlSaEl2dUYxZ1hMQXhLTGVTTk0weDNFYkd4dndrYlZhVFJBRTdE
aTZmdjM2dlh2MzR2SDQwTkRRZ1FNSGhvYUdob2FHdXJxNmdzRWc0UUFBNGxtcnc0WC9CTTRBcGlW
QkJYNGZiZ0Q3SlVxbGt0dnQ5dmw4b0Z0dE5wdkQ0U2dXaTgxbUU1dnZDYXhuTEgwbDhPU29Bc0dZ
Y1lZQytzQm5abVpDb1pCaGRtYVFMV2VycTZ0dXQ5dnBkR1l5R1d5aEpJUGMzdDVPSkJLWExsMktS
Q0pUVTFQSGpoM3I2K3VMeFdKK3Z4Kzl5S3h1MmFObWpTMlVwZW5GZUpveU1jeXFOZVEyUHovL3M1
LzlyRnd1ZDNaMlRrOVBQM255Qk9nRTRlR0xta0taUGU2TlJnT3RkbWhIbkp5Yy9QNzN2eCtMeFlq
VjJHdzJsQ2pUNlRRYVhGRUxhTGZiYUdWeHVWeG9DRWVrVGFmVCtYeit4bzBiZ2lCTVQwOFBEZzVP
VGs3MjkvZXpKS1d5em9HeWtDQndQOFNJRGNNQTJ3bGJSOVhwNHNXTFRxZlQ3L2ZQek13NG5jNVBQ
LzBVMHJiR1hzb3NZSU9iSWJ0SUFWOW1abWJlZnZ2dGt5ZFBnaUlDTHdFTDFIVjljWEVSZVJsK2FN
MmVzYmtHdkF6OFRiUFpiRFFhUC8vNXo4R2JSS05SeHNyVDRVSXRoQkE4MWs5SldRYU1hS1ZTdVhU
cDBrY2ZmUVEySFhzR29XeVUyU3h2UmIva1dUUk5WNnRWd3pEZ2RjYkd4djdnRC83ZzNMbHptNXVi
MENEZ1VsaHNwVks1ZmZzMk1DQ3NBQ2tCcVV3VC8wU01Id2hKVmRYSGp4OWZ1M1p0bnltSGZoT3BH
dVloSFNSbVdta2U0SUdscGFYTGx5OWZ2bndaVWJIVmFvMlBqNk40anZvK0ZvajB2WUQ3ZzlJaWJB
UUNBVm1XKy92Ny8raVAvdWpzMmJQMWVoMFJINEVuRUFpZ0xVR1c1V3ZYcmxFVWhab0hHcTRjRGdk
Y0lOa3ZadVVwQWN1QUIyMDIyLzUrQVdRU21DUXBwSkhPU2t5WVlSaEZVZENEdXJTMHRMcTYrdWpS
SSt6amhsc0htSTVHb3lNakl5c3JLNlZTS1J3TzcrM3QrWHcrVUQ0b1FyZmJiWmZMdGJlM3Q3T3o4
OXh6ei8zb1J6OTY0WVVYcXRXcXFxcCt2NzlhclRxZFR1QStUZFA4ZnYrRkN4ZlFQWWhGUis1aW1I
c1lTUlpDbSswTmNHeG9WOWhuTXdCbElERjRGS3czNW94Z2haMkQyV3dXZlZrckt5dExTMHU1WEs3
UmFNREY0NllvdjRiRDRXOTg0eHV0VnV2Q2hRdDdlM3R1dHh0RmRVd0FBYVpjTHIvMTFsczh6My96
bTk5RU9RQXRzb3FpSUN0Q2FjemhjSlRMNVk4KytnaHdISjZNdUdob0xBbnl4TW9JSC9zNTRnR0R3
SnFudUpEa1F6ZlBUZ0xwbUVnazd0Mjd0N2EydHJDd2tNdmxVTXFGcnlPZFBUQjlsbVducHFZQ2dR
Q29qWldWRlVnbW44K2psRDgyTnZiYnYvM2JNek16WUViUWp1ZjMreDBPeDk3ZVhpQVFJQnNQYVpy
KzRJTVAwSFpxTTl2bk5mT2dCSlEzeVFZVUV0dXQwWjR5V1E3V1poNmlaRTArRUk1THBWSTJtMFd5
Ky9EaHc2MnRMV0FvcURUUmNDaWh6V1lES0svVmFrZVBIdTN2N3o5ejVzeXRXN2V1WExueTZORWpW
VlU5SHMvM3Z2ZTlkOTk5ZDNKeUVuNEYzVEk0MUtSZXI2UFRBbmVtS09yR2pSdnZ2LzkrcVZRaThJ
VUlnSUFIMnFUYW50RmJhL0JuR2N2WkdTekxBbnlpWEFGY3VyaTR1TEt5QXZxWTNBZ09UVFYzWTdI
bVhpQVVRbUEvNkxBN2UvYnNtMisrK2Q1Nzd5VVNpZTk4NXp2bnpwMnoyV3lsVW9reFM2VU13emdj
RGtWUndHczBHZzJ2MTR0VEVtWm5aemMzTnpFWk9HcjRaMWdkQVJ1MEpjV256STF3VDNWSmtsZU0y
YjZEdmRnUEhqeFlYVjJkbTV2RGxpaDBhUEk4ajQwREpLSVFnQVpzaldlZ0pRQk44WUlnVEU1Ty91
VmYvaVc2Q0ZEeGhwTUUra05aR3F1RFphTE02ajI2RUFrOEpCR0lzT01Fc1JENFNYSVJ4a0lkUDdW
SkZPZFJwTlBwVENaei9mcjE5ZlgxOWZWMWhIVVUwa0Zrb1grTllDc29qQ0FJUFQwOURvY0REZ01k
Wmw2dkY1N0dack9SWWlhWWFHQjl6QXJSQzlxQlNlTHY5UFQwTDM3eEN4U1Z5UmxVdUdqejZDMkNO
MkU3UkoraGtsQjdscGlpTE12cGRIcGhZV0Z1Ym01alkyTmpZd1AzUXJrR08vcGg2QlJGaGNOaGRD
Mm9xZ3JJUXB1VkJWbVdGeFlXL3VFZi91SFJvMGNBc1VORFEvRjR2RkFvTEM4dnQxcXQwZEhSeWNu
SmtaR1JVQ2pVMjl1TGRsSE4zSXpBOC96dDI3ZWJ6ZWJodzRjdlhMaUFPSUhUeHpSTlF6YUxqZXZJ
RTZDOWlKd0lqMUFUMHYwSWxXWlJrMXBiV3dQTFJFN2NJWVVRa2tQbzVtWXorTjU2dlk0VUFRZk5M
QzB0ZFhWMVpiUFpQLzdqUDM3dzRJSGY3ODlrTWc2SGczRHRXSXQwT3YzSko1OFVDb1ZvTk5yUjBY
SGd3SUhwNldtZzZrQWdjUEhpeGZmZWUyOStmajRXaThFYnVWeXVUQ2JEbVlkdVlURGdCOUhXUjFz
T0F1UE1iWXlHdWVHVnBta1cyOWtYRnhmdjM3Ky9zcktTeldaVjh5dzVrdnRSSmo5QVVSUWNETzZP
bG1TTzQ3eGU3enZ2dkRNeE1hRnAydno4L04yN2R3RWswTkJGRk14bTdocEI5UnZ0dkxkdTNmcVAv
L2dQRkNUOWZqODZXeVJKeW1ReW5aMmR1VndPL2trelQzMGhXTW93bSs4UVdsVnpzekhlaCsvWTk2
N1hyMS9mMk5pWW41L2YzTnhFTHM5WnpwUWdqcGdnV0FCWFBBbFlqNktvYytmTy9lQUhQK2pvNk1o
bXM0OGZQd2JEalVRQlpRek9QTWtQZ1I1NERVb0ZHSXdWY1RxZGxVb0ZGWjZkblIxNFhiUmh3L01C
R3lKRVE4bnhQbFlCb3FiTnN4MUpkR1EvL3ZqalhDNlh5V1RRUHMyWUo2Z1ExdVNaRktSZXI4T1hv
TGtEWC92Kzk3OGZDb1ZrV1ViVEdId1lFazdBV3JUWVk1TXNFQ1psSGp0UXJWWUZRWURxZG5aMnBs
SXBobUZLcFJKWUh4Z2hhaXBFb1JDeE9QTklROXdRazhTV0NReU1kRjJ4RHg0OFFHVEhVUkNrcHFt
Wm0wZndMeUdVU0x5cTFXcm9JTVpPVmFDLzlmWDEyN2R2MHpRTmgwbU9sOEJ0Q1ErQ2dhTFhISWVq
d0NBem1jenM3Q3drR1FnRTRNYUJaaG16UFl4d2JrRGtFQ2w4QkNtaTBqU05IVkg3MkpYb0hrRkQr
RGF3Q0dWcFhDTFpPcGFURk0rT0hEa0MwVDE4K1BDZi91bWZQdm5rRXh4Umhob3pmQ2E0UmhSMm9B
aGthemJQOHpnTHJkVnE0YUF0bkRLbDZ6bzJpZEkwVFF5YlJEOFNKOUdyb1pwNzRjaVJtMlJER3NN
d2JEQVlSTkFqRXRQTlU2cUlYMlVzbFdhUTFvcWlrR1RuMUtsVEVNaVBmL3pqZi91M2YzTzVYREFH
ZEN1Q2lkc25Xc3pUVlN1VmlzL24yOXZiODNnOG9pZ0M5M3U5M2tLaDRQRjRrSVZoRHdiTUdCQUtE
dDk0bXY2bXpRNEptM253Sm1hT2cxLzJLNnVJRm9hRkw5VE42anh1QWRVbjlDU0lCdkJVb2lpNlhL
NGpSNDV3SEpmTDVXWm5aM0VTRVVWUjFXb1Y1STBrU2JCSnhIM2dhWVFmRUxib1U0ZHBkSFIwQkFL
QlJDTFIwZEVCL2dhaEdKMTN1QlVnSGtDbDErdkZlVHBZUHR3Y3JyVmNMbU5EcnFxcSs1UWtnVWlV
U1RRQkdWSmZxT0VCSldNRXVxNmo3WVJsV1ZRRUVIV3hzY25uOHlGZW8yeUt3STN0ZDNEOUxNdWk1
TjdWMVJVS2hURFZlcjNlMzkrL3NySVNDb1VRMEN1VkNud3Z5akN3VEhSaDRZUVpNdUJhclZZdWwr
R3VrUjRCaXJHays1eXg4T3FHcFNCTGRJTzJsSTJRU2VQd1JIRGsyR3hHS0VhZzNMMjl2VWdrZ3Yz
dGlPTW9oSUVRT25IaXhDdXZ2REk1T1luSkFFczFtODNsNWVYZi8vM2ZSeGMvOWtZejVtR0IxdVUy
VE1yYk1Edkt5RHRrSThjKzNMRU8zUW9BU04yUzNCVGZNY3l5RDhxdnc4UERITWMxbTgzUFB2dE1V
UlFJcEZxdGxzdGxOSnpCMTQyT2puNzk2MTgvY2VJRVdsWW84M1JSR0RreWI5bzhkYlJTcVdDbDRI
NFFoQWdZb0N5SGFtS0RyYXFxZHJzZFo2dWdTd05OYWFCT2RGMW55YXlzQUFBT2pVemJlUHBVVlpM
NENJSXdNREFBYzRkRHl1VnlPTDRaZy9CNFBJMUc0K3paczIrLy9mYk16QXoyOTFKbWZ3TWtROElB
WUdxdFZydDI3UnA4SThkeGJyZmI0WERVYWpYRVF6aG4yandZRmFFSXQ0TG5CeGpBTzNCQ05wdnQ4
LzRRemRMVEFuUmlqVHlVdVcrTHNQMmdaSHA2ZWhDeWZ2akRIM3E5M2c4KytBRE5TbjYvSDI0Z0hv
Ky8vZmJidi9FYnY2RnBHallpWXc4YlVTSlZWUUgwVUR5MjIrM1piRFlhaldKZkdFVlJyTGxOQkg5
SjJRYjJSbEFYWTFhck1EM01ncFJHV0tnZlpTbmRXWFdZZXBxSnhTNWNHRWt3R0F3R2c0Wmg4RHgv
K3ZUcHZyNCtwOVA1Ny8vKzc2QmtCRUhvN3U0K2QrN2M4ZVBIRGNQWTJkbkJRWENLb29BRVFFdU0z
VzVIa3FucmVxUFJlUGp3WVRxZFJpajIrWHpZSTRGMGp6WUpHb1JvWkVpNnJnTXFJQkJnSWRydGRx
RlFNRXp1NS84REpjK2NVY2hkVERzQUFBQUFTVVZPUks1Q1lJST0iCi0gICAgfQotICAgIDMgOiB7
Ci0gICAgICAgIGlkIDogPG51bWJlcj4KLSAgICAgICAgZW5jb2RpbmcgOiAiYmFzZTY0IgotICAg
ICAgICBjb250ZW50IDogIiIKLSAgICB9CisgICAgMSA6ICIiCit9CitSVU5OSU5HIFRFU1Q6IGV4
dGVuc2lvbl90ZXN0R2V0UmVzb3VyY2VDb250ZW50RW5jb2RlZAoreworICAgIDAgOiAiaVZCT1J3
MEtHZ29BQUFBTlNVaEVVZ0FBQUV3QUFBQm5DQUlBQUFBbG5qT0pBQUFBQ1hCSVdYTUFBQXNUQUFB
TEV3RUFtcHdZQUFBZ0FFbEVRVlI0bkcxOGFXd2M1M24vek96TTdNenNmUzkzZVIraWVJaWtwRWhS
U01tV0xjZUtiVGxISGNXdUV6dk5sN1FvZ2g2ZmlnSkZnYUpvKzZrRkNqUkFnN2Ivd2tsUUYwMWh1
R2tWcVhJZHliVXM2cVlra3VJbExzVmRjc25sM3ZmczdCei9Eei9PNjVIYytVQXM5NWg1My9lNWZz
L3ZlZDZYdm5MbGlpQUlraVN4TEdzWWhxcXFtcVlaaGlGSkVzTXdETVBRTkUxUkZFM1QrRmZUTkk3
ak5FMXJOcHNNd3pnY0RrM1RhcldhTE1zMm00Mm02WGE3M1c2M2RWMm5hWnFtYVVWUk9JNHpERU9X
WlZWVmJUWWJ3ekM2cnF1cTZuUTZPWTVyTnB1cXFncUNJSW9pd3pBMm04MW1zMkVrdUltdTYrMTJ1
OVZxc1N6TDh6ekhjYmdKaHRSc052SENacmt3REYzWERjUFFkWjFsV1paaEdJcWlETVBRTkEwenBD
aUs0emhNRHgvaFRZcWlXSmJGZzIwMm15aUtnaUJVS3BWU3FlVHhlRFJOb3lqS2JyY3pERk92MTl2
dE5zTXdkcnNkNzB1U1JGR1VwbWswVGJNczIyZzAydTIyb2lnMm04M2xjZ21DWUJpR29paUdZZEEw
YmJQWnNEVDRpYTdydUMwbVFGRVVtVDlHUlpzWG1UeGtobm15ZUpkTW1xSW9TTXhtcytIMytJaklz
OTF1MjJ3MlFSQXdpSGE3TFFqQ3dNQkF0VnB0TkJxcXFqSU1ZeGdHRnB2bmVjaUVwbW1zV3F2Vndx
ZHV0eHN5eERleDhIZ2NHUU9lcUtxcVlSajRPZEVzaUFRREk5TWpJOGM3aG5udFR4Y0xnNXV5TEF1
RndiM0lKSEVqdjk5ZnI5Y3Bpb0oybGN0bFdaWVpobkU2blR6UE54cU5lcjJ1cWlwdWdsOUJXYUNs
UE05am1YbWU1M2tlejFWVlZWRVV1OTN1Y3JscXRacjF0MFJ1V0R2S3ZNZ0VpT2lJeGhLeklwcklr
Zzh3ZFhJWFZWWEo3YXdxa2MxbVk3R1lKRWs3T3p1SlJLTFJhRGlkVHJmYm5jbGtmRDZmSUFpUW05
MXUxM1c5VnFzeERDTUlBc3V5V0hpb0FFVlJpcUpvbXNZd0RHeU1vaWo4RlVVUml3S1JFdFVsT2dV
NTR5TmkrV1J1NUlLTjdJc05DMEFzRFpkVnk1OTU3ZlY2RGNPNGVmUG1lKys5OXovLzh6K0dZWVRE
WVo3blIwWkdSa1pHaG9hRzRFNHdkTHZkRGo5RVVSVHhHVVFPZUJaVWw2SW9XWlpiclpZa1NSQWpS
a2tFaUwrWUZmR0lFQmNSSTk3ODRyQlp1QWVlNTYyVytvd2Q0d2NZbWNmaitjVXZmdkgzZi8vM2Qr
L2VkVGdjc1ZpczJXeG1NcG5OemMyMXRiWFIwZEZvTk1yenZDQUlvVkFvSEE3THNwekw1UXpEaUVh
akRvZWpWQ29WaTBWZDE5MXVONVJGa3FSUUtCUU1CaUV1S0RQKzRsL01CSXFBc1dGVytCY3JRZ1JJ
Wm1oVmVGYVdaV2dYK1NXbUJGMkNZaEM5MVhWOVoyZG5kbloyYVduSjQvSDQvZjY5dlQxWmxnT0JB
TWR4ZTN0N3FxcXVyNi9YYXJWMnV6MDRPSGo0OE9HdHJhM0Z4VVZabGc4Y09PQnl1VlpYVnpjMk5u
UmRqMGFqb2lqeVBDK0tZaXdXR3gwZEhSZ1k4SHE5ZnI4Zk03UUtCTXFGQWRDV0M2dGcvWmRjVmx1
bFAvcm9JeXk4M1c2SE9rSHVOcHV0M1c1cm1vWi84VE9PNDRyRjR1dXZ2NjRvU3IxZTkvbDhITWVG
dzJHZnp5ZkxjbmQzOStEZ29NZmpLWmZMaVVRaWtVams4L25lM2w1WVlMRll6R2F6NVhJWkhsV1c1
WGc4UGpVMU5Udzh6REJNUHArbmFkcnY5L004SDQvSDNXNjNLSXJ4ZUR3YWpYSWNwK3U2TE11VlNz
WGxjdW02WHExV29kWFFCU0lNQ0JaMlFReDRQNFFRcjBPY09KUUVWdkdNaVc1dmIxZXJWVjNYRlVW
cE5CcFlkVlZWaDRhR3N0bHNLcFh5ZXIwOVBUMzkvZjNkM2QzVmFuVnpjM052YnkrVlN1VnlPUmlu
cnV1NGVibGN6bVF5VHFkVDEvVmtNcG5MNVhSZEZ3VEJaclBWNi9WbXMrbjFlc2ZHeHM2Y09mUDg4
OCtMb3VoMnUzVmQ1empPNy9kakFvcWlRUHVzVXlJZUZGUGJSd0swSmZMQUFQQTlxK3B6SElmVnlt
YXp4R3NwaWdLL1VpNlhIejE2SkVrU3gzRjQwK2wwOXZiMmRuWjJRckM2cnJkYUxjUllzbzZGUW1G
aFlXRjNkOWRtc3hXTFJRaVo1M203M1c2MzIxbVczZHJhU2lRUzgvUHpzN096My8zdWR3OGVQTmhx
dGZEb1NxVWlDQUtSa0RVUVlCRWhWZmhVMXJCY1ZnRFJicmRocU1TaElhQmxzMW04Q2QxR3JHKzMy
d1FoWVYxS3BkTGk0dUxhMnRyazVHUzlYb2NjS3BVSzVtbTMyeW1LYWpRYStYeStVQ2dnNURJTUk0
b2lRQnpETUE2SFF4VEZiRGFiU0NUcTlmcWhRNGNPSGp5SVJ6dWRUazNUWEM0WDRBU3hRNnV6aE5a
QWNwK0RBU3Vzc1lZZ01rbmcxZlgxOVdhejJXNjNlWjRuOFZCUkZOZ01ZQURtZ0g4cmxRcjBCVExI
R3VOdVVBMzRHRWdBa2xRVXBWS3A1UE41ajhlREdOaG9OQktKQk9BeFZCU0JxbGdzNGxsRU9hMktT
WnU0bDdYYTJ6T09pM3dicjJWWkxoYUxHeHNiQkRyanFiaVJMTXRPcDVQZ2RTQVl0OXRkS0JUSVNr
UDRXQlRnWnN3VFlKQ29HY3dTQzBkUlZMdmRydFZxeFdLUm9xaU9qbzU2dmQ1cXRlcjFPc0llRklj
Mk1Ub0pCMENkdUNkcnhRcFdSMHdzazhEYVpyT1p6K2VUeVNSTjA1SWtTWkpVcTlYZ2ZnVkJDSWZE
MEFpR1lkeHVOL0tHU3FYaThYaGdwYlFKWDl2dE5sQVJBaFhjRzgvelVQNVdxd1U1USt3WXJ0UHAz
Tm5aV1ZoWWlFUWlnaURBY0NpS2lrYWpsVXFGd0YzRVJvd1dkOFBrbjRKMVZnc21Zc1FrOGZocXRi
cTF0ZFZ1dDkxdXQ5dnRoc3BKa2lTS0lvVFphclZrV1NiUW1lZjVhclZLVkFqby9CbThCdU5oR0Fa
QUQrQ1dZUmdBUU55Tm9xaWJOMi8rNUNjL2VmTGt5ZVRrNU9qb3FNL25LeFFLOVhxZFJBdmM4SXZo
Z0FKMnBVMUFoOWtUY0NjSVFyUFpoRXBrTWhtUHgxTXFsVGlPODNnOHJWWnJiMjhQb2JYWmJCWUtC
U0lpRW9nMVRWTlZsZU00dUVSSmttQ1dIbytudTd2NzFLbFRIby9IYnJkbk1wbUhEeDh1THk5RHNS
R2ZvYkd5TFBNODczSzU0SWMyTmpaKy9PTWZkM2QzLzhtZi9NbWhRNGZjYm5lOVhpZjZpVmxnZ2FD
ckpKeXdCQm5RVCtNOWhtR3ExU3JCVmo2ZnI5bHNycXlzMUdvMUFrME53MmcwR28xR0E2T3hvbWNT
REFuQ2FqYWJGRVVORGc1KzYxdmZldTIxMXdLQmdOUHBaRm0yWEM0L2VmTGt6cDA3Rnk5ZXZIbnpK
bU1tYUxWYXpUQU1oOE9oNjNxcFZJSzNwMms2bVV4KzhNRUhrVWhFRkVXSHcvRk0vbUFOKzUrREFa
TEZXTUVBSEdDOVh2ZDRQTzEyR3k3KzhlUEgxNjlmUjhBa3dvYy9GQVFCVm9lSTBtcTFjRnVndG5h
NzdmZjdqeDA3ZHViTW1hbXBxV0F3aVBBRjZ3b0dnN0ZZYkh4OGZIQndjSHg4L0ZlLytsV3RWcU1v
eXV2MTF1djF2YjA5U1pLNnVyb3FsUXB1VzYxV0wxeTQ4T2FiYjRiRFliZ3g2eVMvNkRncGltS3gy
QVFsa0lVaDZ3RzN1YlcxOWZISEh5OHRMVG1kVGlTNFJFOFE5MXF0RnVhUHA5cnQ5bUF3NlBmN2p4
dzVNam82T2pVMUZZMUdZZnhnT29BTmNDdUh3K0gzKzcvNjFhOU9UVTJOalkxZHZIangwMDgvYmJW
YXlFNVVWUzJWU2c2SFExVlZHR0VtazBtbjA3RllEQSsxWWgyTTJUcEptcVpaNHQ4SkpNQlhWVlVW
UlJFcTEyNjM3OTY5ZS9YcVZRd0xubDJTSk9nUGJ0VFQwK1AxZWowZUQ1VFQ0L0gwOWZWMWRYVzk5
dHByWkFVNWptTlpWcGJsVXFrVUNBUU13eUNjQ0hMbHJxNnVIL3pnQjRjUEgzNy8vZmN2WGJwVUxw
Y0ZRZEEwcmRWcXdZQnJ0UnJQODYxV2EzWjJkbng4bkNDUVo1U1dNck5UaUdvL244UmJKSVdERTJk
WkZqUlVyVmE3Zi8vKzl2WTJMQVJlbnVkNW44OG5pcUxQNXdzRUFyRllMQmdNUmlJUmw4dkY4N3pi
N2U3bzZBaUh3NlZTU1JBRW51ZmhoM0JibjgrSDhBTy93bkVjcUJPYnphWnAycGUrOUNXLzN6OHlN
bkwxNnRVN2QrN0lzdHpYMTVmUDV3T0JnS0lvRkVVcGl2TFpaNTlCOGlSQnNjNlRzcEFKTkUyelJJ
bUpKUEU5bnVlaFM1SWtiV3hzSkJJSk9HdklNQkFJREE4UGQzZDNlNzNlZUR6ZTFkWEZjWndrU1U2
blU1SWtVQnZncGh3T0I1WVB0cXBwR3NoQnhOSjkyTVd5MEJvOHZWd3VpNkw0Mm11dmpZNk8vdk0v
Ly9PVksxZEtwUkpFN1hBNDZ2VzZydXVaVE9iMjdkczlQVDArbjQ5TXo3QXdHMVlhZ1NVRWp6Vmpo
dVZVS2hXOHlHYXpoVUxCNlhTbTAybWU1LzErLzhURXhNbVRKN3U3dXhFbmc4RmdLQlFDRW9KSFlW
bFcxL1ZHbzJHMzJ4VkZBWDdBeFBBMXdGM0RNQkFlUlZHMDJXeXRWa3NRQklmRGdmanA4L21Dd1NC
eUZJWmhJRzFabGlHbGh3OGZRdWEwbVhCYURmS3BkQVJyakdmRHFiSXNDLzBCZWJPN3U4dHhYQ0FR
cUZRcVRxZXpYcThmUG56NGxWZGVPWExraU1mamNibGM4WGdjWWlmVHc2M2hRa25lb0NnS3dkTWtt
OFA2YXBxRzNBcGZRMEJ5dTkxZXIzZHdjTEMvdjk4d0RJL0hrMHdtWDMzMVZRZzhtVXcrZWZKa2Zu
NCtrOGswR2cwOEZKUWFRamR0SVRUMm4wUzBsTWhkRkVVb21OMXVENGZEU0dUQjVSdzdkaXdhamJJ
c0c0bEVFQTlnVjRSbGd4Smk3YXhZaW9CSjYwT3RsMkVZUE04REcwRUxSa2RIRHg4KzNOSFJBUU5q
R09hZGQ5NUJZZ214QTk4RERDUEFnb2FHL2VNdlF5anpaOXdzSVNBRVFYQzczV0FyR0laQitpOUpr
aXpMZHJ0ZEZFWER6TWVSQ3NMa29BVWVqNGNnQitzS0dwWTAxd3FTQ2NXR3JOOHdqTDYrdmhNblRv
eU9qcmJiN2Y3Ky9tcTFPak16TXowOUhZdkZFb2tFUUJJU1M4cGsrbUQyVnVpMlA4bG4xcFdzaDkx
dXg3ZUR3U0NTUFVtU1lMU0E3QlJGUVZkYlQxOGtueVlTZm9aTnN6bzVxNmlCYjUxT3A5MXVCLy9V
MmRrNU9qb2FEQVpwbWw1ZVhxN1ZhaU1qSThQRHc1RklaR1ZsSlovUEkxQVRucEhnV0hMdEp6aGsw
c1RId3ZXcHFncjRldURBZ1hBNFRESU1FTUdOUmtQVE5FbVNtczBtU1hOd1ErZ3FZQkQ5QmF6L1RF
d2pGOEZNMEZzQUdrbVNPanM3ejU0OXU3NitQajgvZitmT25VS2h3SEhjcTYrKzJtZzBscGVYSzVV
S1lnL0tMY0FQMW1WbGlNTzFYbGdNV1phcjFhcW1hUjZQWjNoNE9CZ01JcXhoQW9qZ2xVcWwyV3hX
S3BWR285RnNObHV0Rm9hSURBT0ZFSEtSeFNaaDJqbzlLQWgwcDE2dkkvZEhjdXgydTgrZVBYdm8w
S0ZTcVhUeDRzVkNvYkM3dTl0c05uMCszL0x5Y2pLWlZCUUZJQkVCM0pvNjY3cisxRCtrNElNTHJo
Lzh2MkVZS0dPQmZTa1VDaUI3NEJqdGRudWxVcWxVS3RWcXRWYXJZY0tLb2lCMms0c0FEeWp3TS9N
RUNLSE0wcEFzeTZnbUlJeEZJcEhmK3EzZjZ1am9lUHo0TVZiNTh1WEwyOXZiR3hzYkN3c0xlM3Q3
Z2lEQUZBbFgvamwydFU2U3NvQllDTVRoY0RpZHprYWpzYjI5blU2bmtYKzVYQzRRZHZGNEhQNE5H
VE1jb0pYOGh6OGtzWmRNaGpMUmxWV1NtS1NpS0Q2ZnoyYXp3ZUFaczRMU2FyVkdSa2I2K3ZxYXpX
YXhXQXdHZzQ4ZVBkcmIyenQ4K1BEeTh2THc4SEEwR3NYU3dBdGE2YXQ5NE1aWVdFa2srNHFpdU4z
dWFyVnFzOWxDb2REczdDd2t3N0pzTXBuTTUvT3FxbnE5M29NSEQxSVVCU0VqZ3F1cTZuQTRrQ3NI
ZzBHR1lTcVZDcncwU2FZaHJtS3hDSldHU1FQV05ob05TRStTcEhRNlRWRVVHTUJ5dWZ6Z3dZTkhq
eDV4SEpkT3B3T0JBTmlkbFpVVmxtV2RUbWRIUndmb1Fpd1dLQlZjTEJZZWIxRm1tQVk2SjVhNXNy
SnkvLzc5VENhajYzbzZuVWJrd0lMQlF5QzFJM1U3VlZWaFdnQm9raVFoRjJzMm14ekhPUndPZUJT
UHg0TW5RdWFLb3FpcUdnd0dtODBtWWxnK245L1kyT2pwNlRsNjlHaXoyVXdtazZWU1NkZDFRQlNX
Wlp2TlpyMWVYMXBhTWd4amZIejgyTEZqa1VoRWx1VkNvWUJVYzErU0VCMWpLUkRBUVNHanAybTZW
cXZkdlh2M3hvMGJtVXpHNi9WbXM5bUJnWUdob1NHZno5ZloyUWxLRzdYblZxdUZlRml0VmowZUQ4
dXkwR3BTOUJWRkVXbEtzVmlVWlJsNEEva3FGZ1doR05FTEE1aWJtOHRtczBlUEhsMWVYcDZmbndk
RzcrN3ViclZhNFhCNGUzdTdWcXVwcXByUDU0dkZvcXFxd1AxMnU5M0tYVDFsa3pCV1RCdUpPYy96
K1h4K1lXRmhjM01URWJYWmJDSjhZUkNRUEg0aVNSSU1XMVZWZkJrRUtaVFQ0WERJc3B4S3BSWVdG
aDQrZkZncWxhYW5wMGRHUmtqQnIxUXF3UXRndVdWWnhpT1dsNWQzZG5Za1NZSi9MaGFMb2lpZVBY
dDJhR2lvVXFuODlLYy8zZDdlaGhFS2dsQXVsMW1XeFZvUWo4MlMrUFpNVUVhSVUxVTFsVXB0Ym00
QzMybWF0cmEyMW13MkZ4WVdvTFJ1dHpzUUNQajkvcDZlbnZIeGNhUXY4SEpRN0VxbGtzMW1xOVZx
c1ZoY1hGeDgrUEFodEE0MUVpU2lXRTI0UjFtVzRiMWtXVWFPQnIrZHkrVnF0WnJiN1E2RlFvY1BI
eDRZR0xoMTY5YWRPM2VnZCsxMnUxUXFBWFVSMEU4Z3grZVNOTDVRV3FZb3FsNnZsMG9sVlZVQmRI
UmR6MmF6eFdJUlNZWmhHQUI5a2lTQm0zSzczV0JmT2pzN2w1ZVhueng1NG5LNTV1Ym1WbFpXY3Js
Y09wMEcxK3gwT2pjMk5qNzg4RU5rRWkrKytPTFkyQmpIY2RWcUZYZ2RCUytQeHdNR2hLS29iRGFy
NjdyWDZ4VkY4ZDY5ZTd1N3U5ZXVYZHZlM3ZaNnZVaFdaRmx1TnB2bzUwQnUvYm02V3FNell5bFpr
eURtOFhoNmVub0toVUlxbFVMNmc0UUR0SnFpS0tqa29DamdkRHE3dTd2RDRmQzc3NzRyeS9LSEgz
Nll5K1ZTcVpTaUtCZzN5cExWYWxVVXhlM3RiWXFpb3RIbzF0WldSMGRITUJpRTZ5THBwU0FJclZZ
cmw4dkpzcHpKWkZ3dTE3Rmp4K3IxK3R6Y25DaUtMNy84c2lSSlY2NWNBYzhDV2d4Qm04VGh6NzBy
d2F0V2VXcWFCbXdkaThWcXRkclcxbFlxbGRKMUhlREdack9Kb2toUkZEd0ViQW1VN083dWJqUWEv
WjNmK1oydXJxNVVLb1VnNUhRNktZcXExV28wVFlQSVJJcXpzN056NGNLRlgvLzYxeWRQbm56bm5Y
ZW1wNmZSRDBMVGRMRlliTFZhY003bGNobURHUm9hV2w1ZWhndjh4amUrQVpKNmUzdTcyV3p5UEI4
S2hjQjNrUlQ4OHpoSjB6U29SNlN6SE1jUlpnVkxjdURBZ1V3bTgrREJBNTduUWMvQk1TTG5SRCtF
dytIQXA1cW16Y3pNZ0JRK2YvNzgrKysvWHk2WEVRWTFUZk42dmFWU3FhK3Y3K0RCZzRJZ29HZ2xD
TUxObXpjRlFVQTFIaVFnU3BRMm0yMW5aNGVtNlhhN1BUQXdrTTFtazhsa05Cb05CQUtJVE1lT0hX
dTMyK0Z3K0V0ZitsSzFXa1dzdGdxTW9pamJtMisreVZpcUNBUVdFY29VNHNwbXM0OGVQVUlSampC
QWJyY2JYL0Q1ZlBsOG5pUWNmWDE5d1dEUTUvUEY0M0c0b21ReVdhL1hDV2pPNS9PeUxJK09qbzZQ
ajRPVkx4YUxUcWZ6NE1HRDBXZ1Vmb3VtNlZLcGRPdldyVVFpSVlwaWIyK3ZwbW5wZEJyMTdGZ3NO
akl5NHZmN096bzZob2FHUmtkSEE0RUFiYkx5R0I2WmwrM05OOThrMklwa2RFaERDZllERmJLeXNy
Szd1MHZFaURRS3hTeUtvdkFtZ003NTgrZFBuanpaMWRXRmZCb1ZkVGpHYkRhTDJrbTlYcjkzNzk3
S3lncE4wK0Z3R1ByY2FyV21wcVljRGdlcVp0VnF0VkFvbE12bEF3Y09uRHg1c2xnc3pzM05JY0RD
eDBhalVWbVdJNUdJSkVuN21zbXlZTnVlc2tuSzBvNUVjZ1U0WmFnZjZCbS8zeCtQeDlmVzFnampo
a3pLNlhRaUw2bFVLc0NyN1hZYm1BWVBpTVZpTDczMFVyMWUvK2lqanlpS2lzVmlrVWhrZlgyOXY3
Ly8rUEhqcDA2ZGFyZmIrWHhlRUFTb1RMUFpCSDVBU2prMU5WVW9GSHA3ZXljbkoxVlZ2WG56WnFW
U1FlME12Z0Rrb0N6TEtMQ1RWQmFWUll6QjlwM3ZmRWMzYTJZa0ZVSzBRRFlNMkVuVE5JSVZ3QnBO
MDZJb2dsTUNlb1lrV1phTngrTnZ2UEVHWEdXajBVQlZZM2g0R0ZBZVliQzd1N3RXcStWeXVXQXdl
UHo0OFVPSERvVkNJYS9YMjkvZjczUTZVUWdEOWU1d09QTDUvTURBd09EZ0lNTXdDd3NMNit2cnVx
NlBqbzQrOTl4elNHdFJNZ0tacUp2dGFLVFZnd2E1YkxWUkltSklIRm9PWVE0TURCdzhlRENWU29H
YjhucTlkcnU5V3EyMldpMlh5d1gxN3VucGVlV1ZWNzc4NVM4ekRGTXNGZ0ZFK3Z2NzgvazhPUFVU
SjA1VXE5WGQzZDNUcDA4Zk9IRGc2TkdqU09MQXJ5TnNJTU9pS01wdXR5TmFCb05CdTkwK01EQXdN
VEZ4Ly81OXU5M2UxZFhsOS92Qkh1VHorWEE0M0dxMWFyV2ExK3NsWlUrUzM5amVlT01Ob0xCbnNq
NGdRRkpMUTlLRWVORGIyNHVoZEhaMnV0MXV2RWdrRW1OalkrZk9uWHZ4eFJmOWZuK3BWRklVQlpv
TUtPTnl1VFkyTnRiVzFxTFI2UGUrOTcycHFTbS8zKy96K1VENVlUUmRYVjJvdDVPc1RaYmx6YzNO
ZUR3T25ySlFLT3pzN0hSMWRYM3RhMThiR1JsQkkrTDE2OWRCS1JtRzRYYTcwYTVoWmRCdDMvem1O
MG1WMjVyYW9WU01nR0dZVFlERllqRVVDcjM0NG91cXFxNnVycUlhdDdxNldpZ1VYbjc1NWVlZWUy
NWlZZ0pyR1E2SDdYWjdzVmpFY2pRYWphOTg1U3M5UFQycXFtNXRiYzNPemdKWWd6Y0NiQUswQVBP
UHVsMmowY2htc3lzcks4RmcwT1Z5R1laUnJWYnorWHhQVDgvMDlMVGY3MWRWOWVPUFAvN2J2LzFi
WGRkUnAzQzVYT1Z5R1Y4bWMyRWJqUVpCcmZ0bWFyTWhrQUFLd3l3bFNVSjNaemdjcGlqcXpKa3pM
TXN1TEN3Y1BIandoUmRlY0RxZE16TXo2K3ZyR3hzYkJ3NGNRT0JPSnBQbzd3RWxrVXFsZW50N3o1
NDkrOFliYitUeitkM2RYVGhWa2hKQWdLUUlyU2pLK3ZyNjd1N3VyMy85NjBPSERvR1lqVWFqZi9p
SGZ3aG9Da3h5Ly83OVVDaUVFSUFWOUhxOXlKK0kwcktBQVNTRVVDYmJSY2dJdyt4RVpGbFdrcVRi
dDIrTG9qZzhQRHc1T1RrNE9JaTBtT080MWRYVlhDNzN3Z3N2a0I1Q0FFQkZVYnE2dXRiWDF4ME9S
NlZTZ1ZWN1BKNTRQSTU2RVFZRUlrTFhkYXhMUHA5ZlhWMjlldlhxalJzM1FQT1VTaVdmendkZlNw
a014dWJtWmpBWWZQbmxsNDhmUCs3eGVJRHBFZkRnWGZjTmtIcjZJbGdCZ2R1dzlMMndMSXRGMnRu
WktSYUxmcjgvRm9zQkowVWlrY0hCd1hhN2pXS0JZUmhnZ0FSQjZPenN2SC8vUGpxK3NGaWpvNk1v
TFlJS0pNOUNYcC9KWkZSVlRhZlRxNnVyMTY5ZjM5emNIQndjckZhcmRydmQ3L2U3WEM1OE14QUlv
QkErT0RoNDZ0U3BRNGNPd1M1SWJHTXNwRFpqSmRGb3MrY1hSQkJKRkNtVE1VQ0w1UGIyZHFWU1FX
S0tKTXZsY3YzeWw3L2MyZGxCeXc1UUM0SUg1RmF0Vmk5ZHVnUzh0ckd4Z1RDSVhCbkVQR3FQVzF0
YjVYSzVVcW5Jc3R4dXQzZDJkcHhPWnp3ZUIzNUFrb204REtzdlNkTFkyRmc0SEVZVThYcTlETU9n
TVlURUQ0cWlUT0R6Zi9XQVFKSUVKeGhtY1h0emN4T3RjRHpQUnlJUlhkYy8vUEREVHovOTlQang0
eDBkSGFJb291YlJicmV6Mld5cFZNSXE1UFA1bi96a0p3QW93SVB3TWREWWNybGNMQmJYMXRZV0Z4
ZXZYNyt1NnpwcXpKRklaR0JnWUhSMGxIRHFMcGRMRk1WR28xR3IxVnd1VnpRYVJXb09lSUFwd0Yx
VFpwSzgzMWhrUEYzY00wd1NHcWtuWGlDSWpZMk4vZXhuUHdOVklRZ0NXSW5MbHkrUGo0K0hRcUZr
TXRuVjFZWDZMRkZYUUpad09Qem5mLzduaVVUaXIvN3FyM3crSHl3WjJsNnIxVkNpS1JRS3E2dXJY
cSszdTd2NzhlUEg0K1BqSXlNalhxLzN5cFVyenovL1BFZ0RRUDlDb2FEck9od3NTaVBOWnJOVUtv
RjVzbG9mVGRQN0FQMkxGMkE2VEJGb0JoNC9HQXhldlhwMWFXa0ptZVNkTzNmdTNidlhicmNiamNi
Q3dzS0RCdzhnL0Vhamdad0FPU0dhdUhwNmVqNzg4TU5FSWhHTHhRZ2NBNnlENjU2Ym0yTlpkbkJ3
TUJxTlpqS1o4Zkh4OGZIeDI3ZHYvL1ZmLzNVb0ZISTZuZFZxZFdOakk1L1BJNEVHM0VIdUJpZUgx
QThSZ2NpTU5aNG03WW5HQXV6Q3M1TmFGY013a1VqazlPblQvL1ZmLzNYNThtV3dWWlZLeGUxMisv
MysrZmw1aXFJKy92aGp1OTNlMzk4UG1Kck5adEhmODZkLytxZnZ2UFBPK3ZyNisrKy92N2EyOXRa
YmIzVjJkbElVSlVrUzZBSzBmQThPRG9xaW1FcWxYbi85ZFdUbjkrN2RVeFRsei83c3ozN3Y5MzZ2
cDZjbm44K0hRcUhSMFZGSmtrQ0xRcmFrdk05WXlFZElrb1dpQTBtUlpncWIyZHdERDRUK0E5eUNw
dW5UcDA5LzhNRUhTQ244Zmo5U3Jjbkp5VWFqc2JtNWFiUFp5dVh5clZ1M2tGWHpQTzkwT3Q5NDR3
Mkh3OEd5N0hlLysxMk80MzcrODUvLzNkLzlYVzl2NzhURXhLMWJ0d1lHQmw1NjZTVkJFSTRlUGVw
d09GQ1FoSEltazBuUUpiRllyTkZvK0h5K2taRVJRUkRBK2dHdndqUjB5MllFZUNZU0JWbkNjek5t
UXc5bE5rVVRlSVVMVnFRb1NqZ2NQbkxreU96c0xKTGFjRGc4UGo1T0d2blFKWWE2aU5mclBYTGt5
QXN2dkhENjlHa1FIMGVPSE5GMXZWcXQvdWQvL2lmRE1GMWRYZC8rOXJmLzRpLytZbmw1K1IvLzhS
OURvUkNjT1VJTGxtbDBkTFNycXlzV2kvWDM5L2YwOUxqZGJxdzRuTDloYVNhbkxkVkJZbmNVUmRu
ZWV1c3RFam5JRENGU0FCZnlKc3FQSUxXS3hlSzFhOWRFVVFTZDBkM2RQVEF3c0xPemc5Wk9SVkhR
UFBIbEwzLzUvUG56SjA2YzZPN3VwczFxREZEeGl5Kyt1TGEyZHVmT25XUEhqbVV5bVNkUG5nd05E
UVVDQVRoZVVSVGhsblozZDcxZTc0a1RKOGJIeHpzNk91QmFFZWhKNWVZWm5oSHp0TVlMMjIvKzVt
K1M1SU1ZcSszcEM5WU0reFpGRVJYdnp6NzdETC9DSHFhOXZUMWQxeU9SQ0g1Q1VWUTRIRDUvL3Z6
Um8wZEJtZUxMQ0dMajQrT3FxazVNVEV4T1RsNjZkS2xZTEo0N2QyNWtaQ1NiellaQ0lZWmgwUGlO
Nm1Ba0VrRVF3aHlRdGFJNlNLenUvNXdrZWZPcGZTNGtLdEptSXl2a2pxNXVxQzUyQlBUMjlwNDZk
ZXJ1M2JzMm02MVdxeVdUU1hRVXFLcGFMQmJENFREdzVOYldWajZmaHh1c1ZxdGdKVUYyUUVyZi92
YTNHWWI1Zi8vdi80SGQ3T3pzeEZPQXpvUEJJRWg2eHV5QmdoMFNRaFJsYzBKd1c2ZWdXenExV0lM
ZGlFTHZCMUNXYlp0Ymkwam1vdXM2QUgwMEdoMGZINzkvL3o1RlVXaGk4Zmw4UHA4dmxVbzFtODFz
Tmx1cFZEUk55K1Z5bHk5ZlJ0TUx6SlZobU4zZDNVUWlNVEl5Y3VUSUVVVlJob2VIMisxMlBCNzMr
WHg0MytsMEtvcVNTQ1JXVmxaQTRjREJZSHBRWThyQytsc2xaRmphWGNqRmttYU56NUVldzhEeEdH
YVhDSFFEcnh1TkJvaG1sSmtCME5EOGZ1Yk1HZlJVNS9QNXViazV0OXZkMDlNVGlVU1FLTWJqY1Uz
VHN0bnMwdExTdlh2M0RNUDQxcmUrRll2RkhqOStyT3Q2SnBOSnBWTFkyS1NxNnU3dTdwTW5UL2Iy
OWppTzYrenNKSFZWWkNkRVMwSEUwSlltSk1QczNiRk9lSDgzd1RNK0NxR0dCRk1TWnVDZlVQWkpK
cE1VUlNHcjVqanU4ZVBIOVhwZGx1WHo1OCtmTzNmdTNMbHpzVmdNWlR3cy8rcnE2dno4dk5mcmZm
WFZWNy8ydGE4QkxkUnFOVFNCWHIxNmxlZjVsMTkrMlc2MzUzSTU5Szd3UE4vYjI0czhtRFNvSVFh
QzROSE1iUUdVaGZ1M1RtZC9rZ2lHcEVSSmZBOXQ3a3piOThLbU1XQldIbzhuRkFvcGlpSkpVcVBS
Nk9ycTRubCtlWGxaRk1XZi92U25WNjVjNmV2cnc2YzJteTBlajMveXlTZDJ1LzNkZDkvOXlsZStz
cmUzcDJsYVBwOVBwVktoVU9qS2xTdGVyemNZREtiVGFYQlF5V1JTMDdSVUt0WFQwME9xbDdCNVZJ
MmF6U1lxaStpbnRib2ZETlhxZFdpYVpyV245MGg4L29HcHhrUnBjYUhESmhBSTdPenNSQ0tSVENh
amFScnlrbGdzVnExV3M5bHNxOVY2L1BoeHBWS3AxK3V4V0N5ZnowOU1UUHpvUno4YUhoNHVsOHRv
RDBra0VsdGJXL2Z2MzBjMUNlMml5V1JTbG1WWmxoOCtmTGk1dVlrT0hvN2pVcWtVM0EvZ0lhQXZ0
aUVncm1Kc3V0bGFaanpkeWNKYU1aN1ZNcTNpdGhxNjMrOHZGQW9vMW9NY1Fmb1RpVVRRb0RBMk5s
WXFsUXFGd3ZQUFB4K1B4N3U3dSsxMis4VEV4TWpJU0RLWmRMbGNwVkxwNXMyYlY2NWNBZnB0Tm1P
RzFGa0FBQTk0U1VSQlZKdHV0OXR1dDhmajhWUXF0Ymk0V0tsVXJsKy8zdC9mUHo0K0RzTkJFZ1BL
dDFxdHVsd3VUZFBBSWNGRTZhZTdlSTJuMjZCWWt1L1FsbTJrNUsvMUkvd2VFL3ZYZi8zWGREcGRx
OVY2ZTN0QlJtQ0JIUTdISzYrODB0blorZW1ubjNaMmR2N3doejlFL3o4V1pYMTkvY0dEQi8vN3Yv
OHJpdUxTMGhJQURXQVRkS2RTcVh6eXlTZTQxY21USndjR0J0QzQ1dmY3WjJkblpWaytmUGd3eDNF
b2pTRER0SnJsLzNuUk5NMWFFeFByOUVqOHBDM04yL0N1ZHJ0OVpXVUZiWkdoVUFqTGpKMndMNzMw
MHNHREIydTEyc1RFaENpS2MzTnorWHgrZVhuNXhvMGJpTDN6OC9PUEhqMDZjK1lNQXIzZGJvY0Nj
eHkzdHJhMnU3dTd0N2ZuOVhxLy92V3Z6OHpNUUhROHoyUEx4TkxTa3MvbmkwUWlhRElESC9sRkJi
VGkwMzNuUWpKanEvbFJadHZGTThxdDZ6b3NIdTBlWUVPNnVycDBYZC9hMnVyczdDd1dpLy85My84
ZGlVUU13OWphMmpwNDhPQm5uMzBHcklmaTRZRURCNGcvcTlmcldEVk00KzdkdTRnWktIV2d5a0JS
RlBLbVlERDQzbnZ2T1ozTzExNTdyYk96RTBSN3E5VWlURG1aclZXR3hJT3lwRWVKc214MW9aNk90
dVJmOEJSVFUxTy8vT1V2UVZWUUZGVXVsME9oVUxsYzN0M2RqY2ZqRHg4K0xCYUxtcWF0cjYvTHNs
eXIxWHA2ZWdLQlFMMWVUNmZUMkdtSTlJK2lLRlF2S3BWS3NWak01WElkSFIzWWIrWndPRnd1RnpZ
UFl3ZmU5dmIycjM3MUsxVlZYMy85ZGIvZmovellLa1BpSGEzRHBzaVdDVElyNitzdlRoS0VFTS96
cDA2ZG1waVllUERnZ2FacGlVUUNVTUhyOVc1c2JKUktKWnFtYzdtY3orZGpXVGFkVGt1U1JMeHVN
QmpFL2lSc0xnRWgwRzYzVVhJRU1KNmVudTdwNmNFY0dJWUIyZUZ3T0FSQldGbFpRY1NhbnA1MnU5
MkNJRFFhaldmOGpXN3V1eUtUdFAzdTcvNnVicmJYTVphT0tiSUZ3bVp1dnNYekhBNEhPc0pEb1ZD
cFZGcGZYMGM3UEpwK2dOM2hHT3gyZXo2ZkJ6ZUIxbU5zaEVKcERVZ05UaExsR2p4dWJHenM5T25U
ZzRPRHNWZ01YUTRZZHpLWnZIVHBrcUlvcFZJcGxVb2hFM1E2bmJCbmlQUVpJWDB1U2ZnWTB2cEJm
QXpwa2lPS1NsRVVHb2ZSbm5mNDhHRlpscmUzdDVlWGwyRzk0TlFZODVBQkJIRmkyTmEvRkVYaFNB
SERiSW5BdEFPQmdNL25pMGFqMEVhU2NHRGhRS3VDQWZ5WGYvbVgrZm41cjM3MXF5ZFBub1J4QXFt
alhRTkJua3huSDhWYkovTU1DSHdtYkVKekVFaGVldWtsbG1VdlhyeTR0TFMwc2JGQldkSnpUZE5R
cTBUVVFjSFA2c01RL2FDclNKRTlIcy9Bd0FCMnZ6cWRUc3lmTVU4dDJOdmJnLzFMa3FRb3l1N3VM
bHp4NHVKaWYzLy9vVU9IZW50NzBZOWVxOVhxOVRxNCtYMmdaazJ1aVdZVGtvNGt6Y0JEVUYzVTZw
ck5aa2RIeCt1dnZ6NDRPSGp6NXMyLytadS9xVmFyc2l5allSRmxWczNjYzYxYm1rREpDK2lxWVJo
SXZ1RjFnWExBeEtMZVNOTTB4M0ViR3h2d2tiVmFUUkFFN0RpNmZ2MzZ2WHYzNHZINDBORFFnUU1I
aG9hR2hvYUd1cnE2Z3NFZzRRQUE0bG1ydzRYL0JNNEFwaVZCQlg0ZmJnRDdKVXFsa3R2dDl2bDhv
RnR0TnB2RDRTZ1dpODFtRTV2dkNheG5MSDBsOE9Tb0FzR1ljWVlDK3NCblptWkNvWkJoZG1hUUxX
ZXJxNnR1dDl2cGRHWXlHV3loSklQYzN0NU9KQktYTGwyS1JDSlRVMVBIamgzcjYrdUx4V0ordngr
OXlLeHUyYU5talMyVXBlbkZlSm95TWN5cU5lUTJQei8vczUvOXJGd3VkM1oyVGs5UFAzbnlCT2dF
NGVHTG1rS1pQZTZOUmdPdGRtaEhuSnljL1A3M3Z4K0x4WWpWMkd3MmxDalQ2VFFhWEZFTGFMZmJh
R1Z4dVZ4b0NFZWtUYWZUK1h6K3hvMGJnaUJNVDA4UERnNU9UazcyOS9lekpLV3l6b0d5a0NCd1A4
U0lEY01BMndsYlI5WHA0c1dMVHFmVDcvZlB6TXc0bmM1UFAvMFUwcmJHWHNvc1lJT2JJYnRJQVY5
bVptYmVmdnZ0a3lkUGdpSUNMd0VMMUhWOWNYRVJlUmwrYU0yZXNia0d2QXo4VGJQWmJEUWFQLy81
ejhHYlJLTlJ4c3JUNFVJdGhCQTgxazlKV1FhTWFLVlN1WFRwMGtjZmZRUTJIWHNHb1d5VTJTeHZS
Yi9rV1RSTlY2dFZ3ekRnZGNiR3h2N2dELzdnM0xsem01dWIwQ0RnVWxoc3BWSzVmZnMyTUNDc0FD
a0JxVXdULzBTTUh3aEpWZFhIang5ZnUzWnRueW1IZmhPcEd1WWhIU1JtV21rZTRJR2xwYVhMbHk5
ZnZud1pVYkhWYW8yUGo2TjRqdm8rRm9qMHZZRDdnOUlpYkFRQ0FWbVcrL3Y3LytpUC91anMyYlAx
ZWgwUkg0RW5FQWlnTFVHVzVXdlhybEVVaFpvSEdxNGNEZ2RjSU5rdlp1VXBBY3VBQjIwMjIvNStB
V1FTbUNRcHBKSE9Ta3lZWVJoRlVkQ0R1clMwdExxNit1alJJK3pqaGxzSG1JNUdveU1qSXlzcks2
VlNLUndPNyszdCtYdytVRDRvUXJmYmJaZkx0YmUzdDdPejg5eHp6LzNvUno5NjRZVVhxdFdxcXFw
K3Y3OWFyVHFkVHVBK1RkUDhmditGQ3hmUVBZaEZSKzVpbUhzWVNSWkNtKzBOY0d4b1Y5aG5Nd0Js
SURGNEZLdzM1b3hnaFoyRDJXd1dmVmtyS3l0TFMwdTVYSzdSYU1ERjQ2WW92NGJENFc5ODR4dXRW
dXZDaFF0N2UzdHV0eHRGZFV3QUFhWmNMci8xMWxzOHozL3ptOTlFT1FBdHNvcWlJQ3RDYWN6aGNK
VEw1WTgrK2dod0hKNk11R2hvTEFueXhNb0lIL3M1NGdHRHdKcW51SkRrUXpmUFRnTHBtRWdrN3Qy
N3Q3YTJ0ckN3a012bFVNcUZyeU9kUFRCOWxtV25wcVlDZ1FDb2paV1ZGVWdtbjgramxEODJOdmJi
di8zYk16TXpZRWJRanVmMyt4ME94OTdlWGlBUUlCc1BhWnIrNElNUDBIWnFNOXZuTmZPZ0JKUTN5
UVlVRXR1dDBaNHlXUTdXWmg2aVpFMCtFSTVMcFZJMm0wV3krL0RodzYydExXQW9xRFRSY0NpaHpX
WURLSy9WYWtlUEh1M3Y3ejl6NXN5dFc3ZXVYTG55Nk5FalZWVTlIcy8zdnZlOWQ5OTlkM0p5RW40
RjNUSTQxS1JlcjZQVEFuZW1LT3JHalJ2dnYvOStxVlFpOElVSWdJQUgycVRhbnRGYmEvQm5HY3Za
R1N6TEFueWlYQUZjdXJpNHVMS3lBdnFZM0FnT1RUVjNZN0htWGlBVVFtQS82TEE3ZS9ic20yKysr
ZDU3N3lVU2llOTg1enZuenAyejJXeWxVb2t4UzZVTXd6Z2NEa1ZSd0dzMEdnMnYxNHRURW1ablp6
YzNOekVaT0dyNFoxZ2RBUnUwSmNXbnpJMXdUM1ZKa2xlTTJiNkR2ZGdQSGp4WVhWMmRtNXZEbGlo
MGFQSThqNDBESktJUWdBWnNqV2VnSlFCTjhZSWdURTVPL3VWZi9pVzZDRkR4aHBNRStrTlpHcXVE
WmFMTTZqMjZFQWs4SkJHSXNPTUVzUkQ0U1hJUnhrSWRQN1ZKRk9kUnBOUHBUQ1p6L2ZyMTlmWDE5
ZlYxaEhVVTBrRmtvWCtOWUNzb2pDQUlQVDA5RG9jRERnTWRabDZ2RjU3R1pyT1JZaWFZYUdCOXpB
clJDOXFCU2VMdjlQVDBMMzd4Q3hTVnlSbFV1R2p6NkMyQ04yRTdSSitoa2xCN2xwaWlMTXZwZEhw
aFlXRnVibTVqWTJOall3UDNRcmtHTy9waDZCUkZoY05oZEMyb3FncklRcHVWQlZtV0Z4WVcvdUVm
L3VIUm8wY0FzVU5EUS9GNHZGQW9MQzh2dDFxdDBkSFJ5Y25Ka1pHUlVDalUyOXVMZGxITjNJekE4
L3p0MjdlYnplYmh3NGN2WExpQU9JSFR4elJOUXphTGpldklFNkM5aUp3SWoxQVQwdjBJbFdaUmsx
cGJXd1BMUkU3Y0lZVVFra1BvNW1ZeitONTZ2WTRVQVFmTkxDMHRkWFYxWmJQWlAvN2pQMzd3NElI
Zjc4OWtNZzZIZzNEdFdJdDBPdjNKSjU4VUNvVm9OTnJSMFhIZ3dJSHA2V21nNmtBZ2NQSGl4ZmZl
ZTI5K2ZqNFdpOEVidVZ5dVRDYkRtWWR1WVREZ0I5SFdSMXNPQXVQTWJZeUd1ZUdWcG1rVzI5a1hG
eGZ2MzcrL3NyS1N6V1pWOHl3NWt2dFJKajlBVVJRY0RPNk9sbVNPNDd4ZTd6dnZ2RE14TWFGcDJ2
ejgvTjI3ZHdFazBOQkZGTXhtN2hwQjlSdnR2TGR1M2ZxUC8vZ1BGQ1Q5Zmo4Nld5Ukp5bVF5bloy
ZHVWd08va2t6VDMwaFdNb3dtKzhRV2xWenN6SGVoKy9ZOTY3WHIxL2YyTmlZbjUvZjNOeEVMczla
enBRZ2pwZ2dXQUJYUEFsWWo2S29jK2ZPL2VBSFAram82TWhtczQ4ZlB3YkRqVVFCWlF6T1BNa1Bn
UjU0RFVvRkdJd1ZjVHFkbFVvRkZaNmRuUjE0WGJSaHcvTUJHeUpFUThueFBsWUJvcWJOc3gxSmRH
US8vdmpqWEM2WHlXVFFQczJZSjZnUTF1U1pGS1JlcjhPWG9Ma0RYL3YrOTc4ZkNvVmtXVWJUR0h3
WUVrN0FXclRZWTVNc0VDWmxIanRRclZZRlFZRHFkbloycGxJcGhtRktwUkpZSHhnaGFpcEVvUkN4
T1BOSVE5d1FrOFNXQ1F5TWRGMnhEeDQ4UUdUSFVSQ2twcW1abTBmd0x5R1VTTHlxMVdyb0lNWk9W
YUMvOWZYMTI3ZHYwelFOaDBtT2w4QnRDUStDZ2FMWEhJZWp3Q0F6bWN6czdDd2tHUWdFNE1hQlpo
bXpQWXh3YmtEa0VDbDhCQ21pMGpTTkhWSDcySlhvSGtGRCtEYXdDR1ZwWENMWk9wYVRGTStPSERr
QzBUMTgrUENmL3VtZlB2bmtFeHhSaGhvemZDYTRSaFIyb0Foa2F6YlA4emdMcmRWcTRhQXRuREts
NnpvMmlkSTBUUXliUkQ4U0o5R3JvWnA3NGNpUm0yUkRHc013YkRBWVJOQWpFdFBOVTZxSVgyVXNs
V2FRMW9xaWtHVG4xS2xURU1pUGYvempmL3UzZjNPNVhEQUdkQ3VDaWRzbldzelRWU3VWaXMvbjI5
dmI4M2c4b2lnQzkzdTkza0toNFBGNGtJVmhEd2JNR0JBS0R0OTRtdjZtelE0Sm0zbndKbWFPZzEv
Mks2dUlGb2FGTDlUTjZqeHVBZFVuOUNTSUJ2QlVvaWk2WEs0alI0NXdISmZMNVdablozRVNFVVZS
MVdvVjVJMGtTYkJKeEgzZ2FZUWZFTGJvVTRkcGRIUjBCQUtCUkNMUjBkRUIvZ2FoR0oxM3VCVWdI
a0NsMSt2RmVUcFlQdHdjcnJWY0xtTkRycXFxKzVRa2dVaVVTVFFCR1ZKZnFPRUJKV01FdXE2ajdZ
UmxXVlFFRUhXeHNjbm44eUZlbzJ5S3dJM3RkM0Q5TE11aTVON1YxUlVLaFREVmVyM2UzOSsvc3JJ
U0NvVVEwQ3VWQ253dnlqQ3dUSFJoNFlRWk11QmFyVll1bCtHdWtSNEJpckdrKzV5eDhPcUdwU0JM
ZElPMmxJMlFTZVB3UkhEazJHeEdLRWFnM0wyOXZVZ2tndjN0aU9Nb2hJRVFPbkhpeEN1dnZESTVP
WW5KQUVzMW04M2w1ZVhmLy8zZlJ4Yy85a1l6NW1HQjF1VTJUTXJiTUR2S3lEdGtJOGMrM0xFTzNR
b0FTTjJTM0JUZk1jeXlEOHF2dzhQREhNYzFtODNQUHZ0TVVSUUlwRnF0bHN0bE5KekIxNDJPam43
OTYxOC9jZUlFV2xZbzgzUlJHRGt5YjlvOGRiUlNxV0NsNEg0UWhBZ1lvQ3lIYW1LRHJhcXFkcnNk
WjZ1Z1N3Tk5hYUJPZEYxbnlheXNBQUFPalV6YmVQcFVWWkw0Q0lJd01EQUFjNGREeXVWeU9MNFpn
L0I0UEkxRzQrelpzMisvL2ZiTXpBejI5MUptZndNa1E4SUFZR3F0VnJ0MjdScDhJOGR4YnJmYjRY
RFVhalhFUXpobjJqd1lGYUVJdDRMbkJ4akFPM0JDTnB2dDgvNFF6ZExUQW5SaWpUeVV1VytMc1Ay
Z1pIcDZlaEN5ZnZqREgzcTkzZzgrK0FETlNuNi9IMjRnSG8rLy9mYmJ2L0VidjZGcEdqWWlZdzhi
VVNKVlZRSDBVRHkyMiszWmJEWWFqV0pmR0VWUnJMbE5CSDlKMlFiMlJsQVhZMWFyTUQzTWdwUkdX
S2dmWlNuZFdYV1llcHFKeFM1Y0dFa3dHQXdHZzRaaDhEeC8rdlRwdnI0K3A5UDU3Ly8rNzZCa0JF
SG83dTQrZCs3YzhlUEhEY1BZMmRuQlFYQ0tvb0FFUUV1TTNXNUhrcW5yZXFQUmVQandZVHFkUmlq
MitYellJNEYwanpZSkdvUm9aRWk2cmdNcUlCQmdJZHJ0ZHFGUU1FenU1LzhESmMrY1VjaGRURHNB
QUFBQVNVVk9SSzVDWUlJPSIKKyAgICAxIDogImJhc2U2NCIKIH0KIFJVTk5JTkcgVEVTVDogZXh0
ZW5zaW9uX3Rlc3RSZXNvdXJjZU5vdGlmaWNhdGlvbgogUmVzb3VyY2UgZmluaXNoZWQ6IC4uLi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy1yZXNvdXJjZXMuaHRtbApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMtcmVzb3VyY2VzLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy1yZXNvdXJjZXMuaHRtbAppbmRleCAwMmYzM2Ey
Li4wNDYwODZmIDEwMDc1NQotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy1y
ZXNvdXJjZXMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy1yZXNv
dXJjZXMuaHRtbApAQCAtMTQsNDQgKzE0LDI1IEBAIHAgeyBmb250LWZhbWlseTogJ3Rlc3QnOyB9
CiA8c2NyaXB0IHNyYz0iZXh0ZW5zaW9ucy10ZXN0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0Ij4KIAotZnVuY3Rpb24gZXh0ZW5zaW9uX3Rlc3RHZXRBbGxSZXNv
dXJjZXMobmV4dFRlc3QpCitmdW5jdGlvbiBleHRlbnNpb25fdGVzdEdldEhBUihuZXh0VGVzdCkK
IHsKLSAgICBmdW5jdGlvbiBjb21wYXJlUmVzb3VyY2VzKGEsIGIpCisgICAgZnVuY3Rpb24gY29t
cGFyZUVudHJpZXMoYSwgYikKICAgICB7Ci0gICAgICAgIHJldHVybiBhLmhhci5yZXF1ZXN0LnVy
bC50b0xvd2VyQ2FzZSgpLmxvY2FsZUNvbXBhcmUoYi5oYXIucmVxdWVzdC51cmwudG9Mb3dlckNh
c2UoKSk7CisgICAgICAgIHJldHVybiBhLnJlcXVlc3QudXJsLnRvTG93ZXJDYXNlKCkubG9jYWxl
Q29tcGFyZShiLnJlcXVlc3QudXJsLnRvTG93ZXJDYXNlKCkpOwogICAgIH0KIAotICAgIGZ1bmN0
aW9uIG9uUmVzb3VyY2UocmVzdWx0KQorICAgIGZ1bmN0aW9uIG9uSEFSKHJlc3VsdCkKICAgICB7
Ci0gICAgICAgIHZhciByZXNvdXJjZXMgPSByZXN1bHQuc29ydChjb21wYXJlUmVzb3VyY2VzKTsK
KyAgICAgICAgcmVzdWx0LmVudHJpZXMuc29ydChjb21wYXJlRW50cmllcyk7CiAKLSAgICAgICAg
Zm9yICh2YXIgaSA9IDA7IGkgPCByZXNvdXJjZXMubGVuZ3RoOyArK2kpCi0gICAgICAgICAgICBv
dXRwdXQoInJlc291cmNlOiAiICsgcmVzb3VyY2VzW2ldLmhhci5yZXF1ZXN0LnVybC5yZXBsYWNl
KC8uKigoXC9bXi9dKil7M30kKS8sIi4uLiQxIikgKyAiLCB0eXBlOiAiICsgcmVzb3VyY2VzW2ld
LnR5cGUpOworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlc3VsdC5lbnRyaWVzLmxlbmd0
aDsgKytpKQorICAgICAgICAgICAgb3V0cHV0KCJyZXNvdXJjZTogIiArIHJlc3VsdC5lbnRyaWVz
W2ldLnJlcXVlc3QudXJsLnJlcGxhY2UoLy4qKChcL1teL10qKXszfSQpLywiLi4uJDEiKSk7CiAg
ICAgfQogICAgIGV4dGVuc2lvbl9kb1hIUihmdW5jdGlvbigpIHsKLSAgICAgICAgd2ViSW5zcGVj
dG9yLnJlc291cmNlcy5nZXRBbGwoY2FsbGJhY2tBbmROZXh0VGVzdChvblJlc291cmNlLCBuZXh0
VGVzdCkpOworICAgICAgICB3ZWJJbnNwZWN0b3IucmVzb3VyY2VzLmdldEhBUihjYWxsYmFja0Fu
ZE5leHRUZXN0KG9uSEFSLCBuZXh0VGVzdCkpOwogICAgIH0pOwogfQogCi1mdW5jdGlvbiBleHRl
bnNpb25fdGVzdEdldEludmFsaWRSZXNvdXJjZShuZXh0VGVzdCkKLXsKLSAgICBmdW5jdGlvbiBv
blJlc291cmNlKHJlc3VsdCkKLSAgICB7Ci0gICAgICAgIG91dHB1dCgiQXR0ZW1wdGVkIHRvIHJl
dHJpZXZlIGludmFsaWQgcmVzb3VyY2U6ICIgKyBKU09OLnN0cmluZ2lmeShyZXN1bHQpKTsKLSAg
ICB9Ci0gICAgd2ViSW5zcGVjdG9yLnJlc291cmNlcy5nZXQoMjEyODUwNiwgY2FsbGJhY2tBbmRO
ZXh0VGVzdChvblJlc291cmNlLCBuZXh0VGVzdCkpOwotfQotCi1mdW5jdGlvbiBleHRlbnNpb25f
dGVzdEdldFBhZ2VUaW1pbmdzKG5leHRUZXN0KQotewotICAgIGZ1bmN0aW9uIG9uVGltaW5ncyhy
ZXN1bHQpCi0gICAgewotICAgICAgICBvdXRwdXQoIkdvdCBjYWxsYmFjayBmcm9tIGdldFBhZ2VU
aW1pbmdzLCBwYWdlVGltaW5ncyBkdW1wIGZvbGxvd3MiKTsKLSAgICAgICAgZHVtcE9iamVjdChy
ZXN1bHQsIHsgb25Db250ZW50TG9hZDogMSwgb25Mb2FkOiAxIH0pOwotICAgIH0KLSAgICB3ZWJJ
bnNwZWN0b3IucmVzb3VyY2VzLmdldFBhZ2VUaW1pbmdzKGNhbGxiYWNrQW5kTmV4dFRlc3Qob25U
aW1pbmdzLCBuZXh0VGVzdCkpOwotfQotCiBmdW5jdGlvbiBkb1hIUigpCiB7CiAgICAgdmFyIHho
ciA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOwpAQCAtNjEsMTQgKzQyLDE0IEBAIGZ1bmN0aW9uIGRv
WEhSKCkKIAogZnVuY3Rpb24gZXh0ZW5zaW9uX2RvWEhSKGNhbGxiYWNrKQogewotICAgIHdlYklu
c3BlY3Rvci5pbnNwZWN0ZWRXaW5kb3cuZXZhbHVhdGUoImRvWEhSKCkiLCBjYWxsYmFjayk7Cisg
ICAgd2ViSW5zcGVjdG9yLmluc3BlY3RlZFdpbmRvdy5ldmFsKCJkb1hIUigpIiwgY2FsbGJhY2sp
OwogfQogCiBmdW5jdGlvbiBleHRlbnNpb25fdGVzdFJlc291cmNlTm90aWZpY2F0aW9uKG5leHRU
ZXN0KQogewogICAgIGZ1bmN0aW9uIG9uUmVzb3VyY2VGaW5pc2hlZChyZXNvdXJjZSkKICAgICB7
Ci0gICAgICAgIG91dHB1dCgiUmVzb3VyY2UgZmluaXNoZWQ6ICIgKyByZXNvdXJjZS5oYXIucmVx
dWVzdC51cmwucmVwbGFjZSgvLiooKFwvW14vXSopezN9JCkvLCIuLi4kMSIpKTsKKyAgICAgICAg
b3V0cHV0KCJSZXNvdXJjZSBmaW5pc2hlZDogIiArIHJlc291cmNlLnJlcXVlc3QudXJsLnJlcGxh
Y2UoLy4qKChcL1teL10qKXszfSQpLywiLi4uJDEiKSk7CiAgICAgfQogCiAgICAgd2ViSW5zcGVj
dG9yLnJlc291cmNlcy5vbkZpbmlzaGVkLmFkZExpc3RlbmVyKGNhbGxiYWNrQW5kTmV4dFRlc3Qo
b25SZXNvdXJjZUZpbmlzaGVkLCBuZXh0VGVzdCkpOwpAQCAtNzcsNDQgKzU4LDQ1IEBAIGZ1bmN0
aW9uIGV4dGVuc2lvbl90ZXN0UmVzb3VyY2VOb3RpZmljYXRpb24obmV4dFRlc3QpCiAKIGZ1bmN0
aW9uIGV4dGVuc2lvbl9nZXRSZXNvdXJjZUJ5VXJsKHVybHMsIGNhbGxiYWNrKQogewotICAgIGZ1
bmN0aW9uIG9uR290UmVzb3VyY2VzKHJlc3BvbnNlKQorICAgIGZ1bmN0aW9uIG9uSEFSKHJlc3Bv
bnNlKQogICAgIHsKLSAgICAgICAgdmFyIGlkcyA9IFtdOwotICAgICAgICBmb3IgKHZhciBpID0g
MDsgaSA8IHJlc3BvbnNlLmxlbmd0aDsgKytpKSB7CisgICAgICAgIHZhciBlbnRyaWVzID0gcmVz
cG9uc2UuZW50cmllczsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBlbnRyaWVzLmxlbmd0
aDsgKytpKSB7CiAgICAgICAgICAgICBmb3IgKHZhciB1cmwgPSAwOyB1cmwgPCB1cmxzLmxlbmd0
aDsgKyt1cmwpIHsKLSAgICAgICAgICAgICAgICBpZiAodXJsc1t1cmxdLnRlc3QocmVzcG9uc2Vb
aV0uaGFyLnJlcXVlc3QudXJsKSkKLSAgICAgICAgICAgICAgICAgICAgaWRzLnB1c2gocmVzcG9u
c2VbaV0uaWQpOworICAgICAgICAgICAgICAgIGlmICh1cmxzW3VybF0udGVzdChlbnRyaWVzW2ld
LnJlcXVlc3QudXJsKSkgeworICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayhlbnRyaWVzW2ld
KTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgIH0KICAgICAgICAgfQotICAgICAgICBjYWxsYmFjayhpZHMpOwogICAgIH0KLSAgICB3
ZWJJbnNwZWN0b3IucmVzb3VyY2VzLmdldEFsbChvbkdvdFJlc291cmNlcyk7CisgICAgd2ViSW5z
cGVjdG9yLnJlc291cmNlcy5nZXRIQVIob25IQVIpOwogfQogCi1mdW5jdGlvbiBleHRlbnNpb25f
b25SZXNvdXJjZUJvZGllcyhyZXNwb25zZSkKK2Z1bmN0aW9uIGV4dGVuc2lvbl9vblJlc291cmNl
Qm9keShjb250ZW50LCBlbmNvZGluZykKIHsKLSAgICBmdW5jdGlvbiBjb21wYXJlQm9kaWVzKGEs
IGIpCi0gICAgewotICAgICAgICByZXR1cm4gKChhLnJlc3BvbnNlICYmIGEucmVzcG9uc2UuY29u
dGVudCkgfHwgIiIpLmxvY2FsZUNvbXBhcmUoKGIucmVzcG9uc2UgJiYgYi5yZXNwb25zZS5jb250
ZW50KSB8fCAiIik7Ci0gICAgfQotICAgIGR1bXBPYmplY3QocmVzcG9uc2UsIHsgaWQ6IDEgfSk7
CisgICAgZHVtcE9iamVjdChBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpKTsK
IH0KIAogZnVuY3Rpb24gZXh0ZW5zaW9uX3Rlc3RHZXRSZXNvdXJjZUNvbnRlbnQobmV4dFRlc3Qp
CiB7Ci0gICAgZXh0ZW5zaW9uX2dldFJlc291cmNlQnlVcmwoWy9hdWRpdHMtc3R5bGUxLmNzcyQv
XSwgZnVuY3Rpb24oaWRzKSB7Ci0gICAgICAgIHdlYkluc3BlY3Rvci5yZXNvdXJjZXMuZ2V0Q29u
dGVudChpZHNbMF0sIGNhbGxiYWNrQW5kTmV4dFRlc3QoZXh0ZW5zaW9uX29uUmVzb3VyY2VCb2Rp
ZXMsIG5leHRUZXN0KSk7CisgICAgZXh0ZW5zaW9uX2dldFJlc291cmNlQnlVcmwoWy9hdWRpdHMt
c3R5bGUxLmNzcyQvXSwgZnVuY3Rpb24ocmVzb3VyY2UpIHsKKyAgICAgICAgcmVzb3VyY2UuZ2V0
Q29udGVudChjYWxsYmFja0FuZE5leHRUZXN0KGV4dGVuc2lvbl9vblJlc291cmNlQm9keSwgbmV4
dFRlc3QpKTsKICAgICB9KTsKIH0KIAotZnVuY3Rpb24gZXh0ZW5zaW9uX3Rlc3RHZXRSZXNvdXJj
ZUNvbnRlbnQobmV4dFRlc3QpCitmdW5jdGlvbiBleHRlbnNpb25fdGVzdEdldFJlc291cmNlQ29u
dGVudEVuY29kZWQobmV4dFRlc3QpCiB7Ci0gICAgZXh0ZW5zaW9uX2dldFJlc291cmNlQnlVcmwo
Wy9hYmUucG5nJC8sIC9taXNzaW5nLWltYWdlLnBuZyQvLCAvYXVkaXRzLXN0eWxlMS5jc3MkLyBd
LCBmdW5jdGlvbihpZHMpIHsKLSAgICAgICAgaWRzLnB1c2goMjEyNjUwNik7IC8vIE5vbi1leGlz
dGVudCByZXNvdXJjZSBpZC4KLSAgICAgICAgd2ViSW5zcGVjdG9yLnJlc291cmNlcy5nZXRDb250
ZW50KGlkcywgY2FsbGJhY2tBbmROZXh0VGVzdChleHRlbnNpb25fb25SZXNvdXJjZUJvZGllcywg
bmV4dFRlc3QpKTsKKyAgICBleHRlbnNpb25fZ2V0UmVzb3VyY2VCeVVybChbL2FiZS5wbmckLyBd
LCBmdW5jdGlvbihyZXNvdXJjZSkgeworICAgICAgICByZXNvdXJjZS5nZXRDb250ZW50KGNhbGxi
YWNrQW5kTmV4dFRlc3QoZXh0ZW5zaW9uX29uUmVzb3VyY2VCb2R5LCBuZXh0VGVzdCkpOwogICAg
IH0pOwogfQogCit2YXIgdGVzdCA9IGZ1bmN0aW9uKCkKK3sKKyAgICBJbnNwZWN0b3JUZXN0LnJl
bG9hZFBhZ2UoSW5zcGVjdG9yVGVzdC5ydW5FeHRlbnNpb25UZXN0cyk7Cit9CisKIDwvc2NyaXB0
PgogPC9oZWFkPgogPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMtdGVzdC5qcyBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9leHRlbnNpb25zLXRlc3QuanMKaW5kZXggYTUxZjcxMi4uMDhjZDE4NyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMtdGVzdC5qcworKysgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy10ZXN0LmpzCkBAIC0yMSw0MyArMjEsNTAgQEAgSW5zcGVj
dG9yVGVzdC5kaXNwYXRjaE9uTWVzc2FnZSA9IGZ1bmN0aW9uKG1lc3NhZ2VJZCwgY2FsbGJhY2ss
IHJlY3VycmluZykKIHsKICAgICBmdW5jdGlvbiBvbk1lc3NhZ2UoZXZlbnQpCiAgICAgewotICAg
ICAgICBpZiAoZXZlbnQuZGF0YSAhPT0gbWVzc2FnZUlkKQorICAgICAgICBpZiAodHlwZW9mKGV2
ZW50LmRhdGEpICE9PSAib2JqZWN0IiB8fCBldmVudC5kYXRhLmNvbW1hbmQgIT09IG1lc3NhZ2VJ
ZCkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgaWYgKCFyZWN1cnJpbmcpCiAgICAgICAg
ICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIG9uTWVzc2FnZSwgZmFs
c2UpOwotICAgICAgICBjYWxsYmFjaygpOwotICAgICAgICBpZiAoZXZlbnQucG9ydHMgJiYgZXZl
bnQucG9ydHNbMF0pCi0gICAgICAgICAgICBldmVudC5wb3J0c1swXS5wb3N0TWVzc2FnZSgiIik7
CisgICAgICAgIHZhciBwb3J0ID0gZXZlbnQucG9ydHMgJiYgZXZlbnQucG9ydHNbMF07CisgICAg
ICAgIGlmIChjYWxsYmFjayhldmVudC5kYXRhLCBwb3J0KSAmJiBwb3J0KQorICAgICAgICAgICAg
cG9ydC5wb3N0TWVzc2FnZSgiIik7CiAgICAgfQogICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVy
KCJtZXNzYWdlIiwgb25NZXNzYWdlLCBmYWxzZSk7CiB9CiAKIEluc3BlY3RvclRlc3QucnVuRXh0
ZW5zaW9uVGVzdHMgPSBmdW5jdGlvbigpCiB7Ci0gICAgZnVuY3Rpb24gYWRkRXh0ZW5zaW9uKGNh
bGxiYWNrKQotICAgIHsKLSAgICAgICAgSW5qZWN0ZWRTY3JpcHRBY2Nlc3MuZ2V0RGVmYXVsdCgp
LmV2YWx1YXRlKCJsb2NhdGlvbi5ocmVmIiwgImNvbnNvbGUiLCBmdW5jdGlvbihyZXN1bHQpIHsK
LSAgICAgICAgICAgIHZhciBleHRlbnNpb25VUkwgPSByZXN1bHQuZGVzY3JpcHRpb24ucmVwbGFj
ZSgvXC9bXi9dKiQvLCAiL3Jlc291cmNlcy9leHRlbnNpb24tbWFpbi5odG1sIik7Ci0gICAgICAg
ICAgICBXZWJJbnNwZWN0b3IuYWRkRXh0ZW5zaW9ucyhbeyBzdGFydFBhZ2U6IGV4dGVuc2lvblVS
TCB9XSk7Ci0gICAgICAgICAgICBpZiAoY2FsbGJhY2spCi0gICAgICAgICAgICAgICAgY2FsbGJh
Y2soKTsKLSAgICAgICAgfSk7Ci0gICAgfSAKLSAgICBJbnNwZWN0b3JUZXN0LmRpc3BhdGNoT25N
ZXNzYWdlKCJleHRlbnNpb24tdGVzdHMtZG9uZSIsIGZ1bmN0aW9uKCkgewotICAgICAgICBJbnNw
ZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOworICAgIEluamVjdGVkU2NyaXB0QWNjZXNzLmdldERl
ZmF1bHQoKS5ldmFsdWF0ZSgibG9jYXRpb24uaHJlZiIsICJjb25zb2xlIiwgZnVuY3Rpb24ocmVz
dWx0KSB7CisgICAgICAgIHZhciBleHRlbnNpb25VUkwgPSByZXN1bHQuZGVzY3JpcHRpb24ucmVw
bGFjZSgvXC9bXi9dKiQvLCAiL3Jlc291cmNlcy9leHRlbnNpb24tbWFpbi5odG1sIik7CisgICAg
ICAgIFdlYkluc3BlY3Rvci5hZGRFeHRlbnNpb25zKFt7IHN0YXJ0UGFnZTogZXh0ZW5zaW9uVVJM
IH1dKTsKICAgICB9KTsKLSAgICBJbnNwZWN0b3JUZXN0LnJlbG9hZFBhZ2VJZk5lZWRlZChhZGRF
eHRlbnNpb24pOwogfQogCi1JbnNwZWN0b3JUZXN0LmR1bXBTaWRlYmFyQ29udGVudCA9IGZ1bmN0
aW9uKCkKK0luc3BlY3RvclRlc3QuZGlzcGF0Y2hPbk1lc3NhZ2UoImV4dGVuc2lvbi10ZXN0cy1k
b25lIiwgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QsIHRydWUpOworCitmdW5jdGlvbiBleHRl
bnNpb25PdXRwdXQobWVzc2FnZSkKK3sKKyAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdChtZXNz
YWdlLnRleHQpOworfQorSW5zcGVjdG9yVGVzdC5kaXNwYXRjaE9uTWVzc2FnZSgib3V0cHV0Iiwg
ZXh0ZW5zaW9uT3V0cHV0LCB0cnVlKTsKKworZnVuY3Rpb24gZHVtcFNpZGViYXJDb250ZW50KCkK
IHsKICAgICB2YXIgc2lkZWJhclBhbmVzID0gV2ViSW5zcGVjdG9yLnBhbmVscy5zY3JpcHRzLnNp
ZGViYXJQYW5lczsKICAgICAvLyB0aGUgc2lkZWJhciBvZiBpbnRlcmVzdCBpcyBwcmVzdW1lZCB0
byBhbHdheXMgYmUgbGFzdC4KICAgICB2YXIgc2lkZWJhciA9IHNpZGViYXJQYW5lc1tPYmplY3Qu
a2V5cyhzaWRlYmFyUGFuZXMpLnBvcCgpXTsKICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgi
U2lkZWJhciBjb250ZW50OiAiICsgc2lkZWJhci5ib2R5RWxlbWVudC50ZXh0Q29udGVudCk7Cisg
ICAgcmV0dXJuIHRydWU7CiB9CitJbnNwZWN0b3JUZXN0LmRpc3BhdGNoT25NZXNzYWdlKCJkdW1w
LXNpZGViYXItY29udGVudCIsIGR1bXBTaWRlYmFyQ29udGVudCwgdHJ1ZSk7CiAKLUluc3BlY3Rv
clRlc3QuZGlzcGF0Y2hPbk1lc3NhZ2UoImR1bXAtc2lkZWJhci1jb250ZW50IiwgSW5zcGVjdG9y
VGVzdC5kdW1wU2lkZWJhckNvbnRlbnQsIHRydWUpOworZnVuY3Rpb24gcmVsb2FkUGFnZShkYXRh
LCBwb3J0KQoreworICAgIEluc3BlY3RvclRlc3QucmVsb2FkUGFnZShmdW5jdGlvbigpIHsKKyAg
ICAgICAgcG9ydC5wb3N0TWVzc2FnZSgiIik7CisgICAgfSk7Cit9CitJbnNwZWN0b3JUZXN0LmRp
c3BhdGNoT25NZXNzYWdlKCJyZWxvYWQiLCByZWxvYWRQYWdlLCB0cnVlKTsKIAogfQogCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy5odG1sIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMuaHRtbAppbmRleCAwOGYwMjM4Li4wZWUyOTE5IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy5odG1sCisrKyBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zLmh0bWwKQEAgLTExLDcgKzExLDcgQEAgZnVuY3Rp
b24gZXh0ZW5zaW9uX3Rlc3RDcmVhdGVQYW5lbChuZXh0VGVzdCkKICAgICAgICAgb3V0cHV0KCJQ
YW5lbCBjcmVhdGVkIik7CiAgICAgICAgIGR1bXBPYmplY3QocGFuZWwpOwogICAgIH0KLSAgICB3
ZWJJbnNwZWN0b3IucGFuZWxzLmNyZWF0ZSgiVGVzdCBQYW5lbCIsICJleHRlbnNpb24tcGFuZWwu
aHRtbCIsICJleHRlbnNpb24tcGFuZWwucG5nIiwgY2FsbGJhY2tBbmROZXh0VGVzdChvblBhbmVs
Q3JlYXRlZCwgbmV4dFRlc3QpKTsKKyAgICB3ZWJJbnNwZWN0b3IucGFuZWxzLmNyZWF0ZSgiVGVz
dCBQYW5lbCIsICJleHRlbnNpb24tcGFuZWwucG5nIiwgImV4dGVuc2lvbi1wYW5lbC5odG1sIiwg
Y2FsbGJhY2tBbmROZXh0VGVzdChvblBhbmVsQ3JlYXRlZCwgbmV4dFRlc3QpKTsKICAgICBvdXRw
dXQoImRvbmUgY3JlYXRlUGFuZWwiKTsKIH0KIApAQCAtMjIsMTIgKzIyLDEyIEBAIGZ1bmN0aW9u
IGV4dGVuc2lvbl90ZXN0Q3JlYXRlU2lkZWJhcihuZXh0VGVzdCkKICAgICAgICAgb3V0cHV0KCJT
aWRlYmFyIGNyZWF0ZWQiKTsKICAgICAgICAgZHVtcE9iamVjdChzaWRlYmFyKTsKICAgICB9Ci0g
ICAgd2ViSW5zcGVjdG9yLnBhbmVscy5zY3JpcHRzLmNyZWF0ZVNpZGViYXJQYW5lKCJUZXN0IFNp
ZGViYXIiLCAiZXh0ZW5zaW9uLXNpZGViYXIuaHRtbCIsIGNhbGxiYWNrQW5kTmV4dFRlc3Qob25T
aWRlYmFyQ3JlYXRlZCwgbmV4dFRlc3QpKTsKKyAgICB3ZWJJbnNwZWN0b3IucGFuZWxzLmVsZW1l
bnRzLmNyZWF0ZVNpZGViYXJQYW5lKCJUZXN0IFNpZGViYXIiLCAiZXh0ZW5zaW9uLXNpZGViYXIu
aHRtbCIsIGNhbGxiYWNrQW5kTmV4dFRlc3Qob25TaWRlYmFyQ3JlYXRlZCwgbmV4dFRlc3QpKTsK
IH0KIAogZnVuY3Rpb24gZXh0ZW5zaW9uX2R1bXBTaWRlYmFyQ29udGVudChuZXh0VGVzdCkKIHsK
LSAgICBkaXNwYXRjaE9uRnJvbnRlbmQoImR1bXAtc2lkZWJhci1jb250ZW50IiwgbmV4dFRlc3Qp
OworICAgIGRpc3BhdGNoT25Gcm9udGVuZCh7IGNvbW1hbmQ6ICJkdW1wLXNpZGViYXItY29udGVu
dCIgfSwgbmV4dFRlc3QpOwogfQogCiBmdW5jdGlvbiBleHRlbnNpb25fdGVzdEV4dGVuc2lvbldh
dGNoU2lkZWJhck9iamVjdChuZXh0VGVzdCkKQEAgLTQ4LDcgKzQ4LDcgQEAgZnVuY3Rpb24gZXh0
ZW5zaW9uX3Rlc3RFeHRlbnNpb25XYXRjaFNpZGViYXJPYmplY3QobmV4dFRlc3QpCiAgICAgICAg
ICAgICBmNzogNDIKICAgICAgICAgfSk7CiAgICAgfQotICAgIHdlYkluc3BlY3Rvci5wYW5lbHMu
c2NyaXB0cy5jcmVhdGVXYXRjaEV4cHJlc3Npb25TaWRlYmFyUGFuZSgiV2F0Y2ggVGVzdDogT2Jq
ZWN0Iiwgb25TaWRlYmFyQ3JlYXRlZCk7CisgICAgd2ViSW5zcGVjdG9yLnBhbmVscy5lbGVtZW50
cy5jcmVhdGVXYXRjaEV4cHJlc3Npb25TaWRlYmFyUGFuZSgiV2F0Y2ggVGVzdDogT2JqZWN0Iiwg
b25TaWRlYmFyQ3JlYXRlZCk7CiB9CiAKIGZ1bmN0aW9uIGV4dGVuc2lvbl90ZXN0RXh0ZW5zaW9u
V2F0Y2hTaWRlYmFyRXhwcmVzc2lvbihuZXh0VGVzdCkKQEAgLTc0LDcgKzc0LDcgQEAgZnVuY3Rp
b24gZXh0ZW5zaW9uX3Rlc3RFeHRlbnNpb25XYXRjaFNpZGViYXJFeHByZXNzaW9uKG5leHRUZXN0
KQogICAgICAgICB9CiAgICAgICAgIHNpZGViYXIuc2V0RXhwcmVzc2lvbigiKCIgKyBleHByZXNz
aW9uLnRvU3RyaW5nKCkgKyAiKSgpOyIsICJ0aXRsZSIpOwogICAgIH0KLSAgICB3ZWJJbnNwZWN0
b3IucGFuZWxzLnNjcmlwdHMuY3JlYXRlV2F0Y2hFeHByZXNzaW9uU2lkZWJhclBhbmUoIldhdGNo
IFRlc3Q6IEV4cHJlc3Npb24iLCBvblNpZGViYXJDcmVhdGVkKTsKKyAgICB3ZWJJbnNwZWN0b3Iu
cGFuZWxzLmVsZW1lbnRzLmNyZWF0ZVdhdGNoRXhwcmVzc2lvblNpZGViYXJQYW5lKCJXYXRjaCBU
ZXN0OiBFeHByZXNzaW9uIiwgb25TaWRlYmFyQ3JlYXRlZCk7CiB9CiAKIDwvc2NyaXB0PgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9leHRlbnNpb24tbWFpbi5o
dG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9leHRlbnNpb24tbWFpbi5odG1s
CmluZGV4IDgyZDE3Y2MuLjFkMGI1NGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9yZXNvdXJjZXMvZXh0ZW5zaW9uLW1haW4uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvcmVzb3VyY2VzL2V4dGVuc2lvbi1tYWluLmh0bWwKQEAgLTIsMTQgKzIsMTMgQEAKIDxoZWFk
PgogPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0
LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KLWZ1bmN0aW9u
IG91dHB1dChtZXNzYWdlLCBjYWxsYmFjaykKK2Z1bmN0aW9uIG91dHB1dChtZXNzYWdlKQogewot
ICAgIHdlYkluc3BlY3Rvci5pbnNwZWN0ZWRXaW5kb3cuZXZhbHVhdGUoIm91dHB1dCh1bmVzY2Fw
ZSgnIiArIGVzY2FwZShtZXNzYWdlKSArICInKSk7IiwgY2FsbGJhY2spOworICAgIHRvcC5wb3N0
TWVzc2FnZSh7IGNvbW1hbmQ6ICJvdXRwdXQiLCB0ZXh0OiBtZXNzYWdlIH0sICIqIik7CiB9CiAK
IG91dHB1dCgiU3RhcnRlZCBleHRlbnNpb24uIik7CiA8L3NjcmlwdD4KLQogPHNjcmlwdCBzcmM9
ImV4dGVuc2lvbi1tYWluLmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KIDwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvZXh0ZW5zaW9uLW1haW4uanMgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2V4dGVuc2lvbi1tYWluLmpzCmluZGV4IGQw
ZjFjMmUuLmU5NGJkMjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9yZXNvdXJj
ZXMvZXh0ZW5zaW9uLW1haW4uanMKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Jlc291cmNl
cy9leHRlbnNpb24tbWFpbi5qcwpAQCAtMiwxMCArMiwxMCBAQCBmdW5jdGlvbiBmZXRjaFRlc3Rz
KCkKIHsKICAgICBmdW5jdGlvbiBjYWxsYmFjayhyZXN1bHQpCiAgICAgewotICAgICAgICAgd2lu
ZG93LmV2YWwocmVzdWx0LnZhbHVlKTsKKyAgICAgICAgIHdpbmRvdy5ldmFsKHJlc3VsdCk7CiAg
ICAgICAgICBydW5UZXN0cygpOwogICAgIH0KLSAgICB3ZWJJbnNwZWN0b3IuaW5zcGVjdGVkV2lu
ZG93LmV2YWx1YXRlKCJleHRlbnNpb25GdW5jdGlvbnMoKSIsIGNhbGxiYWNrKTsKKyAgICB3ZWJJ
bnNwZWN0b3IuaW5zcGVjdGVkV2luZG93LmV2YWwoImV4dGVuc2lvbkZ1bmN0aW9ucygpIiwgY2Fs
bGJhY2spOwogfQogCiBmdW5jdGlvbiBydW5UZXN0cygpCkBAIC0yNSw5ICsyNSw4IEBAIGZ1bmN0
aW9uIHJ1blRlc3RzKCkKIAogZnVuY3Rpb24gb25UZXN0c0RvbmUoKQogewotICAgIG91dHB1dCgi
QWxsIHRlc3RzIGRvbmUuIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgIHRvcC5wb3N0TWVzc2FnZSgi
ZXh0ZW5zaW9uLXRlc3RzLWRvbmUiLCIqIik7Ci0gICAgfSk7CisgICAgb3V0cHV0KCJBbGwgdGVz
dHMgZG9uZS4iKTsKKyAgICB0b3AucG9zdE1lc3NhZ2UoeyBjb21tYW5kOiAiZXh0ZW5zaW9uLXRl
c3RzLWRvbmUiIH0sICIqIik7CiB9CiAKIGZ1bmN0aW9uIHJ1blRlc3QodGVzdCwgbmFtZSkKQEAg
LTQ5LDcgKzQ4LDggQEAgZnVuY3Rpb24gZGlzcGF0Y2hPbkZyb250ZW5kKG1lc3NhZ2UsIGNhbGxi
YWNrKQogICAgIH0KICAgICB2YXIgY2hhbm5lbCA9IG5ldyBNZXNzYWdlQ2hhbm5lbCgpOwogICAg
IGNoYW5uZWwucG9ydDEuc3RhcnQoKTsKLSAgICBjaGFubmVsLnBvcnQxLmFkZEV2ZW50TGlzdGVu
ZXIoIm1lc3NhZ2UiLCBjYWxsYmFja1dyYXBwZXIsIGZhbHNlKTsKKyAgICBpZiAoY2FsbGJhY2sp
CisgICAgICAgIGNoYW5uZWwucG9ydDEuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIGNhbGxi
YWNrV3JhcHBlciwgZmFsc2UpOwogICAgIHRvcC5wb3N0TWVzc2FnZShtZXNzYWdlLCBbIGNoYW5u
ZWwucG9ydDIgXSwgIioiKTsKIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9X
ZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3Yjg3MjJkLi45MzEyMDZiIDEwMDY0NAotLS0gYS9XZWJD
b3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisy
MDEwLTExLTI0ICBBbmRyZXkgS29zeWFrb3YgIDxjYXNlcUBjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViIEluc3BlY3Rvcjog
ZXh0ZW5zaW9uIEFQSSBjbGVhbnVwCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD01MDAxOQorCisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVt
ZW50c1BhbmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkVsZW1lbnRzUGFuZWwudGhpcy50
cmVlT3V0bGluZS5mb2N1c2VkTm9kZUNoYW5nZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkVs
ZW1lbnRzUGFuZWwpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvRXh0ZW5zaW9uQVBJ
LmpzOiBTZWUgYnVnIGZvciBzdW1tYXJ5IG9mIGV4dGVuc2lvbiBBUEkgY2hhbmdlcy4KKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5pbmplY3RlZEV4dGVuc2lvbkFQSS5SZXNvdXJjZXMucmVzb3VyY2VE
aXNwYXRjaCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuaW5qZWN0ZWRFeHRlbnNpb25BUEkpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLmluamVjdGVkRXh0ZW5zaW9uQVBJLlJlc291cmNlcy5wcm90
b3R5cGUuZ2V0SEFSKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5pbmplY3RlZEV4dGVuc2lvbkFQ
SS5SZXNvdXJjZUltcGwucHJvdG90eXBlLmdldENvbnRlbnQpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLmluamVjdGVkRXh0ZW5zaW9uQVBJLlBhbmVscy5wcm90b3R5cGUuY3JlYXRlKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5pbmplY3RlZEV4dGVuc2lvbkFQSS5QYW5lbEltcGwpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLmluamVjdGVkRXh0ZW5zaW9uQVBJLlBhbmVsV2l0aFNpZGViYXJJbXBs
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5pbmplY3RlZEV4dGVuc2lvbkFQSS5QYW5lbFdpdGhT
aWRlYmFySW1wbC5wcm90b3R5cGUuY3JlYXRlU2lkZWJhclBhbmUpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLmluamVjdGVkRXh0ZW5zaW9uQVBJLlBhbmVsV2l0aFNpZGViYXJJbXBsLnByb3RvdHlw
ZS5jcmVhdGVXYXRjaEV4cHJlc3Npb25TaWRlYmFyUGFuZSk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuaW5qZWN0ZWRFeHRlbnNpb25BUEkuRWxlbWVudHNQYW5lbCk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuaW5qZWN0ZWRFeHRlbnNpb25BUEkuRXh0ZW5zaW9uU2lkZWJhclBhbmVJbXBsLnByb3Rv
dHlwZS5zZXRIZWlnaHQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLmluamVjdGVkRXh0ZW5zaW9u
QVBJLkF1ZGl0cy5wcm90b3R5cGUuYWRkQ2F0ZWdvcnkpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LmluamVjdGVkRXh0ZW5zaW9uQVBJLkF1ZGl0Q2F0ZWdvcnlJbXBsLmF1ZGl0UmVzdWx0RGlzcGF0
Y2gpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLmluamVjdGVkRXh0ZW5zaW9uQVBJLkF1ZGl0Q2F0
ZWdvcnlJbXBsKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5pbmplY3RlZEV4dGVuc2lvbkFQSS5B
dWRpdFJlc3VsdEltcGwucHJvdG90eXBlLmdldCBTZXZlcml0eSk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuaW5qZWN0ZWRFeHRlbnNpb25BUEkuSW5zcGVjdGVkV2luZG93KToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5pbmplY3RlZEV4dGVuc2lvbkFQSS5JbnNwZWN0ZWRXaW5kb3cucHJvdG90eXBl
LmV2YWwpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvRXh0ZW5zaW9uQ29tbW9uLmpz
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLmNvbW1vbkV4dGVuc2lvblN5bWJvbHMpOgorICAgICAg
ICAqIGluc3BlY3Rvci9mcm9udC1lbmQvRXh0ZW5zaW9uU2VydmVyLmpzOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLkV4dGVuc2lvblNlcnZlcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRXh0ZW5z
aW9uU2VydmVyLnByb3RvdHlwZS5ub3RpZnlPYmplY3RTZWxlY3RlZCk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuRXh0ZW5zaW9uU2VydmVyLnByb3RvdHlwZS5ub3RpZnlSZXNvdXJjZUZpbmlzaGVk
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FeHRlbnNpb25TZXJ2ZXIucHJvdG90eXBlLm5vdGlm
eVBhZ2VMb2FkZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkV4dGVuc2lvblNlcnZlci5wcm90
b3R5cGUubm90aWZ5UGFnZURPTUNvbnRlbnRMb2FkZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LkV4dGVuc2lvblNlcnZlci5wcm90b3R5cGUuX29uQ3JlYXRlUGFuZWwpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLkV4dGVuc2lvblNlcnZlci5wcm90b3R5cGUuX29uUmVsb2FkKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5FeHRlbnNpb25TZXJ2ZXIucHJvdG90eXBlLl9vbkdldEhBUik6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuRXh0ZW5zaW9uU2VydmVyLnByb3RvdHlwZS5fb25HZXRSZXNvdXJj
ZUNvbnRlbnQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkV4dGVuc2lvblNlcnZlci5wcm90b3R5
cGUuX29uQWRkQXVkaXRDYXRlZ29yeSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRXh0ZW5zaW9u
U2VydmVyLnByb3RvdHlwZS5fYnVpbGRFeHRlbnNpb25BUElJbmplY3RlZFNjcmlwdCk6CisgICAg
ICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9IQVJFbnRyeS5qczoKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5IQVJMb2cpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkhBUkxvZy5wcm90b3R5cGUuYnVp
bGQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkhBUkxvZy5wcm90b3R5cGUuX2NvbnZlcnRSZXNv
dXJjZSk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanM6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuZG9tQ29udGVudEV2ZW50RmlyZWQpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLmxvYWRFdmVudEZpcmVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5kaWRDb21taXRM
b2FkKToKKwogMjAxMC0xMS0yMiAgWWFlbCBBaGFyb24gIDx5YWVsLmFoYXJvbkBub2tpYS5jb20+
LCBDaGFuZyBTaHUgIDxjaGFuZy5zaHVAbm9raWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IEFudG9uaW8gR29tZXMuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
RWxlbWVudHNQYW5lbC5qcyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1Bh
bmVsLmpzCmluZGV4IDc2YzIyYzUuLjYxYmEzM2UgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9FbGVtZW50c1BhbmVsLmpzCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9FbGVtZW50c1BhbmVsLmpzCkBAIC01OCw3ICs1OCw3IEBAIFdlYkluc3BlY3Rvci5F
bGVtZW50c1BhbmVsID0gZnVuY3Rpb24oKQogCiAgICAgICAgIGlmICh0aGlzLl9mb2N1c2VkRE9N
Tm9kZSkgewogICAgICAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5hZGRJbnNwZWN0ZWROb2RlKHRo
aXMuX2ZvY3VzZWRET01Ob2RlLmlkKTsKLSAgICAgICAgICAgIFdlYkluc3BlY3Rvci5leHRlbnNp
b25TZXJ2ZXIubm90aWZ5T2JqZWN0U2VsZWN0ZWQodGhpcy5wYW5lbC5uYW1lLCAiRE9NTm9kZSIp
OworICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmV4dGVuc2lvblNlcnZlci5ub3RpZnlPYmplY3RT
ZWxlY3RlZCh0aGlzLnBhbmVsLm5hbWUpOwogICAgICAgICB9CiAgICAgfTsKIApkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvbkFQSS5qcyBiL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9FeHRlbnNpb25BUEkuanMKaW5kZXggZTUyNmNmNS4uYTUzODg3
YiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvbkFQSS5q
cworKysgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRXh0ZW5zaW9uQVBJLmpzCkBAIC0x
MDQsMTA5ICsxMDQsMTIyIEBAIEluc3BlY3RvckV4dGVuc2lvbkFQSS5wcm90b3R5cGUgPSB7CiAK
IGZ1bmN0aW9uIFJlc291cmNlcygpCiB7Ci0gICAgdGhpcy5vbkZpbmlzaGVkID0gbmV3IEV2ZW50
U2luaygicmVzb3VyY2UtZmluaXNoZWQiKTsKKyAgICBmdW5jdGlvbiByZXNvdXJjZURpc3BhdGNo
KHJlcXVlc3QpCisgICAgeworICAgICAgICB2YXIgcmVzb3VyY2UgPSByZXF1ZXN0LmFyZ3VtZW50
c1sxXTsKKyAgICAgICAgcmVzb3VyY2UuX19wcm90b19fID0gbmV3IFJlc291cmNlKHJlcXVlc3Qu
YXJndW1lbnRzWzBdKTsKKyAgICAgICAgdGhpcy5fZmlyZShyZXNvdXJjZSk7CisgICAgfQorICAg
IHRoaXMub25GaW5pc2hlZCA9IG5ldyBFdmVudFNpbmsoInJlc291cmNlLWZpbmlzaGVkIiwgcmVz
b3VyY2VEaXNwYXRjaCk7CiB9CiAKIFJlc291cmNlcy5wcm90b3R5cGUgPSB7Ci0gICAgZ2V0QWxs
OiBmdW5jdGlvbihjYWxsYmFjaykKLSAgICB7Ci0gICAgICAgIHJldHVybiBleHRlbnNpb25TZXJ2
ZXIuc2VuZFJlcXVlc3QoeyBjb21tYW5kOiAiZ2V0UmVzb3VyY2VzIiB9LCBjYWxsYmFjayk7Ci0g
ICAgfSwKLQotICAgIGdldDogZnVuY3Rpb24oaWQsIGNhbGxiYWNrKQorICAgIGdldEhBUjogZnVu
Y3Rpb24oY2FsbGJhY2spCiAgICAgewotICAgICAgICByZXR1cm4gZXh0ZW5zaW9uU2VydmVyLnNl
bmRSZXF1ZXN0KHsgY29tbWFuZDogImdldFJlc291cmNlcyIsIGlkOiBpZCB9LCBjYWxsYmFjayk7
Ci0gICAgfSwKKyAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tXcmFwcGVyKHJlc3VsdCkKKyAgICAg
ICAgeworICAgICAgICAgICAgdmFyIGVudHJpZXMgPSAocmVzdWx0ICYmIHJlc3VsdC5lbnRyaWVz
KSB8fCBbXTsKKyAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZW50cmllcy5sZW5ndGg7
ICsraSkgeworICAgICAgICAgICAgICAgIGVudHJpZXNbaV0uX19wcm90b19fID0gbmV3IFJlc291
cmNlKGVudHJpZXNbaV0uX3Jlc291cmNlSWQpOworICAgICAgICAgICAgICAgIGRlbGV0ZSBlbnRy
aWVzW2ldLl9yZXNvdXJjZUlkOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2FsbGJhY2so
cmVzdWx0KTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZXh0ZW5zaW9uU2VydmVyLnNlbmRS
ZXF1ZXN0KHsgY29tbWFuZDogImdldEhBUiIgfSwgY2FsbGJhY2sgJiYgY2FsbGJhY2tXcmFwcGVy
KTsKKyAgICB9Cit9CiAKLSAgICBnZXRQYWdlVGltaW5nczogZnVuY3Rpb24oY2FsbGJhY2spCi0g
ICAgewotICAgICAgICByZXR1cm4gZXh0ZW5zaW9uU2VydmVyLnNlbmRSZXF1ZXN0KHsgY29tbWFu
ZDogImdldFBhZ2VUaW1pbmdzIiB9LCBjYWxsYmFjayk7Ci0gICAgfSwKK2Z1bmN0aW9uIFJlc291
cmNlSW1wbChpZCkKK3sKKyAgICB0aGlzLl9pZCA9IGlkOworfQogCi0gICAgZ2V0Q29udGVudDog
ZnVuY3Rpb24oaWRzLCBjYWxsYmFjaykKK1Jlc291cmNlSW1wbC5wcm90b3R5cGUgPSB7CisgICAg
Z2V0Q29udGVudDogZnVuY3Rpb24oY2FsbGJhY2spCiAgICAgewotICAgICAgICByZXR1cm4gZXh0
ZW5zaW9uU2VydmVyLnNlbmRSZXF1ZXN0KHsgY29tbWFuZDogImdldFJlc291cmNlQ29udGVudCIs
IGlkczogaWRzIH0sIGNhbGxiYWNrKTsKKyAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tXcmFwcGVy
KHJlc3BvbnNlKQorICAgICAgICB7CisgICAgICAgICAgICBjYWxsYmFjayhyZXNwb25zZS5jb250
ZW50LCByZXNwb25zZS5lbmNvZGluZyk7CisgICAgICAgIH0KKyAgICAgICAgZXh0ZW5zaW9uU2Vy
dmVyLnNlbmRSZXF1ZXN0KHsgY29tbWFuZDogImdldFJlc291cmNlQ29udGVudCIsIGlkOiB0aGlz
Ll9pZCB9LCBjYWxsYmFjayAmJiBjYWxsYmFja1dyYXBwZXIpOwogICAgIH0KLX0KLQotdmFyIHdl
bGxLbm93blBhbmVsTmFtZXMgPSBbCi0gICAgImVsZW1lbnRzIiwKLSAgICAic2NyaXB0cyIKLV07
Cit9OwogCiBmdW5jdGlvbiBQYW5lbHMoKQogewotICAgIHZhciBwYW5lbHMgPSBbXTsKKyAgICB2
YXIgcGFuZWxzID0geworICAgICAgICBlbGVtZW50czogbmV3IEVsZW1lbnRzUGFuZWwoKQorICAg
IH07CisKICAgICBmdW5jdGlvbiBwYW5lbEdldHRlcihuYW1lKQogICAgIHsKICAgICAgICAgcmV0
dXJuIHBhbmVsc1tuYW1lXTsKICAgICB9Ci0KLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IHdlbGxL
bm93blBhbmVsTmFtZXMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgdmFyIG5hbWUgPSB3ZWxsS25v
d25QYW5lbE5hbWVzW2ldOwotICAgICAgICBwYW5lbHNbbmFtZV0gPSBuZXcgUGFuZWwobmFtZSk7
Ci0gICAgICAgIHRoaXMuX19kZWZpbmVHZXR0ZXJfXyhuYW1lLCBiaW5kKHBhbmVsR2V0dGVyLCBu
dWxsLCBuYW1lKSk7Ci0gICAgfQorICAgIGZvciAodmFyIHBhbmVsIGluIHBhbmVscykKKyAgICAg
ICAgdGhpcy5fX2RlZmluZUdldHRlcl9fKHBhbmVsLCBiaW5kKHBhbmVsR2V0dGVyLCBudWxsLCBw
YW5lbCkpOwogfQogCiBQYW5lbHMucHJvdG90eXBlID0gewotICAgIGNyZWF0ZTogZnVuY3Rpb24o
bGFiZWwsIHBhZ2VVUkwsIGljb25VUkwsIGNhbGxiYWNrKQorICAgIGNyZWF0ZTogZnVuY3Rpb24o
dGl0bGUsIGljb25VUkwsIHBhZ2VVUkwsIGNhbGxiYWNrKQogICAgIHsKICAgICAgICAgdmFyIGlk
ID0gImV4dGVuc2lvbi1wYW5lbC0iICsgZXh0ZW5zaW9uU2VydmVyLm5leHRPYmplY3RJZCgpOwot
ICAgICAgICBmdW5jdGlvbiBjYWxsYmFja1dyYXBwZXIocmVzdWx0KQotICAgICAgICB7Ci0gICAg
ICAgICAgICBpZiAocmVzdWx0LmlzRXJyb3IpCi0gICAgICAgICAgICAgICAgY2FsbGJhY2socmVz
dWx0KTsKLSAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgIHBhbmVsID0gbmV3IEV4
dGVuc2lvblBhbmVsKGlkKTsKLSAgICAgICAgICAgICAgICBjYWxsYmFjayhwYW5lbCk7Ci0gICAg
ICAgICAgICB9Ci0gICAgICAgIH0KICAgICAgICAgdmFyIHJlcXVlc3QgPSB7CiAgICAgICAgICAg
ICBjb21tYW5kOiAiY3JlYXRlUGFuZWwiLAogICAgICAgICAgICAgaWQ6IGlkLAotICAgICAgICAg
ICAgbGFiZWw6IGxhYmVsLAotICAgICAgICAgICAgdXJsOiBleHBhbmRVUkwocGFnZVVSTCksCi0g
ICAgICAgICAgICBpY29uOiBleHBhbmRVUkwoaWNvblVSTCkKKyAgICAgICAgICAgIHRpdGxlOiB0
aXRsZSwKKyAgICAgICAgICAgIGljb246IGV4cGFuZFVSTChpY29uVVJMKSwKKyAgICAgICAgICAg
IHVybDogZXhwYW5kVVJMKHBhZ2VVUkwpCiAgICAgICAgIH07Ci0gICAgICAgIGV4dGVuc2lvblNl
cnZlci5zZW5kUmVxdWVzdChyZXF1ZXN0LCBjYWxsYmFjayAmJiBiaW5kKGNhbGxiYWNrV3JhcHBl
ciwgdGhpcykpOworICAgICAgICBleHRlbnNpb25TZXJ2ZXIuc2VuZFJlcXVlc3QocmVxdWVzdCwg
Y2FsbGJhY2sgJiYgYmluZChjYWxsYmFjaywgdGhpcywgbmV3IEV4dGVuc2lvblBhbmVsKGlkKSkp
OwogICAgIH0KIH0KIAogZnVuY3Rpb24gUGFuZWxJbXBsKGlkKQogewogICAgIHRoaXMuX2lkID0g
aWQ7Ci0gICAgdGhpcy5vblNlbGVjdGlvbkNoYW5nZWQgPSBuZXcgRXZlbnRTaW5rKCJwYW5lbC1v
YmplY3RTZWxlY3RlZC0iICsgaWQpOwogfQogCi1QYW5lbEltcGwucHJvdG90eXBlID0geworZnVu
Y3Rpb24gUGFuZWxXaXRoU2lkZWJhckltcGwoaWQpCit7CisgICAgUGFuZWxJbXBsLmNhbGwodGhp
cywgaWQpOworfQorCitQYW5lbFdpdGhTaWRlYmFySW1wbC5wcm90b3R5cGUgPSB7CiAgICAgY3Jl
YXRlU2lkZWJhclBhbmU6IGZ1bmN0aW9uKHRpdGxlLCB1cmwsIGNhbGxiYWNrKQogICAgIHsKICAg
ICAgICAgdmFyIGlkID0gImV4dGVuc2lvbi1zaWRlYmFyLSIgKyBleHRlbnNpb25TZXJ2ZXIubmV4
dE9iamVjdElkKCk7Ci0gICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrV3JhcHBlcihyZXN1bHQpCi0g
ICAgICAgIHsKLSAgICAgICAgICAgIGlmIChyZXN1bHQuaXNFcnJvcikKLSAgICAgICAgICAgICAg
ICBjYWxsYmFjayhyZXN1bHQpOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIGNh
bGxiYWNrKG5ldyBFeHRlbnNpb25TaWRlYmFyUGFuZShpZCkpOwotICAgICAgICB9Ci0gICAgICAg
IGV4dGVuc2lvblNlcnZlci5zZW5kUmVxdWVzdCh7IGNvbW1hbmQ6ICJjcmVhdGVTaWRlYmFyUGFu
ZSIsIHBhbmVsOiB0aGlzLl9pZCwgaWQ6IGlkLCB0aXRsZTogdGl0bGUsIHVybDogZXhwYW5kVVJM
KHVybCkgfSwgY2FsbGJhY2sgJiYgY2FsbGJhY2tXcmFwcGVyKTsKKyAgICAgICAgdmFyIHJlcXVl
c3QgPSB7CisgICAgICAgICAgICBjb21tYW5kOiAiY3JlYXRlU2lkZWJhclBhbmUiLAorICAgICAg
ICAgICAgcGFuZWw6IHRoaXMuX2lkLAorICAgICAgICAgICAgaWQ6IGlkLAorICAgICAgICAgICAg
dGl0bGU6IHRpdGxlLAorICAgICAgICAgICAgdXJsOiBleHBhbmRVUkwodXJsKQorICAgICAgICB9
OworICAgICAgICBleHRlbnNpb25TZXJ2ZXIuc2VuZFJlcXVlc3QocmVxdWVzdCwgY2FsbGJhY2sg
JiYgYmluZChjYWxsYmFjaywgdGhpcywgbmV3IEV4dGVuc2lvblNpZGViYXJQYW5lKGlkKSkpOwog
ICAgIH0sCiAKICAgICBjcmVhdGVXYXRjaEV4cHJlc3Npb25TaWRlYmFyUGFuZTogZnVuY3Rpb24o
dGl0bGUsIGNhbGxiYWNrKQogICAgIHsKICAgICAgICAgdmFyIGlkID0gIndhdGNoLXNpZGViYXIt
IiArIGV4dGVuc2lvblNlcnZlci5uZXh0T2JqZWN0SWQoKTsKLSAgICAgICAgZnVuY3Rpb24gY2Fs
bGJhY2tXcmFwcGVyKHJlc3VsdCkKLSAgICAgICAgewotICAgICAgICAgICAgaWYgKHJlc3VsdC5p
c0Vycm9yKQotICAgICAgICAgICAgICAgIGNhbGxiYWNrKHJlc3VsdCk7Ci0gICAgICAgICAgICBl
bHNlCi0gICAgICAgICAgICAgICAgY2FsbGJhY2sobmV3IFdhdGNoRXhwcmVzc2lvblNpZGViYXJQ
YW5lKGlkKSk7Ci0gICAgICAgIH0KLSAgICAgICAgZXh0ZW5zaW9uU2VydmVyLnNlbmRSZXF1ZXN0
KHsgY29tbWFuZDogImNyZWF0ZVdhdGNoRXhwcmVzc2lvblNpZGViYXJQYW5lIiwgcGFuZWw6IHRo
aXMuX2lkLCBpZDogaWQsIHRpdGxlOiB0aXRsZSB9LCBjYWxsYmFjayAmJiBjYWxsYmFja1dyYXBw
ZXIpOworICAgICAgICB2YXIgcmVxdWVzdCA9IHsKKyAgICAgICAgICAgIGNvbW1hbmQ6ICJjcmVh
dGVXYXRjaEV4cHJlc3Npb25TaWRlYmFyUGFuZSIsCisgICAgICAgICAgICBwYW5lbDogdGhpcy5f
aWQsCisgICAgICAgICAgICBpZDogaWQsCisgICAgICAgICAgICB0aXRsZTogdGl0bGUKKyAgICAg
ICAgfTsKKyAgICAgICAgZXh0ZW5zaW9uU2VydmVyLnNlbmRSZXF1ZXN0KHJlcXVlc3QsIGNhbGxi
YWNrICYmIGJpbmQoY2FsbGJhY2ssIHRoaXMsIG5ldyBXYXRjaEV4cHJlc3Npb25TaWRlYmFyUGFu
ZShpZCkpKTsKICAgICB9CiB9CiAKK1BhbmVsV2l0aFNpZGViYXJJbXBsLnByb3RvdHlwZS5fX3By
b3RvX18gPSBQYW5lbEltcGwucHJvdG90eXBlOworCitmdW5jdGlvbiBFbGVtZW50c1BhbmVsKCkK
K3sKKyAgICB2YXIgaWQgPSAiZWxlbWVudHMiOworICAgIFBhbmVsV2l0aFNpZGViYXIuY2FsbCh0
aGlzLCBpZCk7CisgICAgdGhpcy5vblNlbGVjdGlvbkNoYW5nZWQgPSBuZXcgRXZlbnRTaW5rKCJw
YW5lbC1vYmplY3RTZWxlY3RlZC0iICsgaWQpOworfQorCiBmdW5jdGlvbiBFeHRlbnNpb25QYW5l
bChpZCkKIHsKICAgICBQYW5lbC5jYWxsKHRoaXMsIGlkKTsKQEAgLTIyMiwxMSArMjM1LDYgQEAg
RXh0ZW5zaW9uU2lkZWJhclBhbmVJbXBsLnByb3RvdHlwZSA9IHsKICAgICBzZXRIZWlnaHQ6IGZ1
bmN0aW9uKGhlaWdodCkKICAgICB7CiAgICAgICAgIGV4dGVuc2lvblNlcnZlci5zZW5kUmVxdWVz
dCh7IGNvbW1hbmQ6ICJzZXRTaWRlYmFySGVpZ2h0IiwgaWQ6IHRoaXMuX2lkLCBoZWlnaHQ6IGhl
aWdodCB9KTsKLSAgICB9LAotCi0gICAgc2V0RXhwYW5kZWQ6IGZ1bmN0aW9uKGV4cGFuZGVkKQot
ICAgIHsKLSAgICAgICAgZXh0ZW5zaW9uU2VydmVyLnNlbmRSZXF1ZXN0KHsgY29tbWFuZDogInNl
dFNpZGViYXJFeHBhbmRlZCIsIGlkOiB0aGlzLl9pZCwgZXhwYW5kZWQ6IGV4cGFuZGVkIH0pOwog
ICAgIH0KIH0KIApAQCAtMjYxLDE3ICsyNjksMTcgQEAgZnVuY3Rpb24gQXVkaXRzKCkKIH0KIAog
QXVkaXRzLnByb3RvdHlwZSA9IHsKLSAgICBhZGRDYXRlZ29yeTogZnVuY3Rpb24oZGlzcGxheU5h
bWUsIHJ1bGVDb3VudCkKKyAgICBhZGRDYXRlZ29yeTogZnVuY3Rpb24oZGlzcGxheU5hbWUsIHJl
c3VsdENvdW50KQogICAgIHsKICAgICAgICAgdmFyIGlkID0gImV4dGVuc2lvbi1hdWRpdC1jYXRl
Z29yeS0iICsgZXh0ZW5zaW9uU2VydmVyLm5leHRPYmplY3RJZCgpOwotICAgICAgICBleHRlbnNp
b25TZXJ2ZXIuc2VuZFJlcXVlc3QoeyBjb21tYW5kOiAiYWRkQXVkaXRDYXRlZ29yeSIsIGlkOiBp
ZCwgZGlzcGxheU5hbWU6IGRpc3BsYXlOYW1lLCBydWxlQ291bnQ6IHJ1bGVDb3VudCB9KTsKKyAg
ICAgICAgZXh0ZW5zaW9uU2VydmVyLnNlbmRSZXF1ZXN0KHsgY29tbWFuZDogImFkZEF1ZGl0Q2F0
ZWdvcnkiLCBpZDogaWQsIGRpc3BsYXlOYW1lOiBkaXNwbGF5TmFtZSwgcmVzdWx0Q291bnQ6IHJl
c3VsdENvdW50IH0pOwogICAgICAgICByZXR1cm4gbmV3IEF1ZGl0Q2F0ZWdvcnkoaWQpOwogICAg
IH0KIH0KIAogZnVuY3Rpb24gQXVkaXRDYXRlZ29yeUltcGwoaWQpCiB7Ci0gICAgZnVuY3Rpb24g
Y3VzdG9tRGlzcGF0Y2gocmVxdWVzdCkKKyAgICBmdW5jdGlvbiBhdWRpdFJlc3VsdERpc3BhdGNo
KHJlcXVlc3QpCiAgICAgewogICAgICAgICB2YXIgYXVkaXRSZXN1bHQgPSBuZXcgQXVkaXRSZXN1
bHQocmVxdWVzdC5hcmd1bWVudHNbMF0pOwogICAgICAgICB0cnkgewpAQCAtMjgyLDcgKzI5MCw3
IEBAIGZ1bmN0aW9uIEF1ZGl0Q2F0ZWdvcnlJbXBsKGlkKQogICAgICAgICB9CiAgICAgfQogICAg
IHRoaXMuX2lkID0gaWQ7Ci0gICAgdGhpcy5vbkF1ZGl0U3RhcnRlZCA9IG5ldyBFdmVudFNpbmso
ImF1ZGl0LXN0YXJ0ZWQtIiArIGlkLCBjdXN0b21EaXNwYXRjaCk7CisgICAgdGhpcy5vbkF1ZGl0
U3RhcnRlZCA9IG5ldyBFdmVudFNpbmsoImF1ZGl0LXN0YXJ0ZWQtIiArIGlkLCBhdWRpdFJlc3Vs
dERpc3BhdGNoKTsKIH0KIAogZnVuY3Rpb24gQXVkaXRSZXN1bHRJbXBsKGlkKQpAQCAtMzMwLDcg
KzMzOCw3IEBAIEF1ZGl0UmVzdWx0SW1wbC5wcm90b3R5cGUgPSB7CiAKICAgICBnZXQgU2V2ZXJp
dHkoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHByaXZhdGUuYXVkaXRzLlNldmVyaXR5OworICAg
ICAgICByZXR1cm4gYXBpUHJpdmF0ZS5hdWRpdHMuU2V2ZXJpdHk7CiAgICAgfSwKIAogICAgIF9u
b2RlRmFjdG9yeTogZnVuY3Rpb24odHlwZSkKQEAgLTM2MCw5ICszNjgsOSBAQCBBdWRpdFJlc3Vs
dE5vZGUucHJvdG90eXBlID0gewogCiBmdW5jdGlvbiBJbnNwZWN0ZWRXaW5kb3coKQogeworICAg
IHRoaXMub25ET01Db250ZW50TG9hZGVkID0gbmV3IEV2ZW50U2luaygiaW5zcGVjdGVkUGFnZURP
TUNvbnRlbnRMb2FkZWQiKTsKICAgICB0aGlzLm9uTG9hZGVkID0gbmV3IEV2ZW50U2luaygiaW5z
cGVjdGVkUGFnZUxvYWRlZCIpOwogICAgIHRoaXMub25OYXZpZ2F0ZWQgPSBuZXcgRXZlbnRTaW5r
KCJpbnNwZWN0ZWRVUkxDaGFuZ2VkIik7Ci0gICAgdGhpcy5vbkRPTUNvbnRlbnRMb2FkZWQgPSBu
ZXcgRXZlbnRTaW5rKCJET01Db250ZW50TG9hZGVkIik7CiB9CiAKIEluc3BlY3RlZFdpbmRvdy5w
cm90b3R5cGUgPSB7CkBAIC0zNzEsMTMgKzM3OSwxNCBAQCBJbnNwZWN0ZWRXaW5kb3cucHJvdG90
eXBlID0gewogICAgICAgICByZXR1cm4gZXh0ZW5zaW9uU2VydmVyLnNlbmRSZXF1ZXN0KHsgY29t
bWFuZDogInJlbG9hZCIgfSk7CiAgICAgfSwKIAotICAgIGV2YWx1YXRlOiBmdW5jdGlvbihleHBy
ZXNzaW9uLCBjYWxsYmFjaykKKyAgICBldmFsOiBmdW5jdGlvbihleHByZXNzaW9uLCBjYWxsYmFj
aykKICAgICB7CiAgICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrV3JhcHBlcihyZXN1bHQpCiAgICAg
ICAgIHsKLSAgICAgICAgICAgIGlmIChyZXN1bHQgJiYgIXJlc3VsdC5pc0V4Y2VwdGlvbikKLSAg
ICAgICAgICAgICAgICByZXN1bHQudmFsdWUgPSByZXN1bHQudmFsdWUgPT09ICJ1bmRlZmluZWQi
ID8gdW5kZWZpbmVkIDogSlNPTi5wYXJzZShyZXN1bHQudmFsdWUpOwotICAgICAgICAgICAgY2Fs
bGJhY2socmVzdWx0KTsKKyAgICAgICAgICAgIHZhciB2YWx1ZSA9IHJlc3VsdC52YWx1ZTsKKyAg
ICAgICAgICAgIGlmICghcmVzdWx0LmlzRXhjZXB0aW9uKQorICAgICAgICAgICAgICAgIHZhbHVl
ID0gdmFsdWUgPT09ICJ1bmRlZmluZWQiID8gdW5kZWZpbmVkIDogSlNPTi5wYXJzZSh2YWx1ZSk7
CisgICAgICAgICAgICBjYWxsYmFjayh2YWx1ZSwgcmVzdWx0LmlzRXhjZXB0aW9uKTsKICAgICAg
ICAgfQogICAgICAgICByZXR1cm4gZXh0ZW5zaW9uU2VydmVyLnNlbmRSZXF1ZXN0KHsgY29tbWFu
ZDogImV2YWx1YXRlT25JbnNwZWN0ZWRQYWdlIiwgZXhwcmVzc2lvbjogZXhwcmVzc2lvbiB9LCBj
YWxsYmFjayAmJiBjYWxsYmFja1dyYXBwZXIpOwogICAgIH0KQEAgLTQ4MSwxMiArNDkwLDE0IEBA
IGZ1bmN0aW9uIGRlY2xhcmVJbnRlcmZhY2VDbGFzcyhpbXBsQ29uc3RydWN0b3IpCiAgICAgfQog
fQogCit2YXIgQXVkaXRDYXRlZ29yeSA9IGRlY2xhcmVJbnRlcmZhY2VDbGFzcyhBdWRpdENhdGVn
b3J5SW1wbCk7Cit2YXIgQXVkaXRSZXN1bHQgPSBkZWNsYXJlSW50ZXJmYWNlQ2xhc3MoQXVkaXRS
ZXN1bHRJbXBsKTsKIHZhciBFdmVudFNpbmsgPSBkZWNsYXJlSW50ZXJmYWNlQ2xhc3MoRXZlbnRT
aW5rSW1wbCk7Ci12YXIgUGFuZWwgPSBkZWNsYXJlSW50ZXJmYWNlQ2xhc3MoUGFuZWxJbXBsKTsK
IHZhciBFeHRlbnNpb25TaWRlYmFyUGFuZSA9IGRlY2xhcmVJbnRlcmZhY2VDbGFzcyhFeHRlbnNp
b25TaWRlYmFyUGFuZUltcGwpOwordmFyIFBhbmVsID0gZGVjbGFyZUludGVyZmFjZUNsYXNzKFBh
bmVsSW1wbCk7Cit2YXIgUGFuZWxXaXRoU2lkZWJhciA9IGRlY2xhcmVJbnRlcmZhY2VDbGFzcyhQ
YW5lbFdpdGhTaWRlYmFySW1wbCk7Cit2YXIgUmVzb3VyY2UgPSBkZWNsYXJlSW50ZXJmYWNlQ2xh
c3MoUmVzb3VyY2VJbXBsKTsKIHZhciBXYXRjaEV4cHJlc3Npb25TaWRlYmFyUGFuZSA9IGRlY2xh
cmVJbnRlcmZhY2VDbGFzcyhXYXRjaEV4cHJlc3Npb25TaWRlYmFyUGFuZUltcGwpOwotdmFyIEF1
ZGl0Q2F0ZWdvcnkgPSBkZWNsYXJlSW50ZXJmYWNlQ2xhc3MoQXVkaXRDYXRlZ29yeUltcGwpOwot
dmFyIEF1ZGl0UmVzdWx0ID0gZGVjbGFyZUludGVyZmFjZUNsYXNzKEF1ZGl0UmVzdWx0SW1wbCk7
CiAKIHZhciBleHRlbnNpb25TZXJ2ZXIgPSBuZXcgRXh0ZW5zaW9uU2VydmVyQ2xpZW50KCk7CiAK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FeHRlbnNpb25Db21tb24u
anMgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRXh0ZW5zaW9uQ29tbW9uLmpzCmluZGV4
IGIwNGMxOGMuLjgwMzQwMDEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9FeHRlbnNpb25Db21tb24uanMKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V4
dGVuc2lvbkNvbW1vbi5qcwpAQCAtMjgsMTMgKzI4LDEzIEBACiAgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICov
CiAKLVdlYkluc3BlY3Rvci5jb21tb25FeHRlbnNpb25TeW1ib2xzID0gZnVuY3Rpb24ocHJpdmF0
ZSkKK1dlYkluc3BlY3Rvci5jb21tb25FeHRlbnNpb25TeW1ib2xzID0gZnVuY3Rpb24oYXBpUHJp
dmF0ZSkKIHsKICAgICAKLSAgICBpZiAoIXByaXZhdGUuYXVkaXRzKQotICAgICAgICBwcml2YXRl
LmF1ZGl0cyA9IHt9OworICAgIGlmICghYXBpUHJpdmF0ZS5hdWRpdHMpCisgICAgICAgIGFwaVBy
aXZhdGUuYXVkaXRzID0ge307CiAKLSAgICBwcml2YXRlLmF1ZGl0cy5TZXZlcml0eSA9IHsKKyAg
ICBhcGlQcml2YXRlLmF1ZGl0cy5TZXZlcml0eSA9IHsKICAgICAgICAgSW5mbzogImluZm8iLAog
ICAgICAgICBXYXJuaW5nOiAid2FybmluZyIsCiAgICAgICAgIFNldmVyZTogInNldmVyZSIKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FeHRlbnNpb25TZXJ2ZXIuanMg
Yi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRXh0ZW5zaW9uU2VydmVyLmpzCmluZGV4IDcy
Mjk3ODUuLjEwNTBjNmYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9F
eHRlbnNpb25TZXJ2ZXIuanMKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVu
c2lvblNlcnZlci5qcwpAQCAtMzUsMjMgKzM1LDIyIEBAIFdlYkluc3BlY3Rvci5FeHRlbnNpb25T
ZXJ2ZXIgPSBmdW5jdGlvbigpCiAgICAgdGhpcy5fc3Vic2NyaWJlcnMgPSB7fTsKICAgICB0aGlz
Ll9zdGF0dXMgPSBuZXcgV2ViSW5zcGVjdG9yLkV4dGVuc2lvblN0YXR1cygpOwogCi0gICAgdGhp
cy5fcmVnaXN0ZXJIYW5kbGVyKCJzdWJzY3JpYmUiLCB0aGlzLl9vblN1YnNjcmliZS5iaW5kKHRo
aXMpKTsKLSAgICB0aGlzLl9yZWdpc3RlckhhbmRsZXIoInVuc3Vic2NyaWJlIiwgdGhpcy5fb25V
bnN1YnNjcmliZS5iaW5kKHRoaXMpKTsKLSAgICB0aGlzLl9yZWdpc3RlckhhbmRsZXIoImdldFJl
c291cmNlcyIsIHRoaXMuX29uR2V0UmVzb3VyY2VzLmJpbmQodGhpcykpOwotICAgIHRoaXMuX3Jl
Z2lzdGVySGFuZGxlcigiZ2V0UmVzb3VyY2VDb250ZW50IiwgdGhpcy5fb25HZXRSZXNvdXJjZUNv
bnRlbnQuYmluZCh0aGlzKSk7Ci0gICAgdGhpcy5fcmVnaXN0ZXJIYW5kbGVyKCJnZXRQYWdlVGlt
aW5ncyIsIHRoaXMuX29uR2V0UGFnZVRpbWluZ3MuYmluZCh0aGlzKSk7CisgICAgdGhpcy5fcmVn
aXN0ZXJIYW5kbGVyKCJhZGRBdWRpdENhdGVnb3J5IiwgdGhpcy5fb25BZGRBdWRpdENhdGVnb3J5
LmJpbmQodGhpcykpOworICAgIHRoaXMuX3JlZ2lzdGVySGFuZGxlcigiYWRkQXVkaXRSZXN1bHQi
LCB0aGlzLl9vbkFkZEF1ZGl0UmVzdWx0LmJpbmQodGhpcykpOwogICAgIHRoaXMuX3JlZ2lzdGVy
SGFuZGxlcigiY3JlYXRlUGFuZWwiLCB0aGlzLl9vbkNyZWF0ZVBhbmVsLmJpbmQodGhpcykpOwog
ICAgIHRoaXMuX3JlZ2lzdGVySGFuZGxlcigiY3JlYXRlU2lkZWJhclBhbmUiLCB0aGlzLl9vbkNy
ZWF0ZVNpZGViYXIuYmluZCh0aGlzKSk7CiAgICAgdGhpcy5fcmVnaXN0ZXJIYW5kbGVyKCJjcmVh
dGVXYXRjaEV4cHJlc3Npb25TaWRlYmFyUGFuZSIsIHRoaXMuX29uQ3JlYXRlV2F0Y2hFeHByZXNz
aW9uU2lkZWJhclBhbmUuYmluZCh0aGlzKSk7Ci0gICAgdGhpcy5fcmVnaXN0ZXJIYW5kbGVyKCJs
b2ciLCB0aGlzLl9vbkxvZy5iaW5kKHRoaXMpKTsKICAgICB0aGlzLl9yZWdpc3RlckhhbmRsZXIo
ImV2YWx1YXRlT25JbnNwZWN0ZWRQYWdlIiwgdGhpcy5fb25FdmFsdWF0ZU9uSW5zcGVjdGVkUGFn
ZS5iaW5kKHRoaXMpKTsKKyAgICB0aGlzLl9yZWdpc3RlckhhbmRsZXIoImdldEhBUiIsIHRoaXMu
X29uR2V0SEFSLmJpbmQodGhpcykpOworICAgIHRoaXMuX3JlZ2lzdGVySGFuZGxlcigiZ2V0UmVz
b3VyY2VDb250ZW50IiwgdGhpcy5fb25HZXRSZXNvdXJjZUNvbnRlbnQuYmluZCh0aGlzKSk7Cisg
ICAgdGhpcy5fcmVnaXN0ZXJIYW5kbGVyKCJsb2ciLCB0aGlzLl9vbkxvZy5iaW5kKHRoaXMpKTsK
KyAgICB0aGlzLl9yZWdpc3RlckhhbmRsZXIoInJlbG9hZCIsIHRoaXMuX29uUmVsb2FkLmJpbmQo
dGhpcykpOwogICAgIHRoaXMuX3JlZ2lzdGVySGFuZGxlcigic2V0U2lkZWJhckhlaWdodCIsIHRo
aXMuX29uU2V0U2lkZWJhckhlaWdodC5iaW5kKHRoaXMpKTsKLSAgICB0aGlzLl9yZWdpc3Rlckhh
bmRsZXIoInNldFNpZGViYXJFeHBhbmRlZCIsIHRoaXMuX29uU2V0U2lkZWJhckV4cGFuc2lvbi5i
aW5kKHRoaXMpKTsKICAgICB0aGlzLl9yZWdpc3RlckhhbmRsZXIoInNldFdhdGNoU2lkZWJhckNv
bnRlbnQiLCB0aGlzLl9vblNldFdhdGNoU2lkZWJhckNvbnRlbnQuYmluZCh0aGlzKSk7Ci0KLSAg
ICB0aGlzLl9yZWdpc3RlckhhbmRsZXIoImFkZEF1ZGl0Q2F0ZWdvcnkiLCB0aGlzLl9vbkFkZEF1
ZGl0Q2F0ZWdvcnkuYmluZCh0aGlzKSk7Ci0gICAgdGhpcy5fcmVnaXN0ZXJIYW5kbGVyKCJhZGRB
dWRpdFJlc3VsdCIsIHRoaXMuX29uQWRkQXVkaXRSZXN1bHQuYmluZCh0aGlzKSk7CiAgICAgdGhp
cy5fcmVnaXN0ZXJIYW5kbGVyKCJzdG9wQXVkaXRDYXRlZ29yeVJ1biIsIHRoaXMuX29uU3RvcEF1
ZGl0Q2F0ZWdvcnlSdW4uYmluZCh0aGlzKSk7CisgICAgdGhpcy5fcmVnaXN0ZXJIYW5kbGVyKCJz
dWJzY3JpYmUiLCB0aGlzLl9vblN1YnNjcmliZS5iaW5kKHRoaXMpKTsKKyAgICB0aGlzLl9yZWdp
c3RlckhhbmRsZXIoInVuc3Vic2NyaWJlIiwgdGhpcy5fb25VbnN1YnNjcmliZS5iaW5kKHRoaXMp
KTsKKwogCiAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCB0aGlzLl9vbldp
bmRvd01lc3NhZ2UuYmluZCh0aGlzKSwgZmFsc2UpOwogfQpAQCAtNjIsMTQgKzYxLDE0IEBAIFdl
Ykluc3BlY3Rvci5FeHRlbnNpb25TZXJ2ZXIucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLl9w
b3N0Tm90aWZpY2F0aW9uKCJwYW5lbC1zaG93bi0iICsgcGFuZWxOYW1lKTsKICAgICB9LAogCi0g
ICAgbm90aWZ5T2JqZWN0U2VsZWN0ZWQ6IGZ1bmN0aW9uKHBhbmVsSWQsIG9iamVjdFR5cGUsIG9i
amVjdElkKQorICAgIG5vdGlmeU9iamVjdFNlbGVjdGVkOiBmdW5jdGlvbihwYW5lbElkLCBvYmpl
Y3RJZCkKICAgICB7Ci0gICAgICAgIHRoaXMuX3Bvc3ROb3RpZmljYXRpb24oInBhbmVsLW9iamVj
dFNlbGVjdGVkLSIgKyBwYW5lbElkLCBvYmplY3RUeXBlLCBvYmplY3RJZCk7CisgICAgICAgIHRo
aXMuX3Bvc3ROb3RpZmljYXRpb24oInBhbmVsLW9iamVjdFNlbGVjdGVkLSIgKyBwYW5lbElkLCBv
YmplY3RJZCk7CiAgICAgfSwKIAogICAgIG5vdGlmeVJlc291cmNlRmluaXNoZWQ6IGZ1bmN0aW9u
KHJlc291cmNlKQogICAgIHsKLSAgICAgICAgdGhpcy5fcG9zdE5vdGlmaWNhdGlvbigicmVzb3Vy
Y2UtZmluaXNoZWQiLCB0aGlzLl9jb252ZXJ0UmVzb3VyY2UocmVzb3VyY2UpKTsKKyAgICAgICAg
dGhpcy5fcG9zdE5vdGlmaWNhdGlvbigicmVzb3VyY2UtZmluaXNoZWQiLCByZXNvdXJjZS5pZGVu
dGlmaWVyLCAobmV3IFdlYkluc3BlY3Rvci5IQVJFbnRyeShyZXNvdXJjZSkpLmJ1aWxkKCkpOwog
ICAgIH0sCiAKICAgICBub3RpZnlTZWFyY2hBY3Rpb246IGZ1bmN0aW9uKHBhbmVsSWQsIGFjdGlv
biwgc2VhcmNoU3RyaW5nKQpAQCAtNzcsOSArNzYsMTQgQEAgV2ViSW5zcGVjdG9yLkV4dGVuc2lv
blNlcnZlci5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuX3Bvc3ROb3RpZmljYXRpb24oInBh
bmVsLXNlYXJjaC0iICsgcGFuZWxJZCwgYWN0aW9uLCBzZWFyY2hTdHJpbmcpOwogICAgIH0sCiAK
LSAgICBub3RpZnlJbnNwZWN0ZWRQYWdlTG9hZGVkOiBmdW5jdGlvbigpCisgICAgbm90aWZ5UGFn
ZUxvYWRlZDogZnVuY3Rpb24obWlsbGlzZWNvbmRzKQorICAgIHsKKyAgICAgICAgdGhpcy5fcG9z
dE5vdGlmaWNhdGlvbigiaW5zcGVjdGVkUGFnZUxvYWRlZCIsIG1pbGxpc2Vjb25kcyk7CisgICAg
fSwKKworICAgIG5vdGlmeVBhZ2VET01Db250ZW50TG9hZGVkOiBmdW5jdGlvbihtaWxsaXNlY29u
ZHMpCiAgICAgewotICAgICAgICB0aGlzLl9wb3N0Tm90aWZpY2F0aW9uKCJpbnNwZWN0ZWRQYWdl
TG9hZGVkIik7CisgICAgICAgIHRoaXMuX3Bvc3ROb3RpZmljYXRpb24oImluc3BlY3RlZFBhZ2VE
T01Db250ZW50TG9hZGVkIiwgbWlsbGlzZWNvbmRzKTsKICAgICB9LAogCiAgICAgbm90aWZ5SW5z
cGVjdGVkVVJMQ2hhbmdlZDogZnVuY3Rpb24oKQpAQCAtMTA4LDE1ICsxMTIsNiBAQCBXZWJJbnNw
ZWN0b3IuRXh0ZW5zaW9uU2VydmVyLnByb3RvdHlwZSA9IHsKICAgICAgICAgZGVsZXRlIHRoaXMu
X2NsaWVudE9iamVjdHNbYXVkaXRSdW4uaWRdOwogICAgIH0sCiAKLSAgICBfY29udmVydFJlc291
cmNlOiBmdW5jdGlvbihyZXNvdXJjZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiB7Ci0gICAgICAg
ICAgICBpZDogcmVzb3VyY2UuaWRlbnRpZmllciwKLSAgICAgICAgICAgIHR5cGU6IFdlYkluc3Bl
Y3Rvci5SZXNvdXJjZS5UeXBlLnRvU3RyaW5nKHJlc291cmNlLnR5cGUpLAotICAgICAgICAgICAg
aGFyOiAobmV3IFdlYkluc3BlY3Rvci5IQVJFbnRyeShyZXNvdXJjZSkpLmJ1aWxkKCksCi0gICAg
ICAgIH07Ci0gICAgfSwKLQogICAgIF9wb3N0Tm90aWZpY2F0aW9uOiBmdW5jdGlvbih0eXBlLCBk
ZXRhaWxzKQogICAgIHsKICAgICAgICAgdmFyIHN1YnNjcmliZXJzID0gdGhpcy5fc3Vic2NyaWJl
cnNbdHlwZV07CkBAIC0xNTYsNyArMTUxLDcgQEAgV2ViSW5zcGVjdG9yLkV4dGVuc2lvblNlcnZl
ci5wcm90b3R5cGUgPSB7CiAgICAgICAgIC8vIHNob3VsZG4ndCBiZSBoaXQgdW5sZXNzIHNvbWVv
bmUgaXMgYnlwYXNzaW5nIHRoZSBBUEkuCiAgICAgICAgIGlmIChpZCBpbiB0aGlzLl9jbGllbnRP
YmplY3RzIHx8IGlkIGluIFdlYkluc3BlY3Rvci5wYW5lbHMpCiAgICAgICAgICAgICByZXR1cm4g
dGhpcy5fc3RhdHVzLkVfRVhJU1RTKGlkKTsKLSAgICAgICAgdmFyIHBhbmVsID0gbmV3IFdlYklu
c3BlY3Rvci5FeHRlbnNpb25QYW5lbChpZCwgbWVzc2FnZS5sYWJlbCwgbWVzc2FnZS5pY29uKTsK
KyAgICAgICAgdmFyIHBhbmVsID0gbmV3IFdlYkluc3BlY3Rvci5FeHRlbnNpb25QYW5lbChpZCwg
bWVzc2FnZS50aXRsZSwgbWVzc2FnZS5pY29uKTsKICAgICAgICAgdGhpcy5fY2xpZW50T2JqZWN0
c1tpZF0gPSBwYW5lbDsKIAogICAgICAgICB2YXIgdG9vbGJhckVsZW1lbnQgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgidG9vbGJhciIpOwpAQCAtMjE2LDE3ICsyMTEsNiBAQCBXZWJJbnNwZWN0
b3IuRXh0ZW5zaW9uU2VydmVyLnByb3RvdHlwZSA9IHsKICAgICAgICAgc2lkZWJhci5ib2R5RWxl
bWVudC5maXJzdENoaWxkLnN0eWxlLmhlaWdodCA9IG1lc3NhZ2UuaGVpZ2h0OwogICAgIH0sCiAK
LSAgICBfb25TZXRTaWRlYmFyRXhwYW5zaW9uOiBmdW5jdGlvbihtZXNzYWdlKQotICAgIHsKLSAg
ICAgICAgdmFyIHNpZGViYXIgPSB0aGlzLl9jbGllbnRPYmplY3RzW21lc3NhZ2UuaWRdOwotICAg
ICAgICBpZiAoIXNpZGViYXIpCi0gICAgICAgICAgICByZXR1cm4gdGhpcy5fc3RhdHVzLkVfTk9U
Rk9VTkQobWVzc2FnZS5pZCk7Ci0gICAgICAgIGlmIChtZXNzYWdlLmV4cGFuZGVkKQotICAgICAg
ICAgICAgc2lkZWJhci5leHBhbmQoKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgc2lkZWJh
ci5jb2xsYXBzZSgpOwotICAgIH0sCi0KICAgICBfb25TZXRXYXRjaFNpZGViYXJDb250ZW50OiBm
dW5jdGlvbihtZXNzYWdlKQogICAgIHsKICAgICAgICAgdmFyIHNpZGViYXIgPSB0aGlzLl9jbGll
bnRPYmplY3RzW21lc3NhZ2UuaWRdOwpAQCAtMjQzLDYgKzIyNywxMiBAQCBXZWJJbnNwZWN0b3Iu
RXh0ZW5zaW9uU2VydmVyLnByb3RvdHlwZSA9IHsKICAgICAgICAgV2ViSW5zcGVjdG9yLmxvZyht
ZXNzYWdlLm1lc3NhZ2UpOwogICAgIH0sCiAKKyAgICBfb25SZWxvYWQ6IGZ1bmN0aW9uKCkKKyAg
ICB7CisgICAgICAgIEluc3BlY3RvckJhY2tlbmQucmVsb2FkUGFnZSgpOworICAgICAgICByZXR1
cm4gdGhpcy5fc3RhdHVzLk9LKCk7CisgICAgfSwKKwogICAgIF9vbkV2YWx1YXRlT25JbnNwZWN0
ZWRQYWdlOiBmdW5jdGlvbihtZXNzYWdlLCBwb3J0KQogICAgIHsKICAgICAgICAgZnVuY3Rpb24g
Y2FsbGJhY2socmVzdWx0UGF5bG9hZCkKQEAgLTI4Niw2NiArMjc2LDMyIEBAIFdlYkluc3BlY3Rv
ci5FeHRlbnNpb25TZXJ2ZXIucHJvdG90eXBlID0gewogICAgICAgICBwb3J0LnBvc3RNZXNzYWdl
KHsgY29tbWFuZDogImNhbGxiYWNrIiwgcmVxdWVzdElkOiByZXF1ZXN0SWQsIHJlc3VsdDogcmVz
dWx0IH0pOwogICAgIH0sCiAKLSAgICBfb25HZXRSZXNvdXJjZXM6IGZ1bmN0aW9uKHJlcXVlc3Qp
CisgICAgX29uR2V0SEFSOiBmdW5jdGlvbihyZXF1ZXN0KQogICAgIHsKLSAgICAgICAgZnVuY3Rp
b24gcmVzb3VyY2VXcmFwcGVyKGlkKQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gV2Vi
SW5zcGVjdG9yLmV4dGVuc2lvblNlcnZlci5fY29udmVydFJlc291cmNlKFdlYkluc3BlY3Rvci5u
ZXR3b3JrUmVzb3VyY2VzW2lkXSk7Ci0gICAgICAgIH0KLQotICAgICAgICB2YXIgcmVzcG9uc2U7
Ci0gICAgICAgIGlmIChyZXF1ZXN0LmlkKQotICAgICAgICAgICAgcmVzcG9uc2UgPSBXZWJJbnNw
ZWN0b3IubmV0d29ya1Jlc291cmNlc1tyZXF1ZXN0LmlkXSA/IHJlc291cmNlV3JhcHBlcihyZXF1
ZXN0LmlkKSA6IHRoaXMuX3N0YXR1cy5FX05PVEZPVU5EKHJlcXVlc3QuaWQpOwotICAgICAgICBl
bHNlCi0gICAgICAgICAgICByZXNwb25zZSA9IE9iamVjdC5rZXlzKFdlYkluc3BlY3Rvci5uZXR3
b3JrUmVzb3VyY2VzKS5tYXAocmVzb3VyY2VXcmFwcGVyKTsKLSAgICAgICAgcmV0dXJuIHJlc3Bv
bnNlOworICAgICAgICB2YXIgaGFyTG9nID0gbmV3IFdlYkluc3BlY3Rvci5IQVJMb2coKTsKKyAg
ICAgICAgaGFyTG9nLmluY2x1ZGVSZXNvdXJjZUlkcyA9IHRydWU7CisgICAgICAgIHJldHVybiBo
YXJMb2cuYnVpbGQoKTsKICAgICB9LAogCiAgICAgX29uR2V0UmVzb3VyY2VDb250ZW50OiBmdW5j
dGlvbihtZXNzYWdlLCBwb3J0KQogICAgIHsKLSAgICAgICAgdmFyIGlkczsKLSAgICAgICAgdmFy
IHJlc3BvbnNlID0gW107Ci0KLSAgICAgICAgZnVuY3Rpb24gb25Db250ZW50QXZhaWxhYmxlKGlk
LCBjb250ZW50LCBlbmNvZGVkKQorICAgICAgICBmdW5jdGlvbiBvbkNvbnRlbnRBdmFpbGFibGUo
Y29udGVudCwgZW5jb2RlZCkKICAgICAgICAgewotICAgICAgICAgICAgdmFyIHJlc291cmNlQ29u
dGVudCA9IHsKLSAgICAgICAgICAgICAgICBpZDogaWQsCisgICAgICAgICAgICB2YXIgcmVzcG9u
c2UgPSB7CiAgICAgICAgICAgICAgICAgZW5jb2Rpbmc6IGVuY29kZWQgPyAiYmFzZTY0IiA6ICIi
LAogICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGNvbnRlbnQKICAgICAgICAgICAgIH07Ci0gICAg
ICAgICAgICByZXNwb25zZS5wdXNoKHJlc291cmNlQ29udGVudCk7Ci0gICAgICAgICAgICBpZiAo
cmVzcG9uc2UubGVuZ3RoID09PSBpZHMubGVuZ3RoKQotICAgICAgICAgICAgICAgIHRoaXMuX2Rp
c3BhdGNoQ2FsbGJhY2sobWVzc2FnZS5yZXF1ZXN0SWQsIHBvcnQsIHJlc3BvbnNlKTsKLSAgICAg
ICAgfQotCi0gICAgICAgIGlmICh0eXBlb2YgbWVzc2FnZS5pZHMgPT09ICJudW1iZXIiKQotICAg
ICAgICAgICAgaWRzID0gWyBtZXNzYWdlLmlkcyBdOwotICAgICAgICBlbHNlIGlmIChtZXNzYWdl
LmlkcyBpbnN0YW5jZW9mIEFycmF5KQotICAgICAgICAgICAgaWRzID0gbWVzc2FnZS5pZHM7Ci0g
ICAgICAgIGVsc2UKLSAgICAgICAgICAgIHJldHVybiB0aGlzLl9zdGF0dXMuRV9CQURBUkdUWVBF
KCJtZXNzYWdlLmlkcyIsICJBcnJheSIsIHR5cGVvZiBtZXNzYWdlLmlkcyk7Ci0KLSAgICAgICAg
Zm9yICh2YXIgaSA9IDA7IGkgPCBpZHMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgICAgIHZhciBp
ZCA9IGlkc1tpXTsKLSAgICAgICAgICAgIHZhciByZXNvdXJjZSA9IFdlYkluc3BlY3Rvci5uZXR3
b3JrUmVzb3VyY2VzW2lkXTsKLSAKLSAgICAgICAgICAgIGlmICghcmVzb3VyY2UpCi0gICAgICAg
ICAgICAgICAgcmVzcG9uc2UucHVzaCh0aGlzLl9zdGF0dXMuRV9OT1RGT1VORChpZCkpOwotICAg
ICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHJlc291cmNlLnJlcXVlc3RDb250ZW50KG9u
Q29udGVudEF2YWlsYWJsZS5iaW5kKHRoaXMsIGlkKSk7Ci0gICAgICAgIH0KLSAgICAgICAgaWYg
KHJlc3BvbnNlLmxlbmd0aCA9PT0gaWRzLmxlbmd0aCkKICAgICAgICAgICAgIHRoaXMuX2Rpc3Bh
dGNoQ2FsbGJhY2sobWVzc2FnZS5yZXF1ZXN0SWQsIHBvcnQsIHJlc3BvbnNlKTsKLSAgICB9LAot
Ci0gICAgX29uR2V0UGFnZVRpbWluZ3M6IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIHJldHVy
biAobmV3IFdlYkluc3BlY3Rvci5IQVJMb2coKSkuYnVpbGRNYWluUmVzb3VyY2VUaW1pbmdzKCk7
CisgICAgICAgIH0KKyAgICAgICAgdmFyIHJlc291cmNlID0gV2ViSW5zcGVjdG9yLm5ldHdvcmtS
ZXNvdXJjZXNbbWVzc2FnZS5pZF07CisgICAgICAgIGlmICghcmVzb3VyY2UpCisgICAgICAgICAg
ICByZXR1cm4gdGhpcy5fc3RhdHVzLkVfTk9URk9VTkQobWVzc2FnZS5pZCk7CisgICAgICAgIHJl
c291cmNlLnJlcXVlc3RDb250ZW50KG9uQ29udGVudEF2YWlsYWJsZS5iaW5kKHRoaXMpKTsKICAg
ICB9LAogCiAgICAgX29uQWRkQXVkaXRDYXRlZ29yeTogZnVuY3Rpb24ocmVxdWVzdCkKICAgICB7
Ci0gICAgICAgIHZhciBjYXRlZ29yeSA9IG5ldyBXZWJJbnNwZWN0b3IuRXh0ZW5zaW9uQXVkaXRD
YXRlZ29yeShyZXF1ZXN0LmlkLCByZXF1ZXN0LmRpc3BsYXlOYW1lLCByZXF1ZXN0LnJ1bGVDb3Vu
dCk7CisgICAgICAgIHZhciBjYXRlZ29yeSA9IG5ldyBXZWJJbnNwZWN0b3IuRXh0ZW5zaW9uQXVk
aXRDYXRlZ29yeShyZXF1ZXN0LmlkLCByZXF1ZXN0LmRpc3BsYXlOYW1lLCByZXF1ZXN0LnJlc3Vs
dENvdW50KTsKICAgICAgICAgaWYgKFdlYkluc3BlY3Rvci5wYW5lbHMuYXVkaXRzLmdldENhdGVn
b3J5KGNhdGVnb3J5LmlkKSkKICAgICAgICAgICAgIHJldHVybiB0aGlzLl9zdGF0dXMuRV9FWElT
VFMoY2F0ZWdvcnkuaWQpOwogICAgICAgICB0aGlzLl9jbGllbnRPYmplY3RzW3JlcXVlc3QuaWRd
ID0gY2F0ZWdvcnk7CkBAIC00MDksOCArMzY1LDggQEAgV2ViSW5zcGVjdG9yLkV4dGVuc2lvblNl
cnZlci5wcm90b3R5cGUgPSB7CiAgICAgICAgIH0KICAgICAgICAgdmFyIHBsYXRmb3JtQVBJID0g
V2ViSW5zcGVjdG9yLmJ1aWxkUGxhdGZvcm1FeHRlbnNpb25BUEkgPyBXZWJJbnNwZWN0b3IuYnVp
bGRQbGF0Zm9ybUV4dGVuc2lvbkFQSSgpIDogIiI7CiAgICAgICAgIHJldHVybiAiKGZ1bmN0aW9u
KCl7ICIgKwotICAgICAgICAgICAgInZhciBwcml2YXRlID0ge307IiArCi0gICAgICAgICAgICAi
KCIgKyBXZWJJbnNwZWN0b3IuY29tbW9uRXh0ZW5zaW9uU3ltYm9scy50b1N0cmluZygpICsgIiko
cHJpdmF0ZSk7IiArCisgICAgICAgICAgICAidmFyIGFwaVByaXZhdGUgPSB7fTsiICsKKyAgICAg
ICAgICAgICIoIiArIFdlYkluc3BlY3Rvci5jb21tb25FeHRlbnNpb25TeW1ib2xzLnRvU3RyaW5n
KCkgKyAiKShhcGlQcml2YXRlKTsiICsKICAgICAgICAgICAgICIoIiArIFdlYkluc3BlY3Rvci5p
bmplY3RlZEV4dGVuc2lvbkFQSS50b1N0cmluZygpICsgIikuYXBwbHkodGhpcywgYXJndW1lbnRz
KTsiICsKICAgICAgICAgICAgICJ3ZWJJbnNwZWN0b3IucmVzb3VyY2VzLlR5cGVzID0gIiArIEpT
T04uc3RyaW5naWZ5KHJlc291cmNlVHlwZXMpICsgIjsiICsKICAgICAgICAgICAgIHBsYXRmb3Jt
QVBJICsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9IQVJFbnRyeS5q
cyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9IQVJFbnRyeS5qcwppbmRleCBmM2JmYjA2
Li42ZGZiZDFiIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSEFSRW50
cnkuanMKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0hBUkVudHJ5LmpzCkBAIC0x
ODksNiArMTg5LDcgQEAgV2ViSW5zcGVjdG9yLkhBUkVudHJ5Ll90b01pbGxpc2Vjb25kcyA9IGZ1
bmN0aW9uKHRpbWUpCiAKIFdlYkluc3BlY3Rvci5IQVJMb2cgPSBmdW5jdGlvbigpCiB7CisgICAg
dGhpcy5pbmNsdWRlUmVzb3VyY2VJZHMgPSBmYWxzZTsKIH0KIAogV2ViSW5zcGVjdG9yLkhBUkxv
Zy5wcm90b3R5cGUgPSB7CkBAIC0yMDMsNyArMjA0LDcgQEAgV2ViSW5zcGVjdG9yLkhBUkxvZy5w
cm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgdmVyc2lvbjogd2ViS2l0VmVyc2lvbiA/IHdl
YktpdFZlcnNpb25bMV0gOiAibi9hIgogICAgICAgICAgICAgfSwKICAgICAgICAgICAgIHBhZ2Vz
OiB0aGlzLl9idWlsZFBhZ2VzKCksCi0gICAgICAgICAgICBlbnRyaWVzOiBPYmplY3Qua2V5cyhX
ZWJJbnNwZWN0b3IubmV0d29ya1Jlc291cmNlcykubWFwKHRoaXMuX2NvbnZlcnRSZXNvdXJjZSkK
KyAgICAgICAgICAgIGVudHJpZXM6IE9iamVjdC5rZXlzKFdlYkluc3BlY3Rvci5uZXR3b3JrUmVz
b3VyY2VzKS5tYXAodGhpcy5fY29udmVydFJlc291cmNlLmJpbmQodGhpcykpCiAgICAgICAgIH0K
ICAgICB9LAogCkBAIC0yMjksNyArMjMwLDEwIEBAIFdlYkluc3BlY3Rvci5IQVJMb2cucHJvdG90
eXBlID0gewogCiAgICAgX2NvbnZlcnRSZXNvdXJjZTogZnVuY3Rpb24oaWQpCiAgICAgewotICAg
ICAgICByZXR1cm4gKG5ldyBXZWJJbnNwZWN0b3IuSEFSRW50cnkoV2ViSW5zcGVjdG9yLm5ldHdv
cmtSZXNvdXJjZXNbaWRdKSkuYnVpbGQoKTsKKyAgICAgICAgdmFyIGVudHJ5ID0gKG5ldyBXZWJJ
bnNwZWN0b3IuSEFSRW50cnkoV2ViSW5zcGVjdG9yLm5ldHdvcmtSZXNvdXJjZXNbaWRdKSkuYnVp
bGQoKTsKKyAgICAgICAgaWYgKHRoaXMuaW5jbHVkZVJlc291cmNlSWRzKQorICAgICAgICAgICAg
ZW50cnkuX3Jlc291cmNlSWQgPSBpZDsKKyAgICAgICAgcmV0dXJuIGVudHJ5OwogICAgIH0sCiAK
ICAgICBfcGFnZUV2ZW50VGltZTogZnVuY3Rpb24odGltZSkKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvaW5zcGVjdG9yLmpzCmluZGV4IDMzYjM3MGEuLjkxOTlkZWQgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMKKysrIGIvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcwpAQCAtMTIyOCw2ICsxMjI4LDcgQEAgV2ViSW5z
cGVjdG9yLmRvbUNvbnRlbnRFdmVudEZpcmVkID0gZnVuY3Rpb24odGltZSkKICAgICB0aGlzLnBh
bmVscy5hdWRpdHMubWFpblJlc291cmNlRE9NQ29udGVudFRpbWUgPSB0aW1lOwogICAgIGlmICh0
aGlzLnBhbmVscy5uZXR3b3JrKQogICAgICAgICB0aGlzLnBhbmVscy5uZXR3b3JrLm1haW5SZXNv
dXJjZURPTUNvbnRlbnRUaW1lID0gdGltZTsKKyAgICB0aGlzLmV4dGVuc2lvblNlcnZlci5ub3Rp
ZnlQYWdlRE9NQ29udGVudExvYWRlZCgodGltZSAtIFdlYkluc3BlY3Rvci5tYWluUmVzb3VyY2Uu
c3RhcnRUaW1lKSAqIDEwMDApOwogICAgIHRoaXMubWFpblJlc291cmNlRE9NQ29udGVudFRpbWUg
PSB0aW1lOwogfQogCkBAIC0xMjM2LDYgKzEyMzcsNyBAQCBXZWJJbnNwZWN0b3IubG9hZEV2ZW50
RmlyZWQgPSBmdW5jdGlvbih0aW1lKQogICAgIHRoaXMucGFuZWxzLmF1ZGl0cy5tYWluUmVzb3Vy
Y2VMb2FkVGltZSA9IHRpbWU7CiAgICAgaWYgKHRoaXMucGFuZWxzLm5ldHdvcmspCiAgICAgICAg
IHRoaXMucGFuZWxzLm5ldHdvcmsubWFpblJlc291cmNlTG9hZFRpbWUgPSB0aW1lOworICAgIHRo
aXMuZXh0ZW5zaW9uU2VydmVyLm5vdGlmeVBhZ2VMb2FkZWQoKHRpbWUgLSBXZWJJbnNwZWN0b3Iu
bWFpblJlc291cmNlLnN0YXJ0VGltZSkgKiAxMDAwKTsKICAgICB0aGlzLm1haW5SZXNvdXJjZUxv
YWRUaW1lID0gdGltZTsKIH0KIApAQCAtMTQwMCw3ICsxNDAyLDYgQEAgV2ViSW5zcGVjdG9yLmRp
ZENvbW1pdExvYWQgPSBmdW5jdGlvbigpCiB7CiAgICAgLy8gQ2xlYW51cCBlbGVtZW50cyBwYW5l
bCBlYXJseSBvbiBpbnNwZWN0ZWQgcGFnZSByZWZyZXNoLgogICAgIFdlYkluc3BlY3Rvci5zZXRE
b2N1bWVudChudWxsKTsKLSAgICB0aGlzLmV4dGVuc2lvblNlcnZlci5ub3RpZnlJbnNwZWN0ZWRQ
YWdlTG9hZGVkKCk7CiB9CiAKIFdlYkluc3BlY3Rvci51cGRhdGVDb25zb2xlTWVzc2FnZUV4cGly
ZWRDb3VudCA9IGZ1bmN0aW9uKGNvdW50KQo=
</data>
<flag name="review"
          id="65418"
          type_id="1"
          status="-"
          setter="pfeldman"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>74759</attachid>
            <date>2010-11-24 07:37:08 -0800</date>
            <delta_ts>2010-11-24 09:31:46 -0800</delta_ts>
            <desc>patch</desc>
            <filename>extension-api-cleanup.diff</filename>
            <type>text/plain</type>
            <size>91021</size>
            <attacher name="Andrey Kosyakov">caseq</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA5ZDRiMGU3Li40MWI5NmFlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDUgQEAKKzIwMTAtMTEt
MjQgIEFuZHJleSBLb3N5YWtvdiAgPGNhc2VxQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBleHRlbnNp
b24gQVBJIGNsZWFudXAKKyAgICAgICAgSW1wcm92ZSBzeW5jaHJvbml6YXRpb24gYmV0d2VlbiBk
aWZmZXJlbnQgcGFydHMgb2YgdGhlIHRlc3QgdG8gcmVkdWNlIGZsYWtpbmVzcy4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUwMDE5CisKKyAgICAgICAg
KiBodHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdDIuanM6IENsZWFuIGluc3BlY3Rl
ZCBwYWdlIHRlc3Qgb3V0cHV0IGJlZm9yZSBwdXNoaW5nIG91dHB1dCBmcm9tIGZyb250LWVuZC4K
KyAgICAgICAgKGluaXRpYWxpemVfSW5zcGVjdG9yVGVzdC5JbnNwZWN0b3JUZXN0LmNvbXBsZXRl
VGVzdCk6IERlbGF5IHRlc3QgY29tcGxldGlvbiB1bnRpbCBwYWdlJ3Mgb25sb2FkIGlzIGNvbXBs
ZXRlZCBhZnRlciByZWxvYWQuCisgICAgICAgIChpbml0aWFsaXplX0luc3BlY3RvclRlc3QuSW5z
cGVjdG9yVGVzdC5hZGRSZXN1bHQuY2xlYXJSZXN1bHRzKToKKyAgICAgICAgKGluaXRpYWxpemVf
SW5zcGVjdG9yVGVzdC5JbnNwZWN0b3JUZXN0LnJlbG9hZFBhZ2VJZk5lZWRlZCk6CisgICAgICAg
IChvdXRwdXQpOgorICAgICAgICAqIGluc3BlY3Rvci9leHRlbnNpb25zLWFwaS1leHBlY3RlZC50
eHQ6CisgICAgICAgICogaW5zcGVjdG9yL2V4dGVuc2lvbnMtYXVkaXRzLWFwaS1leHBlY3RlZC50
eHQ6CisgICAgICAgICogaW5zcGVjdG9yL2V4dGVuc2lvbnMtYXVkaXRzLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiBpbnNwZWN0b3IvZXh0ZW5zaW9ucy1hdWRpdHMtdGVzdHMuanM6CisgICAgICAg
IChleHRlbnNpb25fcnVuQXVkaXRzKToKKyAgICAgICAgKGluaXRpYWxpemVfRXh0ZW5zaW9uc0F1
ZGl0c1Rlc3QuSW5zcGVjdG9yVGVzdC5zdGFydEV4dGVuc2lvbkF1ZGl0cy5vbkF1ZGl0c0RvbmUp
OgorICAgICAgICAoaW5pdGlhbGl6ZV9FeHRlbnNpb25zQXVkaXRzVGVzdC5JbnNwZWN0b3JUZXN0
LnN0YXJ0RXh0ZW5zaW9uQXVkaXRzKToKKyAgICAgICAgKGluaXRpYWxpemVfRXh0ZW5zaW9uc0F1
ZGl0c1Rlc3QpOgorICAgICAgICAodGVzdCk6CisgICAgICAgICogaW5zcGVjdG9yL2V4dGVuc2lv
bnMtZXZhbC1leHBlY3RlZC50eHQ6CisgICAgICAgICogaW5zcGVjdG9yL2V4dGVuc2lvbnMtZXZh
bC5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9leHRlbnNpb25zLWV2ZW50cy1leHBlY3RlZC50
eHQ6CisgICAgICAgICogaW5zcGVjdG9yL2V4dGVuc2lvbnMtZXZlbnRzLmh0bWw6CisgICAgICAg
ICogaW5zcGVjdG9yL2V4dGVuc2lvbnMtcmVzb3VyY2VzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiBpbnNwZWN0b3IvZXh0ZW5zaW9ucy1yZXNvdXJjZXMuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0
b3IvZXh0ZW5zaW9ucy10ZXN0LmpzOgorICAgICAgICAoaW5pdGlhbGl6ZV9FeHRlbnNpb25zVGVz
dC5JbnNwZWN0b3JUZXN0LmRpc3BhdGNoT25NZXNzYWdlKToKKyAgICAgICAgKGluaXRpYWxpemVf
RXh0ZW5zaW9uc1Rlc3QuSW5zcGVjdG9yVGVzdC5ydW5FeHRlbnNpb25UZXN0cyk6CisgICAgICAg
IChpbml0aWFsaXplX0V4dGVuc2lvbnNUZXN0LmV4dGVuc2lvbk91dHB1dCk6CisgICAgICAgIChp
bml0aWFsaXplX0V4dGVuc2lvbnNUZXN0LmR1bXBTaWRlYmFyQ29udGVudCk6CisgICAgICAgIChp
bml0aWFsaXplX0V4dGVuc2lvbnNUZXN0LnJlbG9hZFBhZ2UpOgorICAgICAgICAqIGluc3BlY3Rv
ci9leHRlbnNpb25zLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL3Jlc291cmNlcy9leHRlbnNp
b24tbWFpbi5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9yZXNvdXJjZXMvZXh0ZW5zaW9uLW1h
aW4uanM6CisgICAgICAgIChmZXRjaFRlc3RzLmNhbGxiYWNrKToKKyAgICAgICAgKGZldGNoVGVz
dHMpOgorICAgICAgICAob25UZXN0c0RvbmUpOgorICAgICAgICAoZGlzcGF0Y2hPbkZyb250ZW5k
KToKKwogMjAxMC0xMS0yMiAgQW50b24gTXVoaW4gIDxhbnRvbm1AY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIE5vdCByZXZpZXdlZC4gIFJlYmFzZWxpbmluZyB2YXJpb3VzIFdpbi9MaW51eCBvbmx5
IGRldmlhdGlvbnMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rv
ci9pbnNwZWN0b3ItdGVzdDIuanMgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9p
bnNwZWN0b3ItdGVzdDIuanMKaW5kZXggNmRiNTc5Yy4uZTAxNWZhYyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QyLmpzCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0Mi5qcwpAQCAtMzgs
MTEgKzM4LDE3IEBAIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0ID0gZnVuY3Rpb24odGV4dCkKICAg
ICBpZiAocmVzdWx0c1N5bmNocm9uaXplZCkKICAgICAgICAgYWRkUmVzdWx0VG9QYWdlKHRleHQp
OwogICAgIGVsc2UgeworICAgICAgICBjbGVhclJlc3VsdHMoKTsKICAgICAgICAgZm9yICh2YXIg
aSA9IDA7IGkgPCByZXN1bHRzLmxlbmd0aDsgKytpKQogICAgICAgICAgICAgYWRkUmVzdWx0VG9Q
YWdlKHJlc3VsdHNbaV0pOwogICAgICAgICByZXN1bHRzU3luY2hyb25pemVkID0gdHJ1ZTsKICAg
ICB9CiAKKyAgICBmdW5jdGlvbiBjbGVhclJlc3VsdHMoKQorICAgIHsKKyAgICAgICAgSW5zcGVj
dG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgiQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChkb2N1
bWVudC5ib2R5LnF1ZXJ5U2VsZWN0b3JBbGwoJ2Rpdi5vdXRwdXQnKSwgZnVuY3Rpb24obm9kZSkg
eyBub2RlLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQobm9kZSk7IH0pIik7CisgICAgfQorCiAgICAg
ZnVuY3Rpb24gYWRkUmVzdWx0VG9QYWdlKHRleHQpCiAgICAgewogICAgICAgICBJbnNwZWN0b3JU
ZXN0LmV2YWx1YXRlSW5QYWdlKCJvdXRwdXQodW5lc2NhcGUoJyIgKyBlc2NhcGUodGV4dCkgKyAi
JykpIik7CkBAIC04Nyw4ICs5MywxMCBAQCBJbnNwZWN0b3JUZXN0LnJlbG9hZFBhZ2VJZk5lZWRl
ZCA9IGZ1bmN0aW9uKGNhbGxiYWNrKQogICAgIGlmICghSW5zcGVjdG9yVGVzdC5fcGFnZVdhc1Jl
bG9hZGVkKSB7CiAgICAgICAgIEluc3BlY3RvclRlc3QuX3BhZ2VXYXNSZWxvYWRlZCA9IHRydWU7
CiAgICAgICAgIEluc3BlY3RvclRlc3QucmVsb2FkUGFnZShjYWxsYmFjayk7Ci0gICAgfSBlbHNl
Ci0gICAgICAgIGNhbGxiYWNrKCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKGNhbGxiYWNr
KSAKKyAgICAgICAgICAgIGNhbGxiYWNrKCk7CisgICAgfQogfQogCiBJbnNwZWN0b3JUZXN0LnBh
Z2VSZWxvYWRlZCA9IGZ1bmN0aW9uKCkKQEAgLTIyOSw3ICsyMzcsNyBAQCBmdW5jdGlvbiBkaWRF
dmFsdWF0ZUZvclRlc3RJbkZyb250ZW5kKGNhbGxJZCkKIGZ1bmN0aW9uIG91dHB1dCh0ZXh0KQog
ewogICAgIHZhciBvdXRwdXRFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7
Ci0gICAgb3V0cHV0RWxlbWVudC5pZCA9ICJvdXRwdXQiOworICAgIG91dHB1dEVsZW1lbnQuY2xh
c3NOYW1lID0gIm91dHB1dCI7CiAgICAgb3V0cHV0RWxlbWVudC5zdHlsZS53aGl0ZVNwYWNlID0g
InByZSI7CiAgICAgb3V0cHV0RWxlbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0
Tm9kZSh0ZXh0KSk7CiAgICAgb3V0cHV0RWxlbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJiciIpKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRl
bnNpb25zLWFwaS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9u
cy1hcGktZXhwZWN0ZWQudHh0CmluZGV4IDU2NTdlZWEuLmM5NDFmNjMgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zLWFwaS1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMtYXBpLWV4cGVjdGVkLnR4dApAQCAtMSw2ICsx
LDUgQEAKIFRlc3RzIHB1YmxpYyBpbnRlcmZhY2Ugb2YgV2ViSW5zcGVjdG9yIEV4dGVuc2lvbnMg
QVBJCiAKLVBhZ2UgcmVsb2FkZWQuCiBTdGFydGVkIGV4dGVuc2lvbi4KIFJ1bm5pbmcgdGVzdHMu
Li4KIFJVTk5JTkcgVEVTVDogZXh0ZW5zaW9uX3Rlc3RBUEkKQEAgLTksMzcgKzgsMjkgQEAgUlVO
TklORyBURVNUOiBleHRlbnNpb25fdGVzdEFQSQogICAgICAgICBhZGRDYXRlZ29yeSA6IDxmdW5j
dGlvbj4KICAgICB9CiAgICAgaW5zcGVjdGVkV2luZG93IDogewotICAgICAgICBvbkxvYWRlZCA6
IHsKKyAgICAgICAgb25ET01Db250ZW50TG9hZGVkIDogewogICAgICAgICAgICAgYWRkTGlzdGVu
ZXIgOiA8ZnVuY3Rpb24+CiAgICAgICAgICAgICByZW1vdmVMaXN0ZW5lciA6IDxmdW5jdGlvbj4K
ICAgICAgICAgfQotICAgICAgICBvbk5hdmlnYXRlZCA6IHsKKyAgICAgICAgb25Mb2FkZWQgOiB7
CiAgICAgICAgICAgICBhZGRMaXN0ZW5lciA6IDxmdW5jdGlvbj4KICAgICAgICAgICAgIHJlbW92
ZUxpc3RlbmVyIDogPGZ1bmN0aW9uPgogICAgICAgICB9Ci0gICAgICAgIG9uRE9NQ29udGVudExv
YWRlZCA6IHsKKyAgICAgICAgb25OYXZpZ2F0ZWQgOiB7CiAgICAgICAgICAgICBhZGRMaXN0ZW5l
ciA6IDxmdW5jdGlvbj4KICAgICAgICAgICAgIHJlbW92ZUxpc3RlbmVyIDogPGZ1bmN0aW9uPgog
ICAgICAgICB9CiAgICAgICAgIHJlbG9hZCA6IDxmdW5jdGlvbj4KLSAgICAgICAgZXZhbHVhdGUg
OiA8ZnVuY3Rpb24+CisgICAgICAgIGV2YWwgOiA8ZnVuY3Rpb24+CiAgICAgfQogICAgIHBhbmVs
cyA6IHsKICAgICAgICAgZWxlbWVudHMgOiB7Ci0gICAgICAgICAgICBvblNlbGVjdGlvbkNoYW5n
ZWQgOiB7Ci0gICAgICAgICAgICAgICAgYWRkTGlzdGVuZXIgOiA8ZnVuY3Rpb24+Ci0gICAgICAg
ICAgICAgICAgcmVtb3ZlTGlzdGVuZXIgOiA8ZnVuY3Rpb24+Ci0gICAgICAgICAgICB9CiAgICAg
ICAgICAgICBjcmVhdGVTaWRlYmFyUGFuZSA6IDxmdW5jdGlvbj4KICAgICAgICAgICAgIGNyZWF0
ZVdhdGNoRXhwcmVzc2lvblNpZGViYXJQYW5lIDogPGZ1bmN0aW9uPgotICAgICAgICB9Ci0gICAg
ICAgIHNjcmlwdHMgOiB7CiAgICAgICAgICAgICBvblNlbGVjdGlvbkNoYW5nZWQgOiB7CiAgICAg
ICAgICAgICAgICAgYWRkTGlzdGVuZXIgOiA8ZnVuY3Rpb24+CiAgICAgICAgICAgICAgICAgcmVt
b3ZlTGlzdGVuZXIgOiA8ZnVuY3Rpb24+CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBjcmVh
dGVTaWRlYmFyUGFuZSA6IDxmdW5jdGlvbj4KLSAgICAgICAgICAgIGNyZWF0ZVdhdGNoRXhwcmVz
c2lvblNpZGViYXJQYW5lIDogPGZ1bmN0aW9uPgogICAgICAgICB9CiAgICAgICAgIGNyZWF0ZSA6
IDxmdW5jdGlvbj4KICAgICB9CkBAIC01OSwxMCArNTAsNyBAQCBSVU5OSU5HIFRFU1Q6IGV4dGVu
c2lvbl90ZXN0QVBJCiAgICAgICAgICAgICBXZWJTb2NrZXQgOiAid2Vic29ja2V0IgogICAgICAg
ICAgICAgT3RoZXIgOiAib3RoZXIiCiAgICAgICAgIH0KLSAgICAgICAgZ2V0QWxsIDogPGZ1bmN0
aW9uPgotICAgICAgICBnZXQgOiA8ZnVuY3Rpb24+Ci0gICAgICAgIGdldFBhZ2VUaW1pbmdzIDog
PGZ1bmN0aW9uPgotICAgICAgICBnZXRDb250ZW50IDogPGZ1bmN0aW9uPgorICAgICAgICBnZXRI
QVIgOiA8ZnVuY3Rpb24+CiAgICAgfQogICAgIG9uUmVzZXQgOiB7CiAgICAgICAgIGFkZExpc3Rl
bmVyIDogPGZ1bmN0aW9uPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVu
c2lvbnMtYXVkaXRzLWFwaS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0
ZW5zaW9ucy1hdWRpdHMtYXBpLWV4cGVjdGVkLnR4dAppbmRleCBmMTRiNmJiLi4wMzRhYWZkIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy1hdWRpdHMtYXBpLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy1hdWRpdHMt
YXBpLWV4cGVjdGVkLnR4dApAQCAtMSw2ICsxLDUgQEAKIFRlc3RzIGF1ZGl0cyBzdXBwb3J0IGlu
IFdlYkluc3BlY3RvciBFeHRlbnNpb25zIEFQSQogCi1QYWdlIHJlbG9hZGVkLgogU3RhcnRlZCBl
eHRlbnNpb24uCiBSdW5uaW5nIHRlc3RzLi4uCiBSVU5OSU5HIFRFU1Q6IGV4dGVuc2lvbl90ZXN0
QXVkaXRzQVBJCkBAIC0xMSw2ICsxMCw3IEBAIEFkZGVkIGF1ZGl0IGNhdGVnb3J5LCByZXN1bHQg
ZHVtcCBmb2xsb3dzOgogICAgICAgICByZW1vdmVMaXN0ZW5lciA6IDxmdW5jdGlvbj4KICAgICB9
CiB9CisgIEV4dGVuc2lvbiBhdWRpdHMKIGNhdGVnb3J5Lm9uQXVkaXRTdGFydGVkIGZpcmVkLCBy
ZXN1bHRzIGR1bXAgZm9sbG93czoKIHsKICAgICB1cmwgOiA8ZnVuY3Rpb24+CkBAIC0zNCw2ICsz
NCw1IEBAIGNhdGVnb3J5Lm9uQXVkaXRTdGFydGVkIGZpcmVkLCByZXN1bHRzIGR1bXAgZm9sbG93
czoKICAgICBleHBhbmRlZCA6IGZhbHNlCiAgICAgYWRkQ2hpbGQgOiA8ZnVuY3Rpb24+CiB9Ci0g
IEV4dGVuc2lvbiBhdWRpdHMKIEFsbCB0ZXN0cyBkb25lLgogCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy1hdWRpdHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMtYXVkaXRzLWV4cGVjdGVkLnR4dAppbmRleCBlMjVmMzJj
Li44OTRhN2VhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy1h
dWRpdHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25z
LWF1ZGl0cy1leHBlY3RlZC50eHQKQEAgLTEsMTIgKzEsOSBAQAogVGVzdHMgYXVkaXRzIHN1cHBv
cnQgaW4gV2ViSW5zcGVjdG9yIEV4dGVuc2lvbnMgQVBJCiAKLVBhZ2UgcmVsb2FkZWQuCiBTdGFy
dGVkIGV4dGVuc2lvbi4KIFJ1bm5pbmcgdGVzdHMuLi4KIFJVTk5JTkcgVEVTVDogZXh0ZW5zaW9u
X3Rlc3RBdWRpdHMKIEFkZGVkIGF1ZGl0IGNhdGVnb3J5LgotY2F0ZWdvcnkub25BdWRpdFN0YXJ0
ZWQgZmlyZWQKLWZhaWxlZENhdGVnb3J5Lm9uQXVkaXRTdGFydGVkIGZpcmVkLCB0aHJvd2luZyBl
eGNlcHRpb24KICAgRXh0ZW5zaW9uIGF1ZGl0cwogICAgIEZhaWxlZCBydWxlICg0MikKICAgICAg
dGhpcyBydWxlIGFsd2F5cyBmYWlscwpAQCAtMjUsNSArMjIsNyBAQCBmYWlsZWRDYXRlZ29yeS5v
bkF1ZGl0U3RhcnRlZCBmaXJlZCwgdGhyb3dpbmcgZXhjZXB0aW9uCiAgICAgUGFzc2VkIHJ1bGUK
ICAgICAgdGhpcyBydWxlIGFsd2F5cyBwYXNzZXMgb2sKICAgRXh0ZW5zaW9uIGF1ZGl0cyB0aGF0
IGZhaWwKK2NhdGVnb3J5Lm9uQXVkaXRTdGFydGVkIGZpcmVkCitmYWlsZWRDYXRlZ29yeS5vbkF1
ZGl0U3RhcnRlZCBmaXJlZCwgdGhyb3dpbmcgZXhjZXB0aW9uCiBBbGwgdGVzdHMgZG9uZS4KIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMtYXVkaXRzLXRlc3Rz
LmpzIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMtYXVkaXRzLXRlc3RzLmpzCmlu
ZGV4IDNiYjFmYzIuLmY3YTNjNzUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9l
eHRlbnNpb25zLWF1ZGl0cy10ZXN0cy5qcworKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0
ZW5zaW9ucy1hdWRpdHMtdGVzdHMuanMKQEAgLTEsMTggKzEsMTIgQEAKIGZ1bmN0aW9uIGV4dGVu
c2lvbl9ydW5BdWRpdHMoY2FsbGJhY2spCiB7Ci0gICAgZnVuY3Rpb24gb25NZXNzYWdlKGV2ZW50
KQotICAgIHsKLSAgICAgICAgaWYgKGV2ZW50LmRhdGEgPT09ICJhdWRpdHMtY29tcGxldGUiKQot
ICAgICAgICAgICAgY2FsbGJhY2soKTsKLSAgICB9Ci0gICAgd2luZG93LmFkZEV2ZW50TGlzdGVu
ZXIoIm1lc3NhZ2UiLCBvbk1lc3NhZ2UsIGZhbHNlKTsKLSAgICB0b3AucG9zdE1lc3NhZ2UoInJ1
bi1hdWRpdHMiLCAiKiIpOworICAgIGRpc3BhdGNoT25Gcm9udGVuZCh7IGNvbW1hbmQ6ICJydW4t
YXVkaXRzIiB9LCBjYWxsYmFjayk7CiB9CiAKIC8vIHJ1bnMgaW4gZnJvbnQtZW5kCiB2YXIgaW5p
dGlhbGl6ZV9FeHRlbnNpb25zQXVkaXRzVGVzdCA9IGZ1bmN0aW9uKCkKIHsKLSAgICBJbnNwZWN0
b3JUZXN0LnN0YXJ0RXh0ZW5zaW9uQXVkaXRzID0gZnVuY3Rpb24oKSAKKyAgICBJbnNwZWN0b3JU
ZXN0LnN0YXJ0RXh0ZW5zaW9uQXVkaXRzID0gZnVuY3Rpb24obWVzc2FnZSwgcG9ydCkgCiAgICAg
ewogICAgICAgICBjb25zdCBsYXVuY2hlclZpZXcgPSBXZWJJbnNwZWN0b3IucGFuZWxzLmF1ZGl0
cy5fbGF1bmNoZXJWaWV3OwogICAgICAgICBsYXVuY2hlclZpZXcuX3NlbGVjdEFsbENsaWNrZWQo
ZmFsc2UpOwpAQCAtMjcsMTEgKzIxLDEwIEBAIHZhciBpbml0aWFsaXplX0V4dGVuc2lvbnNBdWRp
dHNUZXN0ID0gZnVuY3Rpb24oKQogICAgICAgICBmdW5jdGlvbiBvbkF1ZGl0c0RvbmUoKQogICAg
ICAgICB7CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbGxlY3RBdWRpdFJlc3VsdHMoKTsK
LSAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZnJhbWVzLmxlbmd0aDsgKytpKQotICAg
ICAgICAgICAgICAgIGZyYW1lc1tpXS5wb3N0TWVzc2FnZSgiYXVkaXRzLWNvbXBsZXRlIiwgIioi
KTsKKyAgICAgICAgICAgIHBvcnQucG9zdE1lc3NhZ2UoIiIpOwogICAgICAgICB9Ci0KICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5fYWRkU25pZmZlcihXZWJJbnNwZWN0b3IucGFuZWxzLmF1ZGl0cywg
Il9hdWRpdEZpbmlzaGVkQ2FsbGJhY2siLCBvbkF1ZGl0c0RvbmUsIHRydWUpOworCiAgICAgICAg
IGxhdW5jaGVyVmlldy5fbGF1bmNoQnV0dG9uQ2xpY2tlZCgpOwogICAgIH0KIH0KQEAgLTQxLDQg
KzM0LDMgQEAgdmFyIHRlc3QgPSBmdW5jdGlvbigpCiAgICAgSW5zcGVjdG9yVGVzdC5kaXNwYXRj
aE9uTWVzc2FnZSgicnVuLWF1ZGl0cyIsIEluc3BlY3RvclRlc3Quc3RhcnRFeHRlbnNpb25BdWRp
dHMpOwogICAgIEluc3BlY3RvclRlc3QucnVuRXh0ZW5zaW9uVGVzdHMoKTsKIH0KLQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMtZXZhbC1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy1ldmFsLWV4cGVjdGVkLnR4dAppbmRl
eCA0YzU4OWY1Li4zZDM5ZjJmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0
ZW5zaW9ucy1ldmFsLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0
ZW5zaW9ucy1ldmFsLWV4cGVjdGVkLnR4dApAQCAtMSw2ICsxLDUgQEAKIFRlc3RzIFdlYkluc3Bl
Y3RvciBleHRlbnNpb24gQVBJCiAKLVBhZ2UgcmVsb2FkZWQuCiBTdGFydGVkIGV4dGVuc2lvbi4K
IFJ1bm5pbmcgdGVzdHMuLi4KIFJVTk5JTkcgVEVTVDogZXh0ZW5zaW9uX3Rlc3RFdmFsQ29uc29s
ZUFQSQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMtZXZhbC5o
dG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMtZXZhbC5odG1sCmluZGV4IGVk
NTRlOGEuLjRmZDNmOWMgMTAwNzU1Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNp
b25zLWV2YWwuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy1ldmFs
Lmh0bWwKQEAgLTgsMzkgKzgsMzkgQEAgd2luZG93Lmluc3BlY3RlZFZhbHVlID0geyBzdHI6ICJm
b28iLCBudW06IDQyIH07CiAKIGZ1bmN0aW9uIGV4dGVuc2lvbl90ZXN0RXZhbE9rKG5leHRUZXN0
KQogewotICAgIHdlYkluc3BlY3Rvci5pbnNwZWN0ZWRXaW5kb3cuZXZhbHVhdGUoImluc3BlY3Rl
ZFZhbHVlIiwgY2FsbGJhY2tBbmROZXh0VGVzdChleHRlbnNpb25fb25FdmFsdWF0ZSwgbmV4dFRl
c3QpKTsKKyAgICB3ZWJJbnNwZWN0b3IuaW5zcGVjdGVkV2luZG93LmV2YWwoImluc3BlY3RlZFZh
bHVlIiwgY2FsbGJhY2tBbmROZXh0VGVzdChleHRlbnNpb25fb25FdmFsLCBuZXh0VGVzdCkpOwog
fQogCiBmdW5jdGlvbiBleHRlbnNpb25fdGVzdEV2YWxGYWlsZWQobmV4dFRlc3QpCiB7Ci0gICAg
d2ViSW5zcGVjdG9yLmluc3BlY3RlZFdpbmRvdy5ldmFsdWF0ZSgiZG9jdW1lbnQuYm9keSIsIGNh
bGxiYWNrQW5kTmV4dFRlc3QoZXh0ZW5zaW9uX29uRXZhbHVhdGUsIG5leHRUZXN0KSk7CisgICAg
d2ViSW5zcGVjdG9yLmluc3BlY3RlZFdpbmRvdy5ldmFsKCJkb2N1bWVudC5ib2R5IiwgY2FsbGJh
Y2tBbmROZXh0VGVzdChleHRlbnNpb25fb25FdmFsLCBuZXh0VGVzdCkpOwogfQogCiBmdW5jdGlv
biBleHRlbnNpb25fdGVzdEV2YWxEZWZpbmVzR2xvYmFsU3ltYm9scyhuZXh0VGVzdCkKIHsKLSAg
ICB3ZWJJbnNwZWN0b3IuaW5zcGVjdGVkV2luZG93LmV2YWx1YXRlKCJmdW5jdGlvbiBleHRlbnNp
b25GdW5jKCkge30iKTsKLSAgICB3ZWJJbnNwZWN0b3IuaW5zcGVjdGVkV2luZG93LmV2YWx1YXRl
KCJleHRlbnNpb25WYXIgPSA0MjsiKTsKLSAgICB3ZWJJbnNwZWN0b3IuaW5zcGVjdGVkV2luZG93
LmV2YWx1YXRlKCIoeyBmdW5jOiB0eXBlb2Ygd2luZG93LmV4dGVuc2lvbkZ1bmMsIHZhcmlhYmxl
OiB3aW5kb3cuZXh0ZW5zaW9uVmFyIH0pIiwgY2FsbGJhY2tBbmROZXh0VGVzdChleHRlbnNpb25f
b25FdmFsdWF0ZSwgbmV4dFRlc3QpKTsKKyAgICB3ZWJJbnNwZWN0b3IuaW5zcGVjdGVkV2luZG93
LmV2YWwoImZ1bmN0aW9uIGV4dGVuc2lvbkZ1bmMoKSB7fSIpOworICAgIHdlYkluc3BlY3Rvci5p
bnNwZWN0ZWRXaW5kb3cuZXZhbCgiZXh0ZW5zaW9uVmFyID0gNDI7Iik7CisgICAgd2ViSW5zcGVj
dG9yLmluc3BlY3RlZFdpbmRvdy5ldmFsKCIoeyBmdW5jOiB0eXBlb2Ygd2luZG93LmV4dGVuc2lv
bkZ1bmMsIHZhcmlhYmxlOiB3aW5kb3cuZXh0ZW5zaW9uVmFyIH0pIiwgY2FsbGJhY2tBbmROZXh0
VGVzdChleHRlbnNpb25fb25FdmFsLCBuZXh0VGVzdCkpOwogfQogCiBmdW5jdGlvbiBleHRlbnNp
b25fdGVzdEV2YWxTdGF0ZW1lbnQobmV4dFRlc3QpCiB7Ci0gICAgd2ViSW5zcGVjdG9yLmluc3Bl
Y3RlZFdpbmRvdy5ldmFsdWF0ZSgidmFyIHggPSAzOyB3aGlsZSAoLS14KTsgeCIsIGNhbGxiYWNr
QW5kTmV4dFRlc3QoZXh0ZW5zaW9uX29uRXZhbHVhdGUsIG5leHRUZXN0KSk7CisgICAgd2ViSW5z
cGVjdG9yLmluc3BlY3RlZFdpbmRvdy5ldmFsKCJ2YXIgeCA9IDM7IHdoaWxlICgtLXgpOyB4Iiwg
Y2FsbGJhY2tBbmROZXh0VGVzdChleHRlbnNpb25fb25FdmFsLCBuZXh0VGVzdCkpOwogfQogCiBm
dW5jdGlvbiBleHRlbnNpb25fdGVzdEV2YWxVbmRlZmluZWQobmV4dFRlc3QpCiB7Ci0gICAgd2Vi
SW5zcGVjdG9yLmluc3BlY3RlZFdpbmRvdy5ldmFsdWF0ZSgidW5kZWZpbmVkIiwgY2FsbGJhY2tB
bmROZXh0VGVzdChleHRlbnNpb25fb25FdmFsdWF0ZSwgbmV4dFRlc3QpKTsKKyAgICB3ZWJJbnNw
ZWN0b3IuaW5zcGVjdGVkV2luZG93LmV2YWwoInVuZGVmaW5lZCIsIGNhbGxiYWNrQW5kTmV4dFRl
c3QoZXh0ZW5zaW9uX29uRXZhbCwgbmV4dFRlc3QpKTsKIH0KIAogZnVuY3Rpb24gZXh0ZW5zaW9u
X3Rlc3RFdmFsQ29uc29sZUFQSShuZXh0VGVzdCkKIHsKLSAgICB3ZWJJbnNwZWN0b3IuaW5zcGVj
dGVkV2luZG93LmV2YWx1YXRlKCJ0eXBlb2YgaW5zcGVjdCIsIGNhbGxiYWNrQW5kTmV4dFRlc3Qo
ZXh0ZW5zaW9uX29uRXZhbHVhdGUsIG5leHRUZXN0KSk7CisgICAgd2ViSW5zcGVjdG9yLmluc3Bl
Y3RlZFdpbmRvdy5ldmFsKCJ0eXBlb2YgaW5zcGVjdCIsIGNhbGxiYWNrQW5kTmV4dFRlc3QoZXh0
ZW5zaW9uX29uRXZhbCwgbmV4dFRlc3QpKTsKIH0KIAotZnVuY3Rpb24gZXh0ZW5zaW9uX29uRXZh
bHVhdGUocmVzdWx0KQorZnVuY3Rpb24gZXh0ZW5zaW9uX29uRXZhbCh2YWx1ZSwgaXNFeGNlcHRp
b24pCiB7Ci0gICAgb3V0cHV0KCJFdmFsdWF0ZTogIiArIEpTT04uc3RyaW5naWZ5KHJlc3VsdC52
YWx1ZSkgKyAiIChleGNlcHRpb246ICIgKyByZXN1bHQuaXNFeGNlcHRpb24gKyAiKSIpOworICAg
IG91dHB1dCgiRXZhbHVhdGU6ICIgKyBKU09OLnN0cmluZ2lmeSh2YWx1ZSkgKyAiIChleGNlcHRp
b246ICIgKyBpc0V4Y2VwdGlvbiArICIpIik7CiB9CiAKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMtZXZlbnRzLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zLWV2ZW50cy1leHBlY3RlZC50eHQKaW5kZXgg
Y2ExNDNhOC4uMjliZTAzYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVu
c2lvbnMtZXZlbnRzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0
ZW5zaW9ucy1ldmVudHMtZXhwZWN0ZWQudHh0CkBAIC0xLDIzICsxLDE1IEBACiBDT05TT0xFIE1F
U1NBR0U6IGxpbmUgNjY5OiBbb2JqZWN0IEhUTUxQYXJhZ3JhcGhFbGVtZW50XQogVGVzdHMgV2Vi
SW5zcGVjdG9yIGV4dGVuc2lvbiBBUEkKIAotUGFnZSByZWxvYWRlZC4KIFN0YXJ0ZWQgZXh0ZW5z
aW9uLgogUnVubmluZyB0ZXN0cy4uLgogUlVOTklORyBURVNUOiBleHRlbnNpb25fdGVzdE9uUmVz
b3VyY2VGaW5pc2hlZAotR290IGNhbGxiYWNrLCBhcmd1bWVudHMgZHVtcCBmb2xsb3dzOgotewot
ICAgIDAgOiB7Ci0gICAgICAgIGlkIDogPG51bWJlcj4KLSAgICAgICAgdHlwZSA6ICJvdGhlciIK
LSAgICAgICAgaGFyIDogPG9iamVjdD4KLSAgICB9Ci19CitvbkZpbmlzaGVkIGZpcmVkCiBSVU5O
SU5HIFRFU1Q6IGV4dGVuc2lvbl90ZXN0T25TZWxlY3Rpb25DaGFuZ2VkCi1Hb3QgY2FsbGJhY2ss
IGFyZ3VtZW50cyBkdW1wIGZvbGxvd3M6Ci17Ci0gICAgMCA6ICJET01Ob2RlIgotICAgIDEgOiB1
bmRlZmluZWQKLX0KK29uU2VsZWN0aW9uQ2hhbmdlZCBmaXJlZAorUlVOTklORyBURVNUOiBleHRl
bnNpb25fdGVzdFBhZ2VMb2FkRXZlbnRzCitvbkRPTUNvbnRlbnRMb2FkZWQgZmlyZWQ6IG51bWJl
cgorb25Mb2FkZWQgZmlyZWQ6IG51bWJlcgorUGFnZSByZWxvYWRlZC4KIEFsbCB0ZXN0cyBkb25l
LgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy1ldmVudHMu
aHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zLWV2ZW50cy5odG1sCmluZGV4
IDk5ZmU1MzQuLjNkNjE3MDEgMTAwNzU1Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRl
bnNpb25zLWV2ZW50cy5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25z
LWV2ZW50cy5odG1sCkBAIC00LDI2ICs0LDQ2IEBACiA8c2NyaXB0IHNyYz0iZXh0ZW5zaW9ucy10
ZXN0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KIAotZnVu
Y3Rpb24gZXh0ZW5zaW9uX2NhbGxiYWNrKG5vbmRldGVybWVuaXN0aWNQcm9wcykKLXsKLSAgICBv
dXRwdXQoIkdvdCBjYWxsYmFjaywgYXJndW1lbnRzIGR1bXAgZm9sbG93czoiKTsKLSAgICBkdW1w
T2JqZWN0KEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywgMSksIG5vbmRldGVy
bWVuaXN0aWNQcm9wcyk7Ci19CiAKIGZ1bmN0aW9uIGV4dGVuc2lvbl90ZXN0T25TZWxlY3Rpb25D
aGFuZ2VkKG5leHRUZXN0KQogewotICAgIHdlYkluc3BlY3Rvci5wYW5lbHMuZWxlbWVudHMub25T
ZWxlY3Rpb25DaGFuZ2VkLmFkZExpc3RlbmVyKGNhbGxiYWNrQW5kTmV4dFRlc3QoYmluZChleHRl
bnNpb25fY2FsbGJhY2ssIG51bGwsIG51bGwpLCBuZXh0VGVzdCkpOwotICAgIHdlYkluc3BlY3Rv
ci5pbnNwZWN0ZWRXaW5kb3cuZXZhbHVhdGUoImluc3BlY3QoZG9jdW1lbnQuYm9keS5jaGlsZHJl
blswXSkiKTsKKyAgICBmdW5jdGlvbiBvblNlbGVjdGlvbkNoYW5nZWQoKQorICAgIHsKKyAgICAg
ICAgd2ViSW5zcGVjdG9yLnBhbmVscy5lbGVtZW50cy5vblNlbGVjdGlvbkNoYW5nZWQucmVtb3Zl
TGlzdGVuZXIob25TZWxlY3Rpb25DaGFuZ2VkKTsKKyAgICAgICAgb3V0cHV0KCJvblNlbGVjdGlv
bkNoYW5nZWQgZmlyZWQiKTsKKyAgICAgICAgbmV4dFRlc3QoKTsKKyAgICB9CisgICAgd2ViSW5z
cGVjdG9yLnBhbmVscy5lbGVtZW50cy5vblNlbGVjdGlvbkNoYW5nZWQuYWRkTGlzdGVuZXIob25T
ZWxlY3Rpb25DaGFuZ2VkKTsKKyAgICB3ZWJJbnNwZWN0b3IuaW5zcGVjdGVkV2luZG93LmV2YWwo
Imluc3BlY3QoZG9jdW1lbnQuYm9keS5jaGlsZHJlblswXSkiKTsKIH0KIAogZnVuY3Rpb24gZXh0
ZW5zaW9uX3Rlc3RPblJlc291cmNlRmluaXNoZWQobmV4dFRlc3QpCiB7Ci0gICAgdmFyIG5vbmRl
dGVybWVuaXN0aWNQcm9wcyA9IHsKLSAgICAgICAgaGFyOiAxLAotICAgICAgICBpZDogMQotICAg
IH07Ci0gICAgd2ViSW5zcGVjdG9yLnJlc291cmNlcy5vbkZpbmlzaGVkLmFkZExpc3RlbmVyKGNh
bGxiYWNrQW5kTmV4dFRlc3QoYmluZChleHRlbnNpb25fY2FsbGJhY2ssIG51bGwsIG5vbmRldGVy
bWVuaXN0aWNQcm9wcyksIG5leHRUZXN0KSk7Ci0gICAgd2ViSW5zcGVjdG9yLmluc3BlY3RlZFdp
bmRvdy5ldmFsdWF0ZSgidmFyIHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOyB4aHIub3Blbign
R0VUJywgJyIgKyBsb2NhdGlvbi5ocmVmICsgIicsIGZhbHNlKTsgeGhyLnNlbmQobnVsbCk7Iik7
CisgICAgZnVuY3Rpb24gb25GaW5pc2hlZCgpCisgICAgeworICAgICAgICB3ZWJJbnNwZWN0b3Iu
cmVzb3VyY2VzLm9uRmluaXNoZWQucmVtb3ZlTGlzdGVuZXIob25GaW5pc2hlZCk7CisgICAgICAg
IG91dHB1dCgib25GaW5pc2hlZCBmaXJlZCIpOworICAgICAgICBuZXh0VGVzdCgpOworICAgIH0K
KyAgICB3ZWJJbnNwZWN0b3IucmVzb3VyY2VzLm9uRmluaXNoZWQuYWRkTGlzdGVuZXIob25GaW5p
c2hlZCk7CisgICAgd2ViSW5zcGVjdG9yLmluc3BlY3RlZFdpbmRvdy5ldmFsKCJ2YXIgeGhyID0g
bmV3IFhNTEh0dHBSZXF1ZXN0KCk7IHhoci5vcGVuKCdHRVQnLCAnIiArIGxvY2F0aW9uLmhyZWYg
KyAiJywgZmFsc2UpOyB4aHIuc2VuZChudWxsKTsiKTsKK30KKworZnVuY3Rpb24gZXh0ZW5zaW9u
X3Rlc3RQYWdlTG9hZEV2ZW50cyhuZXh0VGVzdCkKK3sKKyAgICB2YXIgY2FsbGJhY2tDb3VudCA9
IDA7CisgICAgd2ViSW5zcGVjdG9yLmluc3BlY3RlZFdpbmRvdy5vbkRPTUNvbnRlbnRMb2FkZWQu
YWRkTGlzdGVuZXIoZnVuY3Rpb24odGltZSkgeworICAgICAgICBvdXRwdXQoIm9uRE9NQ29udGVu
dExvYWRlZCBmaXJlZDogIiArIHR5cGVvZiB0aW1lKTsKKyAgICB9KTsKKyAgICB3ZWJJbnNwZWN0
b3IuaW5zcGVjdGVkV2luZG93Lm9uTG9hZGVkLmFkZExpc3RlbmVyKGZ1bmN0aW9uKHRpbWUpIHsK
KyAgICAgICAgb3V0cHV0KCJvbkxvYWRlZCBmaXJlZDogIiArIHR5cGVvZiB0aW1lKTsKKyAgICAg
ICAgaWYgKCsrY2FsbGJhY2tDb3VudCA+IDEpCisgICAgICAgICAgICBuZXh0VGVzdCgpOworICAg
IH0pOworICAgIGRpc3BhdGNoT25Gcm9udGVuZCh7IGNvbW1hbmQ6ICJyZWxvYWQiIH0sIGZ1bmN0
aW9uKCkgeworICAgICAgICBpZiAoKytjYWxsYmFja0NvdW50ID4gMSkKKyAgICAgICAgICAgIG5l
eHRUZXN0KCk7CisgICAgfSk7CiB9CiAKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2V4dGVuc2lvbnMtZXhwZWN0ZWQudHh0CmluZGV4IDg3YmI5MjguLjAzM2Q2OWMgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy1leHBlY3RlZC50eHQKQEAgLTEsMTgg
KzEsMTEgQEAKIFRlc3RzIFdlYkluc3BlY3RvciBleHRlbnNpb24gQVBJCiAKLVBhZ2UgcmVsb2Fk
ZWQuCiBTdGFydGVkIGV4dGVuc2lvbi4KIFJ1bm5pbmcgdGVzdHMuLi4KIFJVTk5JTkcgVEVTVDog
ZXh0ZW5zaW9uX3Rlc3RDcmVhdGVQYW5lbAogZG9uZSBjcmVhdGVQYW5lbAogUGFuZWwgY3JlYXRl
ZAogewotICAgIG9uU2VsZWN0aW9uQ2hhbmdlZCA6IHsKLSAgICAgICAgYWRkTGlzdGVuZXIgOiA8
ZnVuY3Rpb24+Ci0gICAgICAgIHJlbW92ZUxpc3RlbmVyIDogPGZ1bmN0aW9uPgotICAgIH0KLSAg
ICBjcmVhdGVTaWRlYmFyUGFuZSA6IDxmdW5jdGlvbj4KLSAgICBjcmVhdGVXYXRjaEV4cHJlc3Np
b25TaWRlYmFyUGFuZSA6IDxmdW5jdGlvbj4KICAgICBvblNlYXJjaCA6IHsKICAgICAgICAgYWRk
TGlzdGVuZXIgOiA8ZnVuY3Rpb24+CiAgICAgICAgIHJlbW92ZUxpc3RlbmVyIDogPGZ1bmN0aW9u
PgpAQCAtMjIsMTAgKzE1LDkgQEAgUlVOTklORyBURVNUOiBleHRlbnNpb25fdGVzdENyZWF0ZVNp
ZGViYXIKIFNpZGViYXIgY3JlYXRlZAogewogICAgIHNldEhlaWdodCA6IDxmdW5jdGlvbj4KLSAg
ICBzZXRFeHBhbmRlZCA6IDxmdW5jdGlvbj4KIH0KIFJVTk5JTkcgVEVTVDogZXh0ZW5zaW9uX3Rl
c3RFeHRlbnNpb25XYXRjaFNpZGViYXJFeHByZXNzaW9uCi1TaWRlYmFyIGNvbnRlbnQ6IHRpdGxl
ZjA6ICJleHByZXNzaW9uImYxOiB1bmRlZmluZWRmMjogbnVsbGYzOiBPYmplY3RmNDogQXJyYXlb
MF1mNTogQXJyYXlbM11mNjogT2JqZWN0Zjc6IDQyZjg6IExvY2F0aW9uZjk6IEhUTUxDb2xsZWN0
aW9uWzI2XWYxMDogZnVuY3Rpb24gKCkge31fX3Byb3RvX186IE9iamVjdAorU2lkZWJhciBjb250
ZW50OiB0aXRsZWYwOiAiZXhwcmVzc2lvbiJmMTogdW5kZWZpbmVkZjI6IG51bGxmMzogT2JqZWN0
ZjQ6IEFycmF5WzBdZjU6IEFycmF5WzNdZjY6IE9iamVjdGY3OiA0MmY4OiBMb2NhdGlvbmY5OiBI
VE1MQ29sbGVjdGlvblsxOF1mMTA6IGZ1bmN0aW9uICgpIHt9X19wcm90b19fOiBPYmplY3QKIFJV
Tk5JTkcgVEVTVDogZXh0ZW5zaW9uX3Rlc3RFeHRlbnNpb25XYXRjaFNpZGViYXJPYmplY3QKIFdh
dGNoIHNpZGViYXIgY3JlYXRlZCwgY2FsbGJhY2sgYXJndW1lbnRzIGR1bXAgZm9sbG93czoKIHsK
QEAgLTM3LDcgKzI5LDYgQEAgV2F0Y2ggc2lkZWJhciBjcmVhdGVkLCBjYWxsYmFjayBhcmd1bWVu
dHMgZHVtcCBmb2xsb3dzOgogICAgICAgICBzZXRFeHByZXNzaW9uIDogPGZ1bmN0aW9uPgogICAg
ICAgICBzZXRPYmplY3QgOiA8ZnVuY3Rpb24+CiAgICAgICAgIHNldEhlaWdodCA6IDxmdW5jdGlv
bj4KLSAgICAgICAgc2V0RXhwYW5kZWQgOiA8ZnVuY3Rpb24+CiAgICAgfQogfQogU2lkZWJhciBj
b250ZW50OiBmMDogIm9iamVjdCJmMTogdW5kZWZpbmVkZjI6IG51bGxmMzogeyB9ZjQ6IFswXWY1
OiBbM11mNjogey4uLn1mNzogNDIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9l
eHRlbnNpb25zLXJlc291cmNlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
ZXh0ZW5zaW9ucy1yZXNvdXJjZXMtZXhwZWN0ZWQudHh0CmluZGV4IGU5YjQ3YWYuLmIxZTNiOWEg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zLXJlc291cmNlcy1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMtcmVzb3Vy
Y2VzLWV4cGVjdGVkLnR4dApAQCAtNCw1MCArNCwyNiBAQCBUZXN0cyBXZWJJbnNwZWN0b3IgZXh0
ZW5zaW9uIEFQSQogUGFnZSByZWxvYWRlZC4KIFN0YXJ0ZWQgZXh0ZW5zaW9uLgogUnVubmluZyB0
ZXN0cy4uLgotUlVOTklORyBURVNUOiBleHRlbnNpb25fdGVzdEdldEFsbFJlc291cmNlcwotcmVz
b3VyY2U6IC4uLi90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QyLmpzLCB0eXBlOiBzY3Jp
cHQKLXJlc291cmNlOiAuLi4vTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMtcmVzb3Vy
Y2VzLmh0bWwsIHR5cGU6IGRvY3VtZW50Ci1yZXNvdXJjZTogLi4uL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9leHRlbnNpb25zLXJlc291cmNlcy5odG1sLCB0eXBlOiB4aHIKLXJlc291cmNlOiAuLi4v
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMtdGVzdC5qcywgdHlwZTogc2NyaXB0Ci1y
ZXNvdXJjZTogLi4uL2luc3BlY3Rvci9yZXNvdXJjZXMvYWJlLnBuZywgdHlwZTogaW1hZ2UKLXJl
c291cmNlOiAuLi4vaW5zcGVjdG9yL3Jlc291cmNlcy9BaGVtLnR0ZiwgdHlwZTogZm9udAotcmVz
b3VyY2U6IC4uLi9pbnNwZWN0b3IvcmVzb3VyY2VzL2F1ZGl0cy1zdHlsZTEuY3NzLCB0eXBlOiBz
dHlsZXNoZWV0Ci1yZXNvdXJjZTogLi4uL2luc3BlY3Rvci9yZXNvdXJjZXMvbWlzc2luZy1pbWFn
ZS5wbmcsIHR5cGU6IG90aGVyCi1SVU5OSU5HIFRFU1Q6IGV4dGVuc2lvbl90ZXN0R2V0SW52YWxp
ZFJlc291cmNlCi1BdHRlbXB0ZWQgdG8gcmV0cmlldmUgaW52YWxpZCByZXNvdXJjZTogeyJjb2Rl
IjoiRV9OT1RGT1VORCIsImRlc2NyaXB0aW9uIjoiT2JqZWN0IG5vdCBmb3VuZDogJXMiLCJkZXRh
aWxzIjpbMjEyODUwNl0sImlzRXJyb3IiOnRydWV9Ci1SVU5OSU5HIFRFU1Q6IGV4dGVuc2lvbl90
ZXN0R2V0UGFnZVRpbWluZ3MKLUdvdCBjYWxsYmFjayBmcm9tIGdldFBhZ2VUaW1pbmdzLCBwYWdl
VGltaW5ncyBkdW1wIGZvbGxvd3MKLXsKLSAgICBvbkNvbnRlbnRMb2FkIDogPG51bWJlcj4KLSAg
ICBvbkxvYWQgOiA8bnVtYmVyPgotfQorUlVOTklORyBURVNUOiBleHRlbnNpb25fdGVzdEdldEhB
UgorcmVzb3VyY2U6IC4uLi90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QyLmpzCityZXNv
dXJjZTogLi4uL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zLXJlc291cmNlcy5odG1s
CityZXNvdXJjZTogLi4uL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zLXJlc291cmNl
cy5odG1sCityZXNvdXJjZTogLi4uL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zLXRl
c3QuanMKK3Jlc291cmNlOiAuLi4vaW5zcGVjdG9yL3Jlc291cmNlcy9hYmUucG5nCityZXNvdXJj
ZTogLi4uL2luc3BlY3Rvci9yZXNvdXJjZXMvQWhlbS50dGYKK3Jlc291cmNlOiAuLi4vaW5zcGVj
dG9yL3Jlc291cmNlcy9hdWRpdHMtc3R5bGUxLmNzcworcmVzb3VyY2U6IC4uLi9pbnNwZWN0b3Iv
cmVzb3VyY2VzL21pc3NpbmctaW1hZ2UucG5nCiBSVU5OSU5HIFRFU1Q6IGV4dGVuc2lvbl90ZXN0
R2V0UmVzb3VyY2VDb250ZW50CiB7Ci0gICAgMCA6IHsKLSAgICAgICAgY29kZSA6ICJFX05PVEZP
VU5EIgotICAgICAgICBkZXNjcmlwdGlvbiA6ICJPYmplY3Qgbm90IGZvdW5kOiAlcyIKLSAgICAg
ICAgZGV0YWlscyA6IHsKLSAgICAgICAgICAgIDAgOiAyMTI2NTA2Ci0gICAgICAgIH0KLSAgICAg
ICAgaXNFcnJvciA6IHRydWUKLSAgICB9Ci0gICAgMSA6IHsKLSAgICAgICAgaWQgOiA8bnVtYmVy
PgotICAgICAgICBlbmNvZGluZyA6ICIiCi0gICAgICAgIGNvbnRlbnQgOiAiLnNvbWUtc3R5bGUg
eworICAgIDAgOiAiLnNvbWUtc3R5bGUgewogICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7CiB9
IgotICAgIH0KLSAgICAyIDogewotICAgICAgICBpZCA6IDxudW1iZXI+Ci0gICAgICAgIGVuY29k
aW5nIDogImJhc2U2NCIKLSAgICAgICAgY29udGVudCA6ICJpVkJPUncwS0dnb0FBQUFOU1VoRVVn
QUFBRXdBQUFCbkNBSUFBQUFsbmpPSkFBQUFDWEJJV1hNQUFBc1RBQUFMRXdFQW1wd1lBQUFnQUVs
RVFWUjRuRzE4YVd3YzUzbi96T3pNN016c2ZTOTNlUitpZUlpa3BFaFJTTW1XTGNlS2JUbEhIY1d1
RXp2Tmw3UW9naDZmaWdKRmdhSm8rNmtGQ2pSQWc3Yi93a2xRRjAxaHVHa1ZxWElkeWJVczZxWWtr
dUlsTHNWZGNzbmwzdmZzN0J6L0R6L082NUhjK1VBczk1aDUzL2U1ZnMvdmVkNlh2bkxsaWlBSWtp
U3hMR3NZaHFxcW1xWVpoaUZKRXNNd0RNUFFORTFSRkUzVCtGZlROSTdqTkUxck5wc013emdjRGsz
VGFyV2FMTXMybTQybTZYYTczVzYzZFYybmFacW1hVVZST0k0ekRFT1daVlZWYlRZYnd6QzZycXVx
Nm5RNk9ZNXJOcHVxcWdxQ0lJb2l3ekEybTgxbXMyRWt1SW11NisxMnU5VnFzU3pMOHp6SGNiZ0po
dFJzTnZIQ1pya3dERjNYRGNQUWRaMWxXWlpoR0lxaURNUFFOQTB6cENpSzR6aE1EeC9oVFlxaVdK
YkZnMjAybXlpS2dpQlVLcFZTcWVUeGVEUk5veWpLYnJjekRGT3YxOXZ0TnNNd2Ryc2Q3MHVTUkZH
VXBtazBUYk1zMjJnMDJ1MjJvaWcybTgzbGNnbUNZQmlHb2lpR1lkQTBiYlBac0RUNGlhN3J1QzBt
UUZFVW1UOUdSWnNYbVR4a2hubXllSmRNbXFJb1NNeG1zK0gzK0lqSXM5MXUyMncyUVJBd2lIYTdM
UWpDd01CQXRWcHROQnFxcWpJTVl4Z0dGcHZuZWNpRXBtbXNXcXZWd3FkdXR4c3l4RGV4OEhnY0dR
T2VxS3FxWVJqNE9kRXNpQVFESTlNakk4Yzdobm50VHhjTGc1dXlMQXVGd2IzSUpIRWp2OTlmcjlj
cGlvSjJsY3RsV1pZWmhuRTZuVHpQTnhxTmVyMnVxaXB1Z2w5QldhQ2xQTTlqbVhtZTUza2V6MVZW
VlZFVXU5M3VjcmxxdFpyMXQwUnVXRHZLdk1nRWlPaUl4aEt6SXBySWtnOHdkWElYVlZYSjdhd3Fr
YzFtWTdHWUpFazdPenVKUktMUmFEaWRUcmZibmNsa2ZENmZJQWlRbTkxdTEzVzlWcXN4RENNSUFz
dXlXSGlvQUVWUmlxSm9tc1l3REd5TW9pajhGVVVSaXdLUkV0VWxPZ1U1NHlOaStXUnU1SUtON0lz
TkMwQXNEWmRWeTU5NTdmVjZEY080ZWZQbWUrKzk5ei8vOHorR1lZVERZWjduUjBaR1JrWkdob2FH
NEU0d2RMdmREajlFVVJUeEdVUU9lQlpVbDZJb1daWmJyWllrU1JBalJra0VpTCtZRmZHSUVCY1JJ
OTc4NHJCWnVBZWU1NjJXK293ZDR3Y1ltY2ZqK2NVdmZ2SDNmLy8zZCsvZWRUZ2NzVmlzMld4bU1w
bk56YzIxdGJYUjBkRm9OTXJ6dkNBSW9WQW9IQTdMc3B6TDVRekRpRWFqRG9lalZDb1ZpMFZkMTkx
dU41UkZrcVJRS0JRTUJpRXVLRFArNGwvTUJJcUFzV0ZXK0JjclFnUklabWhWZUZhV1pXZ1grU1dt
QkYyQ1loQzkxWFY5WjJkbmRuWjJhV25KNC9INC9mNjl2VDFabGdPQkFNZHhlM3Q3cXFxdXI2L1hh
clYydXowNE9IajQ4T0d0cmEzRnhVVlpsZzhjT09CeXVWWlhWemMyTm5SZGowYWpvaWp5UEMrS1lp
d1dHeDBkSFJnWThIcTlmcjhmTTdRS0JNcUZBZENXQzZ0Zy9aZGNWbHVsUC9yb0l5eTgzVzZIT2tI
dU5wdXQzVzVybW9aLzhUT080NHJGNHV1dnY2NG9TcjFlOS9sOEhNZUZ3MkdmenlmTGNuZDM5K0Rn
b01maktaZkxpVVFpa1VqazgvbmUzbDVZWUxGWXpHYXo1WElaSGxXVzVYZzhQalUxTlR3OHpEQk1Q
cCtuYWRydjkvTThINC9IM1c2M0tJcnhlRHdhalhJY3ArdTZMTXVWU3NYbGN1bTZYcTFXb2RYUUJT
SU1DQloyUVF4NFA0UVFyME9jT0pRRVZ2R01pVzV2YjFlclZWM1hGVVZwTkJwWWRWVlZoNGFHc3Rs
c0twWHllcjA5UFQzOS9mM2QzZDNWYW5WemMzTnZieStWU3VWeU9SaW5ydXU0ZWJsY3ptUXlUcWRU
MS9Wa01wbkw1WFJkRndUQlpyUFY2L1ZtcytuMWVzZkd4czZjT2ZQODg4K0xvdWgydTNWZDV6ak83
L2RqQW9xaVFQdXNVeUllRkZQYlJ3SzBKZkxBQVBBOXErcHpISWZWeW1henhHc3BpZ0svVWk2WEh6
MTZKRWtTeDNGNDArbDA5dmIyZG5aMlFyQzZycmRhTGNSWXNvNkZRbUZoWVdGM2Q5ZG1zeFdMUlFp
WjUzbTczVzYzMjFtVzNkcmFTaVFTOC9QenM3T3ozLzN1ZHc4ZVBOaHF0ZkRvU3FVaUNBS1JrRFVR
WUJFaFZmaFUxckJjVmdEUmJyZGhxTVNoSWFCbHMxbThDZDFHckcrMzJ3UWhZVjFLcGRMaTR1TGEy
dHJrNUdTOVhvY2NLcFVLNW1tMzJ5bUthalFhK1h5K1VDZ2c1RElNSTRvaVFCekRNQTZIUXhURmJE
YWJTQ1RxOWZxaFE0Y09IanlJUnp1ZFRrM1RYQzRYNEFTeFE2dXpoTlpBY3ArREFTdXNzWVlnTWtu
ZzFmWDE5V2F6Mlc2M2VaNG44VkJSRk5nTVlBRG1nSDhybFFyMEJUTEhHdU51VUEzNEdFZ0FrbFFV
cFZLcDVQTjVqOGVER05ob05CS0pCT0F4VkJTQnFsZ3M0bGxFT2EyS1NadTRsN1hhMnpPT2kzd2Jy
MlZaTGhhTEd4c2JCRHJqcWJpUkxNdE9wNVBnZFNBWXQ5dGRLQlRJU2tQNFdCVGdac3dUWUpDb0dj
d1NDMGRSVkx2ZHJ0VnF4V0tSb3FpT2pvNTZ2ZDVxdGVyMU9zSWVGSWMyTVRvSkIwQ2R1Q2RyeFFw
V1Iwd3NrOERhWnJPWnorZVR5U1JOMDVJa1NaSlVxOVhnZmdWQkNJZkQwQWlHWWR4dU4vS0dTcVhp
OFhoZ3BiUUpYOXZ0TmxBUkFoWGNHOC96VVA1V3F3VTVRK3dZcnRQcDNOblpXVmhZaUVRaWdpREFj
Q2lLaWthamxVcUZ3RjNFUm93V2Q4UGtuNEoxVmdzbVlzUWs4ZmhxdGJxMXRkVnV0OTF1dDl2dGhz
cEpraVNLSW9UWmFyVmtXU2JRbWVmNWFyVktWQWpvL0JtOEJ1TmhHQVpBRCtDV1lSZ0FRTnlOb3Fp
Yk4yLys1Q2MvZWZMa3llVGs1T2pvcU0vbkt4UUs5WHFkUkF2YzhJdmhnQUoycFUxQWg5a1RjQ2NJ
UXJQWmhFcGtNaG1QeDFNcWxUaU84M2c4clZacmIyOFBvYlhaYkJZS0JTSWlFb2cxVFZOVmxlTTR1
RVJKa21DV0hvK251N3Y3MUtsVEhvL0hicmRuTXBtSER4OHVMeTlEc1JHZm9iR3lMUE04NzNLNTRJ
YzJOalorL09NZmQzZDMvOG1mL01taFE0ZmNibmU5WGlmNmlWbGdnYUNySkp5d0JCblFUK005aG1H
cTFTckJWajZmcjlsc3JxeXMxR28xQWswTncyZzBHbzFHQTZPeG9tY1NEQW5DYWphYkZFVU5EZzUr
NjF2ZmV1MjExd0tCZ05QcFpGbTJYQzQvZWZMa3pwMDdGeTlldkhuekptTW1hTFZhelRBTWg4T2g2
M3FwVklLM3AyazZtVXgrOE1FSGtVaEVGRVdIdy9GTS9tQU4rNStEQVpMRldNRUFIR0M5WHZkNFBP
MTJHeTcrOGVQSDE2OWZSOEFrd29jL0ZBUUJWb2VJMG1xMWNGdWd0bmE3N2ZmN2p4MDdkdWJNbWFt
cHFXQXdpUEFGNndvR2c3RlliSHg4ZkhCd2NIeDgvRmUvK2xXdFZxTW95dXYxMXV2MXZiMDlTWks2
dXJvcWxRcHVXNjFXTDF5NDhPYWJiNGJEWWJneDZ5Uy82RGdwaW1LeDJBUWxrSVVoNndHM3ViVzE5
ZkhISHk4dExUbWRUaVM0UkU4UTkxcXRGdWFQcDlydDltQXc2UGY3anh3NU1qbzZPalUxRlkxR1lm
eGdPb0FOY0N1SHcrSDMrNy82MWE5T1RVMk5qWTFkdkhqeDAwOC9iYlZheUU1VVZTMlZTZzZIUTFW
VkdHRW1rMG1uMDdGWURBKzFZaDJNMlRwSm1xWlo0dDhKSk1CWFZWVVZSUkVxMTI2Mzc5NjllL1hx
VlF3TG5sMlNKT2dQYnRUVDArUDFlajBlRDVUVDQvSDA5ZlYxZFhXOTl0cHJaQVU1am1OWlZwYmxV
cWtVQ0FRTXd5Q2NDSExscnE2dUgvemdCNGNQSDM3Ly9mY3ZYYnBVTHBjRlFkQTByZFZxd1lCcnRS
clA4NjFXYTNaMmRueDhuQ0NRWjVTV01yTlRpR28vbjhSYkpJV0RFMmRaRmpSVXJWYTdmLy8rOXZZ
MkxBUmVudWQ1bjg4bmlxTFA1d3NFQXJGWUxCZ01SaUlSbDh2Rjg3emI3ZTdvNkFpSHc2VlNTUkFF
bnVmaGgzQmJuOCtIOEFPL3duRWNxQk9iemFacDJwZSs5Q1cvM3o4eU1uTDE2dFU3ZCs3SXN0elgx
NWZQNXdPQmdLSW9GRVVwaXZMWlo1OUI4aVJCc2M2VHNwQUpORTJ6UkltSkpQRTludWVoUzVJa2JX
eHNKQklKT0d2SU1CQUlEQThQZDNkM2U3M2VlRHplMWRYRmNad2tTVTZuVTVJa1VCdmdwaHdPQjVZ
UHRxcHBHc2hCeE5KOTJNV3kwQm84dlZ3dWk2TDQybXV2alk2Ty92TS8vL09WSzFkS3BSSkU3WEE0
NnZXNnJ1dVpUT2IyN2RzOVBUMCtuNDlNejdBd0cxWWFnU1VFanpWamh1VlVLaFc4eUdhemhVTEI2
WFNtMDJtZTUvMSsvOFRFeE1tVEo3dTd1eEVuZzhGZ0tCUUNFb0pIWVZsVzEvVkdvMkczMnhWRkFY
N0F4UEExd0YzRE1CQWVSVkcwMld5dFZrc1FCSWZEZ2ZqcDgvbUN3U0J5RklaaElHMVpsaUdsaHc4
ZlF1YTBtWEJhRGZLcGRBUnJqR2ZEcWJJc0MvMEJlYk83dTh0eFhDQVFxRlFxVHFlelhxOGZQbno0
bFZkZU9YTGtpTWZqY2JsYzhYZ2NZaWZUdzYzaFFrbmVvQ2dLd2RNa204UDZhcHFHM0FwZlEwQnl1
OTFlcjNkd2NMQy92OTh3REkvSGswd21YMzMxVlFnOG1VdytlZkprZm40K2s4azBHZzA4RkpRYVFq
ZHRJVFQybjBTMGxNaGRGRVVvbU4xdUQ0ZkRTR1RCNVJ3N2Rpd2FqYklzRzRsRUVBOWdWNFJsZ3hK
aTdheFlpb0JKNjBPdGwyRVlQTThERzBFTFJrZEhEeDgrM05IUkFRTmpHT2FkZDk1QllnbXhBOThE
RENQQWdvYUcvZU12UXlqelo5d3NJU0FFUVhDNzNXQXJHSVpCK2k5SmtpekxkcnRkRkVYRHpNZVJD
c0xrb0FVZWo0Y2dCK3NLR3BZMDF3cVNDY1dHck44d2pMNit2aE1uVG95T2pyYmI3ZjcrL21xMU9q
TXpNejA5SFl2RkVva0VRQklTUzhwayttRDJWdWkyUDhsbjFwV3NoOTF1eDdlRHdTQ1NQVW1TWUxT
QTdCUkZRVmRiVDE4a255WVNmb1pOc3pvNXE2aUJiNTFPcDkxdUIvL1UyZGs1T2pvYURBWnBtbDVl
WHE3VmFpTWpJOFBEdzVGSVpHVmxKWi9QSTFBVG5wSGdXSEx0SnpoazBzVEh3dldwcWdyNGV1REFn
WEE0VERJTUVNR05Sa1BUTkVtU21zMG1TWE53UStncVlCRDlCYXovVEV3akY4Rk0wRnNBR2ttU09q
czd6NTQ5dTc2K1BqOC9mK2ZPblVLaHdISGNxNisrMm1nMGxwZVhLNVVLWWcvS0xjQVAxbVZsaU1P
MVhsZ01XWmFyMWFxbWFSNlBaM2g0T0JnTUlxeGhBb2pnbFVxbDJXeFdLcFZHbzlGc05sdXRGb2FJ
REFPRkVIS1J4U1poMmpvOUtBaDBwMTZ2SS9kSGN1eDJ1OCtlUFh2bzBLRlNxWFR4NHNWQ29iQzd1
OXRzTm4wKzMvTHljaktaVkJRRklCRUIzSm82NjdyKzFEK2s0SU1McmgvOHYyRVlLR09CZlNrVUNp
Qjc0Qmp0ZG51bFVxbFVLdFZxdFZhclljS0tvaUIyazRzQUR5andNL01FQ0tITTBwQXN5NmdtSUl4
RklwSGYrcTNmNnVqb2VQejRNVmI1OHVYTDI5dmJHeHNiQ3dzTGUzdDdnaURBRkFsWC9qbDJ0VTZT
c29CWUNNVGhjRGlkemthanNiMjluVTZua1grNVhDNFFkdkY0SFA0TkdUTWNvSlg4aHo4a3NaZE1o
akxSbFZXU21LU2lLRDZmejJhendlQVpzNExTYXJWR1JrYjYrdnFheldheFdBd0dnNDhlUGRyYjJ6
dDgrUER5OHZMdzhIQTBHc1hTd0F0YTZhdDk0TVpZV0Vrays0cWl1TjN1YXJWcXM5bENvZERzN0N3
a3c3SnNNcG5NNS9PcXFucTkzb01IRDFJVUJTRWpncXVxNm5BNGtDc0hnMEdHWVNxVkNydzBTYVlo
cm1LeENKV0dTUVBXTmhvTlNFK1NwSFE2VFZFVUdNQnl1Znpnd1lOSGp4NXhISmRPcHdPQkFOaWRs
WlVWbG1XZFRtZEhSd2ZvUWl3V0tCVmNMQlllYjFGbW1BWTZKNWE1c3JKeS8vNzlUQ2FqNjNvNm5V
Ymt3SUxCUXlDMUkzVTdWVlZoV2dCb2tpUWhGMnMybXh6SE9Sd09lQlNQeDRNblF1YUtvcWlxR2d3
R204MG1ZbGcrbjkvWTJPanA2VGw2OUdpejJVd21rNlZTU2RkMVFCU1daWnZOWnIxZVgxcGFNZ3hq
Zkh6ODJMRmprVWhFbHVWQ29ZQlVjMStTRUIxaktSREFRU0dqcDJtNlZxdmR2WHYzeG8wYm1Vekc2
L1ZtczltQmdZR2hvU0dmejlmWjJRbEtHN1huVnF1RmVGaXRWajBlRDh1eTBHcFM5QlZGRVdsS3NW
aVVaUmw0QS9rcUZnV2hHTkVMQTVpYm04dG1zMGVQSGwxZVhwNmZud2RHNys3dWJyVmE0WEI0ZTN1
N1ZxdXBxcHJQNTR2Rm9xcXF3UDEydTkzS1hUMWxrekJXVEJ1Sk9jL3orWHgrWVdGaGMzTVRFYlha
YkNKOFlSQ1FQSDRpU1JJTVcxVlZmQmtFS1pUVDRYRElzcHhLcFJZV0ZoNCtmRmdxbGFhbnAwZEdS
a2pCcjFRcXdRdGd1V1ZaeGlPV2w1ZDNkbllrU1lKL0xoYUxvaWllUFh0MmFHaW9VcW44OUtjLzNk
N2VoaEVLZ2xBdWwxbVd4Vm9RajgyUytQWk1VRWFJVTFVMWxVcHRibTRDMzJtYXRyYTIxbXcyRnhZ
V29MUnV0enNRQ1BqOS9wNmVudkh4Y2FRdjhISlE3RXFsa3MxbXE5VnFzVmhjWEZ4OCtQQWh0QTQx
RWlTaVdFMjRSMW1XNGIxa1dVYU9CcitkeStWcXRacmI3UTZGUW9jUEh4NFlHTGgxNjlhZE8zZWdk
KzEydTFRcUFYVVIwRThneCtlU05MNVFXcVlvcWw2dmwwb2xWVlVCZEhSZHoyYXp4V0lSU1laaEdB
QjlraVNCbTNLNzNXQmZPanM3bDVlWG56eDU0bks1NXVibVZsWldjcmxjT3AwRzEreDBPamMyTmo3
ODhFTmtFaSsrK09MWTJCakhjZFZxRlhnZEJTK1B4d01HaEtLb2JEYXI2N3JYNnhWRjhkNjllN3U3
dTlldVhkdmUzdlo2dlVoV1pGbHVOcHZvNTBCdS9ibTZXcU16WXlsWmt5RG04WGg2ZW5vS2hVSXFs
VUw2ZzRRRHRKcWlLS2prb0NqZ2REcTd1N3ZENGZDNzc3NHJ5L0tISDM2WXkrVlNxWlNpS0JnM3lw
TFZhbFVVeGUzdGJZcWlvdEhvMXRaV1IwZEhNQmlFNnlMcHBTQUlyVllybDh2SnNwekpaRnd1MTdG
angrcjErdHpjbkNpS0w3LzhzaVJKVjY1Y0FjOENXZ3hCbThUaHo3MHJ3YXRXZVdxYUJtd2RpOFZx
dGRyVzFsWXFsZEoxSGVER1pyT0pva2hSRkR3RWJBbVU3Tzd1YmpRYS9aM2YrWjJ1cnE1VUtvVWc1
SFE2S1lxcTFXbzBUWVBJUklxenM3Tno0Y0tGWC8vNjF5ZFBubnpublhlbXA2ZlJEMExUZExGWWJM
VmFjTTdsY2htREdSb2FXbDVlaGd2OHhqZStBWko2ZTN1NzJXenlQQjhLaGNCM2tSVDg4emhKMHpT
b1I2U3pITWNSWmdWTGN1REFnVXdtOCtEQkE1N25RYy9CTVNMblJEK0V3K0hBcDVxbXpjek1nQlEr
Zi83OCsrKy9YeTZYRVFZMVRmTjZ2YVZTcWErdjcrREJnNElnb0dnbENNTE5temNGUVVBMUhpUWdT
cFEybTIxblo0ZW02WGE3UFRBd2tNMW1rOGxrTkJvTkJBS0lUTWVPSFd1MzIrRncrRXRmK2xLMVdr
V3N0Z3FNb2lqYm0yKyt5VmlxQ0FRV0Vjb1U0c3BtczQ4ZVBVSVJqakJBYnJjYlgvRDVmUGw4bmlR
Y2ZYMTl3V0RRNS9QRjQzRzRvbVF5V2EvWENXak81L095TEkrT2pvNlBqNE9WTHhhTFRxZno0TUdE
MFdnVWZvdW02VktwZE92V3JVUWlJWXBpYjIrdnBtbnBkQnIxN0Znc05qSXk0dmY3T3pvNmhvYUdS
a2RIQTRFQWJiTHlHQjZabCszTk45OGsySXBrZEVoRENmWURGYkt5c3JLN3UwdkVpRFFLeFN5S292
QW1nTTc1OCtkUG5qeloxZFdGZkJvVmRUakdiRGFMMmttOVhyOTM3OTdLeWdwTjArRndHUHJjYXJX
bXBxWWNEZ2VxWnRWcXRWQW9sTXZsQXdjT25EeDVzbGdzenMzTkljREN4MGFqVVZtV0k1R0lKRW43
bXNteVlOdWVza25LMG81RWNnVTRaYWdmNkJtLzN4K1B4OWZXMWdqamhreks2WFFpTDZsVUtzQ3I3
WFlibUFZUGlNVmlMNzMwVXIxZS8raWpqeWlLaXNWaWtVaGtmWDI5djcvLytQSGpwMDZkYXJmYitY
eGVFQVNvVExQWkJINUFTamsxTlZVb0ZIcDdleWNuSjFWVnZYbnpacVZTUWUwTXZnRGtvQ3pMS0xD
VFZCYVZSWXpCOXAzdmZFYzNhMllrRlVLMFFEWU0yRW5UTklJVndCcE4wNklvZ2xNQ2VvWWtXWmFO
eCtOdnZQRUdYR1dqMFVCVlkzaDRHRkFlWWJDN3U3dFdxK1Z5dVdBd2VQejQ4VU9IRG9WQ0lhL1gy
OS9mNzNRNlVRZ0Q5ZTV3T1BMNS9NREF3T0RnSU1Nd0N3c0w2K3ZydXE2UGpvNCs5OXh6U0d0Uk1n
S1pxSnZ0YUtUVmd3YTViTFZSSW1KSUhGb09ZUTRNREJ3OGVEQ1ZTb0diOG5xOWRydTlXcTIyV2ky
WHl3WDE3dW5wZWVXVlY3Nzg1Uzh6REZNc0ZnRkUrdnY3OC9rOE9QVVRKMDVVcTlYZDNkM1RwMDhm
T0hEZzZOR2pTT0xBcnlOc0lNT2lLTXB1dHlOYUJvTkJ1OTArTURBd01URngvLzU5dTkzZTFkWGw5
L3ZCSHVUeitYQTQzR3ExYXJXYTErc2xaVStTMzlqZWVPTU5vTEJuc2o0Z1FGSkxROUtFZU5EYjI0
dWhkSFoydXQxdXZFZ2tFbU5qWStmT25Ydnh4UmY5Zm4rcFZGSVVCWm9NS09OeXVUWTJOdGJXMXFM
UjZQZSs5NzJwcVNtLzMrL3orVUQ1WVRSZFhWMm90NU9zVFpibHpjM05lRHdPbnJKUUtPenM3SFIx
ZFgzdGExOGJHUmxCSStMMTY5ZEJLUm1HNFhhNzBhNWhaZEJ0My96bU4wbVYyNXJhb1ZTTWdHR1lU
WURGWWpFVUNyMzQ0b3VxcXE2dXJxSWF0N3E2V2lnVVhuNzU1ZWVlZTI1aVlnSnJHUTZIN1haN3NW
akVjalFhamE5ODVTczlQVDJxcW01dGJjM096Z0pZZ3pjQ2JBSzBBUE9QdWwyajBjaG1zeXNySzhG
ZzBPVnlHWVpSclZieitYeFBUOC8wOUxUZjcxZFY5ZU9QUC83YnYvMWJYZGRScDNDNVhPVnlHVjht
YzJFYmpRWkJyZnRtYXJNaGtBQUt3eXdsU1VKM1p6Z2NwaWpxekprekxNc3VMQ3djUEhqd2hSZGVj
RHFkTXpNejYrdnJHeHNiQnc0Y1FPQk9KcFBvN3dFbGtVcWxlbnQ3ejU0OSs4WWJiK1R6K2QzZFhU
aFZraEpBZ0tRSXJTaksrdnI2N3U3dXIzLzk2ME9IRG9HWWpVYWpmL2lIZndob0NreHkvLzc5VUNp
RUVJQVY5SHE5eUorSTByS0FBU1NFVUNiYlJjZ0l3K3hFWkZsV2txVGJ0MitMb2pnOFBEdzVPVGs0
T0lpMG1PTzQxZFhWWEM3M3dnc3ZrQjVDQUVCRlVicTZ1dGJYMXgwT1I2VlNnVlY3UEo1NFBJNTZF
UVlFSWtMWGRheExQcDlmWFYyOWV2WHFqUnMzUVBPVVNpV2Z6d2RmU3BrTXh1Ym1aakFZZlBubGw0
OGZQKzd4ZUlEcEVmRGdYZmNOa0hyNklsZ0JnZHV3OUwyd0xJdEYydG5aS1JhTGZyOC9Gb3NCSjBV
aWtjSEJ3WGE3aldLQllSaGdnQVJCNk96c3ZILy9QanErc0Zpam82TW9MWUlLSk05Q1hwL0paRlJW
VGFmVHE2dXIxNjlmMzl6Y0hCd2NyRmFyZHJ2ZDcvZTdYQzU4TXhBSW9CQStPRGg0NnRTcFE0Y093
UzVJYkdNc3BEWmpKZEZvcytjWFJCQkpGQ21UTVVDTDVQYjJkcVZTUVdLS0pNdmxjdjN5bDcvYzJk
bEJ5dzVRQzRJSDVGYXRWaTlkdWdTOHRyR3hnVENJWEJuRVBHcVBXMXRiNVhLNVVxbklzdHh1dDNk
MmRweE9aendlQjM1QWtvbThES3N2U2RMWTJGZzRIRVlVOFhxOURNT2dNWVRFRDRxaVRPRHpmL1dB
UUpJRUp4aG1jWHR6Y3hPdGNEelBSeUlSWGRjLy9QRERUei85OVBqeDR4MGRIYUlvb3ViUmJyZXoy
V3lwVk1JcTVQUDVuL3prSndBb3dJUHdNZERZY3JsY0xCYlgxdFlXRnhldlg3K3U2enBxekpGSVpH
QmdZSFIwbEhEcUxwZExGTVZHbzFHcjFWd3VWelFhUldvT2VJQXB3RjFUWnBLODMxaGtQRjNjTTB3
U0dxa25YaUNJalkyTi9leG5Qd05WSVFnQ1dJbkxseStQajQrSFFxRmtNdG5WMVlYNkxGRlhRSlp3
T1B6bmYvN25pVVRpci83cXIzdytIeXdaMmw2cjFWQ2lLUlFLcTZ1clhxKzN1N3Y3OGVQSDQrUGpJ
eU1qWHEvM3lwVXJ6ei8vUEVnRFFQOUNvYURyT2h3c1NpUE5ack5VS29GNXNsb2ZUZFA3QVAyTEYy
QTZUQkZvQmg0L0dBeGV2WHAxYVdrSm1lU2RPM2Z1M2J2WGJyY2JqY2JDd3NLREJ3OGcvRWFqZ1p3
QU9TR2F1SHA2ZWo3ODhNTkVJaEdMeFFnY0E2eUQ2NTZibTJOWmRuQndNQnFOWmpLWjhmSHg4Zkh4
Mjdkdi8vVmYvM1VvRkhJNm5kVnFkV05qSTUvUEk0RUczRUh1QmllSDFBOFJnY2lNTlo0bTdZbkdB
dXpDczVOYUZjTXdrVWprOU9uVC8vVmYvM1g1OG1Xd1ZaVkt4ZTEyKy8zKytmbDVpcUkrL3ZoanU5
M2UzOThQbUpyTlp0SGY4NmQvK3FmdnZQUE8rdnI2KysrL3Y3YTI5dFpiYjNWMmRsSVVKVWtTNkFL
MGZBOE9Eb3FpbUVxbFhuLzlkV1RuOSs3ZFV4VGx6LzdzejM3djkzNnZwNmNubjgrSFFxSFIwVkZK
a2tDTFFyYWt2TTlZeUVkSWtvV2lBMG1SWmdxYjJkd0RENFQrQTl5Q3B1blRwMDkvOE1FSFNDbjhm
ajlTcmNuSnlVYWpzYm01YWJQWnl1WHlyVnUza0ZYelBPOTBPdDk0NHcySHc4R3k3SGUvKzEyTzQz
Nys4NS8vM2QvOVhXOXY3OFRFeEsxYnR3WUdCbDU2NlNWQkVJNGVQZXB3T0ZDUWhISW1rMG5RSmJG
WXJORm8rSHkra1pFUlFSREErZ0d2d2pSMHkyWUVlQ1lTQlZuQ2N6Tm1RdzlsTmtVVGVJVUxWcVFv
U2pnY1BuTGt5T3pzTEpMYWNEZzhQajVPR3ZuUUpZYTZpTmZyUFhMa3lBc3Z2SEQ2OUdrUUgwZU9I
TkYxdlZxdC91ZC8vaWZETUYxZFhkLys5cmYvNGkvK1lubDUrUi8vOFI5RG9SQ2NPVUlMbG1sMGRM
U3JxeXNXaS9YMzkvZjA5TGpkYnF3NG5MOWhhU2FuTGRWQlluY1VSZG5lZXVzdEVqbklEQ0ZTQUJm
eUpzcVBJTFdLeGVLMWE5ZEVVUVNkMGQzZFBUQXdzTE96ZzlaT1JWSFFQUEhsTDMvNS9QbnpKMDZj
Nk83dXBzMXFERkR4aXkrK3VMYTJkdWZPbldQSGptVXltU2RQbmd3TkRRVUNBVGhlVVJUaGxuWjNk
NzFlNzRrVEo4Ykh4enM2T3VCYUVlaEo1ZVlabmhIenRNWUwyMi8rNW0rUzVJTVlxKzNwQzlZTSt4
WkZFUlh2eno3N0RML0NIcWE5dlQxZDF5T1JDSDVDVVZRNEhENS8vdnpSbzBkQm1lTExDR0xqNCtP
cXFrNU1URXhPVGw2NmRLbFlMSjQ3ZDI1a1pDU2J6WVpDSVlaaDBQaU42bUFrRWtFUXdoeVF0YUk2
U0t6dS81d2tlZk9wZlM0a0t0Sm1JeXZranE1dXFDNTJCUFQyOXA0NmRlcnUzYnMybTYxV3F5V1RT
WFFVcUtwYUxCYkQ0VER3NU5iV1ZqNmZoeHVzVnF0Z0pVRjJRRXJmL3ZhM0dZYjVmLy92LzRIZDdP
enN4Rk9Bem9QQklFaDZ4dXlCZ2gwU1FoUmxjMEp3VzZlZ1d6cTFXSUxkaUVMdkIxQ1diWnRiaTBq
bW91czZBSDAwR2gwZkg3OS8vejVGVVdoaThmbDhQcDh2bFVvMW04MXNObHVwVkRSTnkrVnlseTlm
UnRNTHpKVmhtTjNkM1VRaU1USXljdVRJRVVWUmhvZUgyKzEyUEI3MytYeDQzK2wwS29xU1NDUldW
bFpBNGNEQllIcFFZOHJDK2xzbFpGamFYY2pGa21hTno1RWV3OER4R0dhWENIUURyeHVOQm9obWxK
a0IwTkQ4ZnViTUdmUlU1L1A1dWJrNXQ5dmQwOU1UaVVTUUtNYmpjVTNUc3RuczB0TFN2WHYzRE1Q
NDFyZStGWXZGSGo5K3JPdDZKcE5KcFZMWTJLU3E2dTd1N3BNblQvYjI5amlPNit6c0pIVlZaQ2RF
UzBIRTBKWW1KTVBzM2JGT2VIODN3VE0rQ3FHR0JGTVNadUNmVVBaSkpwTVVSU0dyNWpqdThlUEg5
WHBkbHVYejU4K2ZPM2Z1M0xsenNWZ01aVHdzLytycTZ2ejh2TmZyZmZYVlY3LzJ0YThCTGRScU5U
U0JYcjE2bGVmNWwxOSsyVzYzNTNJNTlLN3dQTi9iMjRzOG1EU29JUWFDNE5ITWJRR1VoZnUzVG1k
L2tnaUdwRVJKZkE5dDdremI5OEttTVdCV0hvOG5GQW9waWlKSlVxUFI2T3JxNG5sK2VYbFpGTVdm
L3ZTblY2NWM2ZXZydzZjMm15MGVqMy95eVNkMnUvM2RkOS85eWxlK3NyZTNwMmxhUHA5UHBWS2hV
T2pLbFN0ZXJ6Y1lES2JUYVhCUXlXUlMwN1JVS3RYVDAwT3FsN0I1VkkyYXpTWXFpK2ludGJvZkRO
WHFkV2lhWnJXbjkwaDgvb0dweGtScGNhSERKaEFJN096c1JDS1JUQ2FqYVJyeWtsZ3NWcTFXczls
c3E5VjYvUGh4cFZLcDErdXhXQ3lmejA5TVRQem9SejhhSGg0dWw4dG9EMGtrRWx0YlcvZnYzMGMx
Q2UyaXlXUlNsbVZabGg4K2ZMaTV1WWtPSG83alVxa1UzQS9nSWFBdnRpRWdybUpzdXRsYVpqemR5
Y0phTVo3Vk1xM2l0aHE2Mys4dkZBb28xb01jUWZvVGlVVFFvREEyTmxZcWxRcUZ3dlBQUHgrUHg3
dTd1KzEyKzhURXhNaklTREtaZExsY3BWTHA1czJiVjY1Y0FmcHRObU9HMUZrQUFBOTRTVVJCVkp0
dXQ5dHV0OGZqOFZRcXRiaTRXS2xVcmwrLzN0L2ZQejQrRHNOQkVnUEt0MXF0dWx3dVRkUEFJY0ZF
NmFlN2VJMm4yNkJZa3UvUWxtMms1Sy8xSS93ZUUvdlhmLzNYZERwZHE5VjZlM3RCUm1DQkhRN0hL
Nis4MHRuWitlbW5uM1oyZHY3d2h6OUUvejhXWlgxOS9jR0RCLy83di84cml1TFMwaElBRFdBVGRL
ZFNxWHp5eVNlNDFjbVRKd2NHQnRDNDV2ZjdaMmRuWlZrK2ZQZ3d4M0VvalNERHRKcmwvM25STk0x
YUV4UHI5RWo4cEMzTjIvQ3VkcnQ5WldVRmJaR2hVQWpMakoyd0w3MzAwc0dEQjJ1MTJzVEVoQ2lL
YzNOeitYeCtlWG41eG8wYmlMM3o4L09QSGowNmMrWU1BcjNkYm9jQ2N4eTN0cmEydTd1N3Q3Zm45
WHEvL3ZXdno4ek1RSFE4ejJQTHhOTFNrcy9uaTBRaWFESURIL2xGQmJUaTAzM25RakpqcS9sUlp0
dkZNOHF0Nnpvc0h1MGVZRU82dXJwMFhkL2EydXJzN0N3V2kvLzkzLzhkaVVRTXc5amEyanA0OE9C
bm4zMEdySWZpNFlFREI0Zy9xOWZyV0RWTTQrN2R1NGdaS0hXZ3lrQlJGUEttWURENDNudnZPWjNP
MTE1N3JiT3pFMFI3cTlVaVREbVpyVldHeElPeXBFZUpzbXgxb1o2T3R1UmY4QlJUVTFPLy9PVXZR
VlZRRkZVdWwwT2hVTGxjM3QzZGpjZmpEeDgrTEJhTG1xYXRyNi9Mc2x5cjFYcDZlZ0tCUUwxZVQ2
ZlQyR21JOUkraUtGUXZLcFZLc1ZqTTVYSWRIUjNZYitad09Gd3VGellQWXdmZTl2YjJyMzcxSzFW
VlgzLzlkYi9mai96WUtrUGlIYTNEcHNpV0NUSXI2K3N2VGhLRUVNL3pwMDZkbXBpWWVQRGdnYVpw
aVVRQ1VNSHI5VzVzYkpSS0pacW1jN21jeitkaldUYWRUa3VTUkx4dU1CakUvaVJzTGdFaDBHNjNV
WElFTUo2ZW51N3A2Y0VjR0lZQjJlRndPQVJCV0ZsWlFjU2FucDUydTkyQ0lEUWFqV2Y4alc3dXV5
S1R0UDN1Ny82dWJyYlhNWmFPS2JJRndtWnV2c1h6SEE0SE9zSkRvVkNwVkZwZlgwYzdQSnArZ04z
aEdPeDJlejZmQnplQjFtTnNoRUpwRFVnTlRoTGxHanh1Ykd6czlPblRnNE9Ec1ZnTVhRNFlkekta
dkhUcGtxSW9wVklwbFVvaEUzUTZuYkJuaVBRWklYMHVTZmdZMHZwQmZBenBraU9LU2xFVUdvZlJu
bmY0OEdGWmxyZTN0NWVYbDJHOTROUVk4NUFCQkhGaTJOYS9GRVhoU0FIRGJJbkF0QU9CZ00vbmkw
YWowRWFTY0dEaFFLdUNBZnlYZi9tWCtmbjVyMzcxcXlkUG5vUnhBcW1qWFFOQm5reG5IOFZiSi9N
TUNId21iRUp6RUVoZWV1a2xsbVV2WHJ5NHRMUzBzYkZCV2RKelRkTlFxMFRVUWNIUDZzTVEvYUNy
U0pFOUhzL0F3QUIydnpxZFRzeWZNVTh0Mk52YmcvMUxrcVFveXU3dUxseng0dUppZjMvL29VT0hl
bnQ3MFk5ZXE5WHE5VHE0K1gyZ1prMnVpV1lUa280a3pjQkRVRjNVNnByTlprZEh4K3V2dno0NE9I
ano1czIvK1p1L3FWYXJzaXlqWVJGbFZzM2NjNjFibWtESkMraXFZUmhJdnVGMWdYTEF4S0xlU05N
MHgzRWJHeHZ3a2JWYVRSQUU3RGk2ZnYzNnZYdjM0dkg0ME5EUWdRTUhob2FHaG9hR3VycTZnc0Vn
NFFBQTRsbXJ3NFgvQk00QXBpVkJCWDRmYmdEN0pVcWxrdHZ0OXZsOG9GdHROcHZENFNnV2k4MW1F
NXZ2Q2F4bkxIMGw4T1NvQXNHWWNZWUMrc0JuWm1aQ29aQmhkbWFRTFdlcnE2dHV0OXZwZEdZeUdX
eWhKSVBjM3Q1T0pCS1hMbDJLUkNKVFUxUEhqaDNyNit1THhXSit2eCs5eUt4dTJhTm1qUzJVcGVu
RmVKb3lNY3lxTmVRMlB6Ly9zNS85ckZ3dWQzWjJUazlQUDNueUJPZ0U0ZUdMbWtLWlBlNk5SZ090
ZG1oSG5KeWMvUDczdngrTHhZalYyR3cybENqVDZUUWFYRkVMYUxmYmFHVnh1VnhvQ0Vla1RhZlQr
WHoreG8wYmdpQk1UMDhQRGc1T1RrNzI5L2V6SktXeXpvR3lrQ0J3UDhTSURjTUEyd2xiUjlYcDRz
V0xUcWZUNy9mUHpNdzRuYzVQUC8wVTByYkdYc29zWUlPYklidElBVjltWm1iZWZ2dnRreWRQZ2lJ
Q0x3RUwxSFY5Y1hFUmVSbCthTTJlc2JrR3ZBejhUYlBaYkRRYVAvLzV6OEdiUktOUnhzclQ0VUl0
aEJBODFrOUpXUWFNYUtWU3VYVHAwa2NmZlFRMkhYc0dvV3lVMlN4dlJiL2tXVFJOVjZ0Vnd6RGdk
Y2JHeHY3Z0QvN2czTGx6bTV1YjBDRGdVbGhzcFZLNWZmczJNQ0NzQUNrQnFVd1QvMFNNSHdoSlZk
WEhqeDlmdTNadG55bUhmaE9wR3VZaEhTUm1XbWtlNElHbHBhWExseTlmdm53WlViSFZhbzJQajZO
NGp2bytGb2owdllEN2c5SWliQVFDQVZtVysvdjcvK2lQL3VqczJiUDFlaDBSSDRFbkVBaWdMVUdX
NVd2WHJsRVVoWm9IR3E0Y0RnZGNJTmt2WnVVcEFjdUFCMjAyMi81K0FXUVNtQ1FwcEpIT1NreVlZ
UmhGVWRDRHVyUzB0THE2K3VqUkkrempobHNIbUk1R295TWpJeXNySzZWU0tSd083KzN0K1h3K1VE
NG9RcmZiYlpmTHRiZTN0N096ODl4enovM29Sejk2NFlVWHF0V3FxcXArdjc5YXJUcWRUdUErVGRQ
OGZ2K0ZDeGZRUFloRlIrNWltSHNZU1JaQ20rME5jR3hvVjlobk13QmxJREY0Rkt3MzVveGdoWjJE
Mld3V2ZWa3JLeXRMUzB1NVhLN1JhTURGNDZZb3Y0YkQ0Vzk4NHh1dFZ1dkNoUXQ3ZTN0dXR4dEZk
VXdBQWFaY0xyLzExbHM4ejMvem05OUVPUUF0c29xaUlDdENhY3poY0pUTDVZOCsrZ2h3SEo2TXVH
aG9MQW55eE1vSUgvczU0Z0dEd0pxbnVKRGtRemZQVGdMcG1FZ2s3dDI3dDdhMnRyQ3drTXZsVU1x
RnJ5T2RQVEI5bG1XbnBxWUNnUUNvalpXVkZVZ21uOCtqbEQ4Mk52YmJ2LzNiTXpNellFYlFqdWYz
K3gwT3g5N2VYaUFRSUJzUGFacis0SU1QMEhacU05dm5OZk9nQkpRM3lRWVVFdHV0MFo0eVdRN1da
aDZpWkUwK0VJNUxwVkkybTBXeSsvRGh3NjJ0TFdBb3FEVFJjQ2loeldZREtLL1Zha2VQSHUzdjd6
OXo1c3l0VzdldVhMbnk2TkVqVlZVOUhzLzN2dmU5ZDk5OWQzSnlFbjRGM1RJNDFLUmVyNlBUQW5l
bUtPckdqUnZ2di85K3FWUWk4SVVJZ0lBSDJxVGFudEZiYS9CbkdjdlpHU3pMQW55aVhBRmN1cmk0
dUxLeUF2cVkzQWdPVFRWM1k3SG1YaUFVUW1BLzZMQTdlL2JzbTIrKytkNTc3eVVTaWU5ODV6dm56
cDJ6Mld5bFVva3hTNlVNd3pnY0RrVlJ3R3MwR2cydjE0dFRFbVpuWnpjM056RVpPR3I0WjFnZEFS
dTBKY1duekkxd1QzVkprbGVNMmI2RHZkZ1BIanhZWFYyZG01dkRsaWgwYVBJOGo0MERKS0lRZ0Fa
c2pXZWdKUUJOOFlJZ1RFNU8vdVZmL2lXNkNGRHhocE1FK2tOWkdxdURaYUxNNmoyNkVBazhKQkdJ
c09NRXNSRDRTWElSeGtJZFA3VkpGT2RScE5QcFRDWnovZnIxOWZYMTlmVjFoSFVVMGtGa29YK05Z
Q3NvakNBSVBUMDlEb2NERGdNZFpsNnZGNTdHWnJPUllpYVlhR0I5ekFyUkM5cUJTZUx2OVBUMEwz
N3hDeFNWeVJsVXVHano2QzJDTjJFN1JKK2hrbEI3bHBpaUxNdnBkSHBoWVdGdWJtNWpZMk5qWXdQ
M1Fya0dPL3BoNkJSRmhjTmhkQzJvcWdySVFwdVZCVm1XRnhZVy91RWYvdUhSbzBjQXNVTkRRL0Y0
dkZBb0xDOHZ0MXF0MGRIUnljbkprWkdSVUNqVTI5dUxkbEhOM0l6QTgvenQyN2ViemViaHc0Y3ZY
TGlBT0lIVHh6Uk5RemFMamV2SUU2QzlpSndJajFBVDB2MElsV1pSazFwYld3UExSRTdjSVlVUWtr
UG81bVl6K041NnZZNFVBUWZOTEMwdGRYVjFaYlBaUC83alAzN3c0SUhmNzg5a01nNkhnM0R0V0l0
ME92M0pKNThVQ29Wb05OclIwWEhnd0lIcDZXbWc2a0FnY1BIaXhmZmVlMjkrZmo0V2k4RWJ1Vnl1
VENiRG1ZZHVZVERnQjlIV1Ixc09BdVBNYll5R3VlR1ZwbWtXMjlrWEZ4ZnYzNysvc3JLU3pXWlY4
eXc1a3Z0UkpqOUFVUlFjRE82T2xtU080N3hlN3p2dnZETXhNYUZwMnZ6OC9OMjdkd0VrME5CRkZN
eG03aHBCOVJ2dHZMZHUzZnFQLy9nUEZDVDlmajg2V3lSSnltUXluWjJkdVZ3Ty9ra3pUMzBoV01v
d20rOFFXbFZ6c3pIZWgrL1k5NjdYcjEvZjJOaVluNS9mM054RUxzOVp6cFFnanBnZ1dBQlhQQWxZ
ajZLb2MrZk8vZUFIUCtqbzZNaG1zNDhmUHdiRGpVUUJaUXpPUE1rUGdSNTREVW9GR0l3VmNUcWRs
VW9GRlo2ZG5SMTRYYlJody9NQkd5SkVROG54UGxZQm9xYk5zeDFKZEdRLy92ampYQzZYeVdUUVBz
MllKNmdRMXVTWkZLUmVyOE9Yb0xrRFgvdis5NzhmQ29Wa1dVYlRHSHdZRWs3QVdyVFlZNU1zRUNa
bEhqdFFyVllGUVlEcWRuWjJwbElwaG1GS3BSSllIeGdoYWlwRW9SQ3hPUE5JUTl3UWs4U1dDUXlN
ZEYyeER4NDhRR1RIVVJDa3BxbVptMGZ3THlHVVNMeXExV3JvSU1aT1ZhQy85ZlgxMjdkdjB6UU5o
MG1PbDhCdENRK0NnYUxYSEllandDQXptY3pzN0N3a0dRZ0U0TWFCWmhtelBZeHdia0RrRUNsOEJD
bWkwalNOSFZINzJKWG9Ia0ZEK0Rhd0NHVnBYQ0xaT3BhVEZNK09IRGtDMFQxOCtQQ2YvdW1mUHZu
a0V4eFJoaG96ZkNhNFJoUjJvQWhrYXpiUDh6Z0xyZFZxNGFBdG5ES2w2em8yaWRJMFRReWJSRDhT
SjlHcm9acDc0Y2lSbTJSREdzTXdiREFZUk5BakV0UE5VNnFJWDJVc2xXYVExb3Fpa0dUbjFLbFRF
TWlQZi96amYvdTNmM081WERBR2RDdUNpZHNuV3N6VFZTdVZpcy9uMjl2YjgzZzhvaWdDOTN1OTNr
S2g0UEY0a0lWaER3Yk1HQkFLRHQ5NG12Nm16UTRKbTNud0ptYU9nMS8ySzZ1SUZvYUZMOVRONmp4
dUFkVW45Q1NJQnZCVW9paTZYSzRqUjQ1d0hKZkw1V1puWjNFU0VVVlIxV29WNUkwa1NiQkp4SDNn
YVlRZkVMYm9VNGRwZEhSMEJBS0JSQ0xSMGRFQi9nYWhHSjEzdUJVZ0hrQ2wxK3ZGZVRwWVB0d2Ny
clZjTG1ORHJxcXErNVFrZ1VpVVNUUUJHVkpmcU9FQkpXTUV1cTZqN1lSbFdWUUVFSFd4c2Nubjh5
RmVvMnlLd0kzdGQzRDlMTXVpNU43VjFSVUtoVERWZXIzZTM5Ky9zcklTQ29VUTBDdVZDbnd2eWpD
d1RIUmg0WVFaTXVCYXJWWXVsK0d1a1I0QmlyR2srNXl4OE9xR3BTQkxkSU8ybEkyUVNlUHdSSERr
Mkd4R0tFYWczTDI5dlVna2d2M3RpT01vaElFUU9uSGl4Q3V2dkRJNU9ZbkpBRXMxbTgzbDVlWGYv
LzNmUnhjLzlrWXo1bUdCMXVVMlRNcmJNRHZLeUR0a0k4YyszTEVPM1FvQVNOMlMzQlRmTWN5eUQ4
cXZ3OFBESE1jMW04M1BQdnRNVVJRSXBGcXRsc3RsTkp6QjE0Mk9qbjc5NjE4L2NlSUVXbFlvODNS
UkdEa3liOW84ZGJSU3FXQ2w0SDRRaEFnWW9DeUhhbUtEcmFxcWRyc2RaNnVnU3dOTmFhQk9kRjFu
eWF5c0FBQU9qVXpiZVBwVVZaTDRDSUl3TURBQWM0ZER5dVZ5T0w0WmcvQjRQSTFHNCt6WnMyKy8v
ZmJNekF6MjkxSm1md01rUThJQVlHcXRWcnQyN1JwOEk4ZHhicmZiNFhEVWFqWEVRemhuMmp3WUZh
RUl0NExuQnhqQU8zQkNOcHZ0OC80UXpkTFRBblJpalR5VXVXK0xzUDJnWkhwNmVoQ3lmdmpESDNx
OTNnOCsrQUROU242L0gyNGdIbysvL2ZiYnYvRWJ2NkZwR2pZaVl3OGJVU0pWVlFIMFVEeTIyKzNa
YkRZYWpXSmZHRVZSckxsTkJIOUoyUWIyUmxBWFkxYXJNRDNNZ3BSR1dLZ2ZaU25kV1hXWWVwcUp4
UzVjR0Vrd0dBd0dnNFpoOER4Lyt2VHB2cjQrcDlQNTcvLys3NkJrQkVIbzd1NCtkKzdjOGVQSERj
UFkyZG5CUVhDS29vQUVRRXVNM1c1SGtxbnJlcVBSZVBqd1lUcWRSaWoyK1h6WUk0RjBqellKR29S
b1pFaTZyZ01xSUJCZ0lkcnRkcUZRTUV6dTUvOERKYytjVWNoZFREc0FBQUFBU1VWT1JLNUNZSUk9
IgotICAgIH0KLSAgICAzIDogewotICAgICAgICBpZCA6IDxudW1iZXI+Ci0gICAgICAgIGVuY29k
aW5nIDogImJhc2U2NCIKLSAgICAgICAgY29udGVudCA6ICIiCi0gICAgfQorICAgIDEgOiAiIgor
fQorUlVOTklORyBURVNUOiBleHRlbnNpb25fdGVzdEdldFJlc291cmNlQ29udGVudEVuY29kZWQK
K3sKKyAgICAwIDogImlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFFd0FBQUJuQ0FJQUFBQWxuak9K
QUFBQUNYQklXWE1BQUFzVEFBQUxFd0VBbXB3WUFBQWdBRWxFUVZSNG5HMThhV3djNTNuL3pPek03
TXpzZlM5M2VSK2llSWlrcEVoUlNNbVdMY2VLYlRsSEhjV3VFenZObDdRb2doNmZpZ0pGZ2FKbys2
a0ZDalJBZzdiL3drbFFGMDFodUdrVnFYSWR5YlVzNnFZa2t1SWxMc1ZkY3NubDN2ZnM3QnovRHov
TzY1SGMrVUFzOTVoNTMvZTVmcy92ZWQ2WHZuTGxpaUFJa2lTeExHc1locXFxbXFZWmhpRkpFc013
RE1QUU5FMVJGRTNUK0ZmVE5JN2pORTFyTnBzTXd6Z2NEazNUYXJXYUxNczJtNDJtNlhhNzNXNjNk
VjJuYVpxbWFVVlJPSTR6REVPV1pWVlZiVFlid3pDNnJxdXE2blE2T1k1ck5wdXFxZ3FDSUlvaXd6
QTJtODFtczJFa3VJbXU2KzEydTlWcXNTekw4enpIY2JnSmh0UnNOdkhDWnJrd0RGM1hEY1BRZFox
bFdaWmhHSXFpRE1QUU5BMHpwQ2lLNHpoTUR4L2hUWXFpV0piRmcyMDJteWlLZ2lCVUtwVlNxZVR4
ZURSTm95akticmN6REZPdjE5dnROc013ZHJzZDcwdVNSRkdVcG1rMFRiTXMyMmcwMnUyMm9pZzJt
ODNsY2dtQ1lCaUdvaWlHWWRBMGJiUFpzRFQ0aWE3cnVDMG1RRkVVbVQ5R1Jac1htVHhraG5teWVK
ZE1tcUlvU014bXMrSDMrSWpJczkxdTIydzJRUkF3aUhhN0xRakN3TUJBdFZwdE5CcXFxaklNWXhn
R0Zwdm5lY2lFcG1tc1dxdlZ3cWR1dHhzeXhEZXg4SGdjR1FPZXFLcXFZUmo0T2RFc2lBUURJOU1q
SThjN2hubnRUeGNMZzV1eUxBdUZ3YjNJSkhFanY5OWZyOWNwaW9KMmxjdGxXWllaaG5FNm5UelBO
eHFOZXIydXFpcHVnbDlCV2FDbFBNOWptWG1lNTNrZXoxVlZWVkVVdTkzdWNybHF0WnIxdDBSdVdE
dkt2TWdFaU9pSXhoS3pJcHJJa2c4d2RYSVhWVlhKN2F3cWtjMW1ZN0dZSkVrN096dUpSS0xSYURp
ZFRyZmJuY2xrZkQ2ZklBaVFtOTF1MTNXOVZxc3hEQ01JQXN1eVdIaW9BRVZSaXFKb21zWXdER3lN
b2lqOEZVVVJpd0tSRXRVbE9nVTU0eU5pK1dSdTVJS043SXNOQzBBc0RaZFZ5NTk1N2ZWNkRjTzRl
ZlBtZSsrOTl6Ly84eitHWVlURFlaN25SMFpHUmtaR2hvYUc0RTR3ZEx2ZERqOUVVUlR4R1VRT2VC
WlVsNklvV1paYnJaWWtTUkFqUmtrRWlMK1lGZkdJRUJjUkk5Nzg0ckJadUFlZTU2Mlcrb3dkNHdj
WW1jZmorY1V2ZnZIM2YvLzNkKy9lZFRnY3NWaXMyV3htTXBuTnpjMjF0YlhSMGRGb05Ncnp2Q0FJ
b1ZBb0hBN0xzcHpMNVF6RGlFYWpEb2VqVkNvVmkwVmQxOTF1TjVSRmtxUlFLQlFNQmlFdUtEUCs0
bC9NQklxQXNXRlcrQmNyUWdSSVptaFZlRmFXWldnWCtTV21CRjJDWWhDOTFYVjlaMmRuZG5aMmFX
bko0L0g0L2Y2OXZUMVpsZ09CQU1keGUzdDdxcXF1cjYvWGFyVjJ1ejA0T0hqNDhPR3RyYTNGeFVW
WmxnOGNPT0J5dVZaWFZ6YzJOblJkajBham9panlQQytLWWl3V0d4MGRIUmdZOEhxOWZyOGZNN1FL
Qk1xRkFkQ1dDNnRnL1pkY1ZsdWxQL3JvSXl5ODNXNkhPa0h1TnB1dDNXNXJtb1ovOFRPTzQ0ckY0
dXV2djY0b1NyMWU5L2w4SE1lRncyR2Z6eWZMY25kMzkrRGdvTWZqS1pmTGlVUWlrVWprOC9uZTNs
NVlZTEZZekdhejVYSVpIbFdXNVhnOFBqVTFOVHc4ekRCTVBwK25hZHJ2OS9NOEg0L0gzVzYzS0ly
eGVEd2FqWEljcCt1NkxNdVZTc1hsY3VtNlhxMVdvZFhRQlNJTUNCWjJRUXg0UDRRUXIwT2NPSlFF
VnZHTWlXNXZiMWVyVlYzWEZVVnBOQnBZZFZWVmg0YUdzdGxzS3BYeWVyMDlQVDM5L2YzZDNkM1Zh
blZ6YzNOdmJ5K1ZTdVZ5T1JpbnJ1dTRlYmxjem1ReVRxZFQxL1ZrTXBuTDVYUmRGd1RCWnJQVjYv
Vm1zK24xZXNmR3hzNmNPZlA4ODgrTG91aDJ1M1ZkNXpqTzcvZGpBb3FpUVB1c1V5SWVGRlBiUndL
MEpmTEFBUEE5cStwekhJZlZ5bWF6eEdzcGlnSy9VaTZYSHoxNkpFa1N4M0Y0MCtsMDl2YjJkbloy
UXJDNnJyZGFMY1JZc282RlFtRmhZV0YzZDlkbXN4V0xSUWlaNTNtNzNXNjMyMW1XM2RyYVNpUVM4
L1B6czdPejMvM3VkdzhlUE5ocXRmRG9TcVVpQ0FLUmtEVVFZQkVoVmZoVTFyQmNWZ0RSYnJkaHFN
U2hJYUJsczFtOENkMUdyRyszMndRaFlWMUtwZExpNHVMYTJ0cms1R1M5WG9jY0twVUs1bW0zMnlt
S2FqUWErWHkrVUNnZzVESU1JNG9pUUJ6RE1BNkhReFRGYkRhYlNDVHE5ZnFoUTRjT0hqeUlSenVk
VGszVFhDNFg0QVN4UTZ1emhOWkFjcCtEQVN1c3NZWWdNa25nMWZYMTlXYXoyVzYzZVo0bjhWQlJG
TmdNWUFEbWdIOHJsUXIwQlRMSEd1TnVVQTM0R0VnQWtsUVVwVktwNVBONWo4ZURHTmhvTkJLSkJP
QXhWQlNCcWxnczRsbEVPYTJLU1p1NGw3WGEyek9PaTN3YnIyVlpMaGFMR3hzYkJEcmpxYmlSTE10
T3A1UGdkU0FZdDl0ZEtCVElTa1A0V0JUZ1pzd1RZSkNvR2N3U0MwZFJWTHZkcnRWcXhXS1JvcWlP
am81NnZkNXF0ZXIxT3NJZUZJYzJNVG9KQjBDZHVDZHJ4UXBXUjB3c2s4RGFack9aeitlVHlTUk4w
NUlrU1pKVXE5WGdmZ1ZCQ0lmRDBBaUdZZHh1Ti9LR1NxWGk4WGhncGJRSlg5dnRObEFSQWhYY0c4
L3pVUDVXcXdVNVErd1lydFBwM05uWldWaFlpRVFpZ2lEQWNDaUtpa2FqbFVxRndGM0VSb3dXZDhQ
a240SjFWZ3NtWXNRazhmaHF0YnExdGRWdXQ5MXV0OXZ0aHNwSmtpU0tJb1RaYXJWa1dTYlFtZWY1
YXJWS1ZBam8vQm04QnVOaEdBWkFEK0NXWVJnQVFOeU5vcWliTjIvKzVDYy9lZkxreWVUazVPam9x
TS9uS3hRSzlYcWRSQXZjOEl2aGdBSjJwVTFBaDlrVGNDY0lRclBaaEVwa01obVB4MU1xbFRpTzgz
ZzhyVlpyYjI4UG9iWFpiQllLQlNJaUVvZzFUVk5WbGVNNHVFUkprbUNXSG8rbnU3djcxS2xUSG8v
SGJyZG5NcG1IRHg4dUx5OURzUkdmb2JHeUxQTTg3M0s1NEljMk5qWisvT01mZDNkMy84bWYvTW1o
UTRmY2JuZTlYaWY2aVZsZ2dhQ3JKSnl3QkJuUVQrTTlobUdxMVNyQlZqNmZyOWxzcnF5czFHbzFB
azBOdzJnMEdvMUdBNk94b21jU0RBbkNhamFiRkVVTkRnNSs2MXZmZXUyMTF3S0JnTlBwWkZtMlhD
NC9lZkxrenAwN0Z5OWV2SG56Sm1NbWFMVmF6VEFNaDhPaDYzcXBWSUszcDJrNm1VeCs4TUVIa1Vo
RUZFV0h3L0ZNL21BTis1K0RBWkxGV01FQUhHQzlYdmQ0UE8xMkd5Nys4ZVBIMTY5ZlI4QWt3b2Mv
RkFRQlZvZUkwbXExY0Z1Z3RuYTc3ZmY3angwN2R1Yk1tYW1wcVdBd2lQQUY2d29HZzdGWWJIeDhm
SEJ3Y0h4OC9GZS8rbFd0VnFNb3l1djExdXYxdmIwOVNaSzZ1cm9xbFFwdVc2MVdMMXk0OE9hYmI0
YkRZYmd4NnlTLzZEZ3BpbUt4MkFRbGtJVWg2d0czdWJXMTlmSEhIeTh0TFRtZFRpUzRSRThROTFx
dEZ1YVBwOXJ0OW1BdzZQZjdqeHc1TWpvNk9qVTFGWTFHWWZ4Z09vQU5jQ3VIdytIMys3LzYxYTlP
VFUyTmpZMWR2SGp4MDA4L2JiVmF5RTVVVlMyVlNnNkhRMVZWR0dFbWswbW4wN0ZZREErMVloMk0y
VHBKbXFaWjR0OEpKTUJYVlZVVlJSRXExMjYzNzk2OWUvWHFWUXdMbmwyU0pPZ1BidFRUMCtQMWVq
MGVENVRUNC9IMDlmVjFkWFc5OXRwclpBVTVqbU5aVnBibFVxa1VDQVFNd3lDY0NITGxycTZ1SC96
Z0I0Y1BIMzcvL2ZjdlhicFVMcGNGUWRBMHJkVnF3WUJydFJyUDg2MVdhM1oyZG54OG5DQ1FaNVNX
TXJOVGlHby9uOFJiSklXREUyZFpGalJVclZhN2YvLys5dlkyTEFSZW51ZDVuODhuaXFMUDV3c0VB
ckZZTEJnTVJpSVJsOHZGODd6YjdlN282QWlIdzZWU1NSQUVudWZoaDNCYm44K0g4QU8vd25FY3FC
T2J6YVpwMnBlKzlDVy8zejh5TW5MMTZ0VTdkKzdJc3R6WDE1ZlA1d09CZ0tJb0ZFVXBpdkxaWjU5
QjhpUkJzYzZUc3BBSk5FMnpSSW1KSlBFOW51ZWhTNUlrYld4c0pCSUpPR3ZJTUJBSURBOFBkM2Qz
ZTczZWVEemUxZFhGY1p3a1NVNm5VNUlrVUJ2Z3Bod09CNVlQdHFwcEdzaEJ4Tko5Mk1XeTBCbzh2
Vnd1aTZMNDJtdXZqWTZPL3ZNLy8vT1ZLMWRLcFJKRTdYQTQ2dlc2cnV1WlRPYjI3ZHM5UFQwK240
OU16N0F3RzFZYWdTVUVqelZqaHVWVUtoVzh5R2F6aFVMQjZYU20wMm1lNS8xKy84VEV4TW1USjd1
N3V4RW5nOEZnS0JRQ0VvSkhZVmxXMS9WR28yRzMyeFZGQVg3QXhQQTF3RjNETUJBZVJWRzAyV3l0
VmtzUUJJZkRnZmpwOC9tQ3dTQnlGSVpoSUcxWmxpR2xodzhmUXVhMG1YQmFEZktwZEFScmpHZkRx
YklzQy8wQmViTzd1OHR4WENBUXFGUXFUcWV6WHE4ZlBuejRsVmRlT1hMa2lNZmpjYmxjOFhnY1lp
ZlR3NjNoUWtuZW9DZ0t3ZE1rbThQNmFwcUczQXBmUTBCeXU5MWVyM2R3Y0xDL3Y5OHdESS9IazB3
bVgzMzFWUWc4bVV3K2VmSmtmbjQrazhrMEdnMDhGSlFhUWpkdElUVDJuMFMwbE1oZEZFVW9tTjF1
RDRmRFNHVEI1Unc3ZGl3YWpiSXNHNGxFRUE5Z1Y0UmxneEppN2F4WWlvQko2ME90bDJFWVBNOERH
MEVMUmtkSER4OCszTkhSQVFOakdPYWRkOTVCWWdteEE5OEREQ1BBZ29hRy9lTXZReWp6Wjl3c0lT
QUVRWEM3M1dBckdJWkIraTlKa2l6TGRydGRGRVhEek1lUkNzTGtvQVVlajRjZ0Irc0tHcFkwMXdx
U0NjV0dyTjh3akw2K3ZoTW5Ub3lPanJiYjdmNysvbXExT2pNek16MDlIWXZGRW9rRVFCSVNTOHBr
K21EMlZ1aTJQOGxuMXBXc2g5MXV4N2VEd1NDU1BVbVNZTFNBN0JSRlFWZGJUMThrbnlZU2ZvWk5z
em81cTZpQmI1MU9wOTF1Qi8vVTJkazVPam9hREFacG1sNWVYcTdWYWlNakk4UER3NUZJWkdWbEpa
L1BJMUFUbnBIZ1dITHRKemhrMHNUSHd2V3BxZ3I0ZXVEQWdYQTRURElNRU1HTlJrUFRORW1TbXMw
bVNYTndRK2dxWUJEOUJhei9URXdqRjhGTTBGc0FHa21TT2pzN3o1NDl1NzYrUGo4L2YrZk9uVUto
d0hIY3E2KysybWcwbHBlWEs1VUtZZy9LTGNBUDFtVmxpTU8xWGxnTVdaYXIxYXFtYVI2UFozaDRP
QmdNSXF4aEFvamdsVXFsMld4V0twVkdvOUZzTmx1dEZvYUlEQU9GRUhLUnhTWmgyam85S0FoMHAx
NnZJL2RIY3V4MnU4K2VQWHZvMEtGU3FYVHg0c1ZDb2JDN3U5dHNObjArMy9MeWNqS1pWQlFGSUJF
QjNKbzY2N3IrMUQrazRJTUxyaC84djJFWUtHT0JmU2tVQ2lCNzRCanRkbnVsVXFsVUt0VnF0VmFy
WWNLS29pQjJrNHNBRHlqd00vTUVDS0hNMHBBc3k2Z21JSXhGSXBIZitxM2Y2dWpvZVB6NE1WYjU4
dVhMMjl2Ykd4c2JDd3NMZTN0N2dpREFGQWxYL2psMnRVNlNzb0JZQ01UaGNEaWR6a2Fqc2IyOW5V
Nm5rWCs1WEM0UWR2RjRIUDROR1RNY29KWDhoejhrc1pkTWhqTFJsVldTbUtTaUtENmZ6MmF6d2VB
WnM0TFNhclZHUmtiNit2cWF6V2F4V0F3R2c0OGVQZHJiMnp0OCtQRHk4dkx3OEhBMEdzWFN3QXRh
NmF0OTRNWllXRWtrKzRxaXVOM3VhclZxczlsQ29kRHM3Q3drdzdKc01wbk01L09xcW5xOTNvTUhE
MUlVQlNFamdxdXE2bkE0a0NzSGcwR0dZU3FWQ3J3MFNhWWhybUt4Q0pXR1NRUFdOaG9OU0UrU3BI
UTZUVkVVR01CeXVmemd3WU5Iang1eEhKZE9wd09CQU5pZGxaVVZsbVdkVG1kSFJ3Zm9RaXdXS0JW
Y0xCWWViMUZtbUFZNko1YTVzckp5Ly83OVRDYWo2M282blVia3dJTEJReUMxSTNVN1ZWVmhXZ0Jv
a2lRaEYyczJteHpIT1J3T2VCU1B4NE1uUXVhS29xaXFHZ3dHbTgwbVlsZytuOS9ZMk9qcDZUbDY5
R2l6MlV3bWs2VlNTZGQxUUJTV1padk5acjFlWDFwYU1neGpmSHo4MkxGamtVaEVsdVZDb1lCVWMx
K1NFQjFqS1JEQVFTR2pwMm02VnF2ZHZYdjN4bzBibVV6RzYvVm1zOW1CZ1lHaG9TR2Z6OWZaMlFs
S0c3WG5WcXVGZUZpdFZqMGVEOHV5MEdwUzlCVkZFV2xLc1ZpVVpSbDRBL2txRmdXaEdORUxBNWli
bTh0bXMwZVBIbDFlWHA2Zm53ZEc3Kzd1YnJWYTRYQjRlM3U3VnF1cHFwclA1NHZGb3FxcXdQMTJ1
OTNLWFQxbGt6QldUQnVKT2MveitYeCtZV0ZoYzNNVEViWFpiQ0o4WVJDUVBINGlTUklNVzFWVmZC
a0VLWlRUNFhESXNweEtwUllXRmg0K2ZGZ3FsYWFucDBkR1JrakJyMVFxd1F0Z3VXVlp4aU9XbDVk
M2RuWWtTWUovTGhhTG9paWVQWHQyYUdpb1Vxbjg5S2MvM2Q3ZWhoRUtnbEF1bDFtV3hWb1FqODJT
K1BaTVVFYUlVMVUxbFVwdGJtNEMzMm1hdHJhMjFtdzJGeFlXb0xSdXR6c1FDUGo5L3A2ZW52SHhj
YVF2OEhKUTdFcWxrczFtcTlWcXNWaGNYRng4K1BBaHRBNDFFaVNpV0UyNFIxbVc0YjFrV1VhT0Jy
K2R5K1ZxdFpyYjdRNkZRb2NQSHg0WUdMaDE2OWFkTzNlZ2QrMTJ1MVFxQVhVUjBFOGd4K2VTTkw1
UVdxWW9xbDZ2bDBvbFZWVUJkSFJkejJhenhXSVJTWVpoR0FCOWtpU0JtM0s3M1dCZk9qczdsNWVY
bnp4NTRuSzU1dWJtVmxaV2NybGNPcDBHMSt4ME9qYzJOajc4OEVOa0VpKysrT0xZMkJqSGNkVnFG
WGdkQlMrUHh3TUdoS0tvYkRhcjY3clg2eFZGOGQ2OWU3dTd1OWV1WGR2ZTN2WjZ2VWhXWkZsdU5w
dm81MEJ1L2JtNldxTXpZeWxaa3lEbThYaDZlbm9LaFVJcWxVTDZnNFFEdEpxaUtLamtvQ2pnZERx
N3U3dkQ0ZkM3Nzc0cnkvS0hIMzZZeStWU3FaU2lLQmczeXBMVmFsVVV4ZTN0YllxaW90SG8xdFpX
UjBkSE1CaUU2eUxwcFNBSXJWWXJsOHZKc3B6SlpGd3UxN0ZqeCtyMSt0emNuQ2lLTDcvOHNpUkpW
NjVjQWM4Q1dneEJtOFRoejcwcndhdFdlV3FhQm13ZGk4VnF0ZHJXMWxZcWxkSjFIZURHWnJPSm9r
aFJGRHdFYkFtVTdPN3VialFhL1ozZitaMnVycTVVS29VZzVIUTZLWXFxMVdvMFRZUElSSXF6czdO
ejRjS0ZYLy82MXlkUG5uem5uWGVtcDZmUkQwTFRkTEZZYkxWYWNNN2xjaG1ER1JvYVdsNWVoZ3Y4
eGplK0FaSjZlM3U3Mld6eVBCOEtoY0Iza1JUODh6aEowelNvUjZTekhNY1JaZ1ZMY3VEQWdVd204
K0RCQTU3blFjL0JNU0xuUkQrRXcrSEFwNXFtemN6TWdCUStmLzc4KysrL1h5NlhFUVkxVGZONnZh
VlNxYSt2NytEQmc0SWdvR2dsQ01MTm16Y0ZRVUExSGlRZ1NwUTJtMjFuWjRlbTZYYTdQVEF3a00x
bWs4bGtOQm9OQkFLSVRNZU9IV3UzMitGdytFdGYrbEsxV2tXc3RncU1vaWpibTIrK3lWaXFDQVFX
RWNvVTRzcG1zNDhlUFVJUmpqQkFicmNiWC9ENWZQbDhuaVFjZlgxOXdXRFE1L1BGNDNHNG9tUXlX
YS9YQ1dqTzUvT3lMSStPam82UGo0T1ZMeGFMVHFmejRNR0QwV2dVZm91bTZWS3BkT3ZXclVRaUlZ
cGliMit2cG1ucGRCcjE3RmdzTmpJeTR2ZjdPem82aG9hR1JrZEhBNEVBYmJMeUdCNlpsKzNOTjk4
azJJcGtkRWhEQ2ZZREZiS3lzcks3dTB2RWlEUUt4U3lLb3ZBbWdNNzU4K2RQbmp6WjFkV0ZmQm9W
ZFRqR2JEYUwya205WHI5Mzc5N0t5Z3BOMCtGd0dQcmNhcldtcHFZY0RnZXFadFZxdFZBb2xNdmxB
d2NPbkR4NXNsZ3N6czNOSWNEQ3gwYWpVVm1XSTVHSUpFbjdtc215WU51ZXNrbkswbzVFY2dVNFph
Z2Y2Qm0vM3grUHg5ZlcxZ2pqaGt6SzZYUWlMNmxVS3NDcjdYWWJtQVlQaU1WaUw3MzBVcjFlLytp
amp5aUtpc1Zpa1Voa2ZYMjl2Ny8vK1BIanAwNmRhcmZiK1h4ZUVBU29UTFBaQkg1QVNqazFOVlVv
RkhwN2V5Y25KMVZWdlhuelpxVlNRZTBNdmdEa29DekxLTENUVkJhVlJZekI5cDN2ZkVjM2EyWWtG
VUswUURZTTJFblROSUlWd0JwTjA2SW9nbE1DZW9Za1daYU54K052dlBFR1hHV2owVUJWWTNoNEdG
QWVZYkM3dTd0V3ErVnl1V0F3ZVB6NDhVT0hEb1ZDSWEvWDI5L2Y3M1E2VVFnRDllNXdPUEw1L01E
QXdPRGdJTU13Q3dzTDYrdnJ1cTZQam80Kzk5eHpTR3RSTWdLWnFKdnRhS1RWZ3dhNWJMVlJJbUpJ
SEZvT1lRNE1EQnc4ZURDVlNvR2I4bnE5ZHJ1OVdxMjJXaTJYeXdYMTd1bnBlZVdWVjc3ODVTOHpE
Rk1zRmdGRSt2djc4L2s4T1BVVEowNVVxOVhkM2QzVHAwOGZPSERnNk5HalNPTEFyeU5zSU1PaUtN
cHV0eU5hQm9OQnU5MCtNREF3TVRGeC8vNTl1OTNlMWRYbDkvdkJIdVR6K1hBNDNHcTFhcldhMStz
bFpVK1MzOWplZU9NTm9MQm5zajRnUUZKTFE5S0VlTkRiMjR1aGRIWjJ1dDF1dkVna0VtTmpZK2ZP
blh2eHhSZjlmbitwVkZJVUJab01LT055dVRZMk50YlcxcUxSNlBlKzk3MnBxU20vMysveitVRDVZ
VFJkWFYyb3Q1T3NUWmJsemMzTmVEd09uckpRS096czdIUjFkWDN0YTE4YkdSbEJJK0wxNjlkQktS
bUc0WGE3MGE1aFpkQnQzL3ptTjBtVjI1cmFvVlNNZ0dHWVRZREZZakVVQ3IzNDRvdXFxcTZ1cnFJ
YXQ3cTZXaWdVWG43NTVlZWVlMjVpWWdKckdRNkg3WFo3c1ZqRWNqUWFqYTk4NVNzOVBUMnFxbTV0
YmMzT3pnSllnemNDYkFLMEFQT1B1bDJqMGNobXN5c3JLOEZnME9WeUdZWlJyVmJ6K1h4UFQ4LzA5
TFRmNzFkVjllT1BQLzdidi8xYlhkZFJwM0M1WE9WeUdWOG1jMkVialFaQnJmdG1hck1oa0FBS3d5
d2xTVUozWnpnY3BpanF6Smt6TE1zdUxDd2NQSGp3aFJkZWNEcWRNek16Nit2ckd4c2JCdzRjUU9C
T0pwUG83d0Vsa1VxbGVudDd6NTQ5KzhZYmIrVHorZDNkWFRoVmtoSkFnS1FJclNqSyt2cjY3dTd1
cjMvOTYwT0hEb0dZalVhamYvaUhmd2hvQ2t4eS8vNzlVQ2lFRUlBVjlIcTl5SitJMHJLQUFTU0VV
Q2JiUmNnSXcreEVaRmxXa3FUYnQyK0xvamc4UER3NU9UazRPSWkwbU9PNDFkWFZYQzczd2dzdmtC
NUNBRUJGVWJxNnV0YlgxeDBPUjZWU2dWVjdQSjU0UEk1NkVRWUVJa0xYZGF4TFBwOWZYVjI5ZXZY
cWpSczNRUE9VU2lXZnp3ZGZTcGtNeHVibVpqQVlmUG5sbDQ4ZlArN3hlSURwRWZEZ1hmY05rSHI2
SWxnQmdkdXc5TDJ3TEl0RjJ0blpLUmFMZnI4L0Zvc0JKMFVpa2NIQndYYTdqV0tCWVJoZ2dBUkI2
T3pzdkgvL1BqcStzRmlqbzZNb0xZSUtKTTlDWHAvSlpGUlZUYWZUcTZ1cjE2OWYzOXpjSEJ3Y3JG
YXJkcnZkNy9lN1hDNThNeEFJb0JBK09EaDQ2dFNwUTRjT3dTNUliR01zcERaakpkRm9zK2NYUkJC
SkZDbVRNVUNMNVBiMmRxVlNRV0tLSk12bGN2M3lsNy9jMmRsQnl3NVFDNElINUZhdFZpOWR1Z1M4
dHJHeGdUQ0lYQm5FUEdxUFcxdGI1WEs1VXFuSXN0eHV0M2QyZHB4T1p6d2VCMzVBa29tOERLc3ZT
ZExZMkZnNEhFWVU4WHE5RE1PZ01ZVEVENHFpVE9EemYvV0FRSklFSnhobWNYdHpjeE90Y0R6UFJ5
SVJYZGMvL1BERFR6Lzk5UGp4NHgwZEhhSW9vdWJSYnJlejJXeXBWTUlxNVBQNW4vemtKd0Fvd0lQ
d01kRFljcmxjTEJiWDF0WVdGeGV2WDcrdTZ6cHF6SkZJWkdCZ1lIUjBsSERxTHBkTEZNVkdvMUdy
MVZ3dVZ6UWFSV29PZUlBcHdGMVRacEs4MzFoa1BGM2NNMHdTR3FrblhpQ0lqWTJOL2V4blB3TlZJ
UWdDV0luTGx5K1BqNCtIUXFGa010blYxWVg2TEZGWFFKWndPUHpuZi83bmlVVGlyLzdxcjN3K0h5
d1oybDZyMVZDaUtSUUtxNnVyWHErM3U3djc4ZVBINCtQakl5TWpYcS8zeXBVcnp6Ly9QRWdEUVA5
Q29hRHJPaHdzU2lQTlpyTlVLb0Y1c2xvZlRkUDdBUDJMRjJBNlRCRm9CaDQvR0F4ZXZYcDFhV2tK
bWVTZE8zZnUzYnZYYnJjYmpjYkN3c0tEQnc4Zy9FYWpnWndBT1NHYXVIcDZlajc4OE1ORUloR0x4
UWdjQTZ5RDY1NmJtMk5aZG5Cd01CcU5aaktaOGZIeDhmSHgyN2R2Ly9WZi8zVW9GSEk2bmRWcWRX
TmpJNS9QSTRFRzNFSHVCaWVIMUE4UmdjaU1OWjRtN1luR0F1ekNzNU5hRmNNd2tVams5T25ULy9W
Zi8zWDU4bVd3VlpWS3hlMTIrLzMrK2ZsNWlxSSsvdmhqdTkzZTM5OFBtSnJOWnRIZjg2ZC8rcWZ2
dlBQTyt2cjYrKysvdjdhMjl0WmJiM1YyZGxJVUpVa1M2QUswZkE4T0RvcWltRXFsWG4vOWRXVG45
KzdkVXhUbHovN3N6Mzd2OTM2dnA2Y25uOCtIUXFIUjBWRkpra0NMUXJha3ZNOVl5RWRJa29XaUEw
bVJaZ3FiMmR3REQ0VCtBOXlDcHVuVHAwOS84TUVIU0NuOGZqOVNyY25KeVVhanNibTVhYlBaeXVY
eXJWdTNrRlh6UE85ME90OTQ0dzJIdzhHeTdIZS8rMTJPNDM3Kzg1Ly8zZC85WFc5djc4VEV4SzFi
dHdZR0JsNTY2U1ZCRUk0ZVBlcHdPRkNRaEhJbWswblFKYkZZck5GbytIeStrWkVSUVJEQStnR3Z3
alIweTJZRWVDWVNCVm5DY3pObVF3OWxOa1VUZUlVTFZxUW9TamdjUG5Ma3lPenNMSkxhY0RnOFBq
NU9Hdm5RSllhNmlOZnJQWExreUFzdnZIRDY5R2tRSDBlT0hORjF2VnF0L3VkLy9pZkRNRjFkWGQv
KzlyZi80aS8rWW5sNStSLy84UjlEb1JDY09VSUxsbWwwZExTcnF5c1dpL1gzOS9mMDlMamRicXc0
bkw5aGFTYW5MZFZCWW5jVVJkbmVldXN0RWpuSURDRlNBQmZ5SnNxUElMV0t4ZUsxYTlkRVVRU2Qw
ZDNkUFRBd3NMT3pnOVpPUlZIUVBQSGxMMy81L1BuekowNmM2Tzd1cHMxcURGRHhpeSsrdUxhMmR1
Zk9uV1BIam1VeW1TZFBuZ3dORFFVQ0FUaGVVUlRobG5aM2Q3MWU3NGtUSjhiSHh6czZPdUJhRWVo
SjVlWVpuaEh6dE1ZTDIyLys1bStTNUlNWXErM3BDOVlNK3haRkVSWHZ6ejc3REwvQ0hxYTl2VDFk
MXlPUkNINUNVVlE0SEQ1Ly92elJvMGRCbWVMTENHTGo0K09xcWs1TVRFeE9UbDY2ZEtsWUxKNDdk
MjVrWkNTYnpZWkNJWVpoMFBpTjZtQWtFa0VRd2h5UXRhSTZTS3p1LzV3a2VmT3BmUzRrS3RKbUl5
dmtqcTV1cUM1MkJQVDI5cDQ2ZGVydTNiczJtNjFXcXlXVFNYUVVxS3BhTEJiRDRURHc1TmJXVmo2
Zmh4dXNWcXRnSlVGMlFFcmYvdmEzR1liNWYvL3YvNEhkN096c3hGT0F6b1BCSUVoNnh1eUJnaDBT
UWhSbGMwSndXNmVnV3pxMVdJTGRpRUx2QjFDV2JadGJpMGptb3VzNkFIMDBHaDBmSDc5Ly96NUZV
V2hpOGZsOFBwOHZsVW8xbTgxc05sdXBWRFJOeStWeWx5OWZSdE1MekpWaG1OM2QzVVFpTVRJeWN1
VElFVVZSaG9lSDIrMTJQQjczK1h4NDMrbDBLb3FTU0NSV1ZsWkE0Y0RCWUhwUVk4ckMrbHNsWkZq
YVhjakZrbWFOejVFZXc4RHhHR2FYQ0hRRHJ4dU5Cb2htbEprQjBORDhmdWJNR2ZSVTUvUDV1Yms1
dDl2ZDA5TVRpVVNRS01iamNVM1RzdG5zMHRMU3ZYdjNETVA0MXJlK0ZZdkZIajkrck90NkpwTkpw
VkxZMktTcTZ1N3U3cE1uVC9iMjlqaU82K3pzSkhWVlpDZEVTMEhFMEpZbUpNUHMzYkZPZUg4M3dU
TStDcUdHQkZNU1p1Q2ZVUFpKSnBNVVJTR3I1amp1OGVQSDlYcGRsdVh6NTgrZk8zZnUzTGx6c1Zn
TVpUd3MvK3JxNnZ6OHZOZnJmZlhWVjcvMnRhOEJMZFJxTlRTQlhyMTZsZWY1bDE5KzJXNjM1M0k1
OUs3d1BOL2IyNHM4bURTb0lRYUM0TkhNYlFHVWhmdTNUbWQva2dpR3BFUkpmQTl0N2t6Yjk4S21N
V0JXSG84bkZBb3BpaUpKVXFQUjZPcnE0bmwrZVhsWkZNV2YvdlNuVjY1YzZldnJ3NmMybXkwZWoz
L3l5U2QydS8zZGQ5Lzl5bGUrc3JlM3AybGFQcDlQcFZLaFVPaktsU3RlcnpjWURLYlRhWEJReVdS
UzA3UlVLdFhUMDBPcWw3QjVWSTJhelNZcWkraW50Ym9mRE5YcWRXaWFaclduOTBoOC9vR3B4a1Jw
Y2FIREpoQUk3T3pzUkNLUlRDYWphUnJ5a2xnc1ZxMVdzOWxzcTlWNi9QaHhwVktwMSt1eFdDeWZ6
MDlNVFB6b1J6OGFIaDR1bDh0b0Qwa2tFbHRiVy9mdjMwYzFDZTJpeVdSU2xtVlpsaDgrZkxpNXVZ
a09IbzdqVXFrVTNBL2dJYUF2dGlFZ3JtSnN1dGxhWmp6ZHljSmFNWjdWTXEzaXRocTYzKzh2RkFv
bzFvTWNRZm9UaVVUUW9EQTJObFlxbFFxRnd2UFBQeCtQeDd1N3UrMTIrOFRFeE1qSVNES1pkTGxj
cFZMcDVzMmJWNjVjQWZwdE5tT0cxRmtBQUE5NFNVUkJWSnR1dDl0dXQ4Zmo4VlFxdGJpNFdLbFVy
bCsvM3QvZlB6NCtEc05CRWdQS3QxcXR1bHd1VGRQQUljRkU2YWU3ZUkybjI2QllrdS9RbG0yazVL
LzFJL3dlRS92WGYvM1hkRHBkcTlWNmUzdEJSbUNCSFE3SEs2KzgwdG5aK2Vtbm4zWjJkdjd3aHo5
RS96OFdaWDE5L2NHREIvLzd2LzhyaXVMUzBoSUFEV0FUZEtkU3FYenl5U2U0MWNtVEp3Y0dCdEM0
NXZmN1oyZG5aVmsrZlBnd3gzRW9qU0REdEpybC8zblJOTTFhRXhQcjlFajhwQzNOMi9DdWRydDla
V1VGYlpHaFVBakxqSjJ3TDczMDBzR0RCMnUxMnNURWhDaUtjM056K1h4K2VYbjV4bzBiaUwzejgv
T1BIajA2YytZTUFyM2Rib2NDY3h5M3RyYTJ1N3U3dDdmbjlYcS8vdld2ejh6TVFIUTh6MlBMeE5M
U2tzL25pMFFpYURJREgvbEZCYlRpMDMzblFqSmpxL2xSWnR2Rk04cXQ2em9zSHUwZVlFTzZ1cnAw
WGQvYTJ1cnM3Q3dXaS8vOTMvOGRpVVFNdzlqYTJqcDQ4T0JubjMwR3JJZmk0WUVEQjRnL3E5ZnJX
RFZNNCs3ZHU0Z1pLSFdneWtCUkZQS21ZREQ0M252dk9aM08xMTU3cmJPekUwUjdxOVVpVERtWnJW
V0d4SU95cEVlSnNteDFvWjZPdHVSZjhCUlRVMU8vL09VdlFWVlFGRlV1bDBPaFVMbGMzdDNkamNm
akR4OCtMQmFMbXFhdHI2L0xzbHlyMVhwNmVnS0JRTDFlVDZmVDJHbUk5SStpS0ZRdktwVktzVmpN
NVhJZEhSM1liK1p3T0Z3dUZ6WVBZd2ZlOXZiMnIzNzFLMVZWWDMvOWRiL2ZqL3pZS2tQaUhhM0Rw
c2lXQ1RJcjYrc3ZUaEtFRU0venAwNmRtcGlZZVBEZ2dhWnBpVVFDVU1IcjlXNXNiSlJLSlpxbWM3
bWN6K2RqV1RhZFRrdVNSTHh1TUJqRS9pUnNMZ0VoMEc2M1VYSUVNSjZlbnU3cDZjRWNHSVlCMmVG
d09BUkJXRmxaUWNTYW5wNTJ1OTJDSURRYWpXZjhqVzd1dXlLVHRQM3U3LzZ1YnJiWE1aYU9LYklG
d21adXZzWHpIQTRIT3NKRG9WQ3BWRnBmWDBjN1BKcCtnTjNoR094MmV6NmZCemVCMW1Oc2hFSnBE
VWdOVGhMbEdqeHViR3pzOU9uVGc0T0RzVmdNWFE0WWR6S1p2SFRwa3FJb3BWSXBsVW9oRTNRNm5i
Qm5pUFFaSVgwdVNmZ1kwdnBCZkF6cGtpT0tTbEVVR29mUm5uZjQ4R0ZabHJlM3Q1ZVhsMkc5NE5R
WTg1QUJCSEZpMk5hL0ZFWGhTQUhEYkluQXRBT0JnTS9uaTBhajBFYVNjR0RoUUt1Q0FmeVhmL21Y
K2ZuNXIzNzFxeWRQbm9SeEFxbWpYUU5Cbmt4bkg4VmJKL01NQ0h3bWJFSnpFRWhlZXVrbGxtVXZY
cnk0dExTMHNiRkJXZEp6VGROUXEwVFVRY0hQNnNNUS9hQ3JTSkU5SHMvQXdBQjJ2enFkVHN5Zk1V
OHQyTnZiZy8xTGtxUW95dTd1TGx6eDR1SmlmMy8vb1VPSGVudDcwWTllcTlYcTlUcTQrWDJnWmsy
dWlXWVRrbzRremNCRFVGM1U2cHJOWmtkSHgrdXZ2ejQ0T0hqejVzMi8rWnUvcVZhcnNpeWpZUkZs
VnMzY2M2MWJta0RKQytpcVlSaEl2dUYxZ1hMQXhLTGVTTk0weDNFYkd4dndrYlZhVFJBRTdEaTZm
djM2dlh2MzR2SDQwTkRRZ1FNSGhvYUdob2FHdXJxNmdzRWc0UUFBNGxtcnc0WC9CTTRBcGlWQkJY
NGZiZ0Q3SlVxbGt0dnQ5dmw4b0Z0dE5wdkQ0U2dXaTgxbUU1dnZDYXhuTEgwbDhPU29Bc0dZY1lZ
QytzQm5abVpDb1pCaGRtYVFMV2VycTZ0dXQ5dnBkR1l5R1d5aEpJUGMzdDVPSkJLWExsMktSQ0pU
VTFQSGpoM3I2K3VMeFdKK3Z4Kzl5S3h1MmFObWpTMlVwZW5GZUpveU1jeXFOZVEyUHovL3M1Lzly
Rnd1ZDNaMlRrOVBQM255Qk9nRTRlR0xta0taUGU2TlJnT3RkbWhIbkp5Yy9QNzN2eCtMeFlqVjJH
dzJsQ2pUNlRRYVhGRUxhTGZiYUdWeHVWeG9DRWVrVGFmVCtYeit4bzBiZ2lCTVQwOFBEZzVPVGs3
MjkvZXpKS1d5em9HeWtDQndQOFNJRGNNQTJ3bGJSOVhwNHNXTFRxZlQ3L2ZQek13NG5jNVBQLzBV
MHJiR1hzb3NZSU9iSWJ0SUFWOW1abWJlZnZ2dGt5ZFBnaUlDTHdFTDFIVjljWEVSZVJsK2FNMmVz
YmtHdkF6OFRiUFpiRFFhUC8vNXo4R2JSS05SeHNyVDRVSXRoQkE4MWs5SldRYU1hS1ZTdVhUcDBr
Y2ZmUVEySFhzR29XeVUyU3h2UmIva1dUUk5WNnRWd3pEZ2RjYkd4djdnRC83ZzNMbHptNXViMENE
Z1VsaHNwVks1ZmZzMk1DQ3NBQ2tCcVV3VC8wU01Id2hKVmRYSGp4OWZ1M1p0bnltSGZoT3BHdVlo
SFNSbVdta2U0SUdscGFYTGx5OWZ2bndaVWJIVmFvMlBqNk40anZvK0ZvajB2WUQ3ZzlJaWJBUUNB
Vm1XKy92Ny8raVAvdWpzMmJQMWVoMFJINEVuRUFpZ0xVR1c1V3ZYcmxFVWhab0hHcTRjRGdkY0lO
a3ZadVVwQWN1QUIyMDIyLzUrQVdRU21DUXBwSkhPU2t5WVlSaEZVZENEdXJTMHRMcTYrdWpSSSt6
amhsc0htSTVHb3lNakl5c3JLNlZTS1J3TzcrM3QrWHcrVUQ0b1FyZmJiWmZMdGJlM3Q3T3o4OXh6
ei8zb1J6OTY0WVVYcXRXcXFxcCt2NzlhclRxZFR1QStUZFA4ZnYrRkN4ZlFQWWhGUis1aW1Ic1lT
UlpDbSswTmNHeG9WOWhuTXdCbElERjRGS3czNW94Z2haMkQyV3dXZlZrckt5dExTMHU1WEs3UmFN
REY0NllvdjRiRDRXOTg0eHV0VnV2Q2hRdDdlM3R1dHh0RmRVd0FBYVpjTHIvMTFsczh6My96bTk5
RU9RQXRzb3FpSUN0Q2FjemhjSlRMNVk4KytnaHdISjZNdUdob0xBbnl4TW9JSC9zNTRnR0R3SnFu
dUpEa1F6ZlBUZ0xwbUVnazd0Mjd0N2EydHJDd2tNdmxVTXFGcnlPZFBUQjlsbVducHFZQ2dRQ29q
WldWRlVnbW44K2psRDgyTnZiYnYvM2JNek16WUViUWp1ZjMreDBPeDk3ZVhpQVFJQnNQYVpyKzRJ
TVAwSFpxTTl2bk5mT2dCSlEzeVFZVUV0dXQwWjR5V1E3V1poNmlaRTArRUk1THBWSTJtMFd5Ky9E
aHc2MnRMV0FvcURUUmNDaWh6V1lES0svVmFrZVBIdTN2N3o5ejVzeXRXN2V1WExueTZORWpWVlU5
SHMvM3Z2ZTlkOTk5ZDNKeUVuNEYzVEk0MUtSZXI2UFRBbmVtS09yR2pSdnZ2LzkrcVZRaThJVUln
SUFIMnFUYW50RmJhL0JuR2N2WkdTekxBbnlpWEFGY3VyaTR1TEt5QXZxWTNBZ09UVFYzWTdIbVhp
QVVRbUEvNkxBN2UvYnNtMisrK2Q1Nzd5VVNpZTk4NXp2bnpwMnoyV3lsVW9reFM2VU13emdjRGtW
UndHczBHZzJ2MTR0VEVtWm5aemMzTnpFWk9HcjRaMWdkQVJ1MEpjV256STF3VDNWSmtsZU0yYjZE
dmRnUEhqeFlYVjJkbTV2RGxpaDBhUEk4ajQwREpLSVFnQVpzaldlZ0pRQk44WUlnVEU1Ty91VmYv
aVc2Q0ZEeGhwTUUra05aR3F1RFphTE02ajI2RUFrOEpCR0lzT01Fc1JENFNYSVJ4a0lkUDdWSkZP
ZFJwTlBwVENaei9mcjE5ZlgxOWZWMWhIVVUwa0Zrb1grTllDc29qQ0FJUFQwOURvY0REZ01kWmw2
dkY1N0dack9SWWlhWWFHQjl6QXJSQzlxQlNlTHY5UFQwTDM3eEN4U1Z5UmxVdUdqejZDMkNOMkU3
UkoraGtsQjdscGlpTE12cGRIcGhZV0Z1Ym01alkyTmpZd1AzUXJrR08vcGg2QlJGaGNOaGRDMm9x
Z3JJUXB1VkJWbVdGeFlXL3VFZi91SFJvMGNBc1VORFEvRjR2RkFvTEM4dnQxcXQwZEhSeWNuSmta
R1JVQ2pVMjl1TGRsSE4zSXpBOC96dDI3ZWJ6ZWJodzRjdlhMaUFPSUhUeHpSTlF6YUxqZXZJRTZD
OWlKd0lqMUFUMHYwSWxXWlJrMXBiV3dQTFJFN2NJWVVRa2tQbzVtWXorTjU2dlk0VUFRZk5MQzB0
ZFhWMVpiUFpQLzdqUDM3dzRJSGY3ODlrTWc2SGczRHRXSXQwT3YzSko1OFVDb1ZvTk5yUjBYSGd3
SUhwNldtZzZrQWdjUEhpeGZmZWUyOStmajRXaThFYnVWeXVUQ2JEbVlkdVlURGdCOUhXUjFzT0F1
UE1iWXlHdWVHVnBta1cyOWtYRnhmdjM3Ky9zcktTeldaVjh5dzVrdnRSSmo5QVVSUWNETzZPbG1T
TzQ3eGU3enZ2dkRNeE1hRnAydno4L04yN2R3RWswTkJGRk14bTdocEI5UnZ0dkxkdTNmcVAvL2dQ
RkNUOWZqODZXeVJKeW1ReW5aMmR1VndPL2trelQzMGhXTW93bSs4UVdsVnpzekhlaCsvWTk2N1hy
MS9mMk5pWW41L2YzTnhFTHM5WnpwUWdqcGdnV0FCWFBBbFlqNktvYytmTy9lQUhQK2pvNk1obXM0
OGZQd2JEalVRQlpRek9QTWtQZ1I1NERVb0ZHSXdWY1RxZGxVb0ZGWjZkblIxNFhiUmh3L01CR3lK
RVE4bnhQbFlCb3FiTnN4MUpkR1EvL3ZqalhDNlh5V1RRUHMyWUo2Z1ExdVNaRktSZXI4T1hvTGtE
WC92Kzk3OGZDb1ZrV1ViVEdId1lFazdBV3JUWVk1TXNFQ1psSGp0UXJWWUZRWURxZG5aMnBsSXBo
bUZLcFJKWUh4Z2hhaXBFb1JDeE9QTklROXdRazhTV0NReU1kRjJ4RHg0OFFHVEhVUkNrcHFtWm0w
ZndMeUdVU0x5cTFXcm9JTVpPVmFDLzlmWDEyN2R2MHpRTmgwbU9sOEJ0Q1ErQ2dhTFhISWVqd0NB
em1jenM3Q3drR1FnRTRNYUJaaG16UFl4d2JrRGtFQ2w4QkNtaTBqU05IVkg3MkpYb0hrRkQrRGF3
Q0dWcFhDTFpPcGFURk0rT0hEa0MwVDE4K1BDZi91bWZQdm5rRXh4Umhob3pmQ2E0UmhSMm9BaGth
emJQOHpnTHJkVnE0YUF0bkRLbDZ6bzJpZEkwVFF5YlJEOFNKOUdyb1pwNzRjaVJtMlJER3NNd2JE
QVlSTkFqRXRQTlU2cUlYMlVzbFdhUTFvcWlrR1RuMUtsVEVNaVBmL3pqZi91M2YzTzVYREFHZEN1
Q2lkc25Xc3pUVlN1VmlzL24yOXZiODNnOG9pZ0M5M3U5M2tLaDRQRjRrSVZoRHdiTUdCQUtEdDk0
bXY2bXpRNEptM253Sm1hT2cxLzJLNnVJRm9hRkw5VE42anh1QWRVbjlDU0lCdkJVb2lpNlhLNGpS
NDV3SEpmTDVXWm5aM0VTRVVWUjFXb1Y1STBrU2JCSnhIM2dhWVFmRUxib1U0ZHBkSFIwQkFLQlJD
TFIwZEVCL2dhaEdKMTN1QlVnSGtDbDErdkZlVHBZUHR3Y3JyVmNMbU5EcnFxcSs1UWtnVWlVU1RR
QkdWSmZxT0VCSldNRXVxNmo3WVJsV1ZRRUVIV3hzY25uOHlGZW8yeUt3STN0ZDNEOUxNdWk1TjdW
MVJVS2hURFZlcjNlMzkrL3NySVNDb1VRMEN1VkNud3Z5akN3VEhSaDRZUVpNdUJhclZZdWwrR3Vr
UjRCaXJHays1eXg4T3FHcFNCTGRJTzJsSTJRU2VQd1JIRGsyR3hHS0VhZzNMMjl2VWdrZ3YzdGlP
TW9oSUVRT25IaXhDdXZ2REk1T1luSkFFczFtODNsNWVYZi8vM2ZSeGMvOWtZejVtR0IxdVUyVE1y
Yk1Edkt5RHRrSThjKzNMRU8zUW9BU04yUzNCVGZNY3l5RDhxdnc4UERITWMxbTgzUFB2dE1VUlFJ
cEZxdGxzdGxOSnpCMTQyT2puNzk2MTgvY2VJRVdsWW84M1JSR0RreWI5bzhkYlJTcVdDbDRINFFo
QWdZb0N5SGFtS0RyYXFxZHJzZFo2dWdTd05OYWFCT2RGMW55YXlzQUFBT2pVemJlUHBVVlpMNENJ
SXdNREFBYzRkRHl1VnlPTDRaZy9CNFBJMUc0K3paczIrLy9mYk16QXoyOTFKbWZ3TWtROElBWUdx
dFZydDI3UnA4SThkeGJyZmI0WERVYWpYRVF6aG4yandZRmFFSXQ0TG5CeGpBTzNCQ05wdnQ4LzRR
emRMVEFuUmlqVHlVdVcrTHNQMmdaSHA2ZWhDeWZ2akRIM3E5M2c4KytBRE5TbjYvSDI0Z0hvKy8v
ZmJidi9FYnY2RnBHallpWXc4YlVTSlZWUUgwVUR5MjIrM1piRFlhaldKZkdFVlJyTGxOQkg5SjJR
YjJSbEFYWTFhck1EM01ncFJHV0tnZlpTbmRXWFdZZXBxSnhTNWNHRWt3R0F3R2c0Wmg4RHgvK3ZU
cHZyNCtwOVA1Ny8vKzc2QmtCRUhvN3U0K2QrN2M4ZVBIRGNQWTJkbkJRWENLb29BRVFFdU0zVzVI
a3FucmVxUFJlUGp3WVRxZFJpajIrWHpZSTRGMGp6WUpHb1JvWkVpNnJnTXFJQkJnSWRydGRxRlFN
RXp1NS84REpjK2NVY2hkVERzQUFBQUFTVVZPUks1Q1lJST0iCisgICAgMSA6ICJiYXNlNjQiCiB9
CiBSVU5OSU5HIFRFU1Q6IGV4dGVuc2lvbl90ZXN0UmVzb3VyY2VOb3RpZmljYXRpb24KIFJlc291
cmNlIGZpbmlzaGVkOiAuLi4vTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMtcmVzb3Vy
Y2VzLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zLXJl
c291cmNlcy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMtcmVzb3VyY2Vz
Lmh0bWwKaW5kZXggMDJmMzNhMi4uMDQ2MDg2ZiAxMDA3NTUKLS0tIGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2V4dGVuc2lvbnMtcmVzb3VyY2VzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2V4dGVuc2lvbnMtcmVzb3VyY2VzLmh0bWwKQEAgLTE0LDQ0ICsxNCwyNSBAQCBwIHsgZm9u
dC1mYW1pbHk6ICd0ZXN0JzsgfQogPHNjcmlwdCBzcmM9ImV4dGVuc2lvbnMtdGVzdC5qcyI+PC9z
Y3JpcHQ+CiA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CiAKLWZ1bmN0aW9uIGV4dGVu
c2lvbl90ZXN0R2V0QWxsUmVzb3VyY2VzKG5leHRUZXN0KQorZnVuY3Rpb24gZXh0ZW5zaW9uX3Rl
c3RHZXRIQVIobmV4dFRlc3QpCiB7Ci0gICAgZnVuY3Rpb24gY29tcGFyZVJlc291cmNlcyhhLCBi
KQorICAgIGZ1bmN0aW9uIGNvbXBhcmVFbnRyaWVzKGEsIGIpCiAgICAgewotICAgICAgICByZXR1
cm4gYS5oYXIucmVxdWVzdC51cmwudG9Mb3dlckNhc2UoKS5sb2NhbGVDb21wYXJlKGIuaGFyLnJl
cXVlc3QudXJsLnRvTG93ZXJDYXNlKCkpOworICAgICAgICByZXR1cm4gYS5yZXF1ZXN0LnVybC50
b0xvd2VyQ2FzZSgpLmxvY2FsZUNvbXBhcmUoYi5yZXF1ZXN0LnVybC50b0xvd2VyQ2FzZSgpKTsK
ICAgICB9CiAKLSAgICBmdW5jdGlvbiBvblJlc291cmNlKHJlc3VsdCkKKyAgICBmdW5jdGlvbiBv
bkhBUihyZXN1bHQpCiAgICAgewotICAgICAgICB2YXIgcmVzb3VyY2VzID0gcmVzdWx0LnNvcnQo
Y29tcGFyZVJlc291cmNlcyk7CisgICAgICAgIHJlc3VsdC5lbnRyaWVzLnNvcnQoY29tcGFyZUVu
dHJpZXMpOwogCi0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVzb3VyY2VzLmxlbmd0aDsg
KytpKQotICAgICAgICAgICAgb3V0cHV0KCJyZXNvdXJjZTogIiArIHJlc291cmNlc1tpXS5oYXIu
cmVxdWVzdC51cmwucmVwbGFjZSgvLiooKFwvW14vXSopezN9JCkvLCIuLi4kMSIpICsgIiwgdHlw
ZTogIiArIHJlc291cmNlc1tpXS50eXBlKTsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBy
ZXN1bHQuZW50cmllcy5sZW5ndGg7ICsraSkKKyAgICAgICAgICAgIG91dHB1dCgicmVzb3VyY2U6
ICIgKyByZXN1bHQuZW50cmllc1tpXS5yZXF1ZXN0LnVybC5yZXBsYWNlKC8uKigoXC9bXi9dKil7
M30kKS8sIi4uLiQxIikpOwogICAgIH0KICAgICBleHRlbnNpb25fZG9YSFIoZnVuY3Rpb24oKSB7
Ci0gICAgICAgIHdlYkluc3BlY3Rvci5yZXNvdXJjZXMuZ2V0QWxsKGNhbGxiYWNrQW5kTmV4dFRl
c3Qob25SZXNvdXJjZSwgbmV4dFRlc3QpKTsKKyAgICAgICAgd2ViSW5zcGVjdG9yLnJlc291cmNl
cy5nZXRIQVIoY2FsbGJhY2tBbmROZXh0VGVzdChvbkhBUiwgbmV4dFRlc3QpKTsKICAgICB9KTsK
IH0KIAotZnVuY3Rpb24gZXh0ZW5zaW9uX3Rlc3RHZXRJbnZhbGlkUmVzb3VyY2UobmV4dFRlc3Qp
Ci17Ci0gICAgZnVuY3Rpb24gb25SZXNvdXJjZShyZXN1bHQpCi0gICAgewotICAgICAgICBvdXRw
dXQoIkF0dGVtcHRlZCB0byByZXRyaWV2ZSBpbnZhbGlkIHJlc291cmNlOiAiICsgSlNPTi5zdHJp
bmdpZnkocmVzdWx0KSk7Ci0gICAgfQotICAgIHdlYkluc3BlY3Rvci5yZXNvdXJjZXMuZ2V0KDIx
Mjg1MDYsIGNhbGxiYWNrQW5kTmV4dFRlc3Qob25SZXNvdXJjZSwgbmV4dFRlc3QpKTsKLX0KLQot
ZnVuY3Rpb24gZXh0ZW5zaW9uX3Rlc3RHZXRQYWdlVGltaW5ncyhuZXh0VGVzdCkKLXsKLSAgICBm
dW5jdGlvbiBvblRpbWluZ3MocmVzdWx0KQotICAgIHsKLSAgICAgICAgb3V0cHV0KCJHb3QgY2Fs
bGJhY2sgZnJvbSBnZXRQYWdlVGltaW5ncywgcGFnZVRpbWluZ3MgZHVtcCBmb2xsb3dzIik7Ci0g
ICAgICAgIGR1bXBPYmplY3QocmVzdWx0LCB7IG9uQ29udGVudExvYWQ6IDEsIG9uTG9hZDogMSB9
KTsKLSAgICB9Ci0gICAgd2ViSW5zcGVjdG9yLnJlc291cmNlcy5nZXRQYWdlVGltaW5ncyhjYWxs
YmFja0FuZE5leHRUZXN0KG9uVGltaW5ncywgbmV4dFRlc3QpKTsKLX0KLQogZnVuY3Rpb24gZG9Y
SFIoKQogewogICAgIHZhciB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKQEAgLTYxLDE0ICs0
MiwxNCBAQCBmdW5jdGlvbiBkb1hIUigpCiAKIGZ1bmN0aW9uIGV4dGVuc2lvbl9kb1hIUihjYWxs
YmFjaykKIHsKLSAgICB3ZWJJbnNwZWN0b3IuaW5zcGVjdGVkV2luZG93LmV2YWx1YXRlKCJkb1hI
UigpIiwgY2FsbGJhY2spOworICAgIHdlYkluc3BlY3Rvci5pbnNwZWN0ZWRXaW5kb3cuZXZhbCgi
ZG9YSFIoKSIsIGNhbGxiYWNrKTsKIH0KIAogZnVuY3Rpb24gZXh0ZW5zaW9uX3Rlc3RSZXNvdXJj
ZU5vdGlmaWNhdGlvbihuZXh0VGVzdCkKIHsKICAgICBmdW5jdGlvbiBvblJlc291cmNlRmluaXNo
ZWQocmVzb3VyY2UpCiAgICAgewotICAgICAgICBvdXRwdXQoIlJlc291cmNlIGZpbmlzaGVkOiAi
ICsgcmVzb3VyY2UuaGFyLnJlcXVlc3QudXJsLnJlcGxhY2UoLy4qKChcL1teL10qKXszfSQpLywi
Li4uJDEiKSk7CisgICAgICAgIG91dHB1dCgiUmVzb3VyY2UgZmluaXNoZWQ6ICIgKyByZXNvdXJj
ZS5yZXF1ZXN0LnVybC5yZXBsYWNlKC8uKigoXC9bXi9dKil7M30kKS8sIi4uLiQxIikpOwogICAg
IH0KIAogICAgIHdlYkluc3BlY3Rvci5yZXNvdXJjZXMub25GaW5pc2hlZC5hZGRMaXN0ZW5lcihj
YWxsYmFja0FuZE5leHRUZXN0KG9uUmVzb3VyY2VGaW5pc2hlZCwgbmV4dFRlc3QpKTsKQEAgLTc3
LDQ0ICs1OCw0NSBAQCBmdW5jdGlvbiBleHRlbnNpb25fdGVzdFJlc291cmNlTm90aWZpY2F0aW9u
KG5leHRUZXN0KQogCiBmdW5jdGlvbiBleHRlbnNpb25fZ2V0UmVzb3VyY2VCeVVybCh1cmxzLCBj
YWxsYmFjaykKIHsKLSAgICBmdW5jdGlvbiBvbkdvdFJlc291cmNlcyhyZXNwb25zZSkKKyAgICBm
dW5jdGlvbiBvbkhBUihyZXNwb25zZSkKICAgICB7Ci0gICAgICAgIHZhciBpZHMgPSBbXTsKLSAg
ICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZXNwb25zZS5sZW5ndGg7ICsraSkgeworICAgICAg
ICB2YXIgZW50cmllcyA9IHJlc3BvbnNlLmVudHJpZXM7CisgICAgICAgIGZvciAodmFyIGkgPSAw
OyBpIDwgZW50cmllcy5sZW5ndGg7ICsraSkgewogICAgICAgICAgICAgZm9yICh2YXIgdXJsID0g
MDsgdXJsIDwgdXJscy5sZW5ndGg7ICsrdXJsKSB7Ci0gICAgICAgICAgICAgICAgaWYgKHVybHNb
dXJsXS50ZXN0KHJlc3BvbnNlW2ldLmhhci5yZXF1ZXN0LnVybCkpCi0gICAgICAgICAgICAgICAg
ICAgIGlkcy5wdXNoKHJlc3BvbnNlW2ldLmlkKTsKKyAgICAgICAgICAgICAgICBpZiAodXJsc1t1
cmxdLnRlc3QoZW50cmllc1tpXS5yZXF1ZXN0LnVybCkpIHsKKyAgICAgICAgICAgICAgICAgICAg
Y2FsbGJhY2soZW50cmllc1tpXSk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KLSAgICAgICAgY2FsbGJhY2so
aWRzKTsKICAgICB9Ci0gICAgd2ViSW5zcGVjdG9yLnJlc291cmNlcy5nZXRBbGwob25Hb3RSZXNv
dXJjZXMpOworICAgIHdlYkluc3BlY3Rvci5yZXNvdXJjZXMuZ2V0SEFSKG9uSEFSKTsKIH0KIAot
ZnVuY3Rpb24gZXh0ZW5zaW9uX29uUmVzb3VyY2VCb2RpZXMocmVzcG9uc2UpCitmdW5jdGlvbiBl
eHRlbnNpb25fb25SZXNvdXJjZUJvZHkoY29udGVudCwgZW5jb2RpbmcpCiB7Ci0gICAgZnVuY3Rp
b24gY29tcGFyZUJvZGllcyhhLCBiKQotICAgIHsKLSAgICAgICAgcmV0dXJuICgoYS5yZXNwb25z
ZSAmJiBhLnJlc3BvbnNlLmNvbnRlbnQpIHx8ICIiKS5sb2NhbGVDb21wYXJlKChiLnJlc3BvbnNl
ICYmIGIucmVzcG9uc2UuY29udGVudCkgfHwgIiIpOwotICAgIH0KLSAgICBkdW1wT2JqZWN0KHJl
c3BvbnNlLCB7IGlkOiAxIH0pOworICAgIGR1bXBPYmplY3QoQXJyYXkucHJvdG90eXBlLnNsaWNl
LmNhbGwoYXJndW1lbnRzKSk7CiB9CiAKIGZ1bmN0aW9uIGV4dGVuc2lvbl90ZXN0R2V0UmVzb3Vy
Y2VDb250ZW50KG5leHRUZXN0KQogewotICAgIGV4dGVuc2lvbl9nZXRSZXNvdXJjZUJ5VXJsKFsv
YXVkaXRzLXN0eWxlMS5jc3MkL10sIGZ1bmN0aW9uKGlkcykgewotICAgICAgICB3ZWJJbnNwZWN0
b3IucmVzb3VyY2VzLmdldENvbnRlbnQoaWRzWzBdLCBjYWxsYmFja0FuZE5leHRUZXN0KGV4dGVu
c2lvbl9vblJlc291cmNlQm9kaWVzLCBuZXh0VGVzdCkpOworICAgIGV4dGVuc2lvbl9nZXRSZXNv
dXJjZUJ5VXJsKFsvYXVkaXRzLXN0eWxlMS5jc3MkL10sIGZ1bmN0aW9uKHJlc291cmNlKSB7Cisg
ICAgICAgIHJlc291cmNlLmdldENvbnRlbnQoY2FsbGJhY2tBbmROZXh0VGVzdChleHRlbnNpb25f
b25SZXNvdXJjZUJvZHksIG5leHRUZXN0KSk7CiAgICAgfSk7CiB9CiAKLWZ1bmN0aW9uIGV4dGVu
c2lvbl90ZXN0R2V0UmVzb3VyY2VDb250ZW50KG5leHRUZXN0KQorZnVuY3Rpb24gZXh0ZW5zaW9u
X3Rlc3RHZXRSZXNvdXJjZUNvbnRlbnRFbmNvZGVkKG5leHRUZXN0KQogewotICAgIGV4dGVuc2lv
bl9nZXRSZXNvdXJjZUJ5VXJsKFsvYWJlLnBuZyQvLCAvbWlzc2luZy1pbWFnZS5wbmckLywgL2F1
ZGl0cy1zdHlsZTEuY3NzJC8gXSwgZnVuY3Rpb24oaWRzKSB7Ci0gICAgICAgIGlkcy5wdXNoKDIx
MjY1MDYpOyAvLyBOb24tZXhpc3RlbnQgcmVzb3VyY2UgaWQuCi0gICAgICAgIHdlYkluc3BlY3Rv
ci5yZXNvdXJjZXMuZ2V0Q29udGVudChpZHMsIGNhbGxiYWNrQW5kTmV4dFRlc3QoZXh0ZW5zaW9u
X29uUmVzb3VyY2VCb2RpZXMsIG5leHRUZXN0KSk7CisgICAgZXh0ZW5zaW9uX2dldFJlc291cmNl
QnlVcmwoWy9hYmUucG5nJC8gXSwgZnVuY3Rpb24ocmVzb3VyY2UpIHsKKyAgICAgICAgcmVzb3Vy
Y2UuZ2V0Q29udGVudChjYWxsYmFja0FuZE5leHRUZXN0KGV4dGVuc2lvbl9vblJlc291cmNlQm9k
eSwgbmV4dFRlc3QpKTsKICAgICB9KTsKIH0KIAordmFyIHRlc3QgPSBmdW5jdGlvbigpCit7Cisg
ICAgSW5zcGVjdG9yVGVzdC5yZWxvYWRQYWdlKEluc3BlY3RvclRlc3QucnVuRXh0ZW5zaW9uVGVz
dHMpOworfQorCiA8L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zLXRlc3QuanMgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy10ZXN0LmpzCmluZGV4IGE1MWY3MTIuLjc5
Yzg0OGQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zLXRlc3Qu
anMKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMtdGVzdC5qcwpAQCAtMjEs
NDMgKzIxLDUwIEBAIEluc3BlY3RvclRlc3QuZGlzcGF0Y2hPbk1lc3NhZ2UgPSBmdW5jdGlvbiht
ZXNzYWdlSWQsIGNhbGxiYWNrLCByZWN1cnJpbmcpCiB7CiAgICAgZnVuY3Rpb24gb25NZXNzYWdl
KGV2ZW50KQogICAgIHsKLSAgICAgICAgaWYgKGV2ZW50LmRhdGEgIT09IG1lc3NhZ2VJZCkKKyAg
ICAgICAgaWYgKHR5cGVvZihldmVudC5kYXRhKSAhPT0gIm9iamVjdCIgfHwgZXZlbnQuZGF0YS5j
b21tYW5kICE9PSBtZXNzYWdlSWQpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIGlmICgh
cmVjdXJyaW5nKQogICAgICAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1lc3Nh
Z2UiLCBvbk1lc3NhZ2UsIGZhbHNlKTsKLSAgICAgICAgY2FsbGJhY2soKTsKLSAgICAgICAgaWYg
KGV2ZW50LnBvcnRzICYmIGV2ZW50LnBvcnRzWzBdKQotICAgICAgICAgICAgZXZlbnQucG9ydHNb
MF0ucG9zdE1lc3NhZ2UoIiIpOworICAgICAgICB2YXIgcG9ydCA9IGV2ZW50LnBvcnRzICYmIGV2
ZW50LnBvcnRzWzBdOworICAgICAgICBpZiAoY2FsbGJhY2soZXZlbnQuZGF0YSwgcG9ydCkgJiYg
cG9ydCkKKyAgICAgICAgICAgIHBvcnQucG9zdE1lc3NhZ2UoIiIpOwogICAgIH0KICAgICB3aW5k
b3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIG9uTWVzc2FnZSwgZmFsc2UpOwogfQogCiBJ
bnNwZWN0b3JUZXN0LnJ1bkV4dGVuc2lvblRlc3RzID0gZnVuY3Rpb24oKQogewotICAgIGZ1bmN0
aW9uIGFkZEV4dGVuc2lvbihjYWxsYmFjaykKLSAgICB7Ci0gICAgICAgIEluamVjdGVkU2NyaXB0
QWNjZXNzLmdldERlZmF1bHQoKS5ldmFsdWF0ZSgibG9jYXRpb24uaHJlZiIsICJjb25zb2xlIiwg
ZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAgICAgICAgICB2YXIgZXh0ZW5zaW9uVVJMID0gcmVzdWx0
LmRlc2NyaXB0aW9uLnJlcGxhY2UoL1wvW14vXSokLywgIi9yZXNvdXJjZXMvZXh0ZW5zaW9uLW1h
aW4uaHRtbCIpOwotICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmFkZEV4dGVuc2lvbnMoW3sgc3Rh
cnRQYWdlOiBleHRlbnNpb25VUkwgfV0pOwotICAgICAgICAgICAgaWYgKGNhbGxiYWNrKQotICAg
ICAgICAgICAgICAgIGNhbGxiYWNrKCk7Ci0gICAgICAgIH0pOwotICAgIH0gCi0gICAgSW5zcGVj
dG9yVGVzdC5kaXNwYXRjaE9uTWVzc2FnZSgiZXh0ZW5zaW9uLXRlc3RzLWRvbmUiLCBmdW5jdGlv
bigpIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKKyAgICBJbmplY3Rl
ZFNjcmlwdEFjY2Vzcy5nZXREZWZhdWx0KCkuZXZhbHVhdGUoImxvY2F0aW9uLmhyZWYiLCAiY29u
c29sZSIsIGZ1bmN0aW9uKHJlc3VsdCkgeworICAgICAgICB2YXIgZXh0ZW5zaW9uVVJMID0gcmVz
dWx0LmRlc2NyaXB0aW9uLnJlcGxhY2UoL1wvW14vXSokLywgIi9yZXNvdXJjZXMvZXh0ZW5zaW9u
LW1haW4uaHRtbCIpOworICAgICAgICBXZWJJbnNwZWN0b3IuYWRkRXh0ZW5zaW9ucyhbeyBzdGFy
dFBhZ2U6IGV4dGVuc2lvblVSTCB9XSk7CiAgICAgfSk7Ci0gICAgSW5zcGVjdG9yVGVzdC5yZWxv
YWRQYWdlSWZOZWVkZWQoYWRkRXh0ZW5zaW9uKTsKIH0KIAotSW5zcGVjdG9yVGVzdC5kdW1wU2lk
ZWJhckNvbnRlbnQgPSBmdW5jdGlvbigpCitJbnNwZWN0b3JUZXN0LmRpc3BhdGNoT25NZXNzYWdl
KCJleHRlbnNpb24tdGVzdHMtZG9uZSIsIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0LCB0cnVl
KTsKKworZnVuY3Rpb24gZXh0ZW5zaW9uT3V0cHV0KG1lc3NhZ2UpCit7CisgICAgSW5zcGVjdG9y
VGVzdC5hZGRSZXN1bHQobWVzc2FnZS50ZXh0KTsKK30KK0luc3BlY3RvclRlc3QuZGlzcGF0Y2hP
bk1lc3NhZ2UoIm91dHB1dCIsIGV4dGVuc2lvbk91dHB1dCwgdHJ1ZSk7CisKK2Z1bmN0aW9uIGR1
bXBTaWRlYmFyQ29udGVudCgpCiB7Ci0gICAgdmFyIHNpZGViYXJQYW5lcyA9IFdlYkluc3BlY3Rv
ci5wYW5lbHMuc2NyaXB0cy5zaWRlYmFyUGFuZXM7CisgICAgdmFyIHNpZGViYXJQYW5lcyA9IFdl
Ykluc3BlY3Rvci5wYW5lbHMuZWxlbWVudHMuc2lkZWJhclBhbmVzOwogICAgIC8vIHRoZSBzaWRl
YmFyIG9mIGludGVyZXN0IGlzIHByZXN1bWVkIHRvIGFsd2F5cyBiZSBsYXN0LgogICAgIHZhciBz
aWRlYmFyID0gc2lkZWJhclBhbmVzW09iamVjdC5rZXlzKHNpZGViYXJQYW5lcykucG9wKCldOwog
ICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJTaWRlYmFyIGNvbnRlbnQ6ICIgKyBzaWRlYmFy
LmJvZHlFbGVtZW50LnRleHRDb250ZW50KTsKKyAgICByZXR1cm4gdHJ1ZTsKIH0KK0luc3BlY3Rv
clRlc3QuZGlzcGF0Y2hPbk1lc3NhZ2UoImR1bXAtc2lkZWJhci1jb250ZW50IiwgZHVtcFNpZGVi
YXJDb250ZW50LCB0cnVlKTsKIAotSW5zcGVjdG9yVGVzdC5kaXNwYXRjaE9uTWVzc2FnZSgiZHVt
cC1zaWRlYmFyLWNvbnRlbnQiLCBJbnNwZWN0b3JUZXN0LmR1bXBTaWRlYmFyQ29udGVudCwgdHJ1
ZSk7CitmdW5jdGlvbiByZWxvYWRQYWdlKGRhdGEsIHBvcnQpCit7CisgICAgSW5zcGVjdG9yVGVz
dC5yZWxvYWRQYWdlKGZ1bmN0aW9uKCkgeworICAgICAgICBwb3J0LnBvc3RNZXNzYWdlKCIiKTsK
KyAgICB9KTsKK30KK0luc3BlY3RvclRlc3QuZGlzcGF0Y2hPbk1lc3NhZ2UoInJlbG9hZCIsIHJl
bG9hZFBhZ2UsIHRydWUpOwogCiB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9leHRlbnNpb25zLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy5odG1s
CmluZGV4IDA4ZjAyMzguLjBlZTI5MTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9leHRlbnNpb25zLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMu
aHRtbApAQCAtMTEsNyArMTEsNyBAQCBmdW5jdGlvbiBleHRlbnNpb25fdGVzdENyZWF0ZVBhbmVs
KG5leHRUZXN0KQogICAgICAgICBvdXRwdXQoIlBhbmVsIGNyZWF0ZWQiKTsKICAgICAgICAgZHVt
cE9iamVjdChwYW5lbCk7CiAgICAgfQotICAgIHdlYkluc3BlY3Rvci5wYW5lbHMuY3JlYXRlKCJU
ZXN0IFBhbmVsIiwgImV4dGVuc2lvbi1wYW5lbC5odG1sIiwgImV4dGVuc2lvbi1wYW5lbC5wbmci
LCBjYWxsYmFja0FuZE5leHRUZXN0KG9uUGFuZWxDcmVhdGVkLCBuZXh0VGVzdCkpOworICAgIHdl
Ykluc3BlY3Rvci5wYW5lbHMuY3JlYXRlKCJUZXN0IFBhbmVsIiwgImV4dGVuc2lvbi1wYW5lbC5w
bmciLCAiZXh0ZW5zaW9uLXBhbmVsLmh0bWwiLCBjYWxsYmFja0FuZE5leHRUZXN0KG9uUGFuZWxD
cmVhdGVkLCBuZXh0VGVzdCkpOwogICAgIG91dHB1dCgiZG9uZSBjcmVhdGVQYW5lbCIpOwogfQog
CkBAIC0yMiwxMiArMjIsMTIgQEAgZnVuY3Rpb24gZXh0ZW5zaW9uX3Rlc3RDcmVhdGVTaWRlYmFy
KG5leHRUZXN0KQogICAgICAgICBvdXRwdXQoIlNpZGViYXIgY3JlYXRlZCIpOwogICAgICAgICBk
dW1wT2JqZWN0KHNpZGViYXIpOwogICAgIH0KLSAgICB3ZWJJbnNwZWN0b3IucGFuZWxzLnNjcmlw
dHMuY3JlYXRlU2lkZWJhclBhbmUoIlRlc3QgU2lkZWJhciIsICJleHRlbnNpb24tc2lkZWJhci5o
dG1sIiwgY2FsbGJhY2tBbmROZXh0VGVzdChvblNpZGViYXJDcmVhdGVkLCBuZXh0VGVzdCkpOwor
ICAgIHdlYkluc3BlY3Rvci5wYW5lbHMuZWxlbWVudHMuY3JlYXRlU2lkZWJhclBhbmUoIlRlc3Qg
U2lkZWJhciIsICJleHRlbnNpb24tc2lkZWJhci5odG1sIiwgY2FsbGJhY2tBbmROZXh0VGVzdChv
blNpZGViYXJDcmVhdGVkLCBuZXh0VGVzdCkpOwogfQogCiBmdW5jdGlvbiBleHRlbnNpb25fZHVt
cFNpZGViYXJDb250ZW50KG5leHRUZXN0KQogewotICAgIGRpc3BhdGNoT25Gcm9udGVuZCgiZHVt
cC1zaWRlYmFyLWNvbnRlbnQiLCBuZXh0VGVzdCk7CisgICAgZGlzcGF0Y2hPbkZyb250ZW5kKHsg
Y29tbWFuZDogImR1bXAtc2lkZWJhci1jb250ZW50IiB9LCBuZXh0VGVzdCk7CiB9CiAKIGZ1bmN0
aW9uIGV4dGVuc2lvbl90ZXN0RXh0ZW5zaW9uV2F0Y2hTaWRlYmFyT2JqZWN0KG5leHRUZXN0KQpA
QCAtNDgsNyArNDgsNyBAQCBmdW5jdGlvbiBleHRlbnNpb25fdGVzdEV4dGVuc2lvbldhdGNoU2lk
ZWJhck9iamVjdChuZXh0VGVzdCkKICAgICAgICAgICAgIGY3OiA0MgogICAgICAgICB9KTsKICAg
ICB9Ci0gICAgd2ViSW5zcGVjdG9yLnBhbmVscy5zY3JpcHRzLmNyZWF0ZVdhdGNoRXhwcmVzc2lv
blNpZGViYXJQYW5lKCJXYXRjaCBUZXN0OiBPYmplY3QiLCBvblNpZGViYXJDcmVhdGVkKTsKKyAg
ICB3ZWJJbnNwZWN0b3IucGFuZWxzLmVsZW1lbnRzLmNyZWF0ZVdhdGNoRXhwcmVzc2lvblNpZGVi
YXJQYW5lKCJXYXRjaCBUZXN0OiBPYmplY3QiLCBvblNpZGViYXJDcmVhdGVkKTsKIH0KIAogZnVu
Y3Rpb24gZXh0ZW5zaW9uX3Rlc3RFeHRlbnNpb25XYXRjaFNpZGViYXJFeHByZXNzaW9uKG5leHRU
ZXN0KQpAQCAtNzQsNyArNzQsNyBAQCBmdW5jdGlvbiBleHRlbnNpb25fdGVzdEV4dGVuc2lvbldh
dGNoU2lkZWJhckV4cHJlc3Npb24obmV4dFRlc3QpCiAgICAgICAgIH0KICAgICAgICAgc2lkZWJh
ci5zZXRFeHByZXNzaW9uKCIoIiArIGV4cHJlc3Npb24udG9TdHJpbmcoKSArICIpKCk7IiwgInRp
dGxlIik7CiAgICAgfQotICAgIHdlYkluc3BlY3Rvci5wYW5lbHMuc2NyaXB0cy5jcmVhdGVXYXRj
aEV4cHJlc3Npb25TaWRlYmFyUGFuZSgiV2F0Y2ggVGVzdDogRXhwcmVzc2lvbiIsIG9uU2lkZWJh
ckNyZWF0ZWQpOworICAgIHdlYkluc3BlY3Rvci5wYW5lbHMuZWxlbWVudHMuY3JlYXRlV2F0Y2hF
eHByZXNzaW9uU2lkZWJhclBhbmUoIldhdGNoIFRlc3Q6IEV4cHJlc3Npb24iLCBvblNpZGViYXJD
cmVhdGVkKTsKIH0KIAogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvcmVzb3VyY2VzL2V4dGVuc2lvbi1tYWluLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
cmVzb3VyY2VzL2V4dGVuc2lvbi1tYWluLmh0bWwKaW5kZXggODJkMTdjYy4uMWQwYjU0ZSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9leHRlbnNpb24tbWFpbi5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvZXh0ZW5zaW9uLW1haW4u
aHRtbApAQCAtMiwxNCArMiwxMyBAQAogPGhlYWQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90
ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgogPHNjcmlwdCB0eXBl
PSJ0ZXh0L2phdmFzY3JpcHQiPgotZnVuY3Rpb24gb3V0cHV0KG1lc3NhZ2UsIGNhbGxiYWNrKQor
ZnVuY3Rpb24gb3V0cHV0KG1lc3NhZ2UpCiB7Ci0gICAgd2ViSW5zcGVjdG9yLmluc3BlY3RlZFdp
bmRvdy5ldmFsdWF0ZSgib3V0cHV0KHVuZXNjYXBlKCciICsgZXNjYXBlKG1lc3NhZ2UpICsgIicp
KTsiLCBjYWxsYmFjayk7CisgICAgdG9wLnBvc3RNZXNzYWdlKHsgY29tbWFuZDogIm91dHB1dCIs
IHRleHQ6IG1lc3NhZ2UgfSwgIioiKTsKIH0KIAogb3V0cHV0KCJTdGFydGVkIGV4dGVuc2lvbi4i
KTsKIDwvc2NyaXB0PgotCiA8c2NyaXB0IHNyYz0iZXh0ZW5zaW9uLW1haW4uanMiPjwvc2NyaXB0
PgogPC9oZWFkPgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Jl
c291cmNlcy9leHRlbnNpb24tbWFpbi5qcyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9yZXNvdXJj
ZXMvZXh0ZW5zaW9uLW1haW4uanMKaW5kZXggZDBmMWMyZS4uZTk0YmQyMyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9leHRlbnNpb24tbWFpbi5qcworKysgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2V4dGVuc2lvbi1tYWluLmpzCkBAIC0yLDEw
ICsyLDEwIEBAIGZ1bmN0aW9uIGZldGNoVGVzdHMoKQogewogICAgIGZ1bmN0aW9uIGNhbGxiYWNr
KHJlc3VsdCkKICAgICB7Ci0gICAgICAgICB3aW5kb3cuZXZhbChyZXN1bHQudmFsdWUpOworICAg
ICAgICAgd2luZG93LmV2YWwocmVzdWx0KTsKICAgICAgICAgIHJ1blRlc3RzKCk7CiAgICAgfQot
ICAgIHdlYkluc3BlY3Rvci5pbnNwZWN0ZWRXaW5kb3cuZXZhbHVhdGUoImV4dGVuc2lvbkZ1bmN0
aW9ucygpIiwgY2FsbGJhY2spOworICAgIHdlYkluc3BlY3Rvci5pbnNwZWN0ZWRXaW5kb3cuZXZh
bCgiZXh0ZW5zaW9uRnVuY3Rpb25zKCkiLCBjYWxsYmFjayk7CiB9CiAKIGZ1bmN0aW9uIHJ1blRl
c3RzKCkKQEAgLTI1LDkgKzI1LDggQEAgZnVuY3Rpb24gcnVuVGVzdHMoKQogCiBmdW5jdGlvbiBv
blRlc3RzRG9uZSgpCiB7Ci0gICAgb3V0cHV0KCJBbGwgdGVzdHMgZG9uZS4iLCBmdW5jdGlvbigp
IHsKLSAgICAgICAgdG9wLnBvc3RNZXNzYWdlKCJleHRlbnNpb24tdGVzdHMtZG9uZSIsIioiKTsK
LSAgICB9KTsKKyAgICBvdXRwdXQoIkFsbCB0ZXN0cyBkb25lLiIpOworICAgIHRvcC5wb3N0TWVz
c2FnZSh7IGNvbW1hbmQ6ICJleHRlbnNpb24tdGVzdHMtZG9uZSIgfSwgIioiKTsKIH0KIAogZnVu
Y3Rpb24gcnVuVGVzdCh0ZXN0LCBuYW1lKQpAQCAtNDksNyArNDgsOCBAQCBmdW5jdGlvbiBkaXNw
YXRjaE9uRnJvbnRlbmQobWVzc2FnZSwgY2FsbGJhY2spCiAgICAgfQogICAgIHZhciBjaGFubmVs
ID0gbmV3IE1lc3NhZ2VDaGFubmVsKCk7CiAgICAgY2hhbm5lbC5wb3J0MS5zdGFydCgpOwotICAg
IGNoYW5uZWwucG9ydDEuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIGNhbGxiYWNrV3JhcHBl
ciwgZmFsc2UpOworICAgIGlmIChjYWxsYmFjaykKKyAgICAgICAgY2hhbm5lbC5wb3J0MS5hZGRF
dmVudExpc3RlbmVyKCJtZXNzYWdlIiwgY2FsbGJhY2tXcmFwcGVyLCBmYWxzZSk7CiAgICAgdG9w
LnBvc3RNZXNzYWdlKG1lc3NhZ2UsIFsgY2hhbm5lbC5wb3J0MiBdLCAiKiIpOwogfQogCmRpZmYg
LS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDdiODcy
MmQuLjkzMTIwNmIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsNTQgQEAKKzIwMTAtMTEtMjQgIEFuZHJleSBLb3N5YWtvdiAg
PGNhc2VxQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBleHRlbnNpb24gQVBJIGNsZWFudXAKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUwMDE5CisKKyAgICAg
ICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzUGFuZWwuanM6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuRWxlbWVudHNQYW5lbC50aGlzLnRyZWVPdXRsaW5lLmZvY3VzZWROb2RlQ2hhbmdl
ZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRWxlbWVudHNQYW5lbCk6CisgICAgICAgICogaW5z
cGVjdG9yL2Zyb250LWVuZC9FeHRlbnNpb25BUEkuanM6IFNlZSBidWcgZm9yIHN1bW1hcnkgb2Yg
ZXh0ZW5zaW9uIEFQSSBjaGFuZ2VzLgorICAgICAgICAoV2ViSW5zcGVjdG9yLmluamVjdGVkRXh0
ZW5zaW9uQVBJLlJlc291cmNlcy5yZXNvdXJjZURpc3BhdGNoKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5pbmplY3RlZEV4dGVuc2lvbkFQSSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuaW5qZWN0
ZWRFeHRlbnNpb25BUEkuUmVzb3VyY2VzLnByb3RvdHlwZS5nZXRIQVIpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLmluamVjdGVkRXh0ZW5zaW9uQVBJLlJlc291cmNlSW1wbC5wcm90b3R5cGUuZ2V0
Q29udGVudCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuaW5qZWN0ZWRFeHRlbnNpb25BUEkuUGFu
ZWxzLnByb3RvdHlwZS5jcmVhdGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLmluamVjdGVkRXh0
ZW5zaW9uQVBJLlBhbmVsSW1wbCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuaW5qZWN0ZWRFeHRl
bnNpb25BUEkuUGFuZWxXaXRoU2lkZWJhckltcGwpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLmlu
amVjdGVkRXh0ZW5zaW9uQVBJLlBhbmVsV2l0aFNpZGViYXJJbXBsLnByb3RvdHlwZS5jcmVhdGVT
aWRlYmFyUGFuZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuaW5qZWN0ZWRFeHRlbnNpb25BUEku
UGFuZWxXaXRoU2lkZWJhckltcGwucHJvdG90eXBlLmNyZWF0ZVdhdGNoRXhwcmVzc2lvblNpZGVi
YXJQYW5lKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5pbmplY3RlZEV4dGVuc2lvbkFQSS5FbGVt
ZW50c1BhbmVsKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5pbmplY3RlZEV4dGVuc2lvbkFQSS5F
eHRlbnNpb25TaWRlYmFyUGFuZUltcGwucHJvdG90eXBlLnNldEhlaWdodCk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuaW5qZWN0ZWRFeHRlbnNpb25BUEkuQXVkaXRzLnByb3RvdHlwZS5hZGRDYXRl
Z29yeSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuaW5qZWN0ZWRFeHRlbnNpb25BUEkuQXVkaXRD
YXRlZ29yeUltcGwuYXVkaXRSZXN1bHREaXNwYXRjaCk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
aW5qZWN0ZWRFeHRlbnNpb25BUEkuQXVkaXRDYXRlZ29yeUltcGwpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLmluamVjdGVkRXh0ZW5zaW9uQVBJLkF1ZGl0UmVzdWx0SW1wbC5wcm90b3R5cGUuZ2V0
IFNldmVyaXR5KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5pbmplY3RlZEV4dGVuc2lvbkFQSS5J
bnNwZWN0ZWRXaW5kb3cpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLmluamVjdGVkRXh0ZW5zaW9u
QVBJLkluc3BlY3RlZFdpbmRvdy5wcm90b3R5cGUuZXZhbCk6CisgICAgICAgICogaW5zcGVjdG9y
L2Zyb250LWVuZC9FeHRlbnNpb25Db21tb24uanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuY29t
bW9uRXh0ZW5zaW9uU3ltYm9scyk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9FeHRl
bnNpb25TZXJ2ZXIuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRXh0ZW5zaW9uU2VydmVyKToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5FeHRlbnNpb25TZXJ2ZXIucHJvdG90eXBlLm5vdGlmeU9i
amVjdFNlbGVjdGVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FeHRlbnNpb25TZXJ2ZXIucHJv
dG90eXBlLm5vdGlmeVJlc291cmNlRmluaXNoZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkV4
dGVuc2lvblNlcnZlci5wcm90b3R5cGUubm90aWZ5UGFnZUxvYWRlZCk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuRXh0ZW5zaW9uU2VydmVyLnByb3RvdHlwZS5ub3RpZnlQYWdlRE9NQ29udGVudExv
YWRlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRXh0ZW5zaW9uU2VydmVyLnByb3RvdHlwZS5f
b25DcmVhdGVQYW5lbCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRXh0ZW5zaW9uU2VydmVyLnBy
b3RvdHlwZS5fb25SZWxvYWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkV4dGVuc2lvblNlcnZl
ci5wcm90b3R5cGUuX29uR2V0SEFSKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FeHRlbnNpb25T
ZXJ2ZXIucHJvdG90eXBlLl9vbkdldFJlc291cmNlQ29udGVudCk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuRXh0ZW5zaW9uU2VydmVyLnByb3RvdHlwZS5fb25BZGRBdWRpdENhdGVnb3J5KToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5FeHRlbnNpb25TZXJ2ZXIucHJvdG90eXBlLl9idWlsZEV4dGVu
c2lvbkFQSUluamVjdGVkU2NyaXB0KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0hB
UkVudHJ5LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkhBUkxvZyk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuSEFSTG9nLnByb3RvdHlwZS5idWlsZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
SEFSTG9nLnByb3RvdHlwZS5fY29udmVydFJlc291cmNlKToKKyAgICAgICAgKiBpbnNwZWN0b3Iv
ZnJvbnQtZW5kL2luc3BlY3Rvci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5kb21Db250ZW50
RXZlbnRGaXJlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IubG9hZEV2ZW50RmlyZWQpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLmRpZENvbW1pdExvYWQpOgorCiAyMDEwLTExLTIyICBZYWVsIEFo
YXJvbiAgPHlhZWwuYWhhcm9uQG5va2lhLmNvbT4sIENoYW5nIFNodSAgPGNoYW5nLnNodUBub2tp
YS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQW50b25pbyBHb21lcy4KZGlmZiAtLWdpdCBh
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1BhbmVsLmpzIGIvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzUGFuZWwuanMKaW5kZXggNzZjMjJjNS4uNjFiYTMz
ZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzUGFuZWwu
anMKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzUGFuZWwuanMKQEAg
LTU4LDcgKzU4LDcgQEAgV2ViSW5zcGVjdG9yLkVsZW1lbnRzUGFuZWwgPSBmdW5jdGlvbigpCiAK
ICAgICAgICAgaWYgKHRoaXMuX2ZvY3VzZWRET01Ob2RlKSB7CiAgICAgICAgICAgICBJbnNwZWN0
b3JCYWNrZW5kLmFkZEluc3BlY3RlZE5vZGUodGhpcy5fZm9jdXNlZERPTU5vZGUuaWQpOwotICAg
ICAgICAgICAgV2ViSW5zcGVjdG9yLmV4dGVuc2lvblNlcnZlci5ub3RpZnlPYmplY3RTZWxlY3Rl
ZCh0aGlzLnBhbmVsLm5hbWUsICJET01Ob2RlIik7CisgICAgICAgICAgICBXZWJJbnNwZWN0b3Iu
ZXh0ZW5zaW9uU2VydmVyLm5vdGlmeU9iamVjdFNlbGVjdGVkKHRoaXMucGFuZWwubmFtZSk7CiAg
ICAgICAgIH0KICAgICB9OwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvRXh0ZW5zaW9uQVBJLmpzIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lv
bkFQSS5qcwppbmRleCBlNTI2Y2Y1Li4wMjM0OTk0IDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvRXh0ZW5zaW9uQVBJLmpzCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9FeHRlbnNpb25BUEkuanMKQEAgLTEwNCwxMDkgKzEwNCwxMzAgQEAgSW5zcGVjdG9y
RXh0ZW5zaW9uQVBJLnByb3RvdHlwZSA9IHsKIAogZnVuY3Rpb24gUmVzb3VyY2VzKCkKIHsKLSAg
ICB0aGlzLm9uRmluaXNoZWQgPSBuZXcgRXZlbnRTaW5rKCJyZXNvdXJjZS1maW5pc2hlZCIpOwor
ICAgIGZ1bmN0aW9uIHJlc291cmNlRGlzcGF0Y2gocmVxdWVzdCkKKyAgICB7CisgICAgICAgIHZh
ciByZXNvdXJjZSA9IHJlcXVlc3QuYXJndW1lbnRzWzFdOworICAgICAgICByZXNvdXJjZS5fX3By
b3RvX18gPSBuZXcgUmVzb3VyY2UocmVxdWVzdC5hcmd1bWVudHNbMF0pOworICAgICAgICB0aGlz
Ll9maXJlKHJlc291cmNlKTsKKyAgICB9CisgICAgdGhpcy5vbkZpbmlzaGVkID0gbmV3IEV2ZW50
U2luaygicmVzb3VyY2UtZmluaXNoZWQiLCByZXNvdXJjZURpc3BhdGNoKTsKIH0KIAogUmVzb3Vy
Y2VzLnByb3RvdHlwZSA9IHsKLSAgICBnZXRBbGw6IGZ1bmN0aW9uKGNhbGxiYWNrKQotICAgIHsK
LSAgICAgICAgcmV0dXJuIGV4dGVuc2lvblNlcnZlci5zZW5kUmVxdWVzdCh7IGNvbW1hbmQ6ICJn
ZXRSZXNvdXJjZXMiIH0sIGNhbGxiYWNrKTsKLSAgICB9LAotCi0gICAgZ2V0OiBmdW5jdGlvbihp
ZCwgY2FsbGJhY2spCisgICAgZ2V0SEFSOiBmdW5jdGlvbihjYWxsYmFjaykKICAgICB7Ci0gICAg
ICAgIHJldHVybiBleHRlbnNpb25TZXJ2ZXIuc2VuZFJlcXVlc3QoeyBjb21tYW5kOiAiZ2V0UmVz
b3VyY2VzIiwgaWQ6IGlkIH0sIGNhbGxiYWNrKTsKLSAgICB9LAorICAgICAgICBmdW5jdGlvbiBj
YWxsYmFja1dyYXBwZXIocmVzdWx0KQorICAgICAgICB7CisgICAgICAgICAgICB2YXIgZW50cmll
cyA9IChyZXN1bHQgJiYgcmVzdWx0LmVudHJpZXMpIHx8IFtdOworICAgICAgICAgICAgZm9yICh2
YXIgaSA9IDA7IGkgPCBlbnRyaWVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgZW50
cmllc1tpXS5fX3Byb3RvX18gPSBuZXcgUmVzb3VyY2UoZW50cmllc1tpXS5fcmVzb3VyY2VJZCk7
CisgICAgICAgICAgICAgICAgZGVsZXRlIGVudHJpZXNbaV0uX3Jlc291cmNlSWQ7CisgICAgICAg
ICAgICB9CisgICAgICAgICAgICBjYWxsYmFjayhyZXN1bHQpOworICAgICAgICB9CisgICAgICAg
IHJldHVybiBleHRlbnNpb25TZXJ2ZXIuc2VuZFJlcXVlc3QoeyBjb21tYW5kOiAiZ2V0SEFSIiB9
LCBjYWxsYmFjayAmJiBjYWxsYmFja1dyYXBwZXIpOworICAgIH0KK30KIAotICAgIGdldFBhZ2VU
aW1pbmdzOiBmdW5jdGlvbihjYWxsYmFjaykKLSAgICB7Ci0gICAgICAgIHJldHVybiBleHRlbnNp
b25TZXJ2ZXIuc2VuZFJlcXVlc3QoeyBjb21tYW5kOiAiZ2V0UGFnZVRpbWluZ3MiIH0sIGNhbGxi
YWNrKTsKLSAgICB9LAorZnVuY3Rpb24gUmVzb3VyY2VJbXBsKGlkKQoreworICAgIHRoaXMuX2lk
ID0gaWQ7Cit9CiAKLSAgICBnZXRDb250ZW50OiBmdW5jdGlvbihpZHMsIGNhbGxiYWNrKQorUmVz
b3VyY2VJbXBsLnByb3RvdHlwZSA9IHsKKyAgICBnZXRDb250ZW50OiBmdW5jdGlvbihjYWxsYmFj
aykKICAgICB7Ci0gICAgICAgIHJldHVybiBleHRlbnNpb25TZXJ2ZXIuc2VuZFJlcXVlc3QoeyBj
b21tYW5kOiAiZ2V0UmVzb3VyY2VDb250ZW50IiwgaWRzOiBpZHMgfSwgY2FsbGJhY2spOworICAg
ICAgICBmdW5jdGlvbiBjYWxsYmFja1dyYXBwZXIocmVzcG9uc2UpCisgICAgICAgIHsKKyAgICAg
ICAgICAgIGNhbGxiYWNrKHJlc3BvbnNlLmNvbnRlbnQsIHJlc3BvbnNlLmVuY29kaW5nKTsKKyAg
ICAgICAgfQorICAgICAgICBleHRlbnNpb25TZXJ2ZXIuc2VuZFJlcXVlc3QoeyBjb21tYW5kOiAi
Z2V0UmVzb3VyY2VDb250ZW50IiwgaWQ6IHRoaXMuX2lkIH0sIGNhbGxiYWNrICYmIGNhbGxiYWNr
V3JhcHBlcik7CiAgICAgfQotfQotCi12YXIgd2VsbEtub3duUGFuZWxOYW1lcyA9IFsKLSAgICAi
ZWxlbWVudHMiLAotICAgICJzY3JpcHRzIgotXTsKK307CiAKIGZ1bmN0aW9uIFBhbmVscygpCiB7
Ci0gICAgdmFyIHBhbmVscyA9IFtdOworICAgIHZhciBwYW5lbHMgPSB7CisgICAgICAgIGVsZW1l
bnRzOiBuZXcgRWxlbWVudHNQYW5lbCgpCisgICAgfTsKKwogICAgIGZ1bmN0aW9uIHBhbmVsR2V0
dGVyKG5hbWUpCiAgICAgewogICAgICAgICByZXR1cm4gcGFuZWxzW25hbWVdOwogICAgIH0KLQot
ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgd2VsbEtub3duUGFuZWxOYW1lcy5sZW5ndGg7ICsraSkg
ewotICAgICAgICB2YXIgbmFtZSA9IHdlbGxLbm93blBhbmVsTmFtZXNbaV07Ci0gICAgICAgIHBh
bmVsc1tuYW1lXSA9IG5ldyBQYW5lbChuYW1lKTsKLSAgICAgICAgdGhpcy5fX2RlZmluZUdldHRl
cl9fKG5hbWUsIGJpbmQocGFuZWxHZXR0ZXIsIG51bGwsIG5hbWUpKTsKLSAgICB9CisgICAgZm9y
ICh2YXIgcGFuZWwgaW4gcGFuZWxzKQorICAgICAgICB0aGlzLl9fZGVmaW5lR2V0dGVyX18ocGFu
ZWwsIGJpbmQocGFuZWxHZXR0ZXIsIG51bGwsIHBhbmVsKSk7CiB9CiAKIFBhbmVscy5wcm90b3R5
cGUgPSB7Ci0gICAgY3JlYXRlOiBmdW5jdGlvbihsYWJlbCwgcGFnZVVSTCwgaWNvblVSTCwgY2Fs
bGJhY2spCisgICAgY3JlYXRlOiBmdW5jdGlvbih0aXRsZSwgaWNvblVSTCwgcGFnZVVSTCwgY2Fs
bGJhY2spCiAgICAgewogICAgICAgICB2YXIgaWQgPSAiZXh0ZW5zaW9uLXBhbmVsLSIgKyBleHRl
bnNpb25TZXJ2ZXIubmV4dE9iamVjdElkKCk7Ci0gICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrV3Jh
cHBlcihyZXN1bHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGlmIChyZXN1bHQuaXNFcnJvcikK
LSAgICAgICAgICAgICAgICBjYWxsYmFjayhyZXN1bHQpOwotICAgICAgICAgICAgZWxzZSB7Ci0g
ICAgICAgICAgICAgICAgcGFuZWwgPSBuZXcgRXh0ZW5zaW9uUGFuZWwoaWQpOwotICAgICAgICAg
ICAgICAgIGNhbGxiYWNrKHBhbmVsKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQogICAgICAg
ICB2YXIgcmVxdWVzdCA9IHsKICAgICAgICAgICAgIGNvbW1hbmQ6ICJjcmVhdGVQYW5lbCIsCiAg
ICAgICAgICAgICBpZDogaWQsCi0gICAgICAgICAgICBsYWJlbDogbGFiZWwsCi0gICAgICAgICAg
ICB1cmw6IGV4cGFuZFVSTChwYWdlVVJMKSwKLSAgICAgICAgICAgIGljb246IGV4cGFuZFVSTChp
Y29uVVJMKQorICAgICAgICAgICAgdGl0bGU6IHRpdGxlLAorICAgICAgICAgICAgaWNvbjogZXhw
YW5kVVJMKGljb25VUkwpLAorICAgICAgICAgICAgdXJsOiBleHBhbmRVUkwocGFnZVVSTCkKICAg
ICAgICAgfTsKLSAgICAgICAgZXh0ZW5zaW9uU2VydmVyLnNlbmRSZXF1ZXN0KHJlcXVlc3QsIGNh
bGxiYWNrICYmIGJpbmQoY2FsbGJhY2tXcmFwcGVyLCB0aGlzKSk7CisgICAgICAgIGV4dGVuc2lv
blNlcnZlci5zZW5kUmVxdWVzdChyZXF1ZXN0LCBjYWxsYmFjayAmJiBiaW5kKGNhbGxiYWNrLCB0
aGlzLCBuZXcgRXh0ZW5zaW9uUGFuZWwoaWQpKSk7CiAgICAgfQogfQogCiBmdW5jdGlvbiBQYW5l
bEltcGwoaWQpCiB7CiAgICAgdGhpcy5faWQgPSBpZDsKLSAgICB0aGlzLm9uU2VsZWN0aW9uQ2hh
bmdlZCA9IG5ldyBFdmVudFNpbmsoInBhbmVsLW9iamVjdFNlbGVjdGVkLSIgKyBpZCk7CiB9CiAK
LVBhbmVsSW1wbC5wcm90b3R5cGUgPSB7CitmdW5jdGlvbiBQYW5lbFdpdGhTaWRlYmFySW1wbChp
ZCkKK3sKKyAgICBQYW5lbEltcGwuY2FsbCh0aGlzLCBpZCk7Cit9CisKK1BhbmVsV2l0aFNpZGVi
YXJJbXBsLnByb3RvdHlwZSA9IHsKICAgICBjcmVhdGVTaWRlYmFyUGFuZTogZnVuY3Rpb24odGl0
bGUsIHVybCwgY2FsbGJhY2spCiAgICAgewogICAgICAgICB2YXIgaWQgPSAiZXh0ZW5zaW9uLXNp
ZGViYXItIiArIGV4dGVuc2lvblNlcnZlci5uZXh0T2JqZWN0SWQoKTsKLSAgICAgICAgZnVuY3Rp
b24gY2FsbGJhY2tXcmFwcGVyKHJlc3VsdCkKKyAgICAgICAgdmFyIHJlcXVlc3QgPSB7CisgICAg
ICAgICAgICBjb21tYW5kOiAiY3JlYXRlU2lkZWJhclBhbmUiLAorICAgICAgICAgICAgcGFuZWw6
IHRoaXMuX2lkLAorICAgICAgICAgICAgaWQ6IGlkLAorICAgICAgICAgICAgdGl0bGU6IHRpdGxl
LAorICAgICAgICAgICAgdXJsOiBleHBhbmRVUkwodXJsKQorICAgICAgICB9OworICAgICAgICBm
dW5jdGlvbiBjYWxsYmFja1dyYXBwZXIoKQogICAgICAgICB7Ci0gICAgICAgICAgICBpZiAocmVz
dWx0LmlzRXJyb3IpCi0gICAgICAgICAgICAgICAgY2FsbGJhY2socmVzdWx0KTsKLSAgICAgICAg
ICAgIGVsc2UKLSAgICAgICAgICAgICAgICBjYWxsYmFjayhuZXcgRXh0ZW5zaW9uU2lkZWJhclBh
bmUoaWQpKTsKKyAgICAgICAgICAgIGNhbGxiYWNrKG5ldyBFeHRlbnNpb25TaWRlYmFyUGFuZShp
ZCkpOwogICAgICAgICB9Ci0gICAgICAgIGV4dGVuc2lvblNlcnZlci5zZW5kUmVxdWVzdCh7IGNv
bW1hbmQ6ICJjcmVhdGVTaWRlYmFyUGFuZSIsIHBhbmVsOiB0aGlzLl9pZCwgaWQ6IGlkLCB0aXRs
ZTogdGl0bGUsIHVybDogZXhwYW5kVVJMKHVybCkgfSwgY2FsbGJhY2sgJiYgY2FsbGJhY2tXcmFw
cGVyKTsKKyAgICAgICAgZXh0ZW5zaW9uU2VydmVyLnNlbmRSZXF1ZXN0KHJlcXVlc3QsIGNhbGxi
YWNrICYmIGNhbGxiYWNrV3JhcHBlcik7CiAgICAgfSwKIAogICAgIGNyZWF0ZVdhdGNoRXhwcmVz
c2lvblNpZGViYXJQYW5lOiBmdW5jdGlvbih0aXRsZSwgY2FsbGJhY2spCiAgICAgewogICAgICAg
ICB2YXIgaWQgPSAid2F0Y2gtc2lkZWJhci0iICsgZXh0ZW5zaW9uU2VydmVyLm5leHRPYmplY3RJ
ZCgpOwotICAgICAgICBmdW5jdGlvbiBjYWxsYmFja1dyYXBwZXIocmVzdWx0KQorICAgICAgICB2
YXIgcmVxdWVzdCA9IHsKKyAgICAgICAgICAgIGNvbW1hbmQ6ICJjcmVhdGVXYXRjaEV4cHJlc3Np
b25TaWRlYmFyUGFuZSIsCisgICAgICAgICAgICBwYW5lbDogdGhpcy5faWQsCisgICAgICAgICAg
ICBpZDogaWQsCisgICAgICAgICAgICB0aXRsZTogdGl0bGUKKyAgICAgICAgfTsKKyAgICAgICAg
ZnVuY3Rpb24gY2FsbGJhY2tXcmFwcGVyKCkKICAgICAgICAgewotICAgICAgICAgICAgaWYgKHJl
c3VsdC5pc0Vycm9yKQotICAgICAgICAgICAgICAgIGNhbGxiYWNrKHJlc3VsdCk7Ci0gICAgICAg
ICAgICBlbHNlCi0gICAgICAgICAgICAgICAgY2FsbGJhY2sobmV3IFdhdGNoRXhwcmVzc2lvblNp
ZGViYXJQYW5lKGlkKSk7CisgICAgICAgICAgICBjYWxsYmFjayhuZXcgV2F0Y2hFeHByZXNzaW9u
U2lkZWJhclBhbmUoaWQpKTsKICAgICAgICAgfQotICAgICAgICBleHRlbnNpb25TZXJ2ZXIuc2Vu
ZFJlcXVlc3QoeyBjb21tYW5kOiAiY3JlYXRlV2F0Y2hFeHByZXNzaW9uU2lkZWJhclBhbmUiLCBw
YW5lbDogdGhpcy5faWQsIGlkOiBpZCwgdGl0bGU6IHRpdGxlIH0sIGNhbGxiYWNrICYmIGNhbGxi
YWNrV3JhcHBlcik7CisgICAgICAgIGV4dGVuc2lvblNlcnZlci5zZW5kUmVxdWVzdChyZXF1ZXN0
LCBjYWxsYmFjayAmJiBjYWxsYmFja1dyYXBwZXIpOwogICAgIH0KIH0KIAorUGFuZWxXaXRoU2lk
ZWJhckltcGwucHJvdG90eXBlLl9fcHJvdG9fXyA9IFBhbmVsSW1wbC5wcm90b3R5cGU7CisKK2Z1
bmN0aW9uIEVsZW1lbnRzUGFuZWwoKQoreworICAgIHZhciBpZCA9ICJlbGVtZW50cyI7CisgICAg
UGFuZWxXaXRoU2lkZWJhci5jYWxsKHRoaXMsIGlkKTsKKyAgICB0aGlzLm9uU2VsZWN0aW9uQ2hh
bmdlZCA9IG5ldyBFdmVudFNpbmsoInBhbmVsLW9iamVjdFNlbGVjdGVkLSIgKyBpZCk7Cit9CisK
IGZ1bmN0aW9uIEV4dGVuc2lvblBhbmVsKGlkKQogewogICAgIFBhbmVsLmNhbGwodGhpcywgaWQp
OwpAQCAtMjIyLDExICsyNDMsNiBAQCBFeHRlbnNpb25TaWRlYmFyUGFuZUltcGwucHJvdG90eXBl
ID0gewogICAgIHNldEhlaWdodDogZnVuY3Rpb24oaGVpZ2h0KQogICAgIHsKICAgICAgICAgZXh0
ZW5zaW9uU2VydmVyLnNlbmRSZXF1ZXN0KHsgY29tbWFuZDogInNldFNpZGViYXJIZWlnaHQiLCBp
ZDogdGhpcy5faWQsIGhlaWdodDogaGVpZ2h0IH0pOwotICAgIH0sCi0KLSAgICBzZXRFeHBhbmRl
ZDogZnVuY3Rpb24oZXhwYW5kZWQpCi0gICAgewotICAgICAgICBleHRlbnNpb25TZXJ2ZXIuc2Vu
ZFJlcXVlc3QoeyBjb21tYW5kOiAic2V0U2lkZWJhckV4cGFuZGVkIiwgaWQ6IHRoaXMuX2lkLCBl
eHBhbmRlZDogZXhwYW5kZWQgfSk7CiAgICAgfQogfQogCkBAIC0yNjEsMTcgKzI3NywxNyBAQCBm
dW5jdGlvbiBBdWRpdHMoKQogfQogCiBBdWRpdHMucHJvdG90eXBlID0gewotICAgIGFkZENhdGVn
b3J5OiBmdW5jdGlvbihkaXNwbGF5TmFtZSwgcnVsZUNvdW50KQorICAgIGFkZENhdGVnb3J5OiBm
dW5jdGlvbihkaXNwbGF5TmFtZSwgcmVzdWx0Q291bnQpCiAgICAgewogICAgICAgICB2YXIgaWQg
PSAiZXh0ZW5zaW9uLWF1ZGl0LWNhdGVnb3J5LSIgKyBleHRlbnNpb25TZXJ2ZXIubmV4dE9iamVj
dElkKCk7Ci0gICAgICAgIGV4dGVuc2lvblNlcnZlci5zZW5kUmVxdWVzdCh7IGNvbW1hbmQ6ICJh
ZGRBdWRpdENhdGVnb3J5IiwgaWQ6IGlkLCBkaXNwbGF5TmFtZTogZGlzcGxheU5hbWUsIHJ1bGVD
b3VudDogcnVsZUNvdW50IH0pOworICAgICAgICBleHRlbnNpb25TZXJ2ZXIuc2VuZFJlcXVlc3Qo
eyBjb21tYW5kOiAiYWRkQXVkaXRDYXRlZ29yeSIsIGlkOiBpZCwgZGlzcGxheU5hbWU6IGRpc3Bs
YXlOYW1lLCByZXN1bHRDb3VudDogcmVzdWx0Q291bnQgfSk7CiAgICAgICAgIHJldHVybiBuZXcg
QXVkaXRDYXRlZ29yeShpZCk7CiAgICAgfQogfQogCiBmdW5jdGlvbiBBdWRpdENhdGVnb3J5SW1w
bChpZCkKIHsKLSAgICBmdW5jdGlvbiBjdXN0b21EaXNwYXRjaChyZXF1ZXN0KQorICAgIGZ1bmN0
aW9uIGF1ZGl0UmVzdWx0RGlzcGF0Y2gocmVxdWVzdCkKICAgICB7CiAgICAgICAgIHZhciBhdWRp
dFJlc3VsdCA9IG5ldyBBdWRpdFJlc3VsdChyZXF1ZXN0LmFyZ3VtZW50c1swXSk7CiAgICAgICAg
IHRyeSB7CkBAIC0yODIsNyArMjk4LDcgQEAgZnVuY3Rpb24gQXVkaXRDYXRlZ29yeUltcGwoaWQp
CiAgICAgICAgIH0KICAgICB9CiAgICAgdGhpcy5faWQgPSBpZDsKLSAgICB0aGlzLm9uQXVkaXRT
dGFydGVkID0gbmV3IEV2ZW50U2luaygiYXVkaXQtc3RhcnRlZC0iICsgaWQsIGN1c3RvbURpc3Bh
dGNoKTsKKyAgICB0aGlzLm9uQXVkaXRTdGFydGVkID0gbmV3IEV2ZW50U2luaygiYXVkaXQtc3Rh
cnRlZC0iICsgaWQsIGF1ZGl0UmVzdWx0RGlzcGF0Y2gpOwogfQogCiBmdW5jdGlvbiBBdWRpdFJl
c3VsdEltcGwoaWQpCkBAIC0zMzAsNyArMzQ2LDcgQEAgQXVkaXRSZXN1bHRJbXBsLnByb3RvdHlw
ZSA9IHsKIAogICAgIGdldCBTZXZlcml0eSgpCiAgICAgewotICAgICAgICByZXR1cm4gcHJpdmF0
ZS5hdWRpdHMuU2V2ZXJpdHk7CisgICAgICAgIHJldHVybiBhcGlQcml2YXRlLmF1ZGl0cy5TZXZl
cml0eTsKICAgICB9LAogCiAgICAgX25vZGVGYWN0b3J5OiBmdW5jdGlvbih0eXBlKQpAQCAtMzYw
LDkgKzM3Niw5IEBAIEF1ZGl0UmVzdWx0Tm9kZS5wcm90b3R5cGUgPSB7CiAKIGZ1bmN0aW9uIElu
c3BlY3RlZFdpbmRvdygpCiB7CisgICAgdGhpcy5vbkRPTUNvbnRlbnRMb2FkZWQgPSBuZXcgRXZl
bnRTaW5rKCJpbnNwZWN0ZWRQYWdlRE9NQ29udGVudExvYWRlZCIpOwogICAgIHRoaXMub25Mb2Fk
ZWQgPSBuZXcgRXZlbnRTaW5rKCJpbnNwZWN0ZWRQYWdlTG9hZGVkIik7CiAgICAgdGhpcy5vbk5h
dmlnYXRlZCA9IG5ldyBFdmVudFNpbmsoImluc3BlY3RlZFVSTENoYW5nZWQiKTsKLSAgICB0aGlz
Lm9uRE9NQ29udGVudExvYWRlZCA9IG5ldyBFdmVudFNpbmsoIkRPTUNvbnRlbnRMb2FkZWQiKTsK
IH0KIAogSW5zcGVjdGVkV2luZG93LnByb3RvdHlwZSA9IHsKQEAgLTM3MSwxMyArMzg3LDE0IEBA
IEluc3BlY3RlZFdpbmRvdy5wcm90b3R5cGUgPSB7CiAgICAgICAgIHJldHVybiBleHRlbnNpb25T
ZXJ2ZXIuc2VuZFJlcXVlc3QoeyBjb21tYW5kOiAicmVsb2FkIiB9KTsKICAgICB9LAogCi0gICAg
ZXZhbHVhdGU6IGZ1bmN0aW9uKGV4cHJlc3Npb24sIGNhbGxiYWNrKQorICAgIGV2YWw6IGZ1bmN0
aW9uKGV4cHJlc3Npb24sIGNhbGxiYWNrKQogICAgIHsKICAgICAgICAgZnVuY3Rpb24gY2FsbGJh
Y2tXcmFwcGVyKHJlc3VsdCkKICAgICAgICAgewotICAgICAgICAgICAgaWYgKHJlc3VsdCAmJiAh
cmVzdWx0LmlzRXhjZXB0aW9uKQotICAgICAgICAgICAgICAgIHJlc3VsdC52YWx1ZSA9IHJlc3Vs
dC52YWx1ZSA9PT0gInVuZGVmaW5lZCIgPyB1bmRlZmluZWQgOiBKU09OLnBhcnNlKHJlc3VsdC52
YWx1ZSk7Ci0gICAgICAgICAgICBjYWxsYmFjayhyZXN1bHQpOworICAgICAgICAgICAgdmFyIHZh
bHVlID0gcmVzdWx0LnZhbHVlOworICAgICAgICAgICAgaWYgKCFyZXN1bHQuaXNFeGNlcHRpb24p
CisgICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZSA9PT0gInVuZGVmaW5lZCIgPyB1bmRlZmlu
ZWQgOiBKU09OLnBhcnNlKHZhbHVlKTsKKyAgICAgICAgICAgIGNhbGxiYWNrKHZhbHVlLCByZXN1
bHQuaXNFeGNlcHRpb24pOwogICAgICAgICB9CiAgICAgICAgIHJldHVybiBleHRlbnNpb25TZXJ2
ZXIuc2VuZFJlcXVlc3QoeyBjb21tYW5kOiAiZXZhbHVhdGVPbkluc3BlY3RlZFBhZ2UiLCBleHBy
ZXNzaW9uOiBleHByZXNzaW9uIH0sIGNhbGxiYWNrICYmIGNhbGxiYWNrV3JhcHBlcik7CiAgICAg
fQpAQCAtNDgxLDEyICs0OTgsMTQgQEAgZnVuY3Rpb24gZGVjbGFyZUludGVyZmFjZUNsYXNzKGlt
cGxDb25zdHJ1Y3RvcikKICAgICB9CiB9CiAKK3ZhciBBdWRpdENhdGVnb3J5ID0gZGVjbGFyZUlu
dGVyZmFjZUNsYXNzKEF1ZGl0Q2F0ZWdvcnlJbXBsKTsKK3ZhciBBdWRpdFJlc3VsdCA9IGRlY2xh
cmVJbnRlcmZhY2VDbGFzcyhBdWRpdFJlc3VsdEltcGwpOwogdmFyIEV2ZW50U2luayA9IGRlY2xh
cmVJbnRlcmZhY2VDbGFzcyhFdmVudFNpbmtJbXBsKTsKLXZhciBQYW5lbCA9IGRlY2xhcmVJbnRl
cmZhY2VDbGFzcyhQYW5lbEltcGwpOwogdmFyIEV4dGVuc2lvblNpZGViYXJQYW5lID0gZGVjbGFy
ZUludGVyZmFjZUNsYXNzKEV4dGVuc2lvblNpZGViYXJQYW5lSW1wbCk7Cit2YXIgUGFuZWwgPSBk
ZWNsYXJlSW50ZXJmYWNlQ2xhc3MoUGFuZWxJbXBsKTsKK3ZhciBQYW5lbFdpdGhTaWRlYmFyID0g
ZGVjbGFyZUludGVyZmFjZUNsYXNzKFBhbmVsV2l0aFNpZGViYXJJbXBsKTsKK3ZhciBSZXNvdXJj
ZSA9IGRlY2xhcmVJbnRlcmZhY2VDbGFzcyhSZXNvdXJjZUltcGwpOwogdmFyIFdhdGNoRXhwcmVz
c2lvblNpZGViYXJQYW5lID0gZGVjbGFyZUludGVyZmFjZUNsYXNzKFdhdGNoRXhwcmVzc2lvblNp
ZGViYXJQYW5lSW1wbCk7Ci12YXIgQXVkaXRDYXRlZ29yeSA9IGRlY2xhcmVJbnRlcmZhY2VDbGFz
cyhBdWRpdENhdGVnb3J5SW1wbCk7Ci12YXIgQXVkaXRSZXN1bHQgPSBkZWNsYXJlSW50ZXJmYWNl
Q2xhc3MoQXVkaXRSZXN1bHRJbXBsKTsKIAogdmFyIGV4dGVuc2lvblNlcnZlciA9IG5ldyBFeHRl
bnNpb25TZXJ2ZXJDbGllbnQoKTsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL0V4dGVuc2lvbkNvbW1vbi5qcyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9F
eHRlbnNpb25Db21tb24uanMKaW5kZXggYjA0YzE4Yy4uODAzNDAwMSAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvbkNvbW1vbi5qcworKysgYi9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvRXh0ZW5zaW9uQ29tbW9uLmpzCkBAIC0yOCwxMyArMjgsMTMg
QEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotV2ViSW5zcGVjdG9yLmNvbW1vbkV4dGVuc2lvblN5
bWJvbHMgPSBmdW5jdGlvbihwcml2YXRlKQorV2ViSW5zcGVjdG9yLmNvbW1vbkV4dGVuc2lvblN5
bWJvbHMgPSBmdW5jdGlvbihhcGlQcml2YXRlKQogewogICAgIAotICAgIGlmICghcHJpdmF0ZS5h
dWRpdHMpCi0gICAgICAgIHByaXZhdGUuYXVkaXRzID0ge307CisgICAgaWYgKCFhcGlQcml2YXRl
LmF1ZGl0cykKKyAgICAgICAgYXBpUHJpdmF0ZS5hdWRpdHMgPSB7fTsKIAotICAgIHByaXZhdGUu
YXVkaXRzLlNldmVyaXR5ID0geworICAgIGFwaVByaXZhdGUuYXVkaXRzLlNldmVyaXR5ID0gewog
ICAgICAgICBJbmZvOiAiaW5mbyIsCiAgICAgICAgIFdhcm5pbmc6ICJ3YXJuaW5nIiwKICAgICAg
ICAgU2V2ZXJlOiAic2V2ZXJlIgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL0V4dGVuc2lvblNlcnZlci5qcyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FeHRl
bnNpb25TZXJ2ZXIuanMKaW5kZXggNzIyOTc4NS4uMTA1MGM2ZiAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvblNlcnZlci5qcworKysgYi9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvRXh0ZW5zaW9uU2VydmVyLmpzCkBAIC0zNSwyMyArMzUsMjIgQEAg
V2ViSW5zcGVjdG9yLkV4dGVuc2lvblNlcnZlciA9IGZ1bmN0aW9uKCkKICAgICB0aGlzLl9zdWJz
Y3JpYmVycyA9IHt9OwogICAgIHRoaXMuX3N0YXR1cyA9IG5ldyBXZWJJbnNwZWN0b3IuRXh0ZW5z
aW9uU3RhdHVzKCk7CiAKLSAgICB0aGlzLl9yZWdpc3RlckhhbmRsZXIoInN1YnNjcmliZSIsIHRo
aXMuX29uU3Vic2NyaWJlLmJpbmQodGhpcykpOwotICAgIHRoaXMuX3JlZ2lzdGVySGFuZGxlcigi
dW5zdWJzY3JpYmUiLCB0aGlzLl9vblVuc3Vic2NyaWJlLmJpbmQodGhpcykpOwotICAgIHRoaXMu
X3JlZ2lzdGVySGFuZGxlcigiZ2V0UmVzb3VyY2VzIiwgdGhpcy5fb25HZXRSZXNvdXJjZXMuYmlu
ZCh0aGlzKSk7Ci0gICAgdGhpcy5fcmVnaXN0ZXJIYW5kbGVyKCJnZXRSZXNvdXJjZUNvbnRlbnQi
LCB0aGlzLl9vbkdldFJlc291cmNlQ29udGVudC5iaW5kKHRoaXMpKTsKLSAgICB0aGlzLl9yZWdp
c3RlckhhbmRsZXIoImdldFBhZ2VUaW1pbmdzIiwgdGhpcy5fb25HZXRQYWdlVGltaW5ncy5iaW5k
KHRoaXMpKTsKKyAgICB0aGlzLl9yZWdpc3RlckhhbmRsZXIoImFkZEF1ZGl0Q2F0ZWdvcnkiLCB0
aGlzLl9vbkFkZEF1ZGl0Q2F0ZWdvcnkuYmluZCh0aGlzKSk7CisgICAgdGhpcy5fcmVnaXN0ZXJI
YW5kbGVyKCJhZGRBdWRpdFJlc3VsdCIsIHRoaXMuX29uQWRkQXVkaXRSZXN1bHQuYmluZCh0aGlz
KSk7CiAgICAgdGhpcy5fcmVnaXN0ZXJIYW5kbGVyKCJjcmVhdGVQYW5lbCIsIHRoaXMuX29uQ3Jl
YXRlUGFuZWwuYmluZCh0aGlzKSk7CiAgICAgdGhpcy5fcmVnaXN0ZXJIYW5kbGVyKCJjcmVhdGVT
aWRlYmFyUGFuZSIsIHRoaXMuX29uQ3JlYXRlU2lkZWJhci5iaW5kKHRoaXMpKTsKICAgICB0aGlz
Ll9yZWdpc3RlckhhbmRsZXIoImNyZWF0ZVdhdGNoRXhwcmVzc2lvblNpZGViYXJQYW5lIiwgdGhp
cy5fb25DcmVhdGVXYXRjaEV4cHJlc3Npb25TaWRlYmFyUGFuZS5iaW5kKHRoaXMpKTsKLSAgICB0
aGlzLl9yZWdpc3RlckhhbmRsZXIoImxvZyIsIHRoaXMuX29uTG9nLmJpbmQodGhpcykpOwogICAg
IHRoaXMuX3JlZ2lzdGVySGFuZGxlcigiZXZhbHVhdGVPbkluc3BlY3RlZFBhZ2UiLCB0aGlzLl9v
bkV2YWx1YXRlT25JbnNwZWN0ZWRQYWdlLmJpbmQodGhpcykpOworICAgIHRoaXMuX3JlZ2lzdGVy
SGFuZGxlcigiZ2V0SEFSIiwgdGhpcy5fb25HZXRIQVIuYmluZCh0aGlzKSk7CisgICAgdGhpcy5f
cmVnaXN0ZXJIYW5kbGVyKCJnZXRSZXNvdXJjZUNvbnRlbnQiLCB0aGlzLl9vbkdldFJlc291cmNl
Q29udGVudC5iaW5kKHRoaXMpKTsKKyAgICB0aGlzLl9yZWdpc3RlckhhbmRsZXIoImxvZyIsIHRo
aXMuX29uTG9nLmJpbmQodGhpcykpOworICAgIHRoaXMuX3JlZ2lzdGVySGFuZGxlcigicmVsb2Fk
IiwgdGhpcy5fb25SZWxvYWQuYmluZCh0aGlzKSk7CiAgICAgdGhpcy5fcmVnaXN0ZXJIYW5kbGVy
KCJzZXRTaWRlYmFySGVpZ2h0IiwgdGhpcy5fb25TZXRTaWRlYmFySGVpZ2h0LmJpbmQodGhpcykp
OwotICAgIHRoaXMuX3JlZ2lzdGVySGFuZGxlcigic2V0U2lkZWJhckV4cGFuZGVkIiwgdGhpcy5f
b25TZXRTaWRlYmFyRXhwYW5zaW9uLmJpbmQodGhpcykpOwogICAgIHRoaXMuX3JlZ2lzdGVySGFu
ZGxlcigic2V0V2F0Y2hTaWRlYmFyQ29udGVudCIsIHRoaXMuX29uU2V0V2F0Y2hTaWRlYmFyQ29u
dGVudC5iaW5kKHRoaXMpKTsKLQotICAgIHRoaXMuX3JlZ2lzdGVySGFuZGxlcigiYWRkQXVkaXRD
YXRlZ29yeSIsIHRoaXMuX29uQWRkQXVkaXRDYXRlZ29yeS5iaW5kKHRoaXMpKTsKLSAgICB0aGlz
Ll9yZWdpc3RlckhhbmRsZXIoImFkZEF1ZGl0UmVzdWx0IiwgdGhpcy5fb25BZGRBdWRpdFJlc3Vs
dC5iaW5kKHRoaXMpKTsKICAgICB0aGlzLl9yZWdpc3RlckhhbmRsZXIoInN0b3BBdWRpdENhdGVn
b3J5UnVuIiwgdGhpcy5fb25TdG9wQXVkaXRDYXRlZ29yeVJ1bi5iaW5kKHRoaXMpKTsKKyAgICB0
aGlzLl9yZWdpc3RlckhhbmRsZXIoInN1YnNjcmliZSIsIHRoaXMuX29uU3Vic2NyaWJlLmJpbmQo
dGhpcykpOworICAgIHRoaXMuX3JlZ2lzdGVySGFuZGxlcigidW5zdWJzY3JpYmUiLCB0aGlzLl9v
blVuc3Vic2NyaWJlLmJpbmQodGhpcykpOworCiAKICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5l
cigibWVzc2FnZSIsIHRoaXMuX29uV2luZG93TWVzc2FnZS5iaW5kKHRoaXMpLCBmYWxzZSk7CiB9
CkBAIC02MiwxNCArNjEsMTQgQEAgV2ViSW5zcGVjdG9yLkV4dGVuc2lvblNlcnZlci5wcm90b3R5
cGUgPSB7CiAgICAgICAgIHRoaXMuX3Bvc3ROb3RpZmljYXRpb24oInBhbmVsLXNob3duLSIgKyBw
YW5lbE5hbWUpOwogICAgIH0sCiAKLSAgICBub3RpZnlPYmplY3RTZWxlY3RlZDogZnVuY3Rpb24o
cGFuZWxJZCwgb2JqZWN0VHlwZSwgb2JqZWN0SWQpCisgICAgbm90aWZ5T2JqZWN0U2VsZWN0ZWQ6
IGZ1bmN0aW9uKHBhbmVsSWQsIG9iamVjdElkKQogICAgIHsKLSAgICAgICAgdGhpcy5fcG9zdE5v
dGlmaWNhdGlvbigicGFuZWwtb2JqZWN0U2VsZWN0ZWQtIiArIHBhbmVsSWQsIG9iamVjdFR5cGUs
IG9iamVjdElkKTsKKyAgICAgICAgdGhpcy5fcG9zdE5vdGlmaWNhdGlvbigicGFuZWwtb2JqZWN0
U2VsZWN0ZWQtIiArIHBhbmVsSWQsIG9iamVjdElkKTsKICAgICB9LAogCiAgICAgbm90aWZ5UmVz
b3VyY2VGaW5pc2hlZDogZnVuY3Rpb24ocmVzb3VyY2UpCiAgICAgewotICAgICAgICB0aGlzLl9w
b3N0Tm90aWZpY2F0aW9uKCJyZXNvdXJjZS1maW5pc2hlZCIsIHRoaXMuX2NvbnZlcnRSZXNvdXJj
ZShyZXNvdXJjZSkpOworICAgICAgICB0aGlzLl9wb3N0Tm90aWZpY2F0aW9uKCJyZXNvdXJjZS1m
aW5pc2hlZCIsIHJlc291cmNlLmlkZW50aWZpZXIsIChuZXcgV2ViSW5zcGVjdG9yLkhBUkVudHJ5
KHJlc291cmNlKSkuYnVpbGQoKSk7CiAgICAgfSwKIAogICAgIG5vdGlmeVNlYXJjaEFjdGlvbjog
ZnVuY3Rpb24ocGFuZWxJZCwgYWN0aW9uLCBzZWFyY2hTdHJpbmcpCkBAIC03Nyw5ICs3NiwxNCBA
QCBXZWJJbnNwZWN0b3IuRXh0ZW5zaW9uU2VydmVyLnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhp
cy5fcG9zdE5vdGlmaWNhdGlvbigicGFuZWwtc2VhcmNoLSIgKyBwYW5lbElkLCBhY3Rpb24sIHNl
YXJjaFN0cmluZyk7CiAgICAgfSwKIAotICAgIG5vdGlmeUluc3BlY3RlZFBhZ2VMb2FkZWQ6IGZ1
bmN0aW9uKCkKKyAgICBub3RpZnlQYWdlTG9hZGVkOiBmdW5jdGlvbihtaWxsaXNlY29uZHMpCisg
ICAgeworICAgICAgICB0aGlzLl9wb3N0Tm90aWZpY2F0aW9uKCJpbnNwZWN0ZWRQYWdlTG9hZGVk
IiwgbWlsbGlzZWNvbmRzKTsKKyAgICB9LAorCisgICAgbm90aWZ5UGFnZURPTUNvbnRlbnRMb2Fk
ZWQ6IGZ1bmN0aW9uKG1pbGxpc2Vjb25kcykKICAgICB7Ci0gICAgICAgIHRoaXMuX3Bvc3ROb3Rp
ZmljYXRpb24oImluc3BlY3RlZFBhZ2VMb2FkZWQiKTsKKyAgICAgICAgdGhpcy5fcG9zdE5vdGlm
aWNhdGlvbigiaW5zcGVjdGVkUGFnZURPTUNvbnRlbnRMb2FkZWQiLCBtaWxsaXNlY29uZHMpOwog
ICAgIH0sCiAKICAgICBub3RpZnlJbnNwZWN0ZWRVUkxDaGFuZ2VkOiBmdW5jdGlvbigpCkBAIC0x
MDgsMTUgKzExMiw2IEBAIFdlYkluc3BlY3Rvci5FeHRlbnNpb25TZXJ2ZXIucHJvdG90eXBlID0g
ewogICAgICAgICBkZWxldGUgdGhpcy5fY2xpZW50T2JqZWN0c1thdWRpdFJ1bi5pZF07CiAgICAg
fSwKIAotICAgIF9jb252ZXJ0UmVzb3VyY2U6IGZ1bmN0aW9uKHJlc291cmNlKQotICAgIHsKLSAg
ICAgICAgcmV0dXJuIHsKLSAgICAgICAgICAgIGlkOiByZXNvdXJjZS5pZGVudGlmaWVyLAotICAg
ICAgICAgICAgdHlwZTogV2ViSW5zcGVjdG9yLlJlc291cmNlLlR5cGUudG9TdHJpbmcocmVzb3Vy
Y2UudHlwZSksCi0gICAgICAgICAgICBoYXI6IChuZXcgV2ViSW5zcGVjdG9yLkhBUkVudHJ5KHJl
c291cmNlKSkuYnVpbGQoKSwKLSAgICAgICAgfTsKLSAgICB9LAotCiAgICAgX3Bvc3ROb3RpZmlj
YXRpb246IGZ1bmN0aW9uKHR5cGUsIGRldGFpbHMpCiAgICAgewogICAgICAgICB2YXIgc3Vic2Ny
aWJlcnMgPSB0aGlzLl9zdWJzY3JpYmVyc1t0eXBlXTsKQEAgLTE1Niw3ICsxNTEsNyBAQCBXZWJJ
bnNwZWN0b3IuRXh0ZW5zaW9uU2VydmVyLnByb3RvdHlwZSA9IHsKICAgICAgICAgLy8gc2hvdWxk
bid0IGJlIGhpdCB1bmxlc3Mgc29tZW9uZSBpcyBieXBhc3NpbmcgdGhlIEFQSS4KICAgICAgICAg
aWYgKGlkIGluIHRoaXMuX2NsaWVudE9iamVjdHMgfHwgaWQgaW4gV2ViSW5zcGVjdG9yLnBhbmVs
cykKICAgICAgICAgICAgIHJldHVybiB0aGlzLl9zdGF0dXMuRV9FWElTVFMoaWQpOwotICAgICAg
ICB2YXIgcGFuZWwgPSBuZXcgV2ViSW5zcGVjdG9yLkV4dGVuc2lvblBhbmVsKGlkLCBtZXNzYWdl
LmxhYmVsLCBtZXNzYWdlLmljb24pOworICAgICAgICB2YXIgcGFuZWwgPSBuZXcgV2ViSW5zcGVj
dG9yLkV4dGVuc2lvblBhbmVsKGlkLCBtZXNzYWdlLnRpdGxlLCBtZXNzYWdlLmljb24pOwogICAg
ICAgICB0aGlzLl9jbGllbnRPYmplY3RzW2lkXSA9IHBhbmVsOwogCiAgICAgICAgIHZhciB0b29s
YmFyRWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0b29sYmFyIik7CkBAIC0yMTYs
MTcgKzIxMSw2IEBAIFdlYkluc3BlY3Rvci5FeHRlbnNpb25TZXJ2ZXIucHJvdG90eXBlID0gewog
ICAgICAgICBzaWRlYmFyLmJvZHlFbGVtZW50LmZpcnN0Q2hpbGQuc3R5bGUuaGVpZ2h0ID0gbWVz
c2FnZS5oZWlnaHQ7CiAgICAgfSwKIAotICAgIF9vblNldFNpZGViYXJFeHBhbnNpb246IGZ1bmN0
aW9uKG1lc3NhZ2UpCi0gICAgewotICAgICAgICB2YXIgc2lkZWJhciA9IHRoaXMuX2NsaWVudE9i
amVjdHNbbWVzc2FnZS5pZF07Ci0gICAgICAgIGlmICghc2lkZWJhcikKLSAgICAgICAgICAgIHJl
dHVybiB0aGlzLl9zdGF0dXMuRV9OT1RGT1VORChtZXNzYWdlLmlkKTsKLSAgICAgICAgaWYgKG1l
c3NhZ2UuZXhwYW5kZWQpCi0gICAgICAgICAgICBzaWRlYmFyLmV4cGFuZCgpOwotICAgICAgICBl
bHNlCi0gICAgICAgICAgICBzaWRlYmFyLmNvbGxhcHNlKCk7Ci0gICAgfSwKLQogICAgIF9vblNl
dFdhdGNoU2lkZWJhckNvbnRlbnQ6IGZ1bmN0aW9uKG1lc3NhZ2UpCiAgICAgewogICAgICAgICB2
YXIgc2lkZWJhciA9IHRoaXMuX2NsaWVudE9iamVjdHNbbWVzc2FnZS5pZF07CkBAIC0yNDMsNiAr
MjI3LDEyIEBAIFdlYkluc3BlY3Rvci5FeHRlbnNpb25TZXJ2ZXIucHJvdG90eXBlID0gewogICAg
ICAgICBXZWJJbnNwZWN0b3IubG9nKG1lc3NhZ2UubWVzc2FnZSk7CiAgICAgfSwKIAorICAgIF9v
blJlbG9hZDogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5yZWxv
YWRQYWdlKCk7CisgICAgICAgIHJldHVybiB0aGlzLl9zdGF0dXMuT0soKTsKKyAgICB9LAorCiAg
ICAgX29uRXZhbHVhdGVPbkluc3BlY3RlZFBhZ2U6IGZ1bmN0aW9uKG1lc3NhZ2UsIHBvcnQpCiAg
ICAgewogICAgICAgICBmdW5jdGlvbiBjYWxsYmFjayhyZXN1bHRQYXlsb2FkKQpAQCAtMjg2LDY2
ICsyNzYsMzIgQEAgV2ViSW5zcGVjdG9yLkV4dGVuc2lvblNlcnZlci5wcm90b3R5cGUgPSB7CiAg
ICAgICAgIHBvcnQucG9zdE1lc3NhZ2UoeyBjb21tYW5kOiAiY2FsbGJhY2siLCByZXF1ZXN0SWQ6
IHJlcXVlc3RJZCwgcmVzdWx0OiByZXN1bHQgfSk7CiAgICAgfSwKIAotICAgIF9vbkdldFJlc291
cmNlczogZnVuY3Rpb24ocmVxdWVzdCkKKyAgICBfb25HZXRIQVI6IGZ1bmN0aW9uKHJlcXVlc3Qp
CiAgICAgewotICAgICAgICBmdW5jdGlvbiByZXNvdXJjZVdyYXBwZXIoaWQpCi0gICAgICAgIHsK
LSAgICAgICAgICAgIHJldHVybiBXZWJJbnNwZWN0b3IuZXh0ZW5zaW9uU2VydmVyLl9jb252ZXJ0
UmVzb3VyY2UoV2ViSW5zcGVjdG9yLm5ldHdvcmtSZXNvdXJjZXNbaWRdKTsKLSAgICAgICAgfQot
Ci0gICAgICAgIHZhciByZXNwb25zZTsKLSAgICAgICAgaWYgKHJlcXVlc3QuaWQpCi0gICAgICAg
ICAgICByZXNwb25zZSA9IFdlYkluc3BlY3Rvci5uZXR3b3JrUmVzb3VyY2VzW3JlcXVlc3QuaWRd
ID8gcmVzb3VyY2VXcmFwcGVyKHJlcXVlc3QuaWQpIDogdGhpcy5fc3RhdHVzLkVfTk9URk9VTkQo
cmVxdWVzdC5pZCk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHJlc3BvbnNlID0gT2JqZWN0
LmtleXMoV2ViSW5zcGVjdG9yLm5ldHdvcmtSZXNvdXJjZXMpLm1hcChyZXNvdXJjZVdyYXBwZXIp
OwotICAgICAgICByZXR1cm4gcmVzcG9uc2U7CisgICAgICAgIHZhciBoYXJMb2cgPSBuZXcgV2Vi
SW5zcGVjdG9yLkhBUkxvZygpOworICAgICAgICBoYXJMb2cuaW5jbHVkZVJlc291cmNlSWRzID0g
dHJ1ZTsKKyAgICAgICAgcmV0dXJuIGhhckxvZy5idWlsZCgpOwogICAgIH0sCiAKICAgICBfb25H
ZXRSZXNvdXJjZUNvbnRlbnQ6IGZ1bmN0aW9uKG1lc3NhZ2UsIHBvcnQpCiAgICAgewotICAgICAg
ICB2YXIgaWRzOwotICAgICAgICB2YXIgcmVzcG9uc2UgPSBbXTsKLQotICAgICAgICBmdW5jdGlv
biBvbkNvbnRlbnRBdmFpbGFibGUoaWQsIGNvbnRlbnQsIGVuY29kZWQpCisgICAgICAgIGZ1bmN0
aW9uIG9uQ29udGVudEF2YWlsYWJsZShjb250ZW50LCBlbmNvZGVkKQogICAgICAgICB7Ci0gICAg
ICAgICAgICB2YXIgcmVzb3VyY2VDb250ZW50ID0gewotICAgICAgICAgICAgICAgIGlkOiBpZCwK
KyAgICAgICAgICAgIHZhciByZXNwb25zZSA9IHsKICAgICAgICAgICAgICAgICBlbmNvZGluZzog
ZW5jb2RlZCA/ICJiYXNlNjQiIDogIiIsCiAgICAgICAgICAgICAgICAgY29udGVudDogY29udGVu
dAogICAgICAgICAgICAgfTsKLSAgICAgICAgICAgIHJlc3BvbnNlLnB1c2gocmVzb3VyY2VDb250
ZW50KTsKLSAgICAgICAgICAgIGlmIChyZXNwb25zZS5sZW5ndGggPT09IGlkcy5sZW5ndGgpCi0g
ICAgICAgICAgICAgICAgdGhpcy5fZGlzcGF0Y2hDYWxsYmFjayhtZXNzYWdlLnJlcXVlc3RJZCwg
cG9ydCwgcmVzcG9uc2UpOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKHR5cGVvZiBtZXNzYWdl
LmlkcyA9PT0gIm51bWJlciIpCi0gICAgICAgICAgICBpZHMgPSBbIG1lc3NhZ2UuaWRzIF07Ci0g
ICAgICAgIGVsc2UgaWYgKG1lc3NhZ2UuaWRzIGluc3RhbmNlb2YgQXJyYXkpCi0gICAgICAgICAg
ICBpZHMgPSBtZXNzYWdlLmlkczsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgcmV0dXJuIHRo
aXMuX3N0YXR1cy5FX0JBREFSR1RZUEUoIm1lc3NhZ2UuaWRzIiwgIkFycmF5IiwgdHlwZW9mIG1l
c3NhZ2UuaWRzKTsKLQotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGlkcy5sZW5ndGg7ICsr
aSkgewotICAgICAgICAgICAgdmFyIGlkID0gaWRzW2ldOwotICAgICAgICAgICAgdmFyIHJlc291
cmNlID0gV2ViSW5zcGVjdG9yLm5ldHdvcmtSZXNvdXJjZXNbaWRdOwotIAotICAgICAgICAgICAg
aWYgKCFyZXNvdXJjZSkKLSAgICAgICAgICAgICAgICByZXNwb25zZS5wdXNoKHRoaXMuX3N0YXR1
cy5FX05PVEZPVU5EKGlkKSk7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgcmVz
b3VyY2UucmVxdWVzdENvbnRlbnQob25Db250ZW50QXZhaWxhYmxlLmJpbmQodGhpcywgaWQpKTsK
LSAgICAgICAgfQotICAgICAgICBpZiAocmVzcG9uc2UubGVuZ3RoID09PSBpZHMubGVuZ3RoKQog
ICAgICAgICAgICAgdGhpcy5fZGlzcGF0Y2hDYWxsYmFjayhtZXNzYWdlLnJlcXVlc3RJZCwgcG9y
dCwgcmVzcG9uc2UpOwotICAgIH0sCi0KLSAgICBfb25HZXRQYWdlVGltaW5nczogZnVuY3Rpb24o
KQotICAgIHsKLSAgICAgICAgcmV0dXJuIChuZXcgV2ViSW5zcGVjdG9yLkhBUkxvZygpKS5idWls
ZE1haW5SZXNvdXJjZVRpbWluZ3MoKTsKKyAgICAgICAgfQorICAgICAgICB2YXIgcmVzb3VyY2Ug
PSBXZWJJbnNwZWN0b3IubmV0d29ya1Jlc291cmNlc1ttZXNzYWdlLmlkXTsKKyAgICAgICAgaWYg
KCFyZXNvdXJjZSkKKyAgICAgICAgICAgIHJldHVybiB0aGlzLl9zdGF0dXMuRV9OT1RGT1VORCht
ZXNzYWdlLmlkKTsKKyAgICAgICAgcmVzb3VyY2UucmVxdWVzdENvbnRlbnQob25Db250ZW50QXZh
aWxhYmxlLmJpbmQodGhpcykpOwogICAgIH0sCiAKICAgICBfb25BZGRBdWRpdENhdGVnb3J5OiBm
dW5jdGlvbihyZXF1ZXN0KQogICAgIHsKLSAgICAgICAgdmFyIGNhdGVnb3J5ID0gbmV3IFdlYklu
c3BlY3Rvci5FeHRlbnNpb25BdWRpdENhdGVnb3J5KHJlcXVlc3QuaWQsIHJlcXVlc3QuZGlzcGxh
eU5hbWUsIHJlcXVlc3QucnVsZUNvdW50KTsKKyAgICAgICAgdmFyIGNhdGVnb3J5ID0gbmV3IFdl
Ykluc3BlY3Rvci5FeHRlbnNpb25BdWRpdENhdGVnb3J5KHJlcXVlc3QuaWQsIHJlcXVlc3QuZGlz
cGxheU5hbWUsIHJlcXVlc3QucmVzdWx0Q291bnQpOwogICAgICAgICBpZiAoV2ViSW5zcGVjdG9y
LnBhbmVscy5hdWRpdHMuZ2V0Q2F0ZWdvcnkoY2F0ZWdvcnkuaWQpKQogICAgICAgICAgICAgcmV0
dXJuIHRoaXMuX3N0YXR1cy5FX0VYSVNUUyhjYXRlZ29yeS5pZCk7CiAgICAgICAgIHRoaXMuX2Ns
aWVudE9iamVjdHNbcmVxdWVzdC5pZF0gPSBjYXRlZ29yeTsKQEAgLTQwOSw4ICszNjUsOCBAQCBX
ZWJJbnNwZWN0b3IuRXh0ZW5zaW9uU2VydmVyLnByb3RvdHlwZSA9IHsKICAgICAgICAgfQogICAg
ICAgICB2YXIgcGxhdGZvcm1BUEkgPSBXZWJJbnNwZWN0b3IuYnVpbGRQbGF0Zm9ybUV4dGVuc2lv
bkFQSSA/IFdlYkluc3BlY3Rvci5idWlsZFBsYXRmb3JtRXh0ZW5zaW9uQVBJKCkgOiAiIjsKICAg
ICAgICAgcmV0dXJuICIoZnVuY3Rpb24oKXsgIiArCi0gICAgICAgICAgICAidmFyIHByaXZhdGUg
PSB7fTsiICsKLSAgICAgICAgICAgICIoIiArIFdlYkluc3BlY3Rvci5jb21tb25FeHRlbnNpb25T
eW1ib2xzLnRvU3RyaW5nKCkgKyAiKShwcml2YXRlKTsiICsKKyAgICAgICAgICAgICJ2YXIgYXBp
UHJpdmF0ZSA9IHt9OyIgKworICAgICAgICAgICAgIigiICsgV2ViSW5zcGVjdG9yLmNvbW1vbkV4
dGVuc2lvblN5bWJvbHMudG9TdHJpbmcoKSArICIpKGFwaVByaXZhdGUpOyIgKwogICAgICAgICAg
ICAgIigiICsgV2ViSW5zcGVjdG9yLmluamVjdGVkRXh0ZW5zaW9uQVBJLnRvU3RyaW5nKCkgKyAi
KS5hcHBseSh0aGlzLCBhcmd1bWVudHMpOyIgKwogICAgICAgICAgICAgIndlYkluc3BlY3Rvci5y
ZXNvdXJjZXMuVHlwZXMgPSAiICsgSlNPTi5zdHJpbmdpZnkocmVzb3VyY2VUeXBlcykgKyAiOyIg
KwogICAgICAgICAgICAgcGxhdGZvcm1BUEkgKwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL0hBUkVudHJ5LmpzIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0hB
UkVudHJ5LmpzCmluZGV4IGYzYmZiMDYuLjZkZmJkMWIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9IQVJFbnRyeS5qcworKysgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvSEFSRW50cnkuanMKQEAgLTE4OSw2ICsxODksNyBAQCBXZWJJbnNwZWN0b3IuSEFSRW50
cnkuX3RvTWlsbGlzZWNvbmRzID0gZnVuY3Rpb24odGltZSkKIAogV2ViSW5zcGVjdG9yLkhBUkxv
ZyA9IGZ1bmN0aW9uKCkKIHsKKyAgICB0aGlzLmluY2x1ZGVSZXNvdXJjZUlkcyA9IGZhbHNlOwog
fQogCiBXZWJJbnNwZWN0b3IuSEFSTG9nLnByb3RvdHlwZSA9IHsKQEAgLTIwMyw3ICsyMDQsNyBA
QCBXZWJJbnNwZWN0b3IuSEFSTG9nLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgICAgICB2ZXJz
aW9uOiB3ZWJLaXRWZXJzaW9uID8gd2ViS2l0VmVyc2lvblsxXSA6ICJuL2EiCiAgICAgICAgICAg
ICB9LAogICAgICAgICAgICAgcGFnZXM6IHRoaXMuX2J1aWxkUGFnZXMoKSwKLSAgICAgICAgICAg
IGVudHJpZXM6IE9iamVjdC5rZXlzKFdlYkluc3BlY3Rvci5uZXR3b3JrUmVzb3VyY2VzKS5tYXAo
dGhpcy5fY29udmVydFJlc291cmNlKQorICAgICAgICAgICAgZW50cmllczogT2JqZWN0LmtleXMo
V2ViSW5zcGVjdG9yLm5ldHdvcmtSZXNvdXJjZXMpLm1hcCh0aGlzLl9jb252ZXJ0UmVzb3VyY2Uu
YmluZCh0aGlzKSkKICAgICAgICAgfQogICAgIH0sCiAKQEAgLTIyOSw3ICsyMzAsMTAgQEAgV2Vi
SW5zcGVjdG9yLkhBUkxvZy5wcm90b3R5cGUgPSB7CiAKICAgICBfY29udmVydFJlc291cmNlOiBm
dW5jdGlvbihpZCkKICAgICB7Ci0gICAgICAgIHJldHVybiAobmV3IFdlYkluc3BlY3Rvci5IQVJF
bnRyeShXZWJJbnNwZWN0b3IubmV0d29ya1Jlc291cmNlc1tpZF0pKS5idWlsZCgpOworICAgICAg
ICB2YXIgZW50cnkgPSAobmV3IFdlYkluc3BlY3Rvci5IQVJFbnRyeShXZWJJbnNwZWN0b3IubmV0
d29ya1Jlc291cmNlc1tpZF0pKS5idWlsZCgpOworICAgICAgICBpZiAodGhpcy5pbmNsdWRlUmVz
b3VyY2VJZHMpCisgICAgICAgICAgICBlbnRyeS5fcmVzb3VyY2VJZCA9IGlkOworICAgICAgICBy
ZXR1cm4gZW50cnk7CiAgICAgfSwKIAogICAgIF9wYWdlRXZlbnRUaW1lOiBmdW5jdGlvbih0aW1l
KQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcyBi
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMKaW5kZXggMzNiMzcwYS4u
OTE5OWRlZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rv
ci5qcworKysgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzCkBAIC0x
MjI4LDYgKzEyMjgsNyBAQCBXZWJJbnNwZWN0b3IuZG9tQ29udGVudEV2ZW50RmlyZWQgPSBmdW5j
dGlvbih0aW1lKQogICAgIHRoaXMucGFuZWxzLmF1ZGl0cy5tYWluUmVzb3VyY2VET01Db250ZW50
VGltZSA9IHRpbWU7CiAgICAgaWYgKHRoaXMucGFuZWxzLm5ldHdvcmspCiAgICAgICAgIHRoaXMu
cGFuZWxzLm5ldHdvcmsubWFpblJlc291cmNlRE9NQ29udGVudFRpbWUgPSB0aW1lOworICAgIHRo
aXMuZXh0ZW5zaW9uU2VydmVyLm5vdGlmeVBhZ2VET01Db250ZW50TG9hZGVkKCh0aW1lIC0gV2Vi
SW5zcGVjdG9yLm1haW5SZXNvdXJjZS5zdGFydFRpbWUpICogMTAwMCk7CiAgICAgdGhpcy5tYWlu
UmVzb3VyY2VET01Db250ZW50VGltZSA9IHRpbWU7CiB9CiAKQEAgLTEyMzYsNiArMTIzNyw3IEBA
IFdlYkluc3BlY3Rvci5sb2FkRXZlbnRGaXJlZCA9IGZ1bmN0aW9uKHRpbWUpCiAgICAgdGhpcy5w
YW5lbHMuYXVkaXRzLm1haW5SZXNvdXJjZUxvYWRUaW1lID0gdGltZTsKICAgICBpZiAodGhpcy5w
YW5lbHMubmV0d29yaykKICAgICAgICAgdGhpcy5wYW5lbHMubmV0d29yay5tYWluUmVzb3VyY2VM
b2FkVGltZSA9IHRpbWU7CisgICAgdGhpcy5leHRlbnNpb25TZXJ2ZXIubm90aWZ5UGFnZUxvYWRl
ZCgodGltZSAtIFdlYkluc3BlY3Rvci5tYWluUmVzb3VyY2Uuc3RhcnRUaW1lKSAqIDEwMDApOwog
ICAgIHRoaXMubWFpblJlc291cmNlTG9hZFRpbWUgPSB0aW1lOwogfQogCkBAIC0xNDAwLDcgKzE0
MDIsNiBAQCBXZWJJbnNwZWN0b3IuZGlkQ29tbWl0TG9hZCA9IGZ1bmN0aW9uKCkKIHsKICAgICAv
LyBDbGVhbnVwIGVsZW1lbnRzIHBhbmVsIGVhcmx5IG9uIGluc3BlY3RlZCBwYWdlIHJlZnJlc2gu
CiAgICAgV2ViSW5zcGVjdG9yLnNldERvY3VtZW50KG51bGwpOwotICAgIHRoaXMuZXh0ZW5zaW9u
U2VydmVyLm5vdGlmeUluc3BlY3RlZFBhZ2VMb2FkZWQoKTsKIH0KIAogV2ViSW5zcGVjdG9yLnVw
ZGF0ZUNvbnNvbGVNZXNzYWdlRXhwaXJlZENvdW50ID0gZnVuY3Rpb24oY291bnQpCg==
</data>
<flag name="review"
          id="65429"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>74776</attachid>
            <date>2010-11-24 10:13:47 -0800</date>
            <delta_ts>2010-11-24 10:13:47 -0800</delta_ts>
            <desc>updated API doc</desc>
            <filename>inspector-extension-api.html</filename>
            <type>text/html</type>
            <size>52167</size>
            <attacher name="Andrey Kosyakov">caseq</attacher>
            
              <data encoding="base64">PGh0bWw+DQo8aGVhZD4NCg0KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPg0KdmFyIGlu
c3BlY3RvckFQSSA9IFsNCiAgew0KICAgICJuYW1lc3BhY2UiOiAid2ViSW5zcGVjdG9yLmluc3Bl
Y3RlZFdpbmRvdyIsDQogICAgImRlc2NyaXB0aW9uIjogIlByb3ZpZGVzIGFjY2VzcyB0byB0aGUg
d2luZG93IGJlaW5nIGluc3BlY3RlZC4iLA0KICAgICJmdW5jdGlvbnMiOiBbDQogICAgICB7DQog
ICAgICAgICJuYW1lIjogImV2YWwiLA0KICAgICAgICAidHlwZSI6ICJmdW5jdGlvbiIsDQogICAg
ICAgICJkZXNjcmlwdGlvbiI6ICJFdmFsdWF0ZXMgYSBKYXZhU2NyaXB0IGV4cHJlc3Npb24gaW4g
dGhlIGNvbnRleHQgb2YgaW5zcGVjdGVkIHBhZ2UgKE5PVEU6IHRoZSBleHByZXNzaW9uIG11c3Qg
ZXZhbHVhdGUgdG8gYSBKU09OLWNvbXBsaWFudCBvYmplY3QsIG90aGVyd2lzZSB0aGUgZXhjZXB0
aW9uIGlzIHRocm93bikiLA0KICAgICAgICAicGFyYW1ldGVycyI6IFsNCiAgICAgICAgICB7DQog
ICAgICAgICAgICAibmFtZSI6ICJleHByZXNzaW9uIiwNCiAgICAgICAgICAgICJ0eXBlIjogInN0
cmluZyIsDQogICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQW4gZXhwcmVzc2lvbiB0byBldmFs
dWF0ZS4iDQogICAgICAgICAgfSwNCiAgICAgICAgICB7DQogICAgICAgICAgICAibmFtZSI6ICJj
YWxsYmFjayIsDQogICAgICAgICAgICAidHlwZSI6ICJmdW5jdGlvbiIsDQogICAgICAgICAgICAi
ZGVzY3JpcHRpb24iOiAiQSBmdW5jdGlvbiBjYWxsZWQgd2hlbiBldmFsdWF0aW9uIGNvbXBsZXRl
cy4iLA0KICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbDQogICAgICAgICAgICAgIHsNCiAgICAg
ICAgICAgICAgICAibmFtZSI6ICJyZXN1bHQiLA0KICAgICAgICAgICAgICAgICJ0eXBlIjogIm9i
amVjdCIsDQogICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSByZXN1bHQgb2YgZXZh
bHVhdGlvbiINCiAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgew0KICAgICAgICAgICAg
ICAgICJuYW1lIjogImlzRXhjZXB0aW9uIiwNCiAgICAgICAgICAgICAgICAidHlwZSI6ICJib29s
ZWFuIiwNCiAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiU2V0IGlmIGFuIGV4Y2VwdGlv
biB3YXMgY2F1Z2h0IHdoaWxlIGV2YWx1YXRpbmcgdGhlIGV4cHJlc3Npb24iDQogICAgICAgICAg
ICAgIH0NCiAgICAgICAgICAgIF0NCiAgICAgICAgICB9DQogICAgICAgIF0NCiAgICAgIH0NCiAg
ICBdLA0KICAgICJldmVudHMiOiBbDQogICAgICB7DQogICAgICAgICJuYW1lIjogIm9uRE9NQ29u
dGVudExvYWRlZCIsDQogICAgICAgICJ0eXBlIjogImZ1bmN0aW9uIiwNCiAgICAgICAgImRlc2Ny
aXB0aW9uIjogIkZpcmVkIGFmdGVyIERPTUNvbnRlbnRMb2FkZWQgZXZlbnQgb24gaW5zcGVjdGVk
IHBhZ2UgaXMgZmlyZWQuIg0KICAgICAgfSwNCiAgICAgIHsNCiAgICAgICAgIm5hbWUiOiAib25M
b2FkZWQiLA0KICAgICAgICAidHlwZSI6ICJmdW5jdGlvbiIsDQogICAgICAgICJkZXNjcmlwdGlv
biI6ICJGaXJlZCBhZnRlciBsb2FkIGV2ZW50IG9uIGluc3BlY3RlZCBwYWdlIGlzIGZpcmVkLiIN
CiAgICAgIH0sDQogICAgICB7DQogICAgICAgICJuYW1lIjogIm9uTmF2aWdhdGVkIiwNCiAgICAg
ICAgInR5cGUiOiAiZnVuY3Rpb24iLA0KICAgICAgICAiZGVzY3JpcHRpb24iOiAiRmlyZWQgd2hl
biBuYXZpZ2F0aW9uIG9jY3VycyBpbiB0aGUgd2luZG93IGJlaW5nIGluc3BlY3RlZC4iDQogICAg
ICB9DQogICAgXQ0KICB9LA0KICB7DQogICAgIm5hbWVzcGFjZSI6ICJ3ZWJJbnNwZWN0b3IucGFu
ZWxzIiwNCiAgICAidHlwZXMiOiBbDQogICAgICB7DQogICAgICAgICJpZCI6ICJQYW5lbFdpdGhT
aWRlYmFycyIsDQogICAgICAgICJ0eXBlIjogIm9iamVjdCIsDQogICAgICAgICJpc0luc3RhbmNl
T2YiOiAiUGFuZWwiLA0KICAgICAgICAiZGVzY3JpcHRpb24iOiAiQSBwYW5lbCB3aXRoaW4gV2Vi
IEluc3BlY3RvciBVSSB0aGF0IGhhcyBzaWRlYmFycy4iLA0KICAgICAgICAiZnVuY3Rpb25zIjog
Ww0KICAgICAgICAgIHsNCiAgICAgICAgICAgICJuYW1lIjogImNyZWF0ZVNpZGViYXJQYW5lIiwN
CiAgICAgICAgICAgICJ0eXBlIjogImZ1bmN0aW9uIiwNCiAgICAgICAgICAgICJkZXNjcmlwdGlv
biI6ICJDcmVhdGVzIGEgcGFuZSB3aXRoaW4gcGFuZWwncyBzaWRlYmFyLiIsDQogICAgICAgICAg
ICAicGFyYW1ldGVycyI6IFsNCiAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJuYW1l
IjogInRpdGxlIiwNCiAgICAgICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLA0KICAgICAgICAg
ICAgICAgICJkZXNjcmlwdGlvbiI6ICJBIHRleHQgdGhhdCBpcyBkaXNwbGF5ZWQgaW4gc2lkZWJh
ciBjYXB0aW9uLiINCiAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgew0KICAgICAgICAg
ICAgICAgICJuYW1lIjogInVybCIsDQogICAgICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIiwN
CiAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQW4gVVJMIG9mIHRoZSBwYWdlIHRoYXQg
cmVwcmVzZW50cyB0aGUgc2lkZWJhci4iDQogICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAg
IHsNCiAgICAgICAgICAgICAgICAibmFtZSI6ICJjYWxsYmFjayIsDQogICAgICAgICAgICAgICAg
InR5cGUiOiAiZnVuY3Rpb24iLA0KICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJBIGNh
bGxiYWNrIGludm9rZWQgd2hlbiBzaWRlYmFyIGlzIGNyZWF0ZWQiLA0KICAgICAgICAgICAgICAg
ICJwYXJhbWV0ZXJzIjogWw0KICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAg
ICAibmFtZSI6ICJyZXN1bHQiLA0KICAgICAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAi
QW4gRXh0ZW5zaW9uU2lkZWJhclBhbmUgb2JqZWN0IGZvciBjcmVhdGVkIHNpZGViYXIgcGFuZSIs
DQogICAgICAgICAgICAgICAgICAgICIkcmVmIjogIkV4dGVuc2lvblNpZGViYXJQYW5lIg0KICAg
ICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIF0NCiAgICAgICAgICAgICAgfQ0KICAg
ICAgICAgICAgXQ0KICAgICAgICAgIH0sDQogICAgICAgICAgew0KICAgICAgICAgICAgIm5hbWUi
OiAiY3JlYXRlV2F0Y2hFeHByZXNzaW9uU2lkZWJhclBhbmUiLA0KICAgICAgICAgICAgInR5cGUi
OiAiZnVuY3Rpb24iLA0KICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkNyZWF0ZXMgYSBwYW5l
IHdpdGggYW4gb2JqZWN0IHByb3BlcnR5IHRyZWUgKHNpbWlsYXIgdG8gYSB3YXRjaCBzaWRlYmFy
IHBhbmUpLiIsDQogICAgICAgICAgICAicGFyYW1ldGVycyI6IFsNCiAgICAgICAgICAgICAgew0K
ICAgICAgICAgICAgICAgICJuYW1lIjogInRpdGxlIiwNCiAgICAgICAgICAgICAgICAidHlwZSI6
ICJzdHJpbmciLA0KICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJBIHRleHQgdGhhdCBp
cyBkaXNwbGF5ZWQgaW4gc2lkZWJhciBjYXB0aW9uLiINCiAgICAgICAgICAgICAgfSwNCiAgICAg
ICAgICAgICAgew0KICAgICAgICAgICAgICAgICJuYW1lIjogImNhbGxiYWNrIiwNCiAgICAgICAg
ICAgICAgICAidHlwZSI6ICJmdW5jdGlvbiIsDQogICAgICAgICAgICAgICAgImRlc2NyaXB0aW9u
IjogIkEgY2FsbGJhY2sgaW52b2tlZCB3aGVuIHNpZGViYXIgaXMgY3JlYXRlZCIsDQogICAgICAg
ICAgICAgICAgInBhcmFtZXRlcnMiOiBbDQogICAgICAgICAgICAgICAgICB7DQogICAgICAgICAg
ICAgICAgICAgICJuYW1lIjogInJlc3VsdCIsDQogICAgICAgICAgICAgICAgICAgICJkZXNjcmlw
dGlvbiI6ICJBIFdhdGNoRXhwcmVzc2lvblNpZGViYXJQYW5lIG9iamVjdCBmb3IgY3JlYXRlZCBz
aWRlYmFyIHBhbmUiLA0KICAgICAgICAgICAgICAgICAgICAiJHJlZiI6ICJXYXRjaEV4cHJlc3Np
b25TaWRlYmFyUGFuZSINCiAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBdDQog
ICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIF0NCiAgICAgICAgICB9DQogICAgICAgIF0NCiAg
ICAgIH0sDQogICAgICB7DQogICAgICAgICJpZCI6ICJFbGVtZW50c1BhbmVsIiwNCiAgICAgICAg
InR5cGUiOiAib2JqZWN0IiwNCiAgICAgICAgImlzSW5zdGFuY2VPZiI6ICJQYW5lbFdpdGhTaWRl
YmFycyIsDQogICAgICAgICJkZXNjcmlwdGlvbiI6ICJSZXByZXNlbnRzIEVsZW1lbnRzIHBhbmVs
IiwNCiAgICAgICAgImV2ZW50cyI6IFsNCiAgICAgICAgICB7DQogICAgICAgICAgICAibmFtZSI6
ICJvblNlbGVjdGlvbkNoYW5nZWQiLA0KICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkZpcmVk
IHdoZW4gYW4gb2JqZWN0cyBpcyBzZWxlY3RlZCBpbiB0aGUgcGFuZWwuIiwNCiAgICAgICAgICB9
LA0KICAgICAgICBdDQogICAgICB9LA0KICAgICAgew0KICAgICAgICAiaWQiOiAiRXh0ZW5zaW9u
UGFuZWwiLA0KICAgICAgICAidHlwZSI6ICJvYmplY3QiLA0KICAgICAgICAiaXNJbnN0YW5jZU9m
IjogIlBhbmVsIiwNCiAgICAgICAgImRlc2NyaXB0aW9uIjogIlJlcHJlc2VudHMgYSBwYW5lbCBj
cmVhdGVkIGJ5IGV4dGVuc2lvbiIsDQogICAgICAgICJldmVudHMiOiBbDQogICAgICAgICAgew0K
ICAgICAgICAgICAgIm5hbWUiOiAib25TZWFyY2giLA0KICAgICAgICAgICAgImRlc2NyaXB0aW9u
IjogIkZpcmVkIHVwb24gYSBzZWFyY2ggYWN0aW9uIChzdGFydCBvZiBhIG5ldyBzZWFyY2gsIHNl
YXJjaCByZXN1bHQgbmF2aWdhdGlvbiBvciBzZWFyY2ggYmVpbmcgY2FuY2VsZWQpLiIsDQogICAg
ICAgICAgICAicGFyYW1ldGVycyI6IFsNCiAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAg
ICJuYW1lIjogImFjdGlvbiIsDQogICAgICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIiwNCiAg
ICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiVHlwZSBvZiBzZWFyY2ggYWN0aW9uIGJlaW5n
IHBlcmZvcm1lZC4iDQogICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgIHsNCiAgICAgICAg
ICAgICAgICAibmFtZSI6ICJxdWVyeVN0cmluZyIsDQogICAgICAgICAgICAgICAgInR5cGUiOiAi
c3RyaW5nIiwNCiAgICAgICAgICAgICAgICAib3B0aW9uYWwiOiB0cnVlLA0KICAgICAgICAgICAg
ICAgICJkZXNjcmlwdGlvbiI6ICJRdWVyeSBzdHJpbmcgKG9ubHkgZm9yICdwZXJmb3JtU2VhcmNo
JykiDQogICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIF0NCiAgICAgICAgICB9DQogICAgICAg
CV0NCiAgICAgIH0sDQogICAgICB7DQogICAgICAgICJpZCI6ICJFeHRlbnNpb25TaWRlYmFyUGFu
ZSIsDQogICAgICAgICJ0eXBlIjogIm9iamVjdCIsDQogICAgICAgICJkZXNjcmlwdGlvbiI6ICJB
IHNpZGViYXIgY3JlYXRlZCBieSB0aGUgZXh0ZW5zaW9uLiIsDQogICAgICAgICJmdW5jdGlvbnMi
OiBbDQogICAgICAgICAgew0KICAgICAgICAgICAgIm5hbWUiOiAic2V0SGVpZ2h0IiwNCiAgICAg
ICAgICAgICJ0eXBlIjogImZ1bmN0aW9uIiwNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJT
ZXRzIHRoZSBoZWlnaHQgb2YgdGhlIHNpZGViYXIuIiwNCiAgICAgICAgICAgICJwYXJhbWV0ZXJz
IjogWw0KICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgIm5hbWUiOiAiaGVpZ2h0IiwN
CiAgICAgICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLA0KICAgICAgICAgICAgICAgICJkZXNj
cmlwdGlvbiI6ICJBIENTUy1saWtlIHNpemUgc3BlY2lmaWNhdGlvbiwgZS5nLiAnMTBweCcgb3Ig
JzEycHQnIg0KICAgICAgICAgICAgICB9DQogICAgICAgICAgICBdDQogICAgICAgICAgfQ0KICAg
ICAgICBdDQogICAgICB9LA0KICAgICAgew0KICAgICAgICAiaWQiOiAiV2F0Y2hFeHByZXNzaW9u
U2lkZWJhclBhbmUiLA0KICAgICAgICAidHlwZSI6ICJvYmplY3QiLA0KICAgICAgICAiZGVzY3Jp
cHRpb24iOiAiQSBzaWRlYmFyIGNyZWF0ZWQgYnkgdGhlIGV4dGVuc2lvbi4iLA0KICAgICAgICAi
ZnVuY3Rpb25zIjogWw0KICAgICAgICAgIHsNCiAgICAgICAgICAgICJuYW1lIjogInNldEhlaWdo
dCIsDQogICAgICAgICAgICAidHlwZSI6ICJmdW5jdGlvbiIsDQogICAgICAgICAgICAiZGVzY3Jp
cHRpb24iOiAiU2V0cyB0aGUgaGVpZ2h0IG9mIHRoZSBzaWRlYmFyLiIsDQogICAgICAgICAgICAi
cGFyYW1ldGVycyI6IFsNCiAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJuYW1lIjog
ImhlaWdodCIsDQogICAgICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIiwNCiAgICAgICAgICAg
ICAgICAiZGVzY3JpcHRpb24iOiAiQSBDU1MtbGlrZSBzaXplIHNwZWNpZmljYXRpb24sIGUuZy4g
JzEwcHgnIG9yICcxMnB0JyINCiAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgXQ0KICAgICAg
ICAgIH0sDQogICAgICAgICAgew0KICAgICAgICAgICAgIm5hbWUiOiAic2V0RXhwcmVzc2lvbiIs
DQogICAgICAgICAgICAidHlwZSI6ICJmdW5jdGlvbiIsDQogICAgICAgICAgICAiZGVzY3JpcHRp
b24iOiAiU2V0cyBhbiBleHByZXNzaW9uIHRoYXQgaXMgZXZhbHVhdGVkIHdpdGhpbiB0aGUgaW5z
cGVjdGVkIHBhZ2UuIFRoZSByZXN1bHQgaXMgZGlzcGxheWVkIGluIHRoZSBzaWRlYmFyIHBhbmUu
IiwNCiAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWw0KICAgICAgICAgICAgICB7DQogICAgICAg
ICAgICAgICAgIm5hbWUiOiAiZXhwcmVzc2lvbiIsDQogICAgICAgICAgICAgICAgInR5cGUiOiAi
c3RyaW5nIiwNCiAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQW4gZXhwcmVzc2lvbiB0
byBiZSBldmFsdWF0ZWQgaW4gY29udGV4dCBvZiB0aGUgaW5zcGVjdGVkIHBhZ2UuIEphdmFTY3Jp
cHQgb2JqZWN0cyBhbmQgRE9NIG5vZGVzIGFyZSBkaXNwbGF5ZWQgaW4gYW4gZXhwYW5kYWJsZSB0
cmVlIHNpbWlsYXIgdG8gdGhlIGNvbnNvbGUvd2F0Y2guIg0KICAgICAgICAgICAgICB9LA0KICAg
ICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgIm5hbWUiOiAicm9vdFRpdGxlIiwNCiAgICAg
ICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLA0KICAgICAgICAgICAgICAgICJvcHRpb25hbCI6
IHRydWUsDQogICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkFuIG9wdGlvbmFsIHRpdGxl
IGZvciB0aGUgcm9vdCBvZiB0aGUgZXhwcmVzc2lvbiB0cmVlLiINCiAgICAgICAgICAgICAgfQ0K
ICAgICAgICAgICAgXQ0KICAgICAgICAgIH0sDQogICAgICAgICAgew0KICAgICAgICAgICAgIm5h
bWUiOiAic2V0T2JqZWN0IiwNCiAgICAgICAgICAgICJ0eXBlIjogImZ1bmN0aW9uIiwNCiAgICAg
ICAgICAgICJkZXNjcmlwdGlvbiI6ICJTZXRzIGEgSlNPTi1jb21wbGlhbnQgb2JqZWN0IHRvIGJl
IGRpc3BsYXllZCBpbiB0aGUgc2lkZWJhciBwYW5lLiIsDQogICAgICAgICAgICAicGFyYW1ldGVy
cyI6IFsNCiAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJuYW1lIjogImpzb25PYmpl
Y3QiLA0KICAgICAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsDQogICAgICAgICAgICAgICAg
ImRlc2NyaXB0aW9uIjogIkFuIG9iamVjdCB0byBiZSBkaXNwbGF5ZWQgaW4gY29udGV4dCBvZiB0
aGUgaW5zcGVjdGVkIHBhZ2UuIEV2YWx1YXRlZCBpbiB0aGUgY29udGV4dCBvZiB0aGUgY2FsbGVy
IChBUEkgY2xpZW50KS4iDQogICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgIHsNCiAgICAg
ICAgICAgICAgICAibmFtZSI6ICJyb290VGl0bGUiLA0KICAgICAgICAgICAgICAgICJ0eXBlIjog
InN0cmluZyIsDQogICAgICAgICAgICAgICAgIm9wdGlvbmFsIjogdHJ1ZSwNCiAgICAgICAgICAg
ICAgICAiZGVzY3JpcHRpb24iOiAiQW4gb3B0aW9uYWwgdGl0bGUgZm9yIHRoZSByb290IG9mIHRo
ZSBleHByZXNzaW9uIHRyZWUuIg0KICAgICAgICAgICAgICB9DQogICAgICAgICAgICBdDQogICAg
ICAgICAgfQ0KICAgICAgICBdDQogICAgICB9DQogICAgXSwNCiAgICAicHJvcGVydGllcyI6IHsN
CiAgICAgICJzY3JpcHRzIjogew0KICAgICAgICAiJHJlZiI6ICJTY3JpcHRzUGFuZWwiLA0KICAg
ICAgICAiZGVzY3JpcHRpb24iOiAiU2NyaXB0cyBwYW5lbCINCiAgICAgIH0NCiAgICB9LA0KICAg
ICJmdW5jdGlvbnMiOiBbDQogICAgICB7DQogICAgICAgICJuYW1lIjogImNyZWF0ZSIsDQogICAg
ICAgICJ0eXBlIjogImZ1bmN0aW9uIiwNCiAgICAgICAgImRlc2NyaXB0aW9uIjogIkNyZWF0ZXMg
YW4gZXh0ZW5zaW9uIHBhbmVsLiIsDQogICAgICAgICJwYXJhbWV0ZXJzIjogWw0KICAgICAgICAg
IHsNCiAgICAgICAgICAgICJuYW1lIjogInRpdGxlIiwNCiAgICAgICAgICAgICJ0eXBlIjogInN0
cmluZyIsDQogICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiVGl0bGUgdGhhdCBpcyBkaXNwbGF5
ZWQgdW5kZXIgdGhlIGV4dGVuc2lvbiBpY29uIGluIHRoZSB0b29sYmFyLiINCiAgICAgICAgICB9
LA0KICAgICAgICAgIHsNCiAgICAgICAgICAgICJuYW1lIjogImljb25VUkwiLA0KICAgICAgICAg
ICAgInR5cGUiOiAic3RyaW5nIiwNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJBbiBVUkwg
b2YgdGhlIHRvb2xiYXIgaWNvbi4iDQogICAgICAgICAgfSwNCiAgICAgICAgICB7DQogICAgICAg
ICAgICAibmFtZSI6ICJwYWdlVVJMIiwNCiAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsDQog
ICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQW4gVVJMIG9mIHRoZSBwYWdlIHRoYXQgcmVwcmVz
ZW50cyB0aGlzIHBhbmVsLiINCiAgICAgICAgICB9DQogICAgICAgIF0sDQogICAgICAgICJyZXR1
cm5zIiA6IHsNCiAgICAgICAgICAiJHJlZiI6ICJFeHRlbnNpb25QYW5lbCIsDQogICAgICAgICAg
ImRlc2NyaXB0aW9uIjogIkEgcGFuZWwgdGhhdCB3YXMgY3JlYXRlZC4iDQogICAgICAgIH0NCiAg
ICAgIH0NCiAgICBdDQogIH0sDQogIHsNCiAgICAibmFtZXNwYWNlIjogIndlYkluc3BlY3Rvci5y
ZXNvdXJjZXMiLA0KICAgICJ0eXBlcyI6IFsNCiAgICAgIHsNCiAgICAgICAgImlkIjogIlJlc291
cmNlIiwNCiAgICAgICAgInR5cGUiOiAib2JqZWN0IiwNCiAgICAgICAgImRlc2NyaXB0aW9uIjog
IlJlcHJlc2VudHMgYSByZXNvdXJjZSAoZG9jdW1lbnQsIHNjcmlwdCwgaW1hZ2UgZXRjKS4gU2Vl
IEhBUiBTcGVjaWZpY2F0aW9uIGZvciByZWZlcmVuY2UuIiwNCiAgICAgICAgImZ1bmN0aW9ucyI6
IFsNCiAgICAgICAgICB7DQogICAgICAgICAgICAibmFtZSI6ICJnZXRDb250ZW50IiwNCiAgICAg
ICAgICAgICJ0eXBlIjogImZ1bmN0aW9uIiwNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJS
ZXR1cm5zIHJlc291cmNlIGNvbnRlbnQuIiwNCiAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWw0K
ICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgIm5hbWUiOiAiY2FsbGJhY2siLA0KICAg
ICAgICAgICAgICAgICJ0eXBlIjogImZ1bmN0aW9uIiwNCiAgICAgICAgICAgICAgICAiZGVzY3Jp
cHRpb24iOiAiQSBmdW5jdGlvbiB0aGF0IGlzIGNhbGxlZCB1cG9uIHJlcXVlc3QgY29tcGxldGlv
bi4iLA0KICAgICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWw0KICAgICAgICAgICAgICAgICAg
ew0KICAgICAgICAgICAgICAgICAgICAibmFtZSI6ICJjb250ZW50IiwNCiAgICAgICAgICAgICAg
ICAgICAgInR5cGUiOiAic3RyaW5nIiwNCiAgICAgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9u
IjogIlJlc291cmNlIGNvbnRlbnQgKHBvdGVudGlhbGx5IGVuY29kZWQpLiINCiAgICAgICAgICAg
ICAgICAgIH0sDQogICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICJuYW1l
IjogImVuY29kaW5nIiwNCiAgICAgICAgICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIiwNCiAg
ICAgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkVtcHR5IGlmIGNvbnRlbnQgaXMgbm90
IGVuY29kZWQsIGVuY29kaW5nIG5hbWUgb3RoZXJ3aXNlLiBDdXJyZW50bHksIG9ubHkgYmFzZTY0
IHN1cHBvcnRlZC4iDQogICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgXQ0KICAg
ICAgICAgICAgICB9DQogICAgICAgICAgICBdDQogICAgICAgICAgfQ0KICAgICAgICBdLA0KICAg
ICAgfQ0KICAgIF0sDQogICAgImZ1bmN0aW9ucyI6IFsNCiAgICAgIHsNCiAgICAgICAgIm5hbWUi
OiAiZ2V0SEFSIiwNCiAgICAgICAgInR5cGUiOiAiZnVuY3Rpb24iLA0KICAgICAgICAiZGVzY3Jp
cHRpb24iOiAiUmV0dXJucyBIQVIgYXJjaGl2ZSB0aGF0IGNvbnRhaW5zIGFsbCBrbm93biByZXNv
dXJjZSBvYmplY3RzLiIsDQogICAgICAgICJwYXJhbWV0ZXJzIjogWw0KICAgICAgICAgIHsNCiAg
ICAgICAgICAgICJuYW1lIjogImNhbGxiYWNrIiwNCiAgICAgICAgICAgICJ0eXBlIjogImZ1bmN0
aW9uIiwNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJBIGZ1bmN0aW9uIHRoYXQgaXMgY2Fs
bGVkIHVwb24gcmVxdWVzdCBjb21wbGV0aW9uLiIsDQogICAgICAgICAgICAicGFyYW1ldGVycyI6
IFsNCiAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJuYW1lIjogImhhciIsDQogICAg
ICAgICAgICAgICAgInR5cGUiOiAib2JqZWN0IiwNCiAgICAgICAgICAgICAgICAiZGVzY3JpcHRp
b24iOiAiQSBIQVIgYXJjaGlldmUuIFNlZSBIQVIgc3BlY2lmaWNhdGlvbiBmb3IgZGV0YWlscy4i
DQogICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIF0NCiAgICAgICAgICB9DQogICAgICAgIF0N
CiAgICAgIH0NCiAgICBdLA0KICAgICJldmVudHMiOiBbDQogICAgICB7DQogICAgICAgICJuYW1l
IjogIm9uRmluaXNoZWQiLA0KICAgICAgICAidHlwZSI6ICJmdW5jdGlvbiIsDQogICAgICAgICJk
ZXNjcmlwdGlvbiI6ICJGaXJlZCB3aGVuIGEgcmVzb3VyY2UgcmVxdWVzdCBpcyBmaW5pc2hlZCBh
bmQgYWxsIHJlc291cmNlIGRhdGEgYXJlIGF2YWlsYWJsZS4iLA0KICAgICAgICAicGFyYW1ldGVy
cyI6IFsNCiAgICAgICAgICB7ICJuYW1lIjogInJlc291cmNlIiwgIiRyZWYiOiAiUmVzb3VyY2Ui
IH0sDQogICAgICAgIF0NCiAgICAgIH0NCiAgICBdDQogIH0sDQogIHsNCiAgICAibmFtZXNwYWNl
IjogIndlYkluc3BlY3Rvci5hdWRpdHMiLA0KICAgICJmdW5jdGlvbnMiOiBbDQogICAgICB7DQog
ICAgICAgICJuYW1lIjogImFkZENhdGVnb3J5IiwNCiAgICAgICAgInR5cGUiOiAiZnVuY3Rpb24i
LA0KICAgICAgICAiZGVzY3JpcHRpb24iOiAiQWRkcyBhbiBhdWRpdCBjYXRlZ29yeS4iLA0KICAg
ICAgICAicGFyYW1ldGVycyI6IFsNCiAgICAgICAgICB7ICJuYW1lIjogImRpc3BsYXlOYW1lIiwg
InR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIkEgZGlzcGxheSBuYW1lIGZvciB0aGUg
Y2F0ZWdvcnkiIH0sDQogICAgICAgICAgeyAibmFtZSI6ICJyZXN1bHRDb3VudCIsICJ0eXBlIjog
Im51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJUaGUgZXhwZWN0ZWQgbnVtYmVyIG9mIGF1ZGl0IHJl
c3VsdHMgaW4gdGhlIGNhdGVnb3J5LiIgfSwNCiAgICAgICAgXSwNCiAgICAgICAgInJldHVybnMi
OiB7DQogICAgICAgICAgIiRyZWYiOiAiQXVkaXRDYXRlZ29yeSINCiAgICAgICAgfQ0KICAgICAg
fQ0KICAgIF0sDQogICAgInR5cGVzIjogWw0KICAgICAgew0KICAgICAgICAiaWQiOiAiQXVkaXRD
YXRlZ29yeSIsDQogICAgICAgICJ0eXBlIjogIm9iamVjdCIsDQogICAgICAgICJkZXNjcmlwdGlv
biI6ICJBIHNldCBvZiBhdWRpdCBydWxlcyIsDQogICAgICAgICJldmVudHMiOiBbDQogICAgICAg
ICAgew0KICAgICAgICAgICAgIm5hbWUiOiAib25BdWRpdFN0YXJ0ZWQiLA0KICAgICAgICAgICAg
InR5cGUiOiAiZnVuY3Rpb24iLA0KICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkZpcmVkIHdo
ZW4gdGhlIGF1ZGl0IGlzIHN0YXJ0ZWQsIGlmIHRoZSBjYXRlZ29yeSBpcyBlbmFibGVkIC0tIHRo
ZSBleHRlbnNpb24gaXMgZXhwZWN0ZWQgdG8gYmVnaW4gZXhlY3V0aW5nIGF1ZGl0IHJ1bGVzLiIs
DQogICAgICAgICAgICAicGFyYW1ldGVycyI6IFsNCiAgICAgICAgICAgICAgeyAibmFtZSI6ICJy
ZXN1bHRzIiwgIiRyZWYiOiAiQXVkaXRSZXN1bHRzIiB9DQogICAgICAgICAgICBdDQoNCiAgICAg
ICAgICB9DQogICAgICAgIF0NCiAgICAgIH0sDQogICAgICB7DQogICAgICAgICJpZCI6ICJGb3Jt
YXR0ZWRWYWx1ZSIsDQogICAgICAgICJ0eXBlIjogIm9iamVjdCIsDQogICAgICAgICJkZXNjcmlw
dGlvbiI6ICJBIHZhbHVlIHJldHVybmVkIGZyb20gb25lIG9mIHRoZSBmb3JtYXR0ZXJzIChhbiBV
UkwsIGNvZGUgc25pcHBldCBldGMpLCB0byBiZSBwYXNzZWQgdG8gY3JlYXRlUmVzdWx0IG9yIGFk
ZENoaWxkIg0KICAgICAgfSwNCiAgICAgIHsNCiAgICAgICAgImlkIjogIkF1ZGl0UmVzdWx0cyIs
DQogICAgICAgICJ0eXBlIjogIm9iamVjdCIsDQogICAgICAgICJkZXNjcmlwdGlvbiI6ICJBIGNv
bGxlY3Rpb24gb2YgYXVkaXQgcmVzdWx0cyBmb3IgY3VycmVudCBydW4gb2YgdGhlIGF1ZGl0IGNh
dGVnb3J5IiwNCiAgICAgICAgImZ1bmN0aW9ucyI6IFsNCiAgICAgICAgICB7DQogICAgICAgICAg
ICAibmFtZSI6ICJhZGRSZXN1bHQiLA0KICAgICAgICAgICAgInR5cGUiOiAiZnVuY3Rpb24iLA0K
ICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbDQogICAgICAgICAgICAgIHsNCiAgICAgICAgICAg
ICAgICAibmFtZSI6ICJkaXNwbGF5TmFtZSIsDQogICAgICAgICAgICAgICAgInR5cGUiOiAic3Ry
aW5nIiwNCiAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQSBjb25jaXNlLCBoaWdoLWxl
dmVsIGRlc2NyaXB0aW9uIG9mIGF1ZGl0IHJ1bGUgcmVzdWx0Ig0KICAgICAgICAgICAgICB9LA0K
ICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgIm5hbWUiOiAiZGVzY3JpcHRpb24iLA0K
ICAgICAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsDQogICAgICAgICAgICAgICAgImRlc2Ny
aXB0aW9uIjogIkEgZGV0YWlsZWQgZGVzY3JpcHRpb24gb2Ygd2hhdCB0aGUgZGlzcGxheU5hbWUg
bWVhbnMiDQogICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAg
ICAibmFtZSI6ICJzZXZlcml0eSIsDQogICAgICAgICAgICAgICAgIiRyZWYiOiAiQXVkaXRSZXN1
bHRTZXZlcmV0eSIsDQogICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgIHsNCiAgICAgICAg
ICAgICAgICAibmFtZSI6ICJkZXRhaWxzIiwNCiAgICAgICAgICAgICAgICAiJHJlZiI6ICJBdWRp
dFJlc3VsdE5vZGUiLA0KICAgICAgICAgICAgICAgICJvcHRpb25hbCI6IHRydWUsDQogICAgICAg
ICAgICAgICAgImRlc2NyaXB0aW9uIjogIkEgc3VidHJlZSB0aGF0IGFwcGVhcnMgdW5kZXIgYWRk
ZWQgcmVzdWx0IHRoYXQgbWF5IHByb3ZpZGUgYWRkaXRpb25hbCBkZXRhaWxzIG9uIHRoZSB2aW9s
YXRpb25zIGZvdW5kIg0KICAgICAgICAgICAgICB9DQogICAgICAgICAgICBdDQogICAgICAgICAg
fSwNCiAgICAgICAgICB7DQogICAgICAgICAgICAibmFtZSI6ICJjcmVhdGVSZXN1bHQiLA0KICAg
ICAgICAgICAgInR5cGUiOiAiZnVuY3Rpb24iLA0KICAgICAgICAgICAgImRlc2NyaXB0aW9uIjog
IkNyZWF0ZXMgYSByZXN1bHQgbm9kZSB0aGF0IG1heSBiZSB1c2VyIGFzIGRldGFpbHMgcGFyYW1l
dGVycyB0byBhZGRSZXN1bHQiLA0KICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbDQogICAgICAg
ICAgICAgIHsNCiAgICAgICAgICAgICAgICAibmFtZSI6ICJjb250ZW50IC4uLiIsDQogICAgICAg
ICAgICAgICAgImNob2ljZXMiOiBbDQogICAgICAgICAgICAgICAgICB7ICJ0eXBlIjogInN0cmlu
ZyIgfSwNCiAgICAgICAgICAgICAgICAgIHsgIiRyZWYiOiAiRm9ybWF0dGVkVmFsdWUiIH0NCiAg
ICAgICAgICAgICAgICBdLA0KICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJFaXRoZXIg
c3RyaW5nIG9yIGZvcm1hdHRlZCB2YWx1ZXMgcmV0dXJuZWQgYnkgb25lIG9mIEF1ZGl0UmVzdWx0
IGZvcm1hdHRlcnMgKHVybCwgc25pcHBldCBldGMpIg0KICAgICAgICAgICAgICB9DQogICAgICAg
ICAgICBdLA0KICAgICAgICAgICAgInJldHVybnMiOiB7DQogICAgICAgICAgICAgICIkcmVmIjog
IkF1ZGl0UmVzdWx0Tm9kZSINCiAgICAgICAgICAgIH0NCiAgICAgICAgICB9LA0KICAgICAgICAg
IHsNCiAgICAgICAgICAgICJuYW1lIjogImRvbmUiLA0KICAgICAgICAgICAgInR5cGUiOiAiZnVu
Y3Rpb24iLA0KICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlNpZ25hbHMgdGhlIFdlYkluc3Bl
Y3RvciBBdWRpdHMgcGFuZWwgdGhhdCB0aGUgcnVuIG9mIHRoaXMgY2F0ZWdvcnkgaXMgb3Zlci4g
IiArDQogICAgICAgICAgICAgICJOb3JtYWxseSB0aGUgcnVuIGNvbXBsZXRlcyBhdXRvbWF0aWNh
bGx5IHdoZW4gYSBudW1iZXIgb2YgYWRkZWQgdG9wLWxldmVsIHJlc3VsdHMgaXMgZXF1YWwgdG8g
dGhhdCBkZWNsYXJlZCB3aGVuIEF1ZGl0Q2F0ZWdvcnkgd2FzIGNyZWF0ZWQuIiwNCiAgICAgICAg
ICB9LA0KICAgICAgICAgIHsNCiAgICAgICAgICAgICJuYW1lIjogInVybCIsDQogICAgICAgICAg
ICAidHlwZSI6ICJmdW5jdGlvbiIsDQogICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiUmVuZGVy
IHBhc3NlZCB2YWx1ZSBhcyBhbiBVUkwgaW4gdGhlIEF1ZGl0cyBwYW5lbCIsDQogICAgICAgICAg
ICAicGFyYW1ldGVycyI6IFsNCiAgICAgICAgICAgICAgeyAibmFtZSI6ICJocmVmIiwgInR5cGUi
OiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIkFuIFVSTCB0aGF0IHdpbGwgYXBwZWFyIGFzIGhy
ZWYgdmFsdWUgb24gcmVzdWx0aW5nIGxpbmsiIH0sDQogICAgICAgICAgICAgIHsgIm5hbWUiOiAi
ZGlzcGxheVRleHQiLCAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24iOiAiQSB0ZXh0IHRo
YXQgd2lsbCBhcHBlYXIgdG8gdXNlciIsICJvcHRpb25hbCI6IHRydWUgfQ0KICAgICAgICAgICAg
XSwNCiAgICAgICAgICAgICJyZXR1cm5zIjogeyAiJHJlZiI6ICJGb3JtYXR0ZWRWYWx1ZSIgfQ0K
ICAgICAgICAgIH0sDQogICAgICAgICAgew0KICAgICAgICAgICAgIm5hbWUiOiAic25pcHBldCIs
DQogICAgICAgICAgICAidHlwZSI6ICJmdW5jdGlvbiIsDQogICAgICAgICAgICAiZGVzY3JpcHRp
b24iOiAiUmVuZGVyIHBhc3NlZCB0ZXh0IGFzIGEgY29kZSBzbmlwcGV0IGluIHRoZSBBdWRpdHMg
cGFuZWwiLA0KICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbDQogICAgICAgICAgICAgIHsgIm5h
bWUiOiAidGV4dCIsICJ0eXBlIjogInN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICJTbmlwcGV0IHRl
eHQiIH0sDQogICAgICAgICAgICBdLA0KICAgICAgICAgICAgInJldHVybnMiOiB7ICIkcmVmIjog
IkZvcm1hdHRlZFZhbHVlIiB9DQogICAgICAgICAgfQ0KICAgICAgICBdLA0KICAgICAgICAicHJv
cGVydGllcyI6IHsNCiAgICAgICAgICAiU2V2ZXJpdHkiOiB7DQogICAgICAgICAgICAiJHJlZiI6
ICJBdWRpdFJlc3VsdFNldmVyaXR5IiwNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJBIGNs
YXNzIHRoYXQgY29udGFpbnMgcG9zc2libGUgdmFsdWVzIGZvciBhdWRpdCByZXN1bHQgc2V2ZXJp
dGllcy4iDQogICAgICAgICAgfSwNCiAgICAgICAgICAidGV4dCI6IHsNCiAgICAgICAgICAgICJ0
eXBlIjogInN0cmluZyIsDQogICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiVGhlIGNvbnRlbnRz
IG9mIHRoZSBub2RlLiINCiAgICAgICAgICB9LA0KICAgICAgICAgICJjaGlsZHJlbiI6IHsNCiAg
ICAgICAgICAgICJvcHRpb25hbCI6IHRydWUsDQogICAgICAgICAgICAidHlwZSI6ICJhcnJheSIs
DQogICAgICAgICAgICAiaXRlbXMiOiB7ICIkcmVmIjogIkF1ZGl0UmVzdWx0Tm9kZSIgfSwNCiAg
ICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJDaGlsZHJlbiBvZiB0aGlzIG5vZGUuIg0KICAgICAg
ICAgIH0sDQogICAgICAgICAgImV4cGFuZGVkIjogew0KICAgICAgICAgICAgIm9wdGlvbmFsIjog
InRydWUiLA0KICAgICAgICAgICAgInR5cGUiOiAiYm9vbGVhbiIsDQogICAgICAgICAgICAiZGVz
Y3JpcHRpb24iOiAiV2hldGhlciB0aGUgbm9kZSBpcyBleHBhbmRlZCBieSBkZWZhdWx0LiINCiAg
ICAgICAgICB9DQogICAgICAgIH0NCiAgICAgIH0sDQogICAgICB7DQogICAgICAgICJpZCI6ICJB
dWRpdFJlc3VsdE5vZGUiLA0KICAgICAgICAidHlwZSI6ICJvYmplY3QiLA0KICAgICAgICAiZGVz
Y3JpcHRpb24iOiAiQSBub2RlIGluIHRoZSBhdWRpdCByZXN1bHQgdHJlZXMuIERpc3BsYXlzIHNv
bWUgY29udGVudCBhbmQgb3B0aW9uYWxseSBoYXMgY2hpbGRyZW4gbm9kZSIsDQogICAgICAgICJm
dW5jdGlvbnMiOiBbDQogICAgICAgICAgew0KICAgICAgICAgICAgIm5hbWUiOiAiYWRkQ2hpbGQi
LA0KICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkFkZHMgYW5vdGhlciBjaGlsZCBub2RlIHRv
IHRoaXMgbm9kZSIsDQogICAgICAgICAgICAicGFyYW1ldGVycyI6IFsNCiAgICAgICAgICAgICAg
ew0KICAgICAgICAgICAgICAgICJuYW1lIjogImNvbnRlbnQgLi4uIiwNCiAgICAgICAgICAgICAg
ICAiY2hvaWNlcyI6IFsNCiAgICAgICAgICAgICAgICAgIHsgInR5cGUiOiAic3RyaW5nIiB9LA0K
ICAgICAgICAgICAgICAgICAgeyAiJHJlZiI6ICJGb3JtYXR0ZWRWYWx1ZSIgfQ0KICAgICAgICAg
ICAgICAgIF0sDQogICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkVpdGhlciBzdHJpbmcg
b3IgZm9ybWF0dGVkIHZhbHVlcyByZXR1cm5lZCBieSBvbmUgb2YgQXVkaXRSZXN1bHQgZm9ybWF0
dGVycyAodXJsLCBzbmlwcGV0IGV0YykiDQogICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIF0s
DQogICAgICAgICAgICAicmV0dXJucyI6IHsNCiAgICAgICAgICAgICAgIiRyZWYiOiAiQXVkaXRS
ZXN1bHROb2RlIg0KICAgICAgICAgICAgfQ0KICAgICAgICAgIH0NCiAgICAgICAgXSwNCiAgICAg
ICAgInByb3BlcnRpZXMiOiB7DQogICAgICAgICAgImV4cGFuZGVkIjogew0KICAgICAgICAgICAg
InR5cGUiOiAiYm9vbGVhbiIsDQogICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiSWYgc2V0LCB0
aGUgc3VidHJlZSB3aWxsIGFsd2F5cyBiZSBleHBhbmRlZCINCiAgICAgICAgICB9DQogICAgICAg
IH0NCiAgICAgIH0sDQogICAgICB7DQogICAgICAgICJpZCI6ICJBdWRpdFJlc3VsdFNldmVyaXR5
IiwNCiAgICAgICAgInR5cGUiOiAib2JqZWN0IiwNCiAgICAgICAgInByb3BlcnRpZXMiOiB7DQog
ICAgICAgICAgIkluZm8iOiB7DQogICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLA0KICAgICAg
ICAgIH0sDQogICAgICAgICAgIldhcm5pbmciOiB7DQogICAgICAgICAgICAidHlwZSI6ICJzdHJp
bmciLA0KICAgICAgICAgIH0sDQogICAgICAgICAgIlNldmVyZSI6IHsNCiAgICAgICAgICAgICJ0
eXBlIjogInN0cmluZyIsDQogICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICB9DQogICAgXQ0K
ICB9DQpdOw0KPC9zY3JpcHQ+DQoNCjxzdHlsZT4NCi50b2RvLCAuY29tbWVudCB7IC8qIHdoaWxl
IHdlJ3JlIHdvcmtpbmcgb24gZG9jLCBjb21tZW50IG91dCBkaXNwbGF5ICovDQogIGNvbG9yOiBy
Z2IoMjU1LCAwLCAwKTsNCiAgZGlzcGxheTogbm9uZTsNCn0NCg0KLnRiZCB7IC8qIHN0eWxlIGZv
ciBjb21tZW50cyB0aGF0IHNob3VsZCBiZSB2aXNpYmxlIHRvIGFsbCBkZXZzICovDQogIGNvbG9y
OiByZ2IoMTI1LCAxMjUsIDEyNSk7DQp9DQoNCi8qIFRoaXMgaXMgdGhlIHN0YXJ0IG9mIHRoZSBz
dHlsZXMgaW1wb3J0ZWQgZnJvbSBDb2Rlc2l0ZS4gKi8NCg0KLmctc2VjdGlvbjphZnRlciB7DQog
IGNvbnRlbnQ6Ii4iOw0KICBkaXNwbGF5OmJsb2NrOw0KICBoZWlnaHQ6MDsNCiAgY2xlYXI6Ym90
aDsNCiAgdmlzaWJpbGl0eTpoaWRkZW4NCn0NCg0KLmctc2VjdGlvbiwuZy11bml0IHsNCiAgem9v
bToxDQp9DQoNCmJvZHkgew0KICBmb250LWZhbWlseTpIZWx2ZXRpY2EsQXJpYWwsc2Fucy1zZXJp
ZjsNCiAgZm9udC1zaXplOnNtYWxsOw0KICBjb2xvcjojMDAwOw0KICBiYWNrZ3JvdW5kLWNvbG9y
OiNmZmY7DQogIG1hcmdpbjozcHggOHB4DQp9DQoNCmEsYTpsaW5rIHsNCiAgY29sb3I6IzAwYw0K
fQ0KDQphOmFjdGl2ZSB7DQogIGNvbG9yOnJlZA0KfQ0KDQphOnZpc2l0ZWQgew0KICBjb2xvcjoj
NTUxYThiDQp9DQoNCnAgew0KICAvKiBwYWRkaW5nOjFlbSAwIDAgMDsgKi8NCiAgbWFyZ2luOjFl
bSAwIDAgMDsNCiAgbGluZS1oZWlnaHQ6MTI1JQ0KfQ0KDQppbWcgew0KICBib3JkZXI6bm9uZTsN
CiAgcGFkZGluZzowOw0KICBtYXJnaW46MWVtIDAgMCAwOw0KfQ0KDQphIGltZyB7DQogIGJvcmRl
cjoxcHggc29saWQ7DQogIHBhZGRpbmc6MXB4DQp9DQoNCnByZSBiIHsNCiAgYmFja2dyb3VuZDp5
ZWxsb3cNCn0NCg0KY29kZSxwcmUgew0KICBmb250LWZhbWlseTptb25vc3BhY2U7DQogIGNvbG9y
OiMwMDcwMDANCn0NCg0KY29kZSB7DQogIGZvbnQtc2l6ZToxMHB0DQp9DQoNCnByZSB7DQogIGZv
bnQtc2l6ZTo5cHQ7DQogIGJhY2tncm91bmQtY29sb3I6I2ZhZmFmYTsNCiAgYm9yZGVyOjFweCBz
b2xpZCAjYmJiOw0KICBtYXJnaW46MWVtIDAgMCAwOw0KICBwYWRkaW5nOi45OWVtOw0KICBvdmVy
ZmxvdzphdXRvOw0KICB3b3JkLXdyYXA6YnJlYWstd29yZA0KfQ0KDQpibG9ja3F1b3RlIHsNCiAg
dGV4dC1hbGlnbjpqdXN0aWZ5Ow0KICBtYXJnaW46MWVtIDkwcHggMCA3MHB4Ow0KICBwYWRkaW5n
OjAgMjBweA0KfQ0KDQpociB7DQogIGJvcmRlcjoxcHggc29saWQ7DQogIGJvcmRlci1jb2xvcjoj
MzZDOw0KICBtYXJnaW46MWVtIDANCn0NCg0KaDEgew0KICBsaW5lLWhlaWdodDogMTMwJTsNCiAg
Zm9udC1zaXplOiAxNzAlOw0KICBtYXJnaW46IDA7DQogIHBhZGRpbmc6IC44ZW0gMCAwOw0KICBi
b3JkZXI6IG5vbmU7DQogIGJhY2tncm91bmQ6IG5vbmU7DQp9DQoNCmgyIHsNCiAgZm9udC1zaXpl
OiAxMzAlOw0KICBmb250LXdlaWdodDogYm9sZDsNCiAgbWFyZ2luOiAyZW0gMCAwIC0xMHB4Ow0K
ICBwYWRkaW5nOiAxcHggMTBweDsNCiAgLyogcG9zaXRpb246IHJlbGF0aXZlOyAqLw0KICBib3Jk
ZXItdG9wOiAxcHggc29saWQgIzMzNjZDQzsNCiAgYmFja2dyb3VuZC1jb2xvcjogI2U1ZWNmOTsN
Cn0NCg0KaDIgew0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGNmNmRiOw0KICBib3JkZXItdG9wOiAx
cHggc29saWQgIzAwOTkwMDsNCn0NCg0KaDMgew0KICBmb250LXNpemU6IDEzMCU7DQogIGZvbnQt
d2VpZ2h0OiBib2xkOw0KICBtYXJnaW46IDEuNWVtIDAgMCAwOw0KICB0b3A6IDBlbTsNCn0NCg0K
aDQgew0KICBmb250LXNpemU6IDExMCU7DQogIG1hcmdpbjogLjdlbSAwIDAgMDsNCiAgcG9zaXRp
b246IHJlbGF0aXZlOw0KICB0b3A6IC40ZW07DQp9DQoNCmg1IHsNCiAgZm9udC1zaXplOiAxMDAl
Ow0KICBmb250LXdlaWdodDogYm9sZDsNCiAgbWFyZ2luOiAuNmVtIDAgMCAwOw0KICBwb3NpdGlv
bjogcmVsYXRpdmU7DQogIHRvcDogLjRlbTsNCiAgei1pbmRleDogNTsNCn0NCg0KaDYgew0KICBm
b250LXNpemU6IDEwMCU7DQogIGZvbnQtd2VpZ2h0OiBub3JtYWw7DQogIGZvbnQtc3R5bGU6IGl0
YWxpYzsNCiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7DQogIG1hcmdpbjogLjRlbSAwIDAg
MDsNCiAgcG9zaXRpb246IHJlbGF0aXZlOw0KICB0b3A6IC40ZW07DQogIHotaW5kZXg6IDU7DQp9
DQoNCmgxLnBhZ2VfdGl0bGUsIGgyLnBhZ2VfdGl0bGUgew0KICBsaW5lLWhlaWdodDoxMzAlOw0K
ICBmb250LXNpemU6MTcwJTsNCiAgbWFyZ2luOjAgMCAwIC0xMHB4Ow0KICBwYWRkaW5nOi44ZW0g
MCAwOw0KICBib3JkZXI6bm9uZTsNCiAgYmFja2dyb3VuZDpub25lDQp9DQoNCm9sLHVsIHsNCiAg
cGFkZGluZzowOw0KICBtYXJnaW46LjVlbSAwIDAgMTVweDsNCiAgbGluZS1oZWlnaHQ6MTI1JQ0K
fQ0KDQpsaSBvbCxsaSB1bCB7DQogIHBhZGRpbmc6MDsNCiAgbWFyZ2luOjAgMCAwIDEwcHgNCn0N
Cg0KbGkgew0KICBtYXJnaW46LjNlbSAwIDAgMS41ZW07DQogIHBhZGRpbmc6MA0KfQ0KDQpkbCB7
DQogIG1hcmdpbjowOw0KICBwYWRkaW5nOjA7DQogIGxpbmUtaGVpZ2h0OjEyNSUNCn0NCg0KZHQg
ew0KICBmb250LXdlaWdodDpib2xkOw0KICBtYXJnaW46Ljc1ZW0gMCAwIDA7DQogIHBhZGRpbmc6
MA0KfQ0KDQpkZCB7DQogIG1hcmdpbjouNGVtIDAgMCAyZW07DQogIHBhZGRpbmc6MDsNCiAgZm9u
dC13ZWlnaHQ6bm9ybWFsDQp9DQoNCmxpIHByZSB7DQogIG1hcmdpbjouNWVtIDAgLjZlbSAwDQp9
DQoNCmxpIHAsZGQgcCB7DQogIHBhZGRpbmc6LjVlbSAwIC42ZW0gMDsNCiAgbWFyZ2luOjANCn0N
Cg0Kb2wuYWxwaGEgew0KICBsaXN0LXN0eWxlOmxvd2VyLWFscGhhDQp9DQoNCm9sLmFscGhhY2Fw
IHsNCiAgbGlzdC1zdHlsZTp1cHBlci1hbHBoYQ0KfQ0KDQpvbC5yb21hbiB7DQogIGxpc3Qtc3R5
bGU6bG93ZXItcm9tYW4NCn0NCg0Kb2wucm9tYW5jYXAgew0KICBsaXN0LXN0eWxlOnVwcGVyLXJv
bWFuDQp9DQoNCm9sLnRlcm1zbGlzdCB7DQogIGxpc3Qtc3R5bGUtdHlwZTpkZWNpbWFsDQp9DQoN
Cm9sLnRlcm1zbGlzdD5saT5vbCB7DQogIGxpc3Qtc3R5bGUtdHlwZTpsb3dlci1hbHBoYQ0KfQ0K
DQpvbC50ZXJtc2xpc3Q+bGk+b2w+bGk+b2wgew0KICBsaXN0LXN0eWxlLXR5cGU6bG93ZXItcm9t
YW4NCn0NCg0KLmxpc3RoZWFkIGxpIHsNCiAgZm9udC13ZWlnaHQ6Ym9sZA0KfQ0KDQoubGlzdGhl
YWQgbGkgKiwubGlzdGhlYWQgbGkgbGkgew0KICBmb250LXdlaWdodDpub3JtYWwNCn0NCg0KLmNv
ZGUgbGkgew0KICBmb250LWZhbWlseTptb25vc3BhY2U7DQogIGZvbnQtc2l6ZToxMHB0DQp9DQoN
Ci5jb2RlIGxpIHAsLmNvZGUgbGkgbGkgew0KICBmb250LWZhbWlseTpBcmlhbCxIZWx2ZXRpY2Es
c2Fucy1zZXJpZg0KfQ0KDQpsaSBwLm5vdGUsbGkgcC53YXJuaW5nLGxpIHAubGFic3dhcm5pbmcs
bGkgcC5jYXV0aW9uIHsNCiAgbWFyZ2luOi44ZW0gMCAwIDA7DQogIHBhZGRpbmc6LjJlbSAuNWVt
IC4yZW0gLjllbQ0KfQ0KDQpkaXYjdG9jIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIzMiwg
MjM3LCAyMzUpOw0KICBib3JkZXI6IDFweCBzb2xpZCAjMDkwOw0KICBkaXNwbGF5OiBpbmxpbmU7
DQogIGZsb2F0OiByaWdodDsNCiAgbWFyZ2luOiA1cHggMHB4IDVweCAyMHB4Ow0KICBwYWRkaW5n
OiA1cHg7DQogIHdpZHRoOiAyNTBweDsNCn0NCg0KI3RvYyBwIHsNCiAgZm9udC13ZWlnaHQ6IGJv
bGQ7DQogIG1hcmdpbjogMHB4Ow0KfQ0KDQojdG9jIG9sIHsNCiAgbWFyZ2luOjFlbSAwIDAgMDsN
CiAgcGFkZGluZzowOw0KICBsaXN0LXN0eWxlOm5vbmUNCn0NCg0KI3RvYyBvbCBsaSB7DQogIG1h
cmdpbjouNGVtIDAgMCAxZW07DQogIHBhZGRpbmc6MA0KfQ0KDQojdG9jIG9sIGxpIG9sIHsNCiAg
bWFyZ2luOjA7DQogIHBhZGRpbmc6MA0KfQ0KDQojdG9jIG9sIGxpIG9sIGxpIHsNCiAgcGFkZGlu
ZzowOw0KICBtYXJnaW46LjFlbSAwIDAgMWVtOw0KICBmb250LXdlaWdodDpub3JtYWw7DQogIGxp
c3Qtc3R5bGU6bm9uZQ0KfQ0KDQp0YWJsZSB7DQogIGJvcmRlci1jb2xsYXBzZTpjb2xsYXBzZTsN
CiAgbGluZS1oZWlnaHQ6MTI1JQ0KfQ0KDQp0aCx0ZCB7DQogIHRleHQtYWxpZ246bGVmdDsNCiAg
dmVydGljYWwtYWxpZ246dG9wDQp9DQoNCnRhYmxlIHsNCiAgbWFyZ2luOjAgMCAwIDFweDsNCiAg
LyogYm9yZGVyOjFweCBzb2xpZDsgKi8NCiAgYm9yZGVyLWNvbG9yOiMzNkM7DQogIGJvcmRlci1z
cGFjaW5nOjA7DQogIGNsZWFyOnJpZ2h0DQp9DQoNCnRhYmxlIHsNCiAgYm9yZGVyLWNvbG9yOiMw
OTANCn0NCg0KdGggew0KICBmb250LXdlaWdodDpib2xkOw0KICB0ZXh0LWFsaWduOmxlZnQ7DQog
IHBhZGRpbmc6NnB4IDEycHg7DQoNCiAgLyogSUUgaWdub3JlcyBsYWJzICovDQogIC8qIGJvcmRl
cjoxcHggc29saWQgIzM2QzsgKi8NCiAgLyogYmFja2dyb3VuZC1jb2xvcjojZTVlY2Y5ICovDQp9
DQoNCnRoIHsNCiAgYm9yZGVyLWNvbG9yOiMwOTAgaW1wb3J0YW50ITsNCiAgYmFja2dyb3VuZC1j
b2xvcjojZGNmNmRiIGltcG9ydGFudCENCn0NCg0KdGQgew0KICBwYWRkaW5nOjZweCAxMnB4Ow0K
ICBib3JkZXI6MXB4IHNvbGlkICMzNkM7DQogIGJhY2tncm91bmQtY29sb3I6I2ZmZjsNCiAgdGV4
dC1hbGlnbjpsZWZ0Ow0KICB2ZXJ0aWNhbC1hbGlnbjp0b3ANCn0NCg0KdGQgew0KICBib3JkZXIt
Y29sb3I6IzA5MA0KfQ0KDQp0ZCBoMSx0ZCBoMix0ZCBoMyx0ZCBoNCx0ZCBoNSB7DQogIG1hcmdp
bi1sZWZ0OjANCn0NCg0KdGQgdWwsdGQgb2wgew0KICBtYXJnaW46MCAwIDFlbSAxNXB4Ow0KICBw
YWRkaW5nOjANCn0NCg0KdGQgcCx0ZCBkbCB7DQogIG1hcmdpbjowIDAgMWVtIDA7DQogIHBhZGRp
bmc6MA0KfQ0KDQp0ZCAqK3Agew0KICBtYXJnaW46MWVtIDAgMCAwOw0KICBwYWRkaW5nOjANCn0N
Cg0KdGFibGUuY29sdW1ucyB7DQogIGJvcmRlcjpub25lOw0KICBtYXJnaW46MWVtIDAgMDsNCiAg
LyogbWFyZ2luLXJpZ2h0IG9taXR0ZWQgdG8gYXZvaWQgSUU2IGJ1ZyAqLw0KfQ0KDQp0YWJsZS5j
b2x1bW5zIHRoIHsNCiAgYm9yZGVyOm5vbmU7DQogIGJhY2tncm91bmQtY29sb3I6d2hpdGU7DQog
IHBhZGRpbmc6MWVtIDFlbSAwIDANCiAgbWFyZ2luOjFlbSAwIDA7DQp9DQoNCnRhYmxlLmNvbHVt
bnMgdGggew0KICBib3JkZXI6bm9uZTsNCiAgYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTsNCn0NCg0K
dGFibGUuY29sdW1ucyB0ZCB7DQogIGJvcmRlcjpub25lOw0KICBwYWRkaW5nOjAgMWVtIDAgMA0K
fQ0KDQp0YWJsZS5jb2x1bW5zIHRkIHAgew0KICBtYXJnaW46MWVtIDAgMCAwOw0KICBwYWRkaW5n
OjANCn0NCg0KLmRlcHJlY2F0ZWQsLmRlcHJlY2F0ZWQgKiwuZGVwcmVjYXRlZCBhOmxpbmssLmRl
cHJlY2F0ZWQgYTpob3ZlciwuZGVwcmVjYXRlZCBhOnZpc2l0ZWQgew0KICBjb2xvcjojOWI5Yjli
DQp9DQoNCi5ncmV5IHsNCiAgY29sb3I6IzY2Ng0KfQ0KDQouYmx1ZSB7DQogIGNvbG9yOiMzNmUN
Cn0NCg0KLnRvcG1hcmdpbiB7DQogIG1hcmdpbi10b3A6MWVtICFpbXBvcnRhbnQNCn0NCg0KLm5v
bWFyZ2luIHsNCiAgbWFyZ2luOjAgIWltcG9ydGFudA0KfQ0KDQoubm9wYWRkaW5nIHsNCiAgcGFk
ZGluZzowICFpbXBvcnRhbnQNCn0NCg0KLm5vYm9yZGVyIHsNCiAgYm9yZGVyOm5vbmUgIWltcG9y
dGFudA0KfQ0KDQouYm9yZGVyIHsNCiAgYm9yZGVyOjFweCBzb2xpZCBncmF5Ow0KICBwYWRkaW5n
OjFweA0KfQ0KDQoubm9ybWFsc2l6ZSB7DQogIGZvbnQtc2l6ZToxMDAlICFpbXBvcnRhbnQNCn0N
Cg0KLm5vbGlzdCBsaSB7DQogIG1hcmdpbi1sZWZ0OjA7DQogIGxpc3Qtc3R5bGU6bm9uZQ0KfQ0K
DQoubm9pbmRlbnQgew0KICBtYXJnaW4tbGVmdDowDQp9DQoNCi5kb3VibGVzcGFjZSwuZG91Ymxl
c3BhY2UgbGkgew0KICBtYXJnaW4tdG9wOjFlbQ0KfQ0KDQp1bC5kb3VibGVzcGFjZSxvbC5kb3Vi
bGVzcGFjZSB7DQogIG1hcmdpbi10b3A6MDsNCiAgcGFkZGluZy10b3A6MA0KfQ0KDQpkaXYucm93
IHsNCiAgZmxvYXQ6bGVmdDsNCiAgY2xlYXI6bGVmdDsNCiAgcG9zaXRpb246cmVsYXRpdmU7DQog
IG1hcmdpbjoxZW0gMCAwOw0KICBwYWRkaW5nOjANCn0NCg0KLmxlZnQgew0KICBmbG9hdDpsZWZ0
Ow0KICBtYXJnaW46MCAxZW0gMCAwOw0KICBwYWRkaW5nOjANCn0NCg0KZGl2LnNwZWNpYWwgew0K
ICBib3JkZXI6MXB4IHNvbGlkOw0KICBwYWRkaW5nOjAgLjllbSAuOWVtOw0KICBtYXJnaW46MWVt
IDAgMCAwOw0KICBiYWNrZ3JvdW5kLWNvbG9yOiNlNWVjZjk7DQogIGJvcmRlci1jb2xvcjojMzZD
DQp9DQoNCmRpdi5zcGVjaWFsIHsNCiAgYmFja2dyb3VuZC1jb2xvcjojZGNmNmRiOw0KICBib3Jk
ZXI6MXB4IHNvbGlkICMwOTANCn0NCg0KcC5ub3RlLHAuY2F1dGlvbixwLndhcm5pbmcgew0KICBt
YXJnaW46MWVtIDAgMCAwOw0KICBwYWRkaW5nOi4yZW0gLjVlbSAuMmVtIC45ZW07DQogIGJhY2tn
cm91bmQtY29sb3I6I2VmZWZlZjsNCiAgYm9yZGVyLXRvcDoxcHggc29saWQ7DQogIGJvcmRlci1i
b3R0b206MXB4IHNvbGlkDQp9DQoNCnAubGFic3dhcm5pbmcgew0KICBtYXJnaW46MWVtIDAgMCAw
Ow0KICBwYWRkaW5nOi4yZW0gLjVlbSAuMmVtIDIwcHg7DQogIGJhY2tncm91bmQ6dXJsKC9pbWFn
ZXMvbGFicy0xMS5wbmcpIHRvcCBsZWZ0IG5vLXJlcGVhdDsNCiAgYmFja2dyb3VuZC1wb3NpdGlv
bjo0cHggNnB4Ow0KICBiYWNrZ3JvdW5kLWNvbG9yOiNkY2Y2ZGI7DQogIGJvcmRlci10b3A6MXB4
IHNvbGlkOw0KICBib3JkZXItYm90dG9tOjFweCBzb2xpZDsNCiAgYm9yZGVyLWNvbG9yOiMwOTAN
Cn0NCg0KcC5ub3RlIHsNCiAgYm9yZGVyLWNvbG9yOiMzNkMNCn0NCg0KcC5jYXV0aW9uIHsNCiAg
Ym9yZGVyLWNvbG9yOiNmYzMNCn0NCg0KcC53YXJuaW5nIHsNCiAgYm9yZGVyLWNvbG9yOiNhMDMN
Cn0NCg0KcC53YXJuaW5nIGIscC53YXJuaW5nIGVtLHAud2FybmluZyBzdHJvbmcgew0KICBjb2xv
cjojYTAzOw0KICBmb250LXdlaWdodDpib2xkDQp9DQoNCnAuY2FwdGlvbiB7DQogIHBhZGRpbmc6
MXB4IDAgMDsNCiAgbWFyZ2luOjANCn0NCg0KcCNkYXRlLHAuZGF0ZSB7DQogIHRleHQtYWxpZ246
bGVmdDsNCiAgbWFyZ2luOjA7DQogIHBhZGRpbmc6MWVtOw0KICBmb250LXN0eWxlOml0YWxpYzsN
CiAgZm9udC1zaXplOngtc21hbGwNCn0NCg0KcC5iYWNrdG90b3Agew0KICBmbG9hdDpyaWdodDsN
CiAgbWFyZ2luOi41ZW0gMCAwIDRlbTsNCiAgcG9zaXRpb246cmVsYXRpdmU7DQogIHBhZGRpbmc6
MDsNCiAgZm9udC1zaXplOngtc21hbGw7DQogIHotaW5kZXg6OTkNCn0NCg0KLmhpZGRlbiwuaGlk
ZGVuICosI3NraXB0bywjc2tpcHRvICosI3NraXB0byBhLCNza2lwdG8gYTpob3Zlciwjc2tpcHRv
IGE6dmlzaXRlZCB7DQogIHBvc2l0aW9uOnJlbGF0aXZlOw0KICB0b3A6LTk5OTlweDsNCiAgbGVm
dDotOTk5OXB4Ow0KICBoZWlnaHQ6MDsNCiAgd2lkdGg6MDsNCiAgb3ZlcmZsb3c6aGlkZGVuOw0K
ICB6LWluZGV4OjQ0NDQNCn0NCg0KI3NraXB0bywjc2tpcHRvICosI3NraXB0byBhLCNza2lwdG8g
YTpob3Zlciwjc2tpcHRvIGE6dmlzaXRlZCB7DQogIF9wb3NpdGlvbjpyZWxhdGl2ZQ0KfQ0KDQoj
c2tpcHRvIGE6Zm9jdXMgew0KICBwb3NpdGlvbjpmaXhlZDsNCiAgdG9wOjVweDsNCiAgbGVmdDo1
cHg7DQogIGhlaWdodDphdXRvOw0KICB3aWR0aDphdXRvOw0KICBiYWNrZ3JvdW5kLWNvbG9yOiNm
ZmY7DQogIGJvcmRlcjoycHggc29saWQgIzAwQzsNCiAgZm9udC13ZWlnaHQ6Ym9sZDsNCiAgcGFk
ZGluZzo1cHgNCn0NCg0KI2djLWNvbnRhaW5lciB7DQogIG1hcmdpbjowOw0KICBwYWRkaW5nOjA7
DQogIG1heC13aWR0aDoxMTYwcHg7DQogIHBvc2l0aW9uOnJlbGF0aXZlOw0KICBtaW4taGVpZ2h0
OjEwMCU7DQogIGhlaWdodDphdXRvICFpbXBvcnRhbnQ7DQogIF9oZWlnaHQ6MTAwJQ0KfQ0KDQou
bW9yZXJpZ2h0IHsNCiAgbWFyZ2luOjJweCAwIDJweCAwOw0KICB0ZXh0LWFsaWduOnJpZ2h0DQp9
DQoNCiNnYy10b2Mgew0KICBjbGVhcjpsZWZ0Ow0KICBwYWRkaW5nOi41ZW0gMCAxNDBweCAwICFp
bXBvcnRhbnQ7DQogIGRpc3BsYXk6YmxvY2s7DQogIG1hcmdpbjowOw0KICB3aWR0aDoxNzFweDsN
CiAgZmxvYXQ6bGVmdA0KfQ0KDQojZ2MtdG9jICogew0KICB6b29tOjENCn0NCg0KI2djLXRvYyB1
bCwjZ2MtdG9jIG9sIHsNCiAgcGFkZGluZzouNmVtIDAgMDsNCiAgbWFyZ2luOjA7DQogIGxpbmUt
aGVpZ2h0OjEyMCUNCn0NCg0KI2djLXRvYyB1bCB1bCwjZ2MtdG9jIG9sIG9sIHsNCiAgcGFkZGlu
ZzowOw0KICBtYXJnaW46MA0KfQ0KDQojZ2MtdG9jIHVsICosI2djLXRvYyBvbCAqLC50cmVlbGlz
dCAqIHsNCiAgdmVydGljYWwtYWxpZ246bWlkZGxlDQp9DQoNCiNnYy10b2MgbGkgYSB7DQogIHBh
ZGRpbmctcmlnaHQ6NHB4Ow0KICBfcGFkZGluZy1yaWdodDowDQp9DQoNCiNnYy10b2MgdWwgbGks
I2djLXRvYyBvbCBsaSwjZ2MtdG9jIC50cmVlbGlzdCBsaSB7DQogIGxpc3Qtc3R5bGU6bm9uZTsN
CiAgcGFkZGluZzouMmVtIDAgLjJlbSAycHg7DQogIG1hcmdpbjowDQp9DQoNCiNnYy10b2MgdWwg
bGkgbGksI2djLXRvYyBvbCBsaSBsaSwjZ2MtdG9jIC50cmVlbGlzdCBsaSBsaSB7DQogIHBhZGRp
bmc6LjJlbSAwIC4yZW0gMTVweA0KfQ0KDQojZ2MtdG9jIHVsIGgxLCNnYy10b2Mgb2wgaDEsI2dj
LXRvYyB1bCBoMiwjZ2MtdG9jIG9sIGgyIHsNCiAgZm9udC13ZWlnaHQ6Ym9sZDsNCiAgZm9udC1z
aXplOjEwMCU7DQogIG1hcmdpbjowOw0KICBwYWRkaW5nOi4yZW0gMDsNCiAgYm9yZGVyOm5vbmU7
DQogIGJhY2tncm91bmQ6I2ZmZg0KfQ0KDQojdG9jIGgyIHsNCiAgZm9udC13ZWlnaHQ6Ym9sZDsN
CiAgZm9udC1zaXplOjEwMCU7DQogIG1hcmdpbjowOw0KICBib3JkZXI6bm9uZSAhaW1wb3J0YW50
Ow0KICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjMyLCAyMzcsIDIzNSkgIWltcG9ydGFudDsNCiAg
cGFkZGluZzowDQp9DQoNCiNnYy10b2MgdWwgLmxlZnROYXZTZWxlY3RlZCwjZ2MtdG9jIG9sIC5s
ZWZ0TmF2U2VsZWN0ZWQsLnRyZWVsaXN0IC5sZWZ0TmF2U2VsZWN0ZWQgew0KICBiYWNrZ3JvdW5k
LWNvbG9yOiNlNWVjZjk7DQogIGNvbG9yOiMwMDA7DQogIHRleHQtZGVjb3JhdGlvbjpub25lOw0K
ICB6LWluZGV4OjI7DQogIHBvc2l0aW9uOnJlbGF0aXZlDQp9DQoNCiNnYy10b2MgdWwgLmxlZnRO
YXZTZWxlY3RlZCwjZ2MtdG9jIG9sIC5sZWZ0TmF2U2VsZWN0ZWQsLnRyZWVsaXN0IC5sZWZ0TmF2
U2VsZWN0ZWQgew0KICBiYWNrZ3JvdW5kLWNvbG9yOiNkY2Y2ZGINCn0NCg0KLmRlcHIgI2djLXRv
YyB1bCAubGVmdE5hdlNlbGVjdGVkLC5kZXByICNnYy10b2Mgb2wgLmxlZnROYXZTZWxlY3RlZCwu
ZGVwciAudHJlZWxpc3QgLmxlZnROYXZTZWxlY3RlZCB7DQogIGJhY2tncm91bmQtY29sb3I6I2Rk
ZA0KfQ0KDQojZ2MtdG9jIHVsIGRpdi50bHctdGl0bGUsI2djLXRvYyBvbCBkaXYudGx3LXRpdGxl
LCNnYy10b2MgLnRyZWVsaXN0IGRpdi50bHctdGl0bGUgew0KICBwb3NpdGlvbjpyZWxhdGl2ZTsN
CiAgbWFyZ2luOjAgMCAwIC0xNXB4Ow0KICBwYWRkaW5nOi4yZW0gMCAuMmVtIDE1cHgNCn0NCg0K
I2djLXRvYyB1bCBkaXYudGx3LXRpdGxlIGltZy50bHctY29udHJvbCwjZ2MtdG9jIG9sIGRpdi50
bHctdGl0bGUgaW1nLnRsdy1jb250cm9sLC50cmVlbGlzdCBkaXYudGx3LXRpdGxlIGltZy50bHct
Y29udHJvbCB7DQogIHBvc2l0aW9uOnJlbGF0aXZlOw0KICBoZWlnaHQ6aW5oZXJpdDsNCiAgd2lk
dGg6OXB4Ow0KICBtYXJnaW46MCAhaW1wb3J0YW50Ow0KICBwYWRkaW5nOjA7DQogIGJvcmRlcjpu
b25lDQp9DQoNCiNnYy10b2MgdWwgLnRsdy1wbHVzLCNnYy10b2Mgb2wgLnRsdy1wbHVzLC50cmVl
bGlzdCAudGx3LXBsdXMgew0KICBiYWNrZ3JvdW5kLWltYWdlOnVybCgvaW1hZ2VzL3Nwcml0ZXMw
ODEzMjAwOC5wbmcpOw0KICBiYWNrZ3JvdW5kLXBvc2l0aW9uOi0yOHB4IC0xNDZweDsNCiAgd2lk
dGg6OXB4Ow0KICBoZWlnaHQ6OXB4DQp9DQoNCiNnYy10b2MgdWwgLnRsdy1taW51cywjZ2MtdG9j
IG9sIC50bHctbWludXMsLnRyZWVsaXN0IC50bHctbWludXMgew0KICBiYWNrZ3JvdW5kLWltYWdl
OnVybCgvaW1hZ2VzL3Nwcml0ZXMwODEzMjAwOC5wbmcpOw0KICBiYWNrZ3JvdW5kLXBvc2l0aW9u
Oi0yOHB4IC0yMTBweDsNCiAgd2lkdGg6OXB4Ow0KICBoZWlnaHQ6OXB4DQp9DQoNCiNnYy10b2Mg
dWwgLnRsdy1wbHVzOmhvdmVyLCNnYy10b2Mgb2wgLnRsdy1wbHVzOmhvdmVyLC50cmVlbGlzdCAu
dGx3LXBsdXM6aG92ZXIgew0KICBiYWNrZ3JvdW5kLWltYWdlOnVybCgvaW1hZ2VzL3Nwcml0ZXMw
ODEzMjAwOC5wbmcpOw0KICBiYWNrZ3JvdW5kLXBvc2l0aW9uOi0yOHB4IC0zNDRweDsNCiAgd2lk
dGg6OXB4Ow0KICBoZWlnaHQ6OXB4DQp9DQoNCiNnYy10b2MgdWwgLnRsdy1taW51czpob3Zlciwj
Z2MtdG9jIG9sIC50bHctbWludXM6aG92ZXIsLnRyZWVsaXN0IC50bHctbWludXM6aG92ZXIgew0K
ICBiYWNrZ3JvdW5kLWltYWdlOnVybCgvaW1hZ2VzL3Nwcml0ZXMwODEzMjAwOC5wbmcpOw0KICBi
YWNrZ3JvdW5kLXBvc2l0aW9uOi0yOHB4IC00MDhweDsNCiAgd2lkdGg6OXB4Ow0KICBoZWlnaHQ6
OXB4DQp9DQoNCiNnYy10b2MgaDEsI2djLXRvYyBoMiB7DQogIGZvbnQtd2VpZ2h0OmJvbGQ7DQog
IGZvbnQtc2l6ZToxMDAlOw0KICBtYXJnaW46MDsNCiAgcGFkZGluZzowOw0KICBib3JkZXI6bm9u
ZTsNCiAgYmFja2dyb3VuZDojZmZmDQp9DQoNCiNnYy10b2MgZGl2LmxpbmUgew0KICBib3JkZXIt
dG9wOnRoaW4gZG90dGVkICNiYmI7DQogIGhlaWdodDoxcHg7DQogIG1hcmdpbjoxLjNlbSAxZW0g
MCAwOw0KICBwYWRkaW5nOjANCn0NCg0KI2djLXRvYy5oaWRkZW4gew0KICBkaXNwbGF5Om5vbmUN
Cn0NCg0KI2djLXRvYy52aXNpYmxlICogew0KICB6b29tOjENCn0NCg0KI2djLXBhZ2Vjb250ZW50
LmV4cGFuZGVkIHsNCiAgbWFyZ2luLWxlZnQ6MDsNCiAgd2lkdGg6YXV0bw0KfQ0KDQojZ2MtY29s
bGFwc2libGUgew0KICBwb3NpdGlvbjphYnNvbHV0ZTsNCiAgbGVmdDotNXB4Ow0KICB0b3A6MDsN
CiAgd2lkdGg6M3B4Ow0KICBvdmVyZmxvdzpoaWRkZW47DQogIGJvcmRlcjoycHggc29saWQgI2Zm
ZjsNCiAgYm9yZGVyLXRvcDpub25lOw0KICBib3JkZXItYm90dG9tOm5vbmU7DQogIGJhY2tncm91
bmQ6I2U1ZWNmOTsNCiAgY3Vyc29yOnBvaW50ZXINCn0NCg0KI2djLWNvbGxhcHNpYmxlIHsNCiAg
YmFja2dyb3VuZC1jb2xvcjojZGNmNmRiDQp9DQoNCi5kZXByICNnYy1jb2xsYXBzaWJsZSB7DQog
IGJhY2tncm91bmQtY29sb3I6I2RkZA0KfQ0KDQojZ2MtY29sbGFwc2libGUuaG92ZXIgew0KICBi
b3JkZXItY29sb3I6I2QzZDllNTsNCiAgYm9yZGVyLXdpZHRoOjFweDsNCiAgd2lkdGg6NXB4DQp9
DQoNCiNnYy1jb2xsYXBzaWJsZS5ob3ZlciB7DQogIGJvcmRlci1jb2xvcjojMDkwDQp9DQoNCi5k
ZXByICNnYy1jb2xsYXBzaWJsZS5ob3ZlciB7DQogIGJvcmRlci1jb2xvcjojMzMzDQp9DQoNCiNn
Yy1jb2xsYXBzaWJsZS1hcnJvdyB7DQogIHdpZHRoOjRweDsNCiAgaGVpZ2h0OjEycHg7DQogIGJh
Y2tncm91bmQ6dXJsKC9pbWFnZXMvaGlkZS1hcnJvdy5naWYpIHRvcCBsZWZ0IG5vLXJlcGVhdDsN
CiAgcG9zaXRpb246YWJzb2x1dGU7DQogIG1hcmdpbi1sZWZ0Oi0xNXB4Ow0KICBkaXNwbGF5Om5v
bmU7DQogIHotaW5kZXg6NQ0KfQ0KDQojZ2MtY29sbGFwc2libGUtYXJyb3cuY29sbGFwc2VkIHsN
CiAgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9zaG93LWFycm93LmdpZikgdG9wIGxlZnQgbm8tcmVw
ZWF0Ow0KICBtYXJnaW4tbGVmdDoxN3B4DQp9DQoNCiNnYy1mb290ZXIgew0KICBjbGVhcjpib3Ro
Ow0KICBtYXJnaW46MDsNCiAgY29sb3I6IzY2Ng0KfQ0KDQojZ2MtZm9vdGVyIC50ZXh0IHsNCiAg
dGV4dC1hbGlnbjpjZW50ZXI7DQogIHBhZGRpbmc6MzBweCAwOw0KICBtYXJnaW46MCAwIDAgMA0K
fQ0KDQojZ2MtZm9vdGVyIC5ub3RpY2Ugew0KICBwYWRkaW5nOjAgMCA4cHggMA0KfQ0KDQojc2Vh
cmNoIHsNCiAgbWFyZ2luOjEycHggMCAwIDE3MHB4DQp9DQoNCiNzZWFyY2ggdGFibGUsI3NlYXJj
aCB0YWJsZSB0ZCB7DQogIGJvcmRlcjpub25lOw0KICBwYWRkaW5nOjA7DQogIG1hcmdpbjowOw0K
ICBjbGVhcjpub25lDQp9DQoNCiNzZWFyY2ggZm9ybSB7DQogIG1hcmdpbjowDQp9DQoNCi5ncmV5
dGV4dCB7DQogIGNvbG9yOiNhYWE7DQogIGZvbnQtc2l6ZTpzbWFsbDsNCiAgaGVpZ2h0OjE0cHgN
Cn0NCg0KZGl2LnNlYXJjaC1jb250cm9sIHsNCiAgZGlzcGxheTpub25lOw0KICBtYXJnaW4tdG9w
OjNweDsNCiAgcGFkZGluZzozcHgNCn0NCg0KZGl2LnNlYXJjaC1jb250cm9sIC5nc2MtY29udHJv
bCB7DQogIHdpZHRoOjEwMCUNCn0NCg0KZGl2LnNlYXJjaC1jb250cm9sIC5nc2MtYWQtYm94IHsN
CiAgZGlzcGxheTpub25lDQp9DQoNCi5nc2MtY29udHJvbCBmb3JtLmdzYy1zZWFyY2gtYm94IHsN
CiAgZGlzcGxheTpub25lDQp9DQoNCnRkLmdzYy1jbGVhci1idXR0b24gew0KICBkaXNwbGF5Om5v
bmUNCn0NCg0KLmdzYy1zZWFyY2gtYnV0dG9uIHsNCiAgbWFyZ2luLWxlZnQ6MXB4DQp9DQoNCi5n
c2MtYnJhbmRpbmcgew0KICBkaXNwbGF5Om5vbmUNCn0NCg0KLmdzYy10YWJzQXJlYSB7DQogIGJv
cmRlci10b3A6MXB4IHNvbGlkICMzNkM7DQogIGJhY2tncm91bmQ6I2U1ZWNmOSBub25lIHJlcGVh
dCBzY3JvbGwgMDsNCiAgcGFkZGluZzo1cHggMXB4IDRweDsNCiAgd2lkdGg6MTAwJQ0KfQ0KDQou
Z3NjLXRhYnNBcmVhIC5ncy1zcGFjZXIgew0KICBmb250LXNpemU6MDsNCiAgbWFyZ2luLXJpZ2h0
OjA7DQogIG92ZXJmbG93OmhpZGRlbg0KfQ0KDQouZ3NjLXRhYnNBcmVhIC5ncy1zcGFjZXItb3Bl
cmEgew0KICBtYXJnaW4tcmlnaHQ6MA0KfQ0KDQouZ3NjLXRhYnNBcmVhSW52aXNpYmxlIHsNCiAg
ZGlzcGxheTpub25lDQp9DQoNCi5nc2MtdGFiSGVhZGVyIHsNCiAgZGlzcGxheTppbmxpbmU7DQog
IGN1cnNvcjpwb2ludGVyOw0KICBwYWRkaW5nLWxlZnQ6MDsNCiAgcGFkZGluZy1yaWdodDowOw0K
ICBtYXJnaW4tcmlnaHQ6MDsNCiAgZm9udC13ZWlnaHQ6Ym9sZA0KfQ0KDQouZ3NjLXRhYkhlYWRl
ci5nc2MtdGFiaEFjdGl2ZSB7DQogIHBvc2l0aW9uOnJlbGF0aXZlOw0KICBwYWRkaW5nOjAgMTBw
eCAwIDVweDsNCiAgZm9udC13ZWlnaHQ6Ym9sZDsNCiAgY29sb3I6IzAwMDsNCiAgY3Vyc29yOmF1
dG8NCn0NCg0KLmdzYy10YWJIZWFkZXIuZ3NjLXRhYmhJbmFjdGl2ZSB7DQogIHBhZGRpbmc6MCAx
MHB4IDAgNXB4Ow0KICBmb250LXdlaWdodDpub3JtYWw7DQogIHRleHQtZGVjb3JhdGlvbjp1bmRl
cmxpbmU7DQogIGNvbG9yOiMwMEMNCn0NCg0KLmdzYy10YWJEYXRhLmdzYy10YWJkQWN0aXZlIHsN
CiAgZGlzcGxheTpibG9jaw0KfQ0KDQouZ3NjLXRhYkRhdGEuZ3NjLXRhYmRJbmFjdGl2ZSB7DQog
IGRpc3BsYXk6bm9uZQ0KfQ0KDQouZ3NjLXJlc3VsdHNib3gtdmlzaWJsZSB7DQogIHdpZHRoOjQy
ZW0NCn0NCg0KLmdzYy1yZXN1bHRzIHsNCiAgY2xlYXI6Ym90aDsNCiAgcGFkZGluZy1ib3R0b206
MnB4Ow0KICBwYWRkaW5nLXRvcDoxNXB4DQp9DQoNCi5nc2MtcmVzdWx0cyB0YWJsZSwuZ3NjLXJl
c3VsdHMgdGQgew0KICBib3JkZXI6MA0KfQ0KDQojc2VhcmNoQ29udHJvbCAuZ3MtcHVibGlzaGVy
IHsNCiAgZGlzcGxheTpub25lDQp9DQoNCi5nc2MtcmVzdWx0IHsNCiAgbWFyZ2luLWJvdHRvbTox
LjJlbQ0KfQ0KDQouZ3NjLXJlc3VsdCAuZ3MtdGl0bGUgew0KICBoZWlnaHQ6MS40ZW07DQogIG92
ZXJmbG93OmhpZGRlbjsNCiAgZm9udC1zaXplOjExMCUNCn0NCg0KLmdzYy1yZXN1bHQgZGl2Lmdz
LXdhdGVybWFyayB7DQogIGRpc3BsYXk6bm9uZQ0KfQ0KDQouZ3NjLXJlc3VsdHNIZWFkZXIgew0K
ICBkaXNwbGF5Om5vbmUNCn0NCg0KLmdzYy1yZXN1bHRzIC5nc2MtdHJhaWxpbmctbW9yZS1yZXN1
bHRzIHsNCiAgbWFyZ2luLWJvdHRvbToxMHB4DQp9DQoNCi5nc2MtcmVzdWx0cyAuZ3NjLXRyYWls
aW5nLW1vcmUtcmVzdWx0cywuZ3NjLXJlc3VsdHMgLmdzYy10cmFpbGluZy1tb3JlLXJlc3VsdHMg
KiB7DQogIGNvbG9yOiMwMGM7DQogIHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmUNCn0NCg0KLmdz
Yy1yZXN1bHRzIC5nc2MtY3Vyc29yLWJveCAuZ3NjLXRyYWlsaW5nLW1vcmUtcmVzdWx0cyB7DQog
IG1hcmdpbi1ib3R0b206MDsNCiAgZGlzcGxheTppbmxpbmUNCn0NCg0KLmdzYy1yZXN1bHRzIC5n
c2MtY3Vyc29yIHsNCiAgZGlzcGxheTppbmxpbmUNCn0NCg0KLmdzYy1yZXN1bHRzIC5nc2MtY3Vy
c29yLWJveCB7DQogIG1hcmdpbi1ib3R0b206MTBweA0KfQ0KDQouZ3NjLXJlc3VsdHMgLmdzYy1j
dXJzb3ItYm94IC5nc2MtY3Vyc29yLXBhZ2Ugew0KICBjdXJzb3I6cG9pbnRlcjsNCiAgY29sb3I6
IzAwMDsNCiAgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTsNCiAgbWFyZ2luLXJpZ2h0OjhweDsN
CiAgZGlzcGxheTppbmxpbmUNCn0NCg0KLmdzYy1yZXN1bHRzIC5nc2MtY3Vyc29yLWJveCAuZ3Nj
LWN1cnNvci1jdXJyZW50LXBhZ2Ugew0KICBjb2xvcjojYTkwYTA4Ow0KICBmb250LXdlaWdodDpi
b2xkOw0KICB0ZXh0LWRlY29yYXRpb246bm9uZQ0KfQ0KDQouZ3MtcmVzdWx0IC5ncy10aXRsZSwu
Z3MtcmVzdWx0IC5ncy10aXRsZSAqIHsNCiAgY29sb3I6IzAwYzsNCiAgdGV4dC1kZWNvcmF0aW9u
OnVuZGVybGluZQ0KfQ0KDQouZ3MtZGl2aWRlciB7DQogIHBhZGRpbmctYm90dG9tOjhweDsNCiAg
dGV4dC1hbGlnbjpjZW50ZXI7DQogIGNvbG9yOiM2NzY3NjcNCn0NCg0KLmdzLXJlc3VsdCBhLmdz
LXZpc2libGVVcmwsLmdzLXJlc3VsdCAuZ3MtdmlzaWJsZVVybCB7DQogIGNvbG9yOmdyZWVuOw0K
ICB0ZXh0LWRlY29yYXRpb246bm9uZQ0KfQ0KDQouZ3NjLXdlYlJlc3VsdCBkaXYuZ3MtdmlzaWJs
ZVVybC1zaG9ydCB7DQogIGRpc3BsYXk6bm9uZQ0KfQ0KDQouZ3Mtd2ViUmVzdWx0IGRpdi5ncy12
aXNpYmxlVXJsLWxvbmcgew0KICB3aWR0aDoxMDAlOw0KICBvdmVyZmxvdzpoaWRkZW47DQogIGRp
c3BsYXk6YmxvY2s7DQogIHdoaXRlLXNwYWNlOm5vd3JhcA0KfQ0KDQouZy10cGwtMTcwIC5nLXVu
aXQsLmctdW5pdCAuZy10cGwtMTcwIC5nLXVuaXQsLmctdW5pdCAuZy11bml0IC5nLXRwbC0xNzAg
LmctdW5pdCB7DQogIGRpc3BsYXk6YmxvY2s7DQogIG1hcmdpbjowIDAgMCAxNzFweDsNCiAgd2lk
dGg6YXV0bzsNCiAgZmxvYXQ6bm9uZQ0KfQ0KDQouZy11bml0IC5nLXVuaXQgLmctdHBsLTE3MCAu
Zy1maXJzdCwuZy11bml0IC5nLXRwbC0xNzAgLmctZmlyc3QsLmctdHBsLTE3MCAuZy1maXJzdCB7
DQogIGRpc3BsYXk6YmxvY2s7DQogIG1hcmdpbjowOw0KICB3aWR0aDoxNzFweDsNCiAgZmxvYXQ6
bGVmdA0KfQ0KDQojY3Mtc2VhcmNoYXJlYSBhLnVuc2VsZWN0YWJsZSB7DQogIC1tb3otdXNlci1z
ZWxlY3Q6bm9uZTsNCiAgLXVzZXItc2VsZWN0Om5vbmUNCn0NCg0KI2NzLXJlY29tbWVuZGVkIHsN
CiAgdGV4dC1hbGlnbjpsZWZ0Ow0KICBiYWNrZ3JvdW5kLWNvbG9yOiNlM2VmZmU7DQogIGZvbnQt
c3R5bGU6aXRhbGljDQp9DQoNCiNjcy1zZWFyY2hyZXN1bHRzIHsNCiAgcG9zaXRpb246YWJzb2x1
dGU7DQogIG1hcmdpbi1sZWZ0Oi0uM2VtOw0KICBiYWNrZ3JvdW5kOiNmZmY7DQogIGxpbmUtaGVp
Z2h0OjE0MCU7DQogIGJvcmRlcjoxcHggI2M5YzljOSBzb2xpZDsNCiAgY3Vyc29yOnBvaW50ZXI7
DQogIHBvc2l0aW9uOmFic29sdXRlOw0KICB6LWluZGV4OjIwMTA7DQogIGRpc3BsYXk6bm9uZQ0K
fQ0KDQojY3Mtc2VhcmNocmVzdWx0cyBhIHsNCiAgdGV4dC1kZWNvcmF0aW9uOm5vbmU7DQogIGNv
bG9yOiMwMDANCn0NCg0KLmNzLXNlYXJjaHJlc3VsdCB7DQogIHBhZGRpbmc6MDsNCiAgZGlzcGxh
eTpibG9jaw0KfQ0KDQppbWcuY29sbGFwc2libGUtY29udHJvbCB7DQogIHdpZHRoOjlweDsNCiAg
aGVpZ2h0OjlweDsNCiAgY3Vyc29yOnBvaW50ZXI7DQogIG1hcmdpbjoxcHg7DQogIHZlcnRpY2Fs
LWFsaWduOm1pZGRsZQ0KfQ0KDQppbWcuY29sbGFwc2libGUtY29udHJvbC5jb2xsYXBzaWJsZS1w
bHVzIHsNCiAgYmFja2dyb3VuZC1pbWFnZTp1cmwoL2ltYWdlcy9wbHVzLmdpZikNCn0NCg0KaW1n
LmNvbGxhcHNpYmxlLWNvbnRyb2wuY29sbGFwc2libGUtcGx1cy5jb2xsYXBzaWJsZS1ob3ZlciB7
DQogIGJhY2tncm91bmQtaW1hZ2U6dXJsKC9pbWFnZXMvcGx1c19ob3Zlci5naWYpDQp9DQoNCmlt
Zy5jb2xsYXBzaWJsZS1jb250cm9sLmNvbGxhcHNpYmxlLW1pbnVzIHsNCiAgYmFja2dyb3VuZC1p
bWFnZTp1cmwoL2ltYWdlcy9taW51cy5naWYpDQp9DQoNCmltZy5jb2xsYXBzaWJsZS1jb250cm9s
LmNvbGxhcHNpYmxlLW1pbnVzLmNvbGxhcHNpYmxlLWhvdmVyIHsNCiAgYmFja2dyb3VuZC1pbWFn
ZTp1cmwoL2ltYWdlcy9taW51c19ob3Zlci5naWYpDQp9DQoNCiNtYWluQ29sdW1uIHsNCiAgZGlz
cGxheTpibG9jazsNCiAgbWFyZ2luOjAgMCAwIDE3MXB4Ow0KICB3aWR0aDphdXRvOw0KICBmbG9h
dDpub25lDQp9DQoNCmRpdi5zdW1tYXJ5IC5zdWJkdWVkIHsNCiAgY29sb3I6IHJnYigxNDcsIDE4
MCwgMjE3KTsNCn0NCg0KLm9wdGlvbmFsIHsNCiAgY29sb3I6IHJnYigxMjUsIDEyNSwgMTI1KTsN
Cn0NCg0KLmFwaUdyb3VwIGRpdi5kZXNjcmlwdGlvbiB7DQogIG1hcmdpbi1sZWZ0OiAyZW07DQp9
DQoNCi5hcGlHcm91cCBkaXYuc3VtbWFyeSB7DQogIGJvcmRlcjogMXB4IHNvbGlkIHJnYigxNDcs
IDE4MCwgMjE3KTsNCiAgZm9udC1mYW1pbHk6ICJDb3VyaWVyIE5ldyIsIGNvdXJpZXIsIG1vbm9z
cGFjZTsNCiAgcGFkZGluZzogMC41ZW07DQogIGJhY2tncm91bmQtY29sb3I6IHJnYigyMDIsIDIy
MiwgMjQ0KTsNCiAgbWFyZ2luLXRvcDogMWVtOw0KfQ0KDQpkaXYuc3VtbWFyeSBkaXYgew0KICBt
YXJnaW4tYm90dG9tOiAwLjVlbTsNCn0NCg0KZGl2I2JyZWFkY3J1bWJzIHsNCiAgZGlzcGxheTog
aW5saW5lOw0KICBmb250LXNpemU6IDgwJTsNCn0NCg0KLmV4YW1wbGVMaW5rIHsNCiAgZm9udC1z
aXplOiA4MCU7DQp9DQoNCmRkIHsNCiAgbWFyZ2luLWJvdHRvbTogMC43NWVtOw0KfQ0KDQpvbCBs
aSB7DQogIG1hcmdpbi10b3A6IDFlbTsNCn0NCg0KLmV4YW1wbGUgew0KfQ0KDQpwI2NsYXNzU3Vt
bWFyeSB7DQp9DQoNCi5hcGlJdGVtIHsNCn0NCg0KZGl2Lm5vdGUgew0KICBiYWNrZ3JvdW5kLWNv
bG9yOiByZ2IoMjAyLCAyMjIsIDI0NCk7DQogIGJvcmRlcjogMXB4IHNvbGlkIHJnYigxNDcsIDE4
MCwgMjE3KTsNCiAgcGFkZGluZzogMC41ZW07DQogIG1hcmdpbjogMWVtIDBweDsNCn0NCg0KLmhp
ZGRlbiB7DQogIGRpc3BsYXk6IG5vbmU7DQp9DQoNCiNnYy1wYWdlY29udGVudCB7DQp9DQoNCiNt
YWluQ29sdW1uIHRhYmxlLmltYWdlbGF5b3V0IHsNCiAgYm9yZGVyOm5vbmU7DQp9DQoNCiNtYWlu
Q29sdW1uIHRhYmxlLmltYWdlbGF5b3V0IHRkIHsNCiAgYm9yZGVyOm5vbmU7DQogIHBhZGRpbmc6
MHB4IDZweCA2cHg7DQogIHRleHQtYWxpZ246Y2VudGVyOw0KfQ0KDQojbWFpbkNvbHVtbiB0YWJs
ZS5pbWFnZWxheW91dCB0ci5pbWFnZXMgdGQgew0KICB2ZXJ0aWNhbC1hbGlnbjpib3R0b207DQp9
DQoNCnRhYmxlLm5vYm9yZGVycyB7DQogIHBhZGRpbmc6MHB4Ow0KfQ0KDQp0YWJsZS5ub2JvcmRl
cnMgdGggew0KICBib3JkZXI6bm9uZTsNCiAgcGFkZGluZzoxMnB4IDEycHggNnB4IDBweA0KfQ0K
dGFibGUubm9ib3JkZXJzIHRkIHsNCiAgYm9yZGVyOm5vbmU7DQogIHBhZGRpbmc6NnB4IDEycHgg
NnB4IDBweA0KfQ0KDQojY29kZXNpdGVDb250ZW50LmhpZGVTaWRlTmF2ICNnYy1wYWdlY29udGVu
dCB7DQogIHBhZGRpbmctbGVmdDoyNHB4Ow0KICBib3JkZXItbGVmdDowcHg7DQp9DQoNCiNjb2Rl
c2l0ZUNvbnRlbnQuaGlkZVNpZGVOYXYgLmctdHBsLTE3MCAuZy11bml0IHsNCiAgZGlzcGxheTpi
bG9jazsNCiAgbWFyZ2luOjAgMCAwIDBweDsNCiAgd2lkdGg6YXV0bzsNCiAgZmxvYXQ6bm9uZQ0K
fQ0KPC9zdHlsZT4NCg0KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPg0KKGZ1bmN0aW9u
KCl7ZnVuY3Rpb24gaihhLGIpe2Zvcih2YXIgYyBpbiBiKWFbY109YltjXX1mdW5jdGlvbiBsKCl7
cmV0dXJuIEZ1bmN0aW9uLnByb3RvdHlwZS5jYWxsLmFwcGx5KEFycmF5LnByb3RvdHlwZS5zbGlj
ZSxhcmd1bWVudHMpfWZ1bmN0aW9uIG0oYSxiKXt2YXIgYz1sKGFyZ3VtZW50cywyKTtyZXR1cm4g
ZnVuY3Rpb24oKXtyZXR1cm4gYi5hcHBseShhLGMpfX12YXIgbj05O2Z1bmN0aW9uIG8oYSxiKXti
PW5ldyBwKGIpO2ZvcihiLmY9W2FdO2IuZi5sZW5ndGg7KXthPWIuZi5zaGlmdCgpO2IuZyhhKTtm
b3IoYT1hLmZpcnN0Q2hpbGQ7YTthPWEubmV4dFNpYmxpbmcpYS5ub2RlVHlwZT09MSYmYi5mLnB1
c2goYSl9fWZ1bmN0aW9uIHAoYSl7dGhpcy5nPWF9ZnVuY3Rpb24gcShhLGIsYyl7YS5zZXRBdHRy
aWJ1dGUoYixjKX1mdW5jdGlvbiByKGEsYil7YS5yZW1vdmVBdHRyaWJ1dGUoYil9ZnVuY3Rpb24g
cyhhKXthLnN0eWxlLmRpc3BsYXk9IiJ9DQpmdW5jdGlvbiB0KGEpe2Euc3R5bGUuZGlzcGxheT0i
bm9uZSJ9O3ZhciB1PSI6Iix2PS9ccyo7XHMqLztmdW5jdGlvbiB3KCl7dGhpcy5pLmFwcGx5KHRo
aXMsYXJndW1lbnRzKX13LnByb3RvdHlwZS5pPWZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpcztpZigh
Yy5hKWMuYT17fTtiP2ooYy5hLGIuYSk6aihjLmEseCk7Yy5hLiR0aGlzPWE7Yy5hLiRjb250ZXh0
PWM7Yy5kPXR5cGVvZiBhIT0idW5kZWZpbmVkIiYmYSE9bnVsbD9hOiIiO2lmKCFiKWMuYS4kdG9w
PWMuZH07dmFyIHg9e307KGZ1bmN0aW9uKGEsYil7eFthXT1ifSkoIiRkZWZhdWx0IixudWxsKTt2
YXIgeT1bXTtmdW5jdGlvbiB6KGEpe2Zvcih2YXIgYiBpbiBhLmEpZGVsZXRlIGEuYVtiXTthLmQ9
bnVsbDt5LnB1c2goYSl9ZnVuY3Rpb24gQShhLGIsYyl7dHJ5e3JldHVybiBiLmNhbGwoYyxhLmEs
YS5kKX1jYXRjaChlKXtyZXR1cm4geC4kZGVmYXVsdH19DQpmdW5jdGlvbiBCKGEsYixjLGUpe2lm
KHkubGVuZ3RoPjApe3ZhciBkPXkucG9wKCk7dy5jYWxsKGQsYixhKTthPWR9ZWxzZSBhPW5ldyB3
KGIsYSk7YS5hLiRpbmRleD1jO2EuYS4kY291bnQ9ZTtyZXR1cm4gYX12YXIgQz0iYV8iLEU9ImJf
IixGPSJ3aXRoIChhXykgd2l0aCAoYl8pIHJldHVybiAiLEc9e307ZnVuY3Rpb24gSChhKXtpZigh
R1thXSl0cnl7R1thXT1uZXcgRnVuY3Rpb24oQyxFLEYrYSl9Y2F0Y2goYil7fXJldHVybiBHW2Fd
fWZ1bmN0aW9uIEkoYSl7cmV0dXJuIGF9ZnVuY3Rpb24gSihhKXt2YXIgYj1bXTthPWEuc3BsaXQo
dik7Zm9yKHZhciBjPTAsZT1hLmxlbmd0aDtjPGU7KytjKXt2YXIgZD1hW2NdLmluZGV4T2YodSk7
aWYoIShkPDApKXt2YXIgZjtmPWFbY10uc3Vic3RyKDAsZCkucmVwbGFjZSgvXlxzKy8sIiIpLnJl
cGxhY2UoL1xzKyQvLCIiKTtkPUgoYVtjXS5zdWJzdHIoZCsxKSk7Yi5wdXNoKGYsZCl9fXJldHVy
biBifQ0KZnVuY3Rpb24gSyhhKXt2YXIgYj1bXTthPWEuc3BsaXQodik7Zm9yKHZhciBjPTAsZT1h
Lmxlbmd0aDtjPGU7KytjKWlmKGFbY10pe3ZhciBkPUgoYVtjXSk7Yi5wdXNoKGQpfXJldHVybiBi
fTt2YXIgTD0ianNpbnN0YW5jZSIsYWE9ImpzdHMiLE09IioiLE49ImRpdiIsYmE9ImlkIjtmdW5j
dGlvbiBjYShhLGIpe3ZhciBjPW5ldyBPO1AoYik7Yy5qPWI/Yi5ub2RlVHlwZT09bj9iOmIub3du
ZXJEb2N1bWVudHx8ZG9jdW1lbnQ6ZG9jdW1lbnQ7dmFyIGU9bShjLGMuZSxhLGIpO2E9Yy5oPVtd
O2I9Yy5rPVtdO2MuYz1bXTtlKCk7Zm9yKHZhciBkLGYsZzthLmxlbmd0aDspe2Q9YVthLmxlbmd0
aC0xXTtlPWJbYi5sZW5ndGgtMV07aWYoZT49ZC5sZW5ndGgpe2U9YS5wb3AoKTtlLmxlbmd0aD0w
O2MuYy5wdXNoKGUpO2IucG9wKCl9ZWxzZXtmPWRbZSsrXTtnPWRbZSsrXTtkPWRbZSsrXTtiW2Iu
bGVuZ3RoLTFdPWU7Zi5jYWxsKGMsZyxkKX19fWZ1bmN0aW9uIE8oKXt9dmFyIGRhPTAsUT17fTtR
WzBdPXt9O3ZhciBSPXt9LFM9e30sVD1bXTtmdW5jdGlvbiBQKGEpe2EuX19qc3RjYWNoZXx8byhh
LGZ1bmN0aW9uKGIpe1UoYil9KX0NCnZhciBWPVtbImpzc2VsZWN0IixIXSxbImpzZGlzcGxheSIs
SF0sWyJqc3ZhbHVlcyIsSl0sWyJqc3ZhcnMiLEpdLFsianNldmFsIixLXSxbInRyYW5zY2x1ZGUi
LEldLFsianNjb250ZW50IixIXSxbImpzc2tpcCIsSF1dOw0KZnVuY3Rpb24gVShhKXtpZihhLl9f
anN0Y2FjaGUpcmV0dXJuIGEuX19qc3RjYWNoZTt2YXIgYj1hLmdldEF0dHJpYnV0ZSgianN0Y2Fj
aGUiKTtpZihiIT1udWxsKXJldHVybiBhLl9fanN0Y2FjaGU9UVtiXTtiPVQubGVuZ3RoPTA7Zm9y
KHZhciBjPVYubGVuZ3RoO2I8YzsrK2Ipe3ZhciBlPVZbYl1bMF0sZD1hLmdldEF0dHJpYnV0ZShl
KTtTW2VdPWQ7ZCE9bnVsbCYmVC5wdXNoKGUrIj0iK2QpfWlmKFQubGVuZ3RoPT0wKXthLnNldEF0
dHJpYnV0ZSgianN0Y2FjaGUiLCIwIik7cmV0dXJuIGEuX19qc3RjYWNoZT1RWzBdfXZhciBmPVQu
am9pbigiJiIpO2lmKGI9UltmXSl7YS5zZXRBdHRyaWJ1dGUoImpzdGNhY2hlIixiKTtyZXR1cm4g
YS5fX2pzdGNhY2hlPVFbYl19dmFyIGc9e307Yj0wO2ZvcihjPVYubGVuZ3RoO2I8YzsrK2Ipe2Q9
VltiXTtlPWRbMF07dmFyIGk9ZFsxXTtkPVNbZV07aWYoZCE9bnVsbClnW2VdPWkoZCl9Yj0iIisg
KytkYTthLnNldEF0dHJpYnV0ZSgianN0Y2FjaGUiLA0KYik7UVtiXT1nO1JbZl09YjtyZXR1cm4g
YS5fX2pzdGNhY2hlPWd9ZnVuY3Rpb24gVyhhLGIpe2EuaC5wdXNoKGIpO2Euay5wdXNoKDApfWZ1
bmN0aW9uIFgoYSl7cmV0dXJuIGEuYy5sZW5ndGg/YS5jLnBvcCgpOltdfU8ucHJvdG90eXBlLmU9
ZnVuY3Rpb24oYSxiKXt2YXIgYz10aGlzLGU9WShjLGIpLGQ9ZS50cmFuc2NsdWRlO2lmKGQpaWYo
ZT1aKGQpKXtiLnBhcmVudE5vZGUucmVwbGFjZUNoaWxkKGUsYik7Yj1YKGMpO2IucHVzaChjLmUs
YSxlKTtXKGMsYil9ZWxzZSBiLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoYik7ZWxzZShlPWUuanNz
ZWxlY3QpP2VhKGMsYSxiLGUpOmMuYihhLGIpfTsNCk8ucHJvdG90eXBlLmI9ZnVuY3Rpb24oYSxi
KXt2YXIgYz10aGlzLGU9WShjLGIpLGQ9ZS5qc2Rpc3BsYXk7aWYoZCl7aWYoIUEoYSxkLGIpKXt0
KGIpO3JldHVybn1zKGIpfShkPWUuanN2YXJzKSYmZmEoYyxhLGIsZCk7KGQ9ZS5qc3ZhbHVlcykm
JmdhKGMsYSxiLGQpO2lmKGQ9ZS5qc2V2YWwpZm9yKHZhciBmPTAsZz1kLmxlbmd0aDtmPGc7Kytm
KUEoYSxkW2ZdLGIpO2lmKGQ9ZS5qc3NraXApaWYoQShhLGQsYikpcmV0dXJuO2lmKGU9ZS5qc2Nv
bnRlbnQpe2E9IiIrQShhLGUsYik7aWYoYi5pbm5lckhUTUwhPWEpe2Zvcig7Yi5maXJzdENoaWxk
OyliLmZpcnN0Q2hpbGQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChiLmZpcnN0Q2hpbGQpO2M9Yy5q
LmNyZWF0ZVRleHROb2RlKGEpO2IuYXBwZW5kQ2hpbGQoYyl9fWVsc2V7ZT1YKGMpO2ZvcihiPWIu
Zmlyc3RDaGlsZDtiO2I9Yi5uZXh0U2libGluZyliLm5vZGVUeXBlPT0xJiZlLnB1c2goYy5lLGEs
Yik7ZS5sZW5ndGgmJlcoYyxlKX19Ow0KZnVuY3Rpb24gZWEoYSxiLGMsZSl7ZT1BKGIsZSxjKTt2
YXIgZD1jLmdldEF0dHJpYnV0ZShMKSxmPWZhbHNlO2lmKGQpaWYoZC5jaGFyQXQoMCk9PU0pe3Zh
ciBnPWQuc3Vic3RyKDEpO2Q9cGFyc2VJbnQoZywxMCk7Zj10cnVlfWVsc2UgZD1wYXJzZUludChk
LDEwKTt2YXIgaT1lIT1udWxsJiZ0eXBlb2YgZT09Im9iamVjdCImJnR5cGVvZiBlLmxlbmd0aD09
Im51bWJlciI7Zz1pP2UubGVuZ3RoOjE7dmFyIGg9aSYmZz09MDtpZihpKWlmKGgpaWYoZCljLnBh
cmVudE5vZGUucmVtb3ZlQ2hpbGQoYyk7ZWxzZXtjLnNldEF0dHJpYnV0ZShMLCIqMCIpO3QoYyl9
ZWxzZXtzKGMpO2lmKGQ9PT1udWxsfHxkPT09IiJ8fGYmJmQ8Zy0xKXtmPVgoYSk7ZD1kfHwwO2Zv
cihpPWctMTtkPGk7KytkKXt2YXIgaz1jLmNsb25lTm9kZSh0cnVlKTtjLnBhcmVudE5vZGUuaW5z
ZXJ0QmVmb3JlKGssYyk7JChrLGUsZCk7aD1CKGIsZVtkXSxkLGcpO2YucHVzaChhLmIsaCxrLHos
aCxudWxsKX0kKGMsDQplLGQpO2g9QihiLGVbZF0sZCxnKTtmLnB1c2goYS5iLGgsYyx6LGgsbnVs
bCk7VyhhLGYpfWVsc2UgaWYoZDxnKXtmPWVbZF07JChjLGUsZCk7aD1CKGIsZixkLGcpO2Y9WChh
KTtmLnB1c2goYS5iLGgsYyx6LGgsbnVsbCk7VyhhLGYpfWVsc2UgYy5wYXJlbnROb2RlLnJlbW92
ZUNoaWxkKGMpfWVsc2UgaWYoZT09bnVsbCl0KGMpO2Vsc2V7cyhjKTtoPUIoYixlLDAsMSk7Zj1Y
KGEpO2YucHVzaChhLmIsaCxjLHosaCxudWxsKTtXKGEsZil9fWZ1bmN0aW9uIGZhKGEsYixjLGUp
e2E9MDtmb3IodmFyIGQ9ZS5sZW5ndGg7YTxkO2ErPTIpe3ZhciBmPWVbYV0sZz1BKGIsZVthKzFd
LGMpO2IuYVtmXT1nfX0NCmZ1bmN0aW9uIGdhKGEsYixjLGUpe2E9MDtmb3IodmFyIGQ9ZS5sZW5n
dGg7YTxkO2ErPTIpe3ZhciBmPWVbYV0sZz1BKGIsZVthKzFdLGMpO2lmKGYuY2hhckF0KDApPT0i
JCIpYi5hW2ZdPWc7ZWxzZSBpZihmLmNoYXJBdCgwKT09Ii4iKXtmPWYuc3Vic3RyKDEpLnNwbGl0
KCIuIik7Zm9yKHZhciBpPWMsaD1mLmxlbmd0aCxrPTAsaGE9aC0xO2s8aGE7KytrKXt2YXIgRD1m
W2tdO2lbRF18fChpW0RdPXt9KTtpPWlbRF19aVtmW2gtMV1dPWd9ZWxzZSBpZihmKWlmKHR5cGVv
ZiBnPT0iYm9vbGVhbiIpZz9xKGMsZixmKTpyKGMsZik7ZWxzZSBjLnNldEF0dHJpYnV0ZShmLCIi
K2cpfX1mdW5jdGlvbiBZKGEsYil7aWYoYi5fX2pzdGNhY2hlKXJldHVybiBiLl9fanN0Y2FjaGU7
aWYoYT1iLmdldEF0dHJpYnV0ZSgianN0Y2FjaGUiKSlyZXR1cm4gYi5fX2pzdGNhY2hlPVFbYV07
cmV0dXJuIFUoYil9DQpmdW5jdGlvbiBaKGEsYil7dmFyIGM9ZG9jdW1lbnQ7aWYoYT1iP2lhKGMs
YSxiKTpjLmdldEVsZW1lbnRCeUlkKGEpKXtQKGEpO2E9YS5jbG9uZU5vZGUodHJ1ZSk7YS5yZW1v
dmVBdHRyaWJ1dGUoYmEpO3JldHVybiBhfWVsc2UgcmV0dXJuIG51bGx9ZnVuY3Rpb24gaWEoYSxi
LGMsZSl7dmFyIGQ9YS5nZXRFbGVtZW50QnlJZChiKTtpZihkKXJldHVybiBkO2M9YygpO2U9ZXx8
YWE7aWYoZD1hLmdldEVsZW1lbnRCeUlkKGUpKWQ9ZDtlbHNle2Q9YS5jcmVhdGVFbGVtZW50KE4p
O2QuaWQ9ZTt0KGQpO2Quc3R5bGUucG9zaXRpb249ImFic29sdXRlIjthLmJvZHkuYXBwZW5kQ2hp
bGQoZCl9ZT1hLmNyZWF0ZUVsZW1lbnQoTik7ZC5hcHBlbmRDaGlsZChlKTtlLmlubmVySFRNTD1j
O3JldHVybiBkPWEuZ2V0RWxlbWVudEJ5SWQoYil9ZnVuY3Rpb24gJChhLGIsYyl7Yz09Yi5sZW5n
dGgtMT9xKGEsTCxNK2MpOnEoYSxMLCIiK2MpfTt3aW5kb3cuanN0R2V0VGVtcGxhdGU9Wjt3aW5k
b3cuSnNFdmFsQ29udGV4dD13O3dpbmRvdy5qc3RQcm9jZXNzPWNhOw0KfSkoKQ0KPC9zY3JpcHQ+
DQoNCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4NCkFycmF5LnByb3RvdHlwZS5lYWNo
ID0gZnVuY3Rpb24oZikgew0KICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMubGVuZ3RoOyBpKysp
IHsNCiAgICBmKHRoaXNbaV0sIGkpOw0KICB9DQp9DQoNCi8vIFZpc2l0cyBlYWNoIGl0ZW0gaW4g
dGhlIGxpc3QgaW4tb3JkZXIuIFN0b3BzIHdoZW4gZiByZXR1cm5zIGFueSB0cnV0aHkNCi8vIHZh
bHVlIGFuZCByZXR1cm5zIHRoYXQgbm9kZS4NCkFycmF5LnByb3RvdHlwZS5zZWxlY3QgPSBmdW5j
dGlvbihmKSB7DQogIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5sZW5ndGg7IGkrKykgew0KICAg
IGlmIChmKHRoaXNbaV0sIGkpKQ0KICAgICAgcmV0dXJuIHRoaXNbaV07DQogIH0NCn0NCg0KQXJy
YXkucHJvdG90eXBlLm1hcCA9IGZ1bmN0aW9uKGYpIHsNCiAgdmFyIHJldHZhbCA9IFtdOw0KICBm
b3IgKHZhciBpID0gMDsgaSA8IHRoaXMubGVuZ3RoOyBpKyspIHsNCiAgICByZXR2YWwucHVzaChm
KHRoaXNbaV0sIGkpKTsNCiAgfQ0KICByZXR1cm4gcmV0dmFsOw0KfQ0KDQovLyBBc3NpZ25zIGFs
bCBrZXlzICYgdmFsdWVzIG9mIHxvYmoyfCB0byB8b2JqMXwuDQpmdW5jdGlvbiBleHRlbmQob2Jq
LCBvYmoyKSB7DQogIGZvciAodmFyIGsgaW4gb2JqMikgew0KICAgIG9ialtrXSA9IG9iajJba107
DQogIH0NCn0NCg0KZnVuY3Rpb24gZ2V0RnVsbHlRdWFsaWZpZWRGdW5jdGlvbk5hbWUobmFtZXNw
YWNlLCBmdW5jKSB7DQogIHJldHVybiBuYW1lc3BhY2UgKyAiLiIgKyBmdW5jLm5hbWU7DQp9DQoN
CmZ1bmN0aW9uIGhhc0NhbGxiYWNrKHBhcmFtZXRlcnMpIHsNCiAgcmV0dXJuIChwYXJhbWV0ZXJz
Lmxlbmd0aCA+IDAgJiYNCiAgICAgICAgICBwYXJhbWV0ZXJzW3BhcmFtZXRlcnMubGVuZ3RoIC0g
MV0udHlwZSA9PSAiZnVuY3Rpb24iKTsNCn0NCg0KZnVuY3Rpb24gZ2V0Q2FsbGJhY2tQYXJhbWV0
ZXJzKHBhcmFtZXRlcnMpIHsNCiAgcmV0dXJuIHBhcmFtZXRlcnNbcGFyYW1ldGVycy5sZW5ndGgg
LSAxXTsNCn0NCg0KZnVuY3Rpb24gc2hvdWxkRXhwYW5kT2JqZWN0KG9iamVjdCkgew0KICByZXR1
cm4gKG9iamVjdC50eXBlID09ICJvYmplY3QiICYmIG9iamVjdC5wcm9wZXJ0aWVzKQ0KfQ0KDQpm
dW5jdGlvbiBpc0FycmF5KHR5cGUpIHsNCiAgcmV0dXJuIHR5cGUudHlwZSA9PSAnYXJyYXknOw0K
fQ0KDQpmdW5jdGlvbiBnZXRUeXBlUmVmKHR5cGUpIHsNCiAgcmV0dXJuIHR5cGVbIiRyZWYiXTsN
Cn0NCg0KZnVuY3Rpb24gZ2V0UHJvcGVydHlMaXN0RnJvbU9iamVjdChvYmplY3QpIHsNCiAgdmFy
IHByb3BlcnR5TGlzdCA9IFtdOw0KICBmb3IgKHZhciBwIGluIG9iamVjdC5wcm9wZXJ0aWVzKSB7
DQogICAgdmFyIHByb3AgPSBvYmplY3QucHJvcGVydGllc1twXTsNCiAgICBwcm9wLm5hbWUgPSBw
Ow0KICAgIHByb3BlcnR5TGlzdC5wdXNoKHByb3ApOw0KICB9DQogIHJldHVybiBwcm9wZXJ0eUxp
c3Q7DQp9DQoNCmZ1bmN0aW9uIGdldFR5cGVOYW1lKHNjaGVtYSkgew0KICBpZiAoc2NoZW1hLiRy
ZWYpDQogICAgcmV0dXJuIHNjaGVtYS4kcmVmOw0KDQogIGlmIChzY2hlbWEuY2hvaWNlcykgew0K
ICAgIHZhciB0eXBlTmFtZXMgPSBbXTsNCiAgICBzY2hlbWEuY2hvaWNlcy5lYWNoKGZ1bmN0aW9u
KGMpIHsNCiAgICAgIHR5cGVOYW1lcy5wdXNoKGdldFR5cGVOYW1lKGMpKTsNCiAgICB9KTsNCg0K
ICAgIHJldHVybiB0eXBlTmFtZXMuam9pbigiIG9yICIpOw0KICB9DQoNCiAgaWYgKHNjaGVtYS50
eXBlID09ICJhcnJheSIpDQogICAgcmV0dXJuICJhcnJheSBvZiAiICsgZ2V0VHlwZU5hbWUoc2No
ZW1hLml0ZW1zKTsNCg0KICBpZiAoc2NoZW1hLmlzSW5zdGFuY2VPZikNCiAgICByZXR1cm4gc2No
ZW1hLmlzSW5zdGFuY2VPZjsNCg0KICByZXR1cm4gc2NoZW1hLnR5cGU7DQp9DQoNCmZ1bmN0aW9u
IGdldFR5cGVOYW1lKHNjaGVtYSkgew0KICBpZiAoc2NoZW1hLiRyZWYpDQogICAgcmV0dXJuIHNj
aGVtYS4kcmVmOw0KDQogIGlmIChzY2hlbWEuY2hvaWNlcykgew0KICAgIHZhciB0eXBlTmFtZXMg
PSBbXTsNCiAgICBzY2hlbWEuY2hvaWNlcy5lYWNoKGZ1bmN0aW9uKGMpIHsNCiAgICAgIHR5cGVO
YW1lcy5wdXNoKGdldFR5cGVOYW1lKGMpKTsNCiAgICB9KTsNCg0KICAgIHJldHVybiB0eXBlTmFt
ZXMuam9pbigiIG9yICIpOw0KICB9DQoNCiAgaWYgKHNjaGVtYS50eXBlID09ICJhcnJheSIpDQog
ICAgcmV0dXJuICJhcnJheSBvZiAiICsgZ2V0VHlwZU5hbWUoc2NoZW1hLml0ZW1zKTsNCg0KICBp
ZiAoc2NoZW1hLmlzSW5zdGFuY2VPZikNCiAgICByZXR1cm4gc2NoZW1hLmlzSW5zdGFuY2VPZjsN
Cg0KICByZXR1cm4gc2NoZW1hLnR5cGU7DQp9DQoNCmZ1bmN0aW9uIGdldFNpZ25hdHVyZVN0cmlu
ZyhwYXJhbWV0ZXJzKSB7DQogIGlmICghcGFyYW1ldGVycykNCiAgICByZXR1cm4gIiI7DQogIHZh
ciByZXR2YWwgPSBbXTsNCiAgcGFyYW1ldGVycy5lYWNoKGZ1bmN0aW9uKHBhcmFtLCBpKSB7DQog
ICAgcmV0dmFsLnB1c2goZ2V0VHlwZU5hbWUocGFyYW0pICsgIiAiICsgcGFyYW0ubmFtZSk7DQog
IH0pOw0KDQogIHJldHVybiByZXR2YWwuam9pbigiLCAiKTsNCn0NCg0KZnVuY3Rpb24gc29ydEJ5
TmFtZShhLCBiKSB7DQogIGlmIChhLm5hbWUgPCBiLm5hbWUpIHsNCiAgICByZXR1cm4gLTE7DQog
IH0NCiAgaWYgKGEubmFtZSA+IGIubmFtZSkgew0KICAgIHJldHVybiAxOw0KICB9DQogIHJldHVy
biAwOw0KfQ0KDQpmdW5jdGlvbiByZW5kZXJQYWdlKCkNCnsNCiAgICB2YXIgaW5wdXQgPSBuZXcg
SnNFdmFsQ29udGV4dChpbnNwZWN0b3JBUEkpOw0KICAgIHZhciBvdXRwdXQgPSBkb2N1bWVudC5i
b2R5Ow0KICAgIGpzdFByb2Nlc3MoaW5wdXQsIG91dHB1dCk7DQoNCn0NCjwvc2NyaXB0Pg0KPC9o
ZWFkPg0KDQo8Ym9keSBvbmxvYWQ9InJlbmRlclBhZ2UoKSI+DQoNCjwhLS0gY29tbW9uIHRlbXBs
YXRlcyAtLT4NCg0KPGRpdiBqc3NraXA9InRydWUiIHN0eWxlPSJkaXNwbGF5Om5vbmUiPg0KDQog
IDwhLS0gVkFMVUUgLS0+DQogIDxkaXYgaWQ9InZhbHVlVGVtcGxhdGUiPg0KICAgIDxkdD4NCiAg
ICAgIDx2YXIganNkaXNwbGF5PSIkdGhpcy5uYW1lIiBqc2NvbnRlbnQ9IiR0aGlzLm5hbWUiPnBh
cmFtTmFtZTwvdmFyPg0KICAgICAgICA8ZW0+DQoNCiAgICAgICAgICA8IS0tIFRZUEUgLS0+DQog
ICAgICAgICAgPHNwYW4ganNkaXNwbGF5PSIkdGhpcy50eXBlICE9PSAnZnVuY3Rpb24nIj4NCiAg
ICAgICAgICAgICgNCiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im9wdGlvbmFsIiBqc2Rpc3Bs
YXk9Im9wdGlvbmFsIj5vcHRpb25hbDwvc3Bhbj4NCiAgICAgICAgICAgICAgPHNwYW4gaWQ9InR5
cGVUZW1wbGF0ZSI+DQogICAgICAgICAgICAgICAgPHNwYW4ganNkaXNwbGF5PSJnZXRUeXBlUmVm
KCR0aGlzKSI+DQogICAgICAgICAgICAgICAgICA8YSBqc3ZhbHVlcz0iLmhyZWY6ICcjdHlwZS0n
ICsgZ2V0VHlwZVJlZigkdGhpcykiIGpzY29udGVudD0iZ2V0VHlwZVJlZigkdGhpcykiPiBUeXBl
PC9hPg0KICAgICAgICAgICAgICAgIDwvc3Bhbj4NCiAgICAgICAgICAgICAgICA8c3BhbiBqc2Rp
c3BsYXk9IiFnZXRUeXBlUmVmKCR0aGlzKSI+DQogICAgICAgICAgICAgICAgICA8c3BhbiBqc2Rp
c3BsYXk9ImlzQXJyYXkoJHRoaXMpIj4NCiAgICAgICAgICAgICAgICAgICAgYXJyYXkgb2YgPHNw
YW4ganNzZWxlY3Q9Iml0ZW1zIj48c3BhbiB0cmFuc2NsdWRlPSJ0eXBlVGVtcGxhdGUiPjwvc3Bh
bj48L3NwYW4+DQogICAgICAgICAgICAgICAgICA8L3NwYW4+DQogICAgICAgICAgICAgICAgICA8
c3BhbiBqc2Rpc3BsYXk9IiFpc0FycmF5KCR0aGlzKSIganNjb250ZW50PSJnZXRUeXBlTmFtZSgk
dGhpcykiPnBhcmFtVHlwZTwvc3Bhbj4NCiAgICAgICAgICAgICAgICA8L3NwYW4+DQogICAgICAg
ICAgICAgIDwvc3Bhbj4NCiAgICAgICAgICAgICkNCiAgICAgICAgICA8L3NwYW4+DQogICAgICAg
ICAgPHNwYW4ganNkaXNwbGF5PSIkdGhpcy50eXBlID09PSAnZnVuY3Rpb24nIiBqc2NvbnRlbnQ9
Iic6IGZ1bmN0aW9uKCcgKyBnZXRTaWduYXR1cmVTdHJpbmcoJHRoaXMucGFyYW1ldGVycykgKyAn
KSciPg0KICAgICAgICAgIDwvc3Bhbj4NCiAgICAgICAgPC9lbT4NCiAgICA8L2R0Pg0KICAgIDxk
ZCBjbGFzcz0idG9kbyIganNkaXNwbGF5PSIhJHRoaXMuZGVzY3JpcHRpb24iPg0KICAgICAgVW5k
b2N1bWVudGVkLg0KICAgIDwvZGQ+DQogICAgPGRkIGpzZGlzcGxheT0iJHRoaXMuZGVzY3JpcHRp
b24iDQogICAgICAgIGpzdmFsdWVzPSIuaW5uZXJIVE1MOiR0aGlzLmRlc2NyaXB0aW9uIj4NCiAg
ICAgIERlc2NyaXB0aW9uIG9mIHRoaXMgcGFyYW1ldGVyIGZyb20gdGhlIGpzb24gc2NoZW1hLg0K
ICAgIDwvZGQ+DQoNCiAgICA8IS0tIE9CSkVDVCBQUk9QRVJUSUVTIC0tPg0KICAgIDxkZCBqc2Rp
c3BsYXk9InNob3VsZEV4cGFuZE9iamVjdCgkdGhpcykiPg0KICAgICAgPGgzPlByb3BlcnRpZXM8
L2gzPg0KICAgICAgPGRsPg0KICAgICAgICA8ZGl2IGpzc2VsZWN0PSJnZXRQcm9wZXJ0eUxpc3RG
cm9tT2JqZWN0KCR0aGlzKSI+DQogICAgICAgICAgPGRpdiB0cmFuc2NsdWRlPSJ2YWx1ZVRlbXBs
YXRlIj4NCiAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgPC9kaXY+DQogICAgICA8L2RsPg0KICAg
IDwvZGQ+DQogICAgPGRkIGpzZGlzcGxheT0iJHRoaXMudHlwZSA9PT0gJ29iamVjdCcgJiYgJHRo
aXMuZnVuY3Rpb25zIj4NCiAgICAgICAgPGRpdiB0cmFuc2NsdWRlPSJtZXRob2RzVGVtcGxhdGUi
IGpzZGlzcGxheT0iJHRoaXMuZnVuY3Rpb25zICYmICR0aGlzLmZ1bmN0aW9ucy5sZW5ndGggPiAw
IiBjbGFzcz0iYXBpR3JvdXAiPg0KICAgICAgICA8L2Rpdj4NCiAgICA8L2RkPg0KICAgIDxkZCBq
c2Rpc3BsYXk9IiR0aGlzLnR5cGUgPT09ICdvYmplY3QnICYmICR0aGlzLmV2ZW50cyI+DQogICAg
ICA8aDM+RXZlbnRzPC9oMz4NCiAgICAgIDxkbD4NCiAgICAgIDwhLS0gaXRlcmF0ZXMgb3ZlciBh
bGwgZXZlbnRzIC0tPg0KICAgICAgPGRpdiBqc3NlbGVjdD0iJHRoaXMuZXZlbnRzLnNvcnQoc29y
dEJ5TmFtZSkiIGNsYXNzPSJhcGlJdGVtIg0KICAgICAgICAgICBqc2Rpc3BsYXk9IiEoJHRoaXMu
bm9kb2MpIj4NCiAgICAgICAgPGRpdiB0cmFuc2NsdWRlPSJldmVudFRlbXBsYXRlIj48L2Rpdj4N
CiAgICAgIDwvZGl2Pg0KICAgICAgPC9kbD4NCiAgICA8L2RkPg0KICA8L2Rpdj4gPCEtLSAvVkFM
VUUgLS0+DQoNCiAgPGRpdiBpZD0iZXZlbnRUZW1wbGF0ZSI+DQogICAgPGEganN2YWx1ZXM9Ii5u
YW1lOidldmVudC0nICsgJG1vZG5hbWUgKyAnLScgKyBuYW1lIj48L2E+DQogICAgPGg0IGpzY29u
dGVudD0ibmFtZSI+ZXZlbnQgbmFtZTwvaDQ+DQoNCiAgICA8ZGl2IGNsYXNzPSJzdW1tYXJ5Ij4N
CiAgICAgIDwhLS0gTm90ZTogaW50ZW50aW9uYWxseSBsb25nZXIgODAgY29sdW1ucyAtLT4NCiAg
ICAgIDxzcGFuIGpzY29udGVudD0iJG1vZG5hbWUgKyAnLiciIGNsYXNzPSJzdWJkdWVkIj48L3Nw
YW4+PHNwYW4ganNjb250ZW50PSJuYW1lIj48L3NwYW4+PHNwYW4gY2xhc3M9InN1YmR1ZWQiPi5h
ZGRMaXN0ZW5lcjwvc3Bhbj4oZnVuY3Rpb24oPHNwYW4ganNjb250ZW50PSJnZXRTaWduYXR1cmVT
dHJpbmcoJHRoaXMucGFyYW1ldGVycykiPlR5cGUgcGFyYW0xLCBUeXBlIHBhcmFtMjwvc3Bhbj4p
IDxzcGFuIGNsYXNzPSJzdWJkdWVkIj57Li4ufTwvc3Bhbj4pOw0KICAgIDwvZGl2Pg0KDQogICAg
PGRpdiBjbGFzcz0iZGVzY3JpcHRpb24iPg0KICAgICAgPHAgY2xhc3M9InRvZG8iIGpzZGlzcGxh
eT0iIWRlc2NyaXB0aW9uIj5VbmRvY3VtZW50ZWQuPC9wPg0KICAgICAgPHAganNkaXNwbGF5PSJk
ZXNjcmlwdGlvbiIganN2YWx1ZXM9Ii5pbm5lckhUTUw6ZGVzY3JpcHRpb24iPg0KICAgICAgICBB
IGRlc2NyaXB0aW9uIGZyb20gdGhlIGpzb24gc2NoZW1hIGRlZiBvZiB0aGUgZXZlbnQgZ29lcyBo
ZXJlLg0KICAgICAgPC9wPg0KDQogICAgICA8IS0tIFBBUkFNRVRFUlMgLS0+DQogICAgICA8aDQg
anNkaXNwbGF5PSJwYXJhbWV0ZXJzIj5QYXJhbWV0ZXJzPC9oND4NCiAgICAgIDxkbD4NCiAgICAg
ICAgPGRpdiBqc3NlbGVjdD0icGFyYW1ldGVycyI+DQogICAgICAgICAgPGRpdiB0cmFuc2NsdWRl
PSJ2YWx1ZVRlbXBsYXRlIj4NCiAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgPC9kaXY+DQogICAg
ICA8L2RsPg0KDQogICAgPC9kaXY+IDwhLS0gL2RlY3JpcHRpb24gLS0+DQogIDwvZGl2PiA8IS0t
IC9FVkVOVCAtLT4NCg0KICA8IS0tIE1FVEhPRFMgLS0+DQogIDxkaXYgaWQ9Im1ldGhvZHNUZW1w
bGF0ZSIgY2xhc3M9ImFwaUdyb3VwIj4NCiAgICA8YSBqc3ZhbHVlcz0iLm5hbWU6J21vZG5hbWUt
JyArICRtb2RuYW1lIj48L2E+DQogICAgPGgzPk1ldGhvZHM8L2gzPg0KDQogICAgPCEtLSBpdGVy
YXRlcyBvdmVyIGFsbCBmdW5jdGlvbnMgLS0+DQogICAgPGRpdiBjbGFzcz0iYXBpSXRlbSIganNz
ZWxlY3Q9ImZ1bmN0aW9ucy5zb3J0KHNvcnRCeU5hbWUpIg0KICAgICAgICAganNkaXNwbGF5PSIh
KCR0aGlzLm5vZG9jKSI+DQogICAgICA8YSBqc3ZhbHVlcz0iLm5hbWU6J21ldGhvZC0nICsgJG1v
ZG5hbWUgKyAnLScgKyBuYW1lIj48L2E+IDwhLS0gbWV0aG9kLWFuY2hvciAtLT4NCiAgICAgIDxo
NCBqc2NvbnRlbnQ9Im5hbWUiPm1ldGhvZCBuYW1lPC9oND4NCg0KICAgICAgPGRpdiBjbGFzcz0i
c3VtbWFyeSI+PHNwYW4ganNkaXNwbGF5PSJyZXR1cm5zIiBqc2NvbnRlbnQ9ImdldFR5cGVOYW1l
KHJldHVybnMpIj52b2lkPC9zcGFuPg0KICAgICAgICAgIDwhLS0gTm90ZTogaW50ZW50aW9uYWxs
eSBsb25nZXIgODAgY29sdW1ucyAtLT4NCiAgICAgICAgICA8c3BhbiBqc2NvbnRlbnQ9ImdldEZ1
bGx5UXVhbGlmaWVkRnVuY3Rpb25OYW1lKCRtb2RuYW1lLCAkdGhpcykiPjwvc3Bhbj4oPHNwYW4g
anNzZWxlY3Q9InBhcmFtZXRlcnMiIGpzdmFsdWVzPSJjbGFzczpvcHRpb25hbCA/ICdvcHRpb25h
bCcgOiAnJyI+PHNwYW4ganNkaXNwbGF5PSIkaW5kZXgiPiwgPC9zcGFuPjxzcGFuIGpzY29udGVu
dD0iZ2V0VHlwZU5hbWUoJHRoaXMpIj48L3NwYW4+DQogICAgICAgICAgICAgIDx2YXI+PHNwYW4g
anNjb250ZW50PSIkdGhpcy5uYW1lIj48L3NwYW4+PC92YXI+PC9zcGFuPik8L2Rpdj4NCg0KICAg
ICAgPGRpdiBjbGFzcz0iZGVzY3JpcHRpb24iPg0KICAgICAgICA8cCBjbGFzcz0idG9kbyIganNk
aXNwbGF5PSIhZGVzY3JpcHRpb24iPlVuZG9jdW1lbnRlZC48L3A+DQogICAgICAgIDxwIGpzZGlz
cGxheT0iZGVzY3JpcHRpb24iIGpzdmFsdWVzPSIuaW5uZXJIVE1MOmRlc2NyaXB0aW9uIj4NCiAg
ICAgICAgICBBIGRlc2NyaXB0aW9uIGZyb20gdGhlIGpzb24gc2NoZW1hIGRlZiBvZiB0aGUgZnVu
Y3Rpb24gZ29lcyBoZXJlLg0KICAgICAgICA8L3A+DQoNCiAgICAgICAgPCEtLSBQQVJBTUVURVJT
IC0tPg0KICAgICAgICA8aDQganNkaXNwbGF5PSIkdGhpcy5wYXJhbWV0ZXJzICYmICR0aGlzLnBh
cmFtZXRlcnMubGVuZ3RoID4gMCI+UGFyYW1ldGVyczwvaDQ+DQogICAgICAgIDxkbD4NCiAgICAg
ICAgICA8ZGl2IGpzc2VsZWN0PSIkdGhpcy5wYXJhbWV0ZXJzIj4NCiAgICAgICAgICAgIDxkaXYg
dHJhbnNjbHVkZT0idmFsdWVUZW1wbGF0ZSI+DQogICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAg
ICA8L2Rpdj4NCiAgICAgICAgPC9kbD4NCg0KICAgICAgICA8IS0tIFJFVFVSTlMgLS0+DQogICAg
ICAgIDxoNCBqc2Rpc3BsYXk9InJldHVybnMiPlJldHVybnM8L2g0Pg0KICAgICAgICA8ZGw+DQog
ICAgICAgICAgPGRpdiBqc3NlbGVjdD0icmV0dXJucyI+DQogICAgICAgICAgICA8ZGl2IHRyYW5z
Y2x1ZGU9InZhbHVlVGVtcGxhdGUiPg0KICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgPC9k
aXY+DQogICAgICAgIDwvZGw+DQoNCiAgICAgICAgPCEtLSBDQUxMQkFDSyAtLT4NCiAgICAgICAg
PGRpdiBqc2Rpc3BsYXk9Imhhc0NhbGxiYWNrKHBhcmFtZXRlcnMpIj4NCiAgICAgICAgICA8ZGl2
IGpzc2VsZWN0PSJnZXRDYWxsYmFja1BhcmFtZXRlcnMocGFyYW1ldGVycykiPg0KICAgICAgICAg
IDxoND5DYWxsYmFjayBmdW5jdGlvbjwvaDQ+DQogICAgICAgICAgPHAganNkaXNwbGF5PSIhJHRo
aXMub3B0aW9uYWwiPg0KICAgICAgICAgICAgVGhlIGNhbGxiYWNrIDxlbT5wYXJhbWV0ZXI8L2Vt
PiBzaG91bGQgc3BlY2lmeSBhIGZ1bmN0aW9uDQogICAgICAgICAgICB0aGF0IGxvb2tzIGxpa2Ug
dGhpczoNCiAgICAgICAgICA8L3A+DQogICAgICAgICAgPHAganNkaXNwbGF5PSIkdGhpcy5vcHRp
b25hbCI+DQogICAgICAgICAgICBJZiB5b3Ugc3BlY2lmeSB0aGUgPGVtPmNhbGxiYWNrPC9lbT4g
cGFyYW1ldGVyLCBpdCBzaG91bGQNCiAgICAgICAgICAgIHNwZWNpZnkgYSBmdW5jdGlvbiB0aGF0
IGxvb2tzIGxpa2UgdGhpczoNCiAgICAgICAgICA8L3A+DQoNCiAgICAgICAgICA8IS0tIE5vdGU6
IGludGVudGlvbmFsbHkgbG9uZ2VyIDgwIGNvbHVtbnMgLS0+DQogICAgICAgICAgPHByZT5mdW5j
dGlvbig8c3BhbiBqc2NvbnRlbnQ9ImdldFNpZ25hdHVyZVN0cmluZyhwYXJhbWV0ZXJzKSI+VHlw
ZSBwYXJhbTEsIFR5cGUgcGFyYW0yPC9zcGFuPikgPHNwYW4gY2xhc3M9InN1YmR1ZWQiPnsuLi59
PC9zcGFuPjwvcHJlPg0KICAgICAgICAgIDxkbD4NCiAgICAgICAgICAgIDxkaXYganNzZWxlY3Q9
InBhcmFtZXRlcnMiPg0KICAgICAgICAgICAgICA8ZGl2IHRyYW5zY2x1ZGU9InZhbHVlVGVtcGxh
dGUiPg0KICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAg
IDwvZGw+DQogICAgICAgICAgPC9kaXY+DQogICAgICAgIDwvZGl2Pg0KDQogICAgICA8L2Rpdj4g
PCEtLSAvZGVzY3JpcHRpb24gLS0+DQoNCiAgICA8L2Rpdj4gIDwhLS0gL2FwaUl0ZW0gLS0+DQoN
CiAgPC9kaXY+ICA8IS0tIC9hcGlHcm91cCAtLT4NCg0KPC9kaXY+IDwhLS0gL1NVQlRFTVBMQVRF
UyAtLT4NCg0KPGgxPldlYkluc3BlY3RvciBFeHRlbnNpb24gQVBJPC9oMT4NCg0KICAgICAgPCEt
LSBBUEkgUEFHRSAtLT4NCiAgICAgIDxkaXYgY2xhc3M9ImFwaVBhZ2UiIGpzc2VsZWN0PSIkdGhp
cyIganN2YWx1ZXM9IiRtb2R1bGU6JHRoaXM7JG1vZG5hbWU6JHRoaXMubmFtZXNwYWNlIj4NCiAg
ICAgIDxhIGpzdmFsdWVzPSIubmFtZTonYXBpUmVmZXJlbmNlLScgKyAkbW9kbmFtZSI+PC9hPg0K
ICAgICAgPGgyIGpzY29udGVudD0iJ01vZHVsZTogJyArICRtb2RuYW1lIj48L2gyPg0KDQogICAg
ICAgIDwhLS0gUFJPUEVSVElFUyAtLT4NCiAgICAgICAgPGRpdiBqc2Rpc3BsYXk9IiR0aGlzLnBy
b3BlcnRpZXMiIGNsYXNzPSJhcGlHcm91cCI+DQogICAgICAgICAgPGEganN2YWx1ZXM9Ii5uYW1l
Oidwcm9wZXJ0aWVzLScgKyAkbW9kbmFtZSI+PC9hPg0KICAgICAgICAgIDxoMyBpZD0icHJvcGVy
dGllcyI+UHJvcGVydGllczwvaDM+DQoNCiAgICAgICAgICA8ZGl2IGpzc2VsZWN0PSJnZXRQcm9w
ZXJ0eUxpc3RGcm9tT2JqZWN0KCR0aGlzKSI+DQogICAgICAgICAgICA8YSBqc3ZhbHVlcz0iLm5h
bWU6J3Byb3BlcnR5LScgKyBuYW1lIj48L2E+DQogICAgICAgICAgICA8aDQganNjb250ZW50PSJu
YW1lIj5nZXRMYXN0RXJyb3I8L2g0Pg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3VtbWFyeSI+
DQogICAgICAgICAgICAgIDwhLS0gTm90ZTogaW50ZW50aW9uYWxseSBsb25nZXIgODAgY29sdW1u
cyAtLT4NCiAgICAgICAgICAgICAgPHNwYW4ganNjb250ZW50PSIkbW9kbmFtZSArICcuJyI+PC9z
cGFuPjxzcGFuIGpzY29udGVudD0iJHRoaXMubmFtZSI+PC9zcGFuPg0KICAgICAgICAgICAgPC9k
aXY+DQogICAgICAgICAgICA8ZGl2IHRyYW5zY2x1ZGU9InZhbHVlVGVtcGxhdGUiPg0KICAgICAg
ICAgICAgPC9kaXY+DQogICAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgPC9kaXY+IDwhLS0gL2Fw
aUdyb3VwIC0tPg0KDQogICAgICAgIDxkaXYgdHJhbnNjbHVkZT0ibWV0aG9kc1RlbXBsYXRlIiBq
c2Rpc3BsYXk9ImZ1bmN0aW9ucyAmJiBmdW5jdGlvbnMubGVuZ3RoID4gMCIgY2xhc3M9ImFwaUdy
b3VwIj4NCiAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgPCEtLSBFVkVOVFMgLS0+DQogICAgICAg
IDxkaXYganNkaXNwbGF5PSIkbW9kdWxlLmV2ZW50cyAmJiAkbW9kdWxlLmV2ZW50cy5sZW5ndGgg
PiAwIiBjbGFzcz0iYXBpR3JvdXAiPg0KICAgICAgICAgIDxhIGpzdmFsdWVzPSIubmFtZTonZXZl
bnRzLScgKyAkbW9kbmFtZSI+PC9hPg0KICAgICAgICAgIDxoMyBpZD0iZXZlbnRzIj5FdmVudHM8
L2gzPg0KDQogICAgICAgICAgPCEtLSBpdGVyYXRlcyBvdmVyIGFsbCBldmVudHMgLS0+DQogICAg
ICAgICAgPGRpdiBqc3NlbGVjdD0iJG1vZHVsZS5ldmVudHMuc29ydChzb3J0QnlOYW1lKSIgY2xh
c3M9ImFwaUl0ZW0iDQogICAgICAgICAgICAgICBqc2Rpc3BsYXk9IiEoJHRoaXMubm9kb2MpIj4N
CiAgICAgICAgICAgIDxkaXYgdHJhbnNjbHVkZT0iZXZlbnRUZW1wbGF0ZSI+PC9kaXY+DQogICAg
ICAgICAgPC9kaXY+IDwhLS0gL2FwaUl0ZW0gLS0+DQoNCiAgICAgICAgPC9kaXY+IDwhLS0gL2Fw
aUdyb3VwIC0tPg0KDQogICAgICAgIDwhLS0gVFlQRVMgLS0+DQogICAgICAgIDxkaXYganNkaXNw
bGF5PSIkbW9kdWxlLnR5cGVzICYmICRtb2R1bGUudHlwZXMubGVuZ3RoID4gMCIgY2xhc3M9ImFw
aUdyb3VwIj4NCiAgICAgICAgICA8YSBqc3ZhbHVlcz0iLm5hbWU6J3R5cGVzLScgKyAkbW9kbmFt
ZSI+PC9hPg0KICAgICAgICAgIDxoMyBpZD0idHlwZXMiPlR5cGVzPC9oMz4NCg0KICAgICAgICAg
IDwhLS0gaXRlcmF0ZXMgb3ZlciBhbGwgdHlwZXMgLS0+DQogICAgICAgICAgPGRpdiBqc3NlbGVj
dD0iJG1vZHVsZS50eXBlcyIgY2xhc3M9ImFwaUl0ZW0iIGpzdmFsdWVzPSIkbW9kbmFtZTppZCI+
DQogICAgICAgICAgICA8YSBqc3ZhbHVlcz0iLm5hbWU6J3R5cGUtJyArIGlkIj48L2E+DQogICAg
ICAgICAgICA8aDQganNjb250ZW50PSJpZCI+dHlwZSBuYW1lPC9oND4NCiAgICAgICAgICAgIDxk
aXYgdHJhbnNjbHVkZT0idmFsdWVUZW1wbGF0ZSI+DQogICAgICAgICAgICA8L2Rpdj4NCg0KICAg
ICAgICAgIDwvZGl2PiA8IS0tIC9hcGlJdGVtIC0tPg0KDQogICAgICAgIDwvZGl2PiA8IS0tIC9h
cGlHcm91cCAtLT4NCg0KICAgICAgPC9kaXY+IDwhLS0gL2FwaVBhZ2UgLS0+DQoNCjwvYm9keT4N
Cg0KPC9odG1sPg0K
</data>

          </attachment>
      

    </bug>

</bugzilla>