<?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>165279</bug_id>
          
          <creation_ts>2016-12-01 14:31:39 -0800</creation_ts>
          <short_desc>Implement inert attribute (affects keyboard, events, and accessibility)</short_desc>
          <delta_ts>2022-05-27 23:18:15 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Accessibility</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugzilla.mozilla.org/show_bug.cgi?id=921504</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>240009</dependson>
    
    <dependson>110952</dependson>
    
    <dependson>229330</dependson>
    
    <dependson>229410</dependson>
    
    <dependson>229728</dependson>
    
    <dependson>230474</dependson>
    
    <dependson>230680</dependson>
    
    <dependson>230845</dependson>
    
    <dependson>231741</dependson>
    
    <dependson>235668</dependson>
    
    <dependson>235836</dependson>
    
    <dependson>236512</dependson>
    
    <dependson>237033</dependson>
    
    <dependson>237244</dependson>
    
    <dependson>239017</dependson>
    
    <dependson>239831</dependson>
    
    <dependson>241022</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="James Craig">jcraig</reporter>
          <assigned_to name="Tim Nguyen (:ntim)">ntim</assigned_to>
          <cc>709922234</cc>
    
    <cc>agibson</cc>
    
    <cc>bugzilla</cc>
    
    <cc>carolynmacleod4</cc>
    
    <cc>Carolyn_MacLeod</cc>
    
    <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>cigitia</cc>
    
    <cc>clopez</cc>
    
    <cc>craig+webkit</cc>
    
    <cc>emilio</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fred.wang</cc>
    
    <cc>fweber</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>herr.ernst</cc>
    
    <cc>hidde</cc>
    
    <cc>info</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>michaelcpuckett</cc>
    
    <cc>ntim</cc>
    
    <cc>rniwa</cc>
    
    <cc>robdodson</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>webkit</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1255481</commentid>
    <comment_count>0</comment_count>
    <who name="James Craig">jcraig</who>
    <bug_when>2016-12-01 14:31:39 -0800</bug_when>
    <thetext>WICG discussion happening here:

https://discourse.wicg.io/t/inert-attribute/1838</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1255483</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2016-12-01 14:32:16 -0800</bug_when>
    <thetext>&lt;rdar://problem/29467435&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1255518</commentid>
    <comment_count>2</comment_count>
    <who name="James Craig">jcraig</who>
    <bug_when>2016-12-01 15:28:40 -0800</bug_when>
    <thetext>There are obvious benefits for accessibility. 

Are there concerns from WebKit implementors about the functionality change or implementability of for events handling and keyboard/focus behavior?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1255532</commentid>
    <comment_count>3</comment_count>
    <who name="James Craig">jcraig</who>
    <bug_when>2016-12-01 15:52:47 -0800</bug_when>
    <thetext>Also discussion re: naming conflict with template: https://github.com/WICG/inert/issues/39</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1258005</commentid>
    <comment_count>4</comment_count>
    <who name="James Craig">jcraig</who>
    <bug_when>2016-12-08 18:54:45 -0800</bug_when>
    <thetext>*** Bug 159748 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1258008</commentid>
    <comment_count>5</comment_count>
    <who name="James Craig">jcraig</who>
    <bug_when>2016-12-08 18:59:03 -0800</bug_when>
    <thetext>Relating to &lt;dialog&gt; bug 84635</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1258040</commentid>
    <comment_count>6</comment_count>
    <who name="Chris Rebert">webkit</who>
    <bug_when>2016-12-08 19:50:48 -0800</bug_when>
    <thetext>See also: https://github.com/whatwg/html/pull/1474</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1313392</commentid>
    <comment_count>7</comment_count>
    <who name="James Craig">jcraig</who>
    <bug_when>2017-05-27 00:50:26 -0700</bug_when>
    <thetext>Google this shipping behind a flag now.

Enable:
chrome://flags#enable-experimental-web-platform-features

Explainer:
https://github.com/WICG/inert/blob/master/README.md

Chrome &quot;Intent to Implement&quot; from February:
https://groups.google.com/a/chromium.org/forum/#!topic/blink-dev/N--HhuYFJQI</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1357857</commentid>
    <comment_count>8</comment_count>
    <who name="Carolyn MacLeod">carolynmacleod4</who>
    <bug_when>2017-10-06 19:11:24 -0700</bug_when>
    <thetext>FF bug was reopened in May/17: https://bugzilla.mozilla.org/show_bug.cgi?id=921504

Edge bug opened in Sept/17 (already has 187 votes): https://wpdev.uservoice.com/forums/257854-microsoft-edge-developer/suggestions/31606522-support-the-inert-attribute</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1456153</commentid>
    <comment_count>9</comment_count>
    <who name="Michael Puckett">michaelcpuckett</who>
    <bug_when>2018-09-03 05:44:42 -0700</bug_when>
    <thetext>Please consider adding to the feature status list here:

https://webkit.org/status</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1642251</commentid>
    <comment_count>10</comment_count>
      <attachid>396647</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2020-04-16 07:43:38 -0700</bug_when>
    <thetext>Created attachment 396647
testcase</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1642253</commentid>
    <comment_count>11</comment_count>
      <attachid>396649</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2020-04-16 07:47:18 -0700</bug_when>
    <thetext>Created attachment 396649
WIP Patch

Just a quick proof-of-concept patch. It seems to at least work for links. Probably there are several cases to check and things to verify, but that gives a starting point.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1642254</commentid>
    <comment_count>12</comment_count>
      <attachid>396649</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2020-04-16 07:52:27 -0700</bug_when>
    <thetext>Comment on attachment 396649
WIP Patch

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

&gt; Source/WebCore/dom/Element.h:473
&gt; +    virtual bool isDisabledFormControl() const { return isInert(); }

Obviously, this should also be done in derived class... it seems they don&apos;t call their parent.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748701</commentid>
    <comment_count>13</comment_count>
    <who name="Carolyn MacLeod">Carolyn_MacLeod</who>
    <bug_when>2021-04-09 05:33:24 -0700</bug_when>
    <thetext>Nudge. :)

Chrome/Edge/Opera and Firefox all have this ready and waiting behind a flag: https://caniuse.com/mdn-api_htmlelement_inert

The HTML spec has an approved pull request waiting: https://github.com/whatwg/html/pull/4288

So it seems everybody is waiting on webkit/Safari.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748705</commentid>
    <comment_count>14</comment_count>
    <who name="Carolyn MacLeod">Carolyn_MacLeod</who>
    <bug_when>2021-04-09 05:55:46 -0700</bug_when>
    <thetext>Hmmm, I guess people are also waiting on https://github.com/whatwg/html/issues/5650 and https://github.com/w3c/html-aam/issues/295. If you can help move those conversations forward from a webkit point of view, please do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1777722</commentid>
    <comment_count>15</comment_count>
    <who name="Tim Nguyen (:ntim)">ntim</who>
    <bug_when>2021-07-17 15:32:09 -0700</bug_when>
    <thetext>I&apos;m going to start implementing inert subtrees in bug 110952 in the next weeks, though only the minimum needed for &lt;dialog&gt; element. I suspect it won&apos;t be hard to get the attribute working after that&apos;s properly done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1785799</commentid>
    <comment_count>16</comment_count>
      <attachid>435977</attachid>
    <who name="Tim Nguyen (:ntim)">ntim</who>
    <bug_when>2021-08-20 05:48:34 -0700</bug_when>
    <thetext>Created attachment 435977
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1785851</commentid>
    <comment_count>17</comment_count>
      <attachid>435994</attachid>
    <who name="Tim Nguyen (:ntim)">ntim</who>
    <bug_when>2021-08-20 08:56:08 -0700</bug_when>
    <thetext>Created attachment 435994
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1785934</commentid>
    <comment_count>18</comment_count>
      <attachid>435994</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-08-20 11:54:26 -0700</bug_when>
    <thetext>Comment on attachment 435994
Patch

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

&gt; Source/WebCore/html/HTMLElement.idl:60
&gt; +    // Experimental: https://github.com/WICG/inert/blob/master/README.md
&gt; +    [CEReactions, Reflect, EnabledBySetting=InertAttribute] attribute boolean inert;

I would put this above the Non-standard attributes (and below the attachInternals commented out attribute).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1785937</commentid>
    <comment_count>19</comment_count>
      <attachid>435994</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-08-20 12:04:00 -0700</bug_when>
    <thetext>Comment on attachment 435994
Patch

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

&gt; Source/WebCore/dom/Node.cpp:2640
&gt; +        const Element* element = is&lt;Element&gt;(this) ? downcast&lt;Element&gt;(this) : parentElement();
&gt; +        while (element) {
&gt; +            if (is&lt;HTMLElement&gt;(element) &amp;&amp; element-&gt;hasAttribute(HTMLNames::inertAttr))
&gt; +                return true;
&gt; +            element = element-&gt;parentElement();

Doing an ancestor tree walk every time this is called doesn&apos;t seem great for perf.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1785973</commentid>
    <comment_count>20</comment_count>
    <who name="Tim Nguyen (:ntim)">ntim</who>
    <bug_when>2021-08-20 13:53:35 -0700</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #19)
&gt; Comment on attachment 435994 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=435994&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/dom/Node.cpp:2640
&gt; &gt; +        const Element* element = is&lt;Element&gt;(this) ? downcast&lt;Element&gt;(this) : parentElement();
&gt; &gt; +        while (element) {
&gt; &gt; +            if (is&lt;HTMLElement&gt;(element) &amp;&amp; element-&gt;hasAttribute(HTMLNames::inertAttr))
&gt; &gt; +                return true;
&gt; &gt; +            element = element-&gt;parentElement();
&gt; 
&gt; Doing an ancestor tree walk every time this is called doesn&apos;t seem great for
&gt; perf.

Simon suggested adding a bit on Document that is set anytime one of the elements get the inert attribute, and only doing the ancestor walk in that case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1786404</commentid>
    <comment_count>21</comment_count>
      <attachid>436191</attachid>
    <who name="Tim Nguyen (:ntim)">ntim</who>
    <bug_when>2021-08-23 07:08:10 -0700</bug_when>
    <thetext>Created attachment 436191
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1786406</commentid>
    <comment_count>22</comment_count>
      <attachid>436192</attachid>
    <who name="Tim Nguyen (:ntim)">ntim</who>
    <bug_when>2021-08-23 07:14:02 -0700</bug_when>
    <thetext>Created attachment 436192
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1786422</commentid>
    <comment_count>23</comment_count>
      <attachid>436192</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-08-23 08:08:40 -0700</bug_when>
    <thetext>Comment on attachment 436192
Patch

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

&gt; Source/WebCore/dom/Document.h:1635
&gt; +    bool hasInertAttributeBeenUsed() { return m_hasInertAttributeBeenUsed; }

should be const.

&gt; Source/WebCore/dom/Node.cpp:2636
&gt; +        const Element* element = is&lt;Element&gt;(this) ? downcast&lt;Element&gt;(this) : parentElement();

Seems like you should be using lineageOfType:

for (auto&amp; element : lineageOfType&lt;HTMLElement&gt;(*this)) {
    if (element-&gt;hasAttribute(HTMLNames::inertAttr))
        return true;
}

&gt; Source/WebCore/html/HTMLElement.cpp:486
&gt; +        document().setHasInertAttributeBeenUsed();

How does that work when an element gets moved from one document to another?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1786442</commentid>
    <comment_count>24</comment_count>
      <attachid>436200</attachid>
    <who name="Tim Nguyen (:ntim)">ntim</who>
    <bug_when>2021-08-23 09:04:08 -0700</bug_when>
    <thetext>Created attachment 436200
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1786445</commentid>
    <comment_count>25</comment_count>
      <attachid>436200</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-08-23 09:15:13 -0700</bug_when>
    <thetext>Comment on attachment 436200
Patch

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

r=me

&gt; Source/WebCore/dom/Node.cpp:2636
&gt; +        auto* element = is&lt;Element&gt;(this) ? downcast&lt;Element&gt;(this) : parentElement();

is&lt;Element&gt;(*this) to avoid an unnecessary null-check.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1786449</commentid>
    <comment_count>26</comment_count>
      <attachid>436203</attachid>
    <who name="Tim Nguyen (:ntim)">ntim</who>
    <bug_when>2021-08-23 09:28:14 -0700</bug_when>
    <thetext>Created attachment 436203
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1786483</commentid>
    <comment_count>27</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-08-23 11:20:09 -0700</bug_when>
    <thetext>Found 30 new test failures: accessibility/accessibility-crash-focused-element-change.html, accessibility/accessibility-crash-setattribute.html, accessibility/accessibility-node-reparent.html, accessibility/mac/abbr-acronym-tags.html, accessibility/mac/accessibility-make-first-responder.html, accessibility/mac/accesskey.html, accessibility/mac/attributed-string/attributed-string-for-range-with-options.html, accessibility/mac/attributed-string/attributed-string-for-range.html, accessibility/mac/search-text/search-text.html, accessibility/mac/select-text/select-text-1.html ...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1786525</commentid>
    <comment_count>28</comment_count>
      <attachid>436203</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-08-23 13:15:20 -0700</bug_when>
    <thetext>Comment on attachment 436203
Patch

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

&gt; Source/WebCore/dom/Node.cpp:2636
&gt; +        auto* element = is&lt;Element&gt;(*this) ? downcast&lt;Element&gt;(this) : parentElement();

Please use RefPtr.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1786526</commentid>
    <comment_count>29</comment_count>
      <attachid>436228</attachid>
    <who name="Tim Nguyen (:ntim)">ntim</who>
    <bug_when>2021-08-23 13:15:32 -0700</bug_when>
    <thetext>Created attachment 436228
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1786527</commentid>
    <comment_count>30</comment_count>
      <attachid>436228</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-08-23 13:16:15 -0700</bug_when>
    <thetext>Comment on attachment 436228
Patch

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

&gt; Source/WebCore/dom/Node.cpp:2637
&gt; +        auto* element = is&lt;Element&gt;(*this) ? downcast&lt;Element&gt;(this) : parentElement();
&gt; +        if (element) {

Please use RefPtr. Also declare the variable inside if like so:
if (RefPtr element = ~)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1786607</commentid>
    <comment_count>31</comment_count>
      <attachid>436228</attachid>
    <who name="Emilio Cobos Álvarez (:emilio)">emilio</who>
    <bug_when>2021-08-23 16:47:03 -0700</bug_when>
    <thetext>Comment on attachment 436228
Patch

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

&gt; Source/WebCore/dom/Node.cpp:2639
&gt; +                if (is&lt;HTMLElement&gt;(ancestor) &amp;&amp; ancestor.hasAttribute(HTMLNames::inertAttr))

Shouldn&apos;t this use the flat tree?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1786677</commentid>
    <comment_count>32</comment_count>
      <attachid>436265</attachid>
    <who name="Tim Nguyen (:ntim)">ntim</who>
    <bug_when>2021-08-24 00:29:12 -0700</bug_when>
    <thetext>Created attachment 436265
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1786684</commentid>
    <comment_count>33</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-08-24 01:18:01 -0700</bug_when>
    <thetext>Committed r281490 (240864@main): &lt;https://commits.webkit.org/240864@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 436265.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>396647</attachid>
            <date>2020-04-16 07:43:38 -0700</date>
            <delta_ts>2020-04-16 07:43:38 -0700</delta_ts>
            <desc>testcase</desc>
            <filename>inert.html</filename>
            <type>text/html</type>
            <size>5141</size>
            <attacher name="Frédéric Wang Nélar">fred.wang</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+CjxodG1sPgogIDxoZWFkPgogICAgPHRpdGxlPmluZXJ0PC90aXRsZT4K
ICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ii8+CiAgPC9oZWFkPgogIDxib2R5PgoKICAgIDxoMT5X
aGF0IGV2ZW4gaXMgdGhpcz88L2gxPgoKICAgIDxwPkEgZGVtby90ZXN0IHBhZ2UgY29waWVkIGZy
b20gPGEgaHJlZj0iaHR0cHM6Ly93aWNnLmdpdGh1Yi5pby9pbmVydC9kZW1vLyI+aHR0cHM6Ly93
aWNnLmdpdGh1Yi5pby9pbmVydC9kZW1vPC9hPi48L3A+CgogICAgPHNlY3Rpb24+CiAgICAgIDxo
Mj5UaGUgY29udGFpbmVyIGJlbG93IGlzIG1hcmtlZCBkZWNsYXJhdGl2ZWx5IGluIHRoZSBzb3Vy
Y2Ugd2l0aCB0aGUgPGNvZGU+aW5lcnQ8L2NvZGU+IGF0dHJpYnV0ZTwvaDI+CiAgICAgIDxkaXYg
Y2xhc3M9ImNvbnRhaW5lciIgaW5lcnQ9IiIgYXJpYS1oaWRkZW49InRydWUiPgogICAgICAgIDxw
PkJ5IGFkZGluZyB0aGUgPGNvZGU+aW5lcnQ8L2NvZGU+IGF0dHJpYnV0ZSB0byBhbnkgZWxlbWVu
dCB5b3UgbWFrZSB0aGUgZWxlbWVudHMgaW5zaWRlIGl0IHVuZm9jdXNhYmxlIChieSBtb3VzZSwg
cG9pbnRlciBldmVudHMgb3Iga2V5Ym9hcmQgdGFiYmluZy4KICAgICAgICAgIDxhIGhyZWY9Imph
dmFzY3JpcHQ6YWxlcnQoJ2NsaWNrZWQnKSIgdGFiaW5kZXg9Ii0xIj5Zb3Ugc2hvdWxkbid0IGJl
IGFibGUgdG8gY2xpY2sgdGhpcyBvciBzZXQgZm9jdXMgdG8gaXQgYmVjYXVzZSBpdCBpcyBpbnNp
ZGUgYSBjb250YWluZXIgdGhhdCBpcyBpbmVydC48L2E+PC9wPgogICAgICAgIDxsYWJlbD4KICAg
ICAgICAgIFRoaXMgY2hlY2tib3ggaXMgaW5zaWRlIHRoZSBpbmVydCBjb250YWluZXIgdG9vPGlu
cHV0IHR5cGU9ImNoZWNrYm94IiB0YWJpbmRleD0iLTEiPgogICAgICAgIDwvbGFiZWw+CgogICAg
ICAgIDxsYWJlbD4KICAgICAgICAgIFRoaXMgZmllbGQgaXMgaW5zaWRlIHRoZSBpbmVydCBjb250
YWluZXIgdG9vPGlucHV0IHRhYmluZGV4PSItMSI+CiAgICAgICAgPC9sYWJlbD4KICAgICAgPC9k
aXY+CiAgICA8L3NlY3Rpb24+CgogICAgPHNlY3Rpb24+CiAgICAgIDxoMj48bGFiZWw+VGhlIGNv
bnRhaW5lciBiZWxvdyBjYW4gYmUgdG9nZ2xlZCBpbmVydCBvbiBhbmQgb2ZmIDxpbnB1dCBpZD0i
dG9nZ2xlIiB0eXBlPSJjaGVja2JveCI+PC9sYWJlbD4gPC9oMj4KCiAgICAgIDxkaXYgY2xhc3M9
ImNvbnRhaW5lciIgaWQ9ImNvbnRlbnQiPgogICAgICAgIDxwPgogICAgICAgICAgQ2xpY2tpbmcg
dGhlIGNoZWNrYm94IGFib3ZlIHdpbGwgdG9nZ2xlIHRoZSBlbGVtZW50J3MgPGNvZGU+aW5lcnQ8
L2NvZGU+IHByb3BlcnR5IHZpYSA8L3A+PHByZT48Y29kZT5lbGVtZW50LmluZXJ0ID0gZXZ0LnRh
cmdldC5jaGVja2VkID09IHRydWU7PC9jb2RlPjwvcHJlPgogICAgICAgICAgPGEgaHJlZj0iamF2
YXNjcmlwdDphbGVydCgnY2xpY2tlZCcpIj5Zb3Ugc2hvdWxkPHNwYW4gY2xhc3M9Im5vdCI+bid0
PC9zcGFuPiBiZSBhYmxlIHRvIGNsaWNrIHRoaXMgb3Igc2V0IGZvY3VzIHRvIGl0LjwvYT4uCgog
ICAgICAgICAgPHNlY3Rpb24gaW5lcnQ9IiIgYXJpYS1oaWRkZW49InRydWUiPgogICAgICAgICAg
ICA8aDM+VGhpcyBpbm5lciBzZWN0aW9uIGlzIG1hcmtlZCBpbmVydDwvaDM+CiAgICAgICAgICAg
IDxwPjxhIGhyZWY9ImphdmFzY3JpcHQ6YWxlcnQoJ2NsaWNrZWQnKSIgdGFiaW5kZXg9Ii0xIj5U
b2dnbGluZyB0aGUgb3V0ZXIgaW5lcnQgc2hvdWxkIG5vdCBtYWtlIHRoaXMgbGluayAgYmVjb21l
IGNsaWNrYWJsZS48L2E+PC9wPgogICAgICAgICAgPC9zZWN0aW9uPgoKICAgICAgICA8cD48L3A+
CiAgICAgIDwvZGl2PgogICAgPC9zZWN0aW9uPgoKICAgIDxzZWN0aW9uPgogICAgICA8aDI+PGxh
YmVsPlRoZSBjb250YWluZXIgYmVsb3cgY29udGFpbnMgbmVzdGVkIDxjb2RlPmluZXJ0PC9jb2Rl
PiBjb250YWluZXJzLiAgVGhlIGlubmVyIG9uZSBjYW4gYmUgdG9nZ2xlZCBvbiBhbmQgb2ZmIDxp
bnB1dCBpZD0idG9nZ2xlMiIgdHlwZT0iY2hlY2tib3giIGNoZWNrZWQ9ImNoZWNrZWQiPjwvbGFi
ZWw+IDwvaDI+CgogICAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiIGluZXJ0PSIiIGFyaWEtaGlk
ZGVuPSJ0cnVlIj4KICAgICAgICA8cD4KICAgICAgICAgIENsaWNraW5nIHRoZSBjaGVja2JveCBh
Ym92ZSB3aWxsIHRvZ2dsZSB0aGUgZWxlbWVudCdzIDxjb2RlPmluZXJ0PC9jb2RlPiBwcm9wZXJ0
eSB2aWEgPC9wPjxwcmU+PGNvZGU+ZWxlbWVudC5pbmVydCA9IGV2dC50YXJnZXQuY2hlY2tlZCA9
PSB0cnVlOzwvY29kZT48L3ByZT4KICAgICAgICAgIDxhIGhyZWY9ImphdmFzY3JpcHQ6YWxlcnQo
J2NsaWNrZWQnKSIgdGFiaW5kZXg9Ii0xIj5Zb3Ugc2hvdWxkPHNwYW4gY2xhc3M9Im5vdCI+bid0
PC9zcGFuPiBiZSBhYmxlIHRvIGNsaWNrIHRoaXMgb3Igc2V0IGZvY3VzIHRvIGl0LjwvYT4uCgog
ICAgICAgICAgPHNlY3Rpb24gaWQ9ImlubmVyY29udGVudCIgaW5lcnQ9IiIgYXJpYS1oaWRkZW49
InRydWUiPgogICAgICAgICAgICA8aDM+VGhpcyBpbm5lciBzZWN0aW9uIGlzIDxzcGFuIGNsYXNz
PSJub3QiPm5vdDwvc3Bhbj4gbWFya2VkIGluZXJ0PC9oMz4KICAgICAgICAgICAgPHA+PGEgaHJl
Zj0iamF2YXNjcmlwdDphbGVydCgnY2xpY2tlZCcpIiB0YWJpbmRleD0iLTEiPlRvZ2dsaW5nIHRo
ZSBpbm5lciBpbmVydCBzaG91bGQgbm90IG1ha2UgdGhpcyBsaW5rIGJlY29tZSBjbGlja2FibGUu
PC9hPjwvcD4KICAgICAgICAgIDwvc2VjdGlvbj4KCiAgICAgICAgPHA+PC9wPgogICAgICA8L2Rp
dj4KICAgIDwvc2VjdGlvbj4KCiAgICA8c2VjdGlvbj4KICAgICAgPGgyPjxsYWJlbD5UaGUgY29u
dGFpbmVyIGJlbG93IGNvbnRhaW5zIG5lc3RlZCBjb250YWluZXJzLiBUaGUgaW5uZXIgb25lIHN0
YXJ0cyBub24taW5lcnQgYW5kIGNhbiBiZSB0b2dnbGVkIG9uIGFuZCBvZmYgPGlucHV0IGlkPSJ0
b2dnbGUzIiB0eXBlPSJjaGVja2JveCIgPD0iIiBsYWJlbD0iIj4KICAgICAgICAgIDxsYWJlbD5U
b2dnbGluZyB0aGUgb3V0ZXIgaW5lcnQgYWZ0ZXIgdG9nZ2xpbmcgdGhlIGlubmVyIGluZXJ0IHNo
b3VsZCBub3QgbW9kaWZ5IGl0cyBzdGF0ZSBlaXRoZXIuIDxpbnB1dCBpZD0idG9nZ2xlNCIgdHlw
ZT0iY2hlY2tib3giIGNoZWNrZWQ9ImNoZWNrZWQiPjwvbGFiZWw+IDwvbGFiZWw+PC9oMj4KCiAg
ICAgIDxkaXYgaWQ9Im91dGVyY29udGVudCIgY2xhc3M9ImNvbnRhaW5lciIgaW5lcnQ9IiIgYXJp
YS1oaWRkZW49InRydWUiPgogICAgICAgIDxwPgogICAgICAgICAgQ2xpY2tpbmcgdGhlIGNoZWNr
Ym94IGFib3ZlIHdpbGwgdG9nZ2xlIHRoZSBlbGVtZW50J3MgPGNvZGU+aW5lcnQ8L2NvZGU+IHBy
b3BlcnR5IHZpYSA8L3A+PHByZT48Y29kZT5lbGVtZW50LmluZXJ0ID0gZXZ0LnRhcmdldC5jaGVj
a2VkID09IHRydWU7PC9jb2RlPjwvcHJlPgogICAgICAgICAgPGEgaHJlZj0iamF2YXNjcmlwdDph
bGVydCgnY2xpY2tlZCcpIiB0YWJpbmRleD0iLTEiPllvdSBzaG91bGQ8c3BhbiBjbGFzcz0ibm90
Ij5uJ3Q8L3NwYW4+IGJlIGFibGUgdG8gY2xpY2sgdGhpcyBvciBzZXQgZm9jdXMgdG8gaXQuPC9h
Pi4KCiAgICAgICAgICA8c2VjdGlvbiBpZD0iaW5uZXJjb250ZW50MiI+CiAgICAgICAgICAgIDxo
Mz5UaGlzIGlubmVyIHNlY3Rpb24gaXMgPHNwYW4gY2xhc3M9ImlubmVyLW5vdCI+bm90PC9zcGFu
PiBtYXJrZWQgaW5lcnQ8L2gzPgogICAgICAgICAgICA8cD48YSBocmVmPSJqYXZhc2NyaXB0OmFs
ZXJ0KCdjbGlja2VkJykiIHRhYmluZGV4PSItMSI+VG9nZ2xpbmcgdGhlIGlubmVyIGluZXJ0IHNo
b3VsZCBub3QgbWFrZSB0aGlzIGxpbmsgYmVjb21lIGNsaWNrYWJsZSBvciB0YWJiYWJsZS48L2E+
PC9wPgogICAgICAgICAgICA8c3BhbiByb2xlPSJsaW5rIj5Ub2dnbGluZyB0aGUgaW5uZXIgaW5l
cnQgc2hvdWxkIG5vdCBtYWtlIHRoaXMgZmFrZSBsaW5rIGJlY29tZSB0YWJiYWJsZSBvciBjbGlj
a2FibGUgZWl0aGVyLjwvc3Bhbj4KICAgICAgICAgIDwvc2VjdGlvbj4KCiAgICAgICAgPHA+PC9w
PgogICAgICA8L2Rpdj4KICAgIDwvc2VjdGlvbj4KCiAgICA8c2NyaXB0PgogICAgICB2YXIgdG9n
Z2xlciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyN0b2dnbGUnKTsKICAgICAgdG9nZ2xlci5h
ZGRFdmVudExpc3RlbmVyKAogICAgICAgICAgJ2NoYW5nZScsCiAgICAgICAgICBmdW5jdGlvbiAo
ZXZ0KSB7CiAgICAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI2NvbnRlbnQnKS5p
bmVydCA9IChldnQudGFyZ2V0LmNoZWNrZWQgPT0gdHJ1ZSk7CiAgICAgICAgICB9LAogICAgICAg
ICAgZmFsc2UpOwoKICAgICAgdG9nZ2xlciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyN0b2dn
bGUyJyk7CiAgICAgIHRvZ2dsZXIuYWRkRXZlbnRMaXN0ZW5lcigKICAgICAgICAgICdjaGFuZ2Un
LAogICAgICAgICAgZnVuY3Rpb24gKGV2dCkgewogICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNl
bGVjdG9yKCcjaW5uZXJjb250ZW50JykuaW5lcnQgPSAoZXZ0LnRhcmdldC5jaGVja2VkID09IHRy
dWUpOwogICAgICAgICAgfSwKICAgICAgICAgIGZhbHNlKTsKCiAgICAgIHRvZ2dsZXIgPSBkb2N1
bWVudC5xdWVyeVNlbGVjdG9yKCcjdG9nZ2xlMycpOwogICAgICB0b2dnbGVyLmFkZEV2ZW50TGlz
dGVuZXIoCiAgICAgICAgICAnY2hhbmdlJywKICAgICAgICAgIGZ1bmN0aW9uIChldnQpIHsKICAg
ICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI2lubmVyY29udGVudDInKS5pbmVydCA9
IChldnQudGFyZ2V0LmNoZWNrZWQgPT0gdHJ1ZSk7CiAgICAgICAgICB9LAogICAgICAgICAgZmFs
c2UpOwoKICAgICAgdG9nZ2xlciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyN0b2dnbGU0Jyk7
CiAgICAgIHRvZ2dsZXIuYWRkRXZlbnRMaXN0ZW5lcigKICAgICAgICAgICdjaGFuZ2UnLAogICAg
ICAgICAgZnVuY3Rpb24gKGV2dCkgewogICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9y
KCcjb3V0ZXJjb250ZW50JykuaW5lcnQgPSAoZXZ0LnRhcmdldC5jaGVja2VkID09IHRydWUpOwog
ICAgICAgICAgfSwKICAgICAgICAgIGZhbHNlKTsKICAgIDwvc2NyaXB0PgoKICAgIAogIDwvYm9k
eT4KPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>396649</attachid>
            <date>2020-04-16 07:47:18 -0700</date>
            <delta_ts>2021-08-20 05:44:39 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>bug-165279.patch</filename>
            <type>text/plain</type>
            <size>4681</size>
            <attacher name="Frédéric Wang Nélar">fred.wang</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9i
amVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmpl
Y3QuY3BwCmluZGV4IGQzNmZjMTIwN2EyLi4zNTRmMDhjODlhMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCkBAIC0zMjEx
LDYgKzMyMTEsOCBAQCBib29sIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmFjY2Vzc2liaWxpdHlJc0ln
bm9yZWRCeURlZmF1bHQoKSBjb25zdAogLy8gaHR0cDovL3d3dy53My5vcmcvVFIvd2FpLWFyaWEv
dGVybXMjZGVmX2hpZGRlbgogYm9vbCBBY2Nlc3NpYmlsaXR5T2JqZWN0Ojppc0FYSGlkZGVuKCkg
Y29uc3QKIHsKKyAgICBpZiAobm9kZSgpICYmIG5vZGUoKS0+aXNJbmVydCgpKQorICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eTo6ZmluZEFuY2VzdG9yPEFjY2Vz
c2liaWxpdHlPYmplY3Q+KCp0aGlzLCB0cnVlLCBbXSAoY29uc3QgQWNjZXNzaWJpbGl0eU9iamVj
dCYgb2JqZWN0KSB7CiAgICAgICAgIHJldHVybiBlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2Fz
ZShvYmplY3QuZ2V0QXR0cmlidXRlKGFyaWFfaGlkZGVuQXR0ciksICJ0cnVlIik7CiAgICAgfSkg
IT0gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCmluZGV4IDBkYmY4OTgzNTI5Li44OWQ2YjZjMjlm
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRWxlbWVudC5oCkBAIC00NzAsNyArNDcwLDcgQEAgcHVibGljOgogCiAgICAg
Ly8gVXNlZCBmb3IgZGlzYWJsZWQgZm9ybSBlbGVtZW50czsgaWYgdHJ1ZSwgcHJldmVudHMgbW91
c2UgZXZlbnRzIGZyb20gYmVpbmcgZGlzcGF0Y2hlZAogICAgIC8vIHRvIGV2ZW50IGxpc3RlbmVy
cywgYW5kIHByZXZlbnRzIERPTUFjdGl2YXRlIGV2ZW50cyBmcm9tIGJlaW5nIHNlbnQgYXQgYWxs
LgotICAgIHZpcnR1YWwgYm9vbCBpc0Rpc2FibGVkRm9ybUNvbnRyb2woKSBjb25zdCB7IHJldHVy
biBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc0Rpc2FibGVkRm9ybUNvbnRyb2woKSBjb25z
dCB7IHJldHVybiBpc0luZXJ0KCk7IH0KIAogICAgIHZpcnR1YWwgYm9vbCBjaGlsZFNob3VsZENy
ZWF0ZVJlbmRlcmVyKGNvbnN0IE5vZGUmKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCmluZGV4IDhl
NThkMGVkZDg2Li44OGQ5YmY2ZTdmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05v
ZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcApAQCAtNjcsNiArNjcsNyBA
QAogI2luY2x1ZGUgIlNWR0VsZW1lbnQuaCIKICNpbmNsdWRlICJTY29wZWRFdmVudFF1ZXVlLmgi
CiAjaW5jbHVkZSAiU2NyaXB0RGlzYWxsb3dlZFNjb3BlLmgiCisjaW5jbHVkZSAiU2V0dGluZ3Mu
aCIKICNpbmNsdWRlICJTdG9yYWdlRXZlbnQuaCIKICNpbmNsdWRlICJTdHlsZVJlc29sdmVyLmgi
CiAjaW5jbHVkZSAiU3R5bGVTaGVldENvbnRlbnRzLmgiCkBAIC0yNjEyLDYgKzI2MTMsMjQgQEAg
dm9pZCogTm9kZTo6b3BhcXVlUm9vdFNsb3coKSBjb25zdAogICAgIHJldHVybiBjb25zdF9jYXN0
PHZvaWQqPihzdGF0aWNfY2FzdDxjb25zdCB2b2lkKj4obm9kZSkpOwogfQogCitib29sIE5vZGU6
OmlzSW5lcnQoKSBjb25zdAoreworICAgIGlmICghaXNDb25uZWN0ZWQoKSkKKyAgICAgICAgcmV0
dXJuIHRydWU7CisKKyAgICBpZiAoZG9jdW1lbnQoKS5mcmFtZSgpICYmIGRvY3VtZW50KCkuZnJh
bWUoKS0+c2V0dGluZ3MoKS5pbmVydEF0dHJpYnV0ZUVuYWJsZWQoKSkgeworICAgICAgICBjb25z
dCBFbGVtZW50KiBlbGVtZW50ID0gaXM8RWxlbWVudD4odGhpcykgPyBkb3duY2FzdDxFbGVtZW50
Pih0aGlzKSA6IHBhcmVudEVsZW1lbnQoKTsKKyAgICAgICAgd2hpbGUgKGVsZW1lbnQpIHsKKyAg
ICAgICAgICAgIC8vIEZJWE1FOiBTaG91bGQgd2UgY2hlY2sgaW5lcnQgZW1wdHkgb3IgQVNDSUkt
Y2FzZS1pbnNlbnNpdGl2ZWx5IGVxdWFsIHRvIEhUTUxOYW1lczo6aW5lcnRBdHRyPworICAgICAg
ICAgICAgaWYgKGlzPEhUTUxFbGVtZW50PihlbGVtZW50KSAmJiBlbGVtZW50LT5oYXNBdHRyaWJ1
dGUoSFRNTE5hbWVzOjppbmVydEF0dHIpKQorICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwor
ICAgICAgICAgICAgZWxlbWVudCA9IGVsZW1lbnQtPnBhcmVudEVsZW1lbnQoKTsKKyAgICAgICAg
fQorICAgIH0KKworICAgIHJldHVybiBmYWxzZTsgLy8gZG9jdW1lbnQoKS5mcmFtZSgpICYmIGRv
Y3VtZW50KCkuZnJhbWUoKS0+aXNJbmVydCgpOworfQorCiBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8
KFRleHRTdHJlYW0mIHRzLCBjb25zdCBOb2RlJiBub2RlKQogewogICAgIHRzIDw8ICJub2RlICIg
PDwgJm5vZGUgPDwgIiAiIDw8IG5vZGUuZGVidWdEZXNjcmlwdGlvbigpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL05vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKaW5k
ZXggZTJiMzA2MTcyNjIuLjhlOGVmNmYwYThmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKQEAgLTUxNyw2ICs1MTcs
MTMgQEAgcHVibGljOgogICAgIHN0YXRpYyBpbnQzMl90IGZsYWdTdHlsZUlzQWZmZWN0ZWRCeVBy
ZXZpb3VzU2libGluZygpIHsgcmV0dXJuIFN0eWxlSXNBZmZlY3RlZEJ5UHJldmlvdXNTaWJsaW5n
OyB9CiAjZW5kaWYgLy8gRU5BQkxFKEpJVCkKIAorICAgIC8vIFdoZXRoZXIgdGhlIG5vZGUgaXMg
aW5lcnQ6CisgICAgLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2UvaW50
ZXJhY3Rpb24uaHRtbCNpbmVydAorICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9XSUNHL2luZXJ0
L2Jsb2IvbWFzdGVyL1JFQURNRS5tZAorICAgIC8vIFRoaXMgY2FuJ3QgYmUgaW4gRWxlbWVudCBi
ZWNhdXNlIHRleHQgbm9kZXMgbXVzdCBiZSByZWNvZ25pemVkIGFzCisgICAgLy8gaW5lcnQgdG8g
cHJldmVudCB0ZXh0IHNlbGVjdGlvbi4KKyAgICBib29sIGlzSW5lcnQoKSBjb25zdDsKKwogcHJv
dGVjdGVkOgogICAgIGVudW0gTm9kZUZsYWdzIHsKICAgICAgICAgSXNUZXh0RmxhZyA9IDEsCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5pbiBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluCmluZGV4IGRjZDgzNzhkOTU0
Li5jZTE2ZTlmZTkwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXR0cmli
dXRlTmFtZXMuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMu
aW4KQEAgLTE1Myw2ICsxNTMsNyBAQCBpbWFnZXNpemVzCiBpbWFnZXNyY3NldAogaW5jcmVtZW50
YWwKIGluZGV0ZXJtaW5hdGUKK2luZXJ0CiBpbnB1dG1vZGUKIGludGVncml0eQogaXMKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaWRsIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MRWxlbWVudC5pZGwKaW5kZXggNjI5MmNmYTlhNzkuLjZkYWJlMmY0ODE1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmlkbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmlkbApAQCAtNjYsNiArNjYsMTAgQEAKIAogICAg
IGF0dHJpYnV0ZSBET01TdHJpbmcgaW5wdXRNb2RlOwogICAgIFtFbmFibGVkQnlTZXR0aW5nPUVu
dGVyS2V5SGludF0gYXR0cmlidXRlIERPTVN0cmluZyBlbnRlcktleUhpbnQ7CisKKyAgICAvLyBD
aHJvbWl1bSBoYXMgdGhpcyBvbiBIVE1MRWxlbWVudCBvbmx5LgorICAgIC8vIFNob3VsZCB0aGF0
IGJlIG1vdmVkIHRvIEhUTUxPckZvcmVpZ25FbGVtZW50CisgICAgW0NFUmVhY3Rpb25zLCBSZWZs
ZWN0LCBFbmFibGVkQnlTZXR0aW5nPUluZXJ0QXR0cmlidXRlXSBhdHRyaWJ1dGUgYm9vbGVhbiBp
bmVydDsKIH07CiAKIEhUTUxFbGVtZW50IGltcGxlbWVudHMgRWxlbWVudENTU0lubGluZVN0eWxl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sCmluZGV4IGE4Njc2ZDk3YzNjLi44ZmQwMjc5MmU5
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbApAQCAtOTE5LDYgKzkxOSw5IEBAIGlzTG9n
Z2VkSW5BUElFbmFibGVkOgogZW50ZXJLZXlIaW50RW5hYmxlZDoKICAgaW5pdGlhbDogZmFsc2UK
IAoraW5lcnRBdHRyaWJ1dGVFbmFibGVkOgorICBpbml0aWFsOiBmYWxzZQorCiBsZWdhY3lHZXRV
c2VyTWVkaWFFbmFibGVkOgogICBpbml0aWFsOiBmYWxzZQogICBjb25kaXRpb25hbDogTUVESUFf
U1RSRUFNCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>435977</attachid>
            <date>2021-08-20 05:48:34 -0700</date>
            <delta_ts>2021-08-20 08:56:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-165279-20210820144832.patch</filename>
            <type>text/plain</type>
            <size>63933</size>
            <attacher name="Tim Nguyen (:ntim)">ntim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxMzAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGI2Yzg5OGViZjY2ZWExZjUyNTc1Mzg5
MmJkMjE2ZWMzMDQxZTE5YzkuLmJlYTk4ODdkYzg2ODA5NjY2MGViZGNkMjJjNjYxOTVmODA4ODdl
MmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMDgtMjAgIFRpbSBOZ3V5ZW4gIDxudGltQGFw
cGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgaW5lcnQgYXR0cmlidXRlIGJlaGluZCBmZWF0
dXJlIGZsYWcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE2NTI3OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFkZCBydW50aW1lIEluZXJ0QXR0cmlidXRlRW5hYmxlZCBmZWF0dXJlIGZsYWcgZGlzYWJsZWQg
YnkgZGVmYXVsdC4KKworICAgICAgICAqIFNjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5j
ZXNFeHBlcmltZW50YWwueWFtbDoKKwogMjAyMS0wOC0xOSAgQW50dGkgS29pdmlzdG8gIDxhbnR0
aUBhcHBsZS5jb20+CiAKICAgICAgICAgWzpoYXMoKSBwc2V1ZG8tY2xhc3NdIEJhc2ljIHN1cHBv
cnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwppbmRleCBhODE0MDRkMWU2ODkwMzJjMzdlOWVmOWU5MWNkMDcwOTU3ZGVmOWM1
Li5iYzIwYzUxODg2NGRhMjQ3OGEwNWExYTUwODJlZTZjMTg2MzYxMzg1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjcgQEAKKzIwMjEtMDgtMjAgIFRpbSBOZ3V5ZW4gIDxudGltQGFwcGxlLmNvbT4K
KworICAgICAgICBJbXBsZW1lbnQgaW5lcnQgYXR0cmlidXRlIGJlaGluZCBmZWF0dXJlIGZsYWcK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NTI3OQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3RzOiBp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2ZyYW1lL2J1dHRvbi5odG1sCisg
ICAgICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0
LWRvZXMtbm90LW1hdGNoLWRpc2FibGVkLXNlbGVjdG9yLnRlbnRhdGl2ZS5odG1sCisgICAgICAg
ICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LWluLXNo
YWRvdy1kb20udGVudGF0aXZlLmh0bWwKKyAgICAgICAgICAgICAgIGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtaW5saW5lcy50ZW50YXRpdmUuaHRtbAorICAgICAg
ICAgICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1sYWJl
bC1mb2N1cy50ZW50YXRpdmUuaHRtbAorICAgICAgICAgICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1ub2RlLWlzLXVuZWRpdGFibGUudGVudGF0aXZlLmh0
bWwKKyAgICAgICAgICAgICAgIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQv
aW5lcnQtbm9kZS1pcy11bmZvY3VzYWJsZS50ZW50YXRpdmUuaHRtbAorICAgICAgICAgICAgICAg
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1ub2RlLWlzLXVuc2Vs
ZWN0YWJsZS50ZW50YXRpdmUuaHRtbAorICAgICAgICAgICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1vbi1zbG90cy50ZW50YXRpdmUuaHRtbAorICAgICAg
ICAgICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1yZXRh
cmdldGluZy1pZnJhbWUudGVudGF0aXZlLmh0bWwKKyAgICAgICAgICAgICAgIGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtcmV0YXJnZXRpbmcudGVudGF0aXZlLmh0
bWwKKworICAgICAgICAqIGRvbS9Ob2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6Omlz
SW5lcnQgY29uc3QpOgorICAgICAgICAqIGh0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluOgorICAg
ICAgICAqIGh0bWwvSFRNTEVsZW1lbnQuaWRsOgorCiAyMDIxLTA4LTIwICBUaW0gTmd1eWVuICA8
bnRpbUBhcHBsZS5jb20+CiAKICAgICAgICAgSW5pdGlhbCBpbXBsZW1lbnRhdGlvbiBvZiBpbmVy
dCBzdWJ0cmVlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dl
YlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVy
ZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbAppbmRleCA1ZmRiMjQ1NGM5OTQ0
NDBmN2U4ZGY3NTI3ZmZjZTE4NzAzM2IzOTdhLi4xODVhNWFjMGY0NTRjNzZjMDM0NzkyYWQxODU3
NjFmY2NhNjk0OTkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMv
V2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbAorKysgYi9Tb3VyY2UvV1RGL1NjcmlwdHMv
UHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbApAQCAtNTM0LDYgKzUz
NCwxOCBAQCBJbmNyZW1lbnRhbFBERkxvYWRpbmdFbmFibGVkOgogICAgIFdlYktpdDoKICAgICAg
IGRlZmF1bHQ6IFdlYktpdDo6ZGVmYXVsdEluY3JlbWVudGFsUERGRW5hYmxlZCgpCiAKK0luZXJ0
QXR0cmlidXRlRW5hYmxlZDoKKyAgdHlwZTogYm9vbAorICBodW1hblJlYWRhYmxlTmFtZTogImlu
ZXJ0IGF0dHJpYnV0ZSIKKyAgaHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uOiAiRW5hYmxlIGluZXJ0
IGF0dHJpYnV0ZSBzdXBwb3J0IgorICBkZWZhdWx0VmFsdWU6CisgICAgV2ViS2l0TGVnYWN5Ogor
ICAgICAgZGVmYXVsdDogZmFsc2UKKyAgICBXZWJLaXQ6CisgICAgICBkZWZhdWx0OiBmYWxzZQor
ICAgIFdlYkNvcmU6CisgICAgICBkZWZhdWx0OiBmYWxzZQorCiAjIEZJWE1FOiBUaGlzIGlzIG9u
IGJ5IGRlZmF1bHQgaW4gV2ViS2l0Mi4gUGVyaGFwcyB3ZSBzaG91bGQgY29uc2lkZXIgdHVybmlu
ZyBpdCBvbiBmb3IgV2ViS2l0TGVnYWN5IGFzIHdlbGwuCiBJbnRlcnNlY3Rpb25PYnNlcnZlckVu
YWJsZWQ6CiAgIHR5cGU6IGJvb2wKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2Rl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAppbmRleCA3ZWUxMTI2NGM3NzI2ZjQ0
NDgyNGNmNGFkNzQ5YzgxMzg2M2NkOTRhLi5iNmVmNWIwNmNiZTFkYTU3MGU0MjdhNjcyYzE3MzA2
YzA4OTBmYjRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCkBAIC0yNjMyLDYgKzI2MzIsMTUgQEAgYm9vbCBO
b2RlOjppc0luZXJ0KCkgY29uc3QKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAor
ICAgIGlmIChkb2N1bWVudCgpLnNldHRpbmdzKCkuaW5lcnRBdHRyaWJ1dGVFbmFibGVkKCkpIHsK
KyAgICAgICAgY29uc3QgRWxlbWVudCogZWxlbWVudCA9IGlzPEVsZW1lbnQ+KHRoaXMpID8gZG93
bmNhc3Q8RWxlbWVudD4odGhpcykgOiBwYXJlbnRFbGVtZW50KCk7CisgICAgICAgIHdoaWxlIChl
bGVtZW50KSB7CisgICAgICAgICAgICBpZiAoaXM8SFRNTEVsZW1lbnQ+KGVsZW1lbnQpICYmIGVs
ZW1lbnQtPmhhc0F0dHJpYnV0ZShIVE1MTmFtZXM6OmluZXJ0QXR0cikpCisgICAgICAgICAgICAg
ICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICBlbGVtZW50ID0gZWxlbWVudC0+cGFyZW50RWxl
bWVudCgpOworICAgICAgICB9CisgICAgfQorCiAgICAgaWYgKCFkb2N1bWVudCgpLmZyYW1lKCkg
fHwgIWRvY3VtZW50KCkuZnJhbWUoKS0+b3duZXJFbGVtZW50KCkpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXR0cmlidXRlTmFt
ZXMuaW4gYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5pbgppbmRleCA0
ZmRjYjlkMzIxOGU3MmI4MWMzNDVkYjU3MWZlYmIxYmRkOWRjNjE0Li42MjZmZTQ5ZGYyZmZkNDc4
YzJmZTA0ZjQyMDdkYmQ0ZGZkN2M2OWJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxBdHRyaWJ1dGVOYW1lcy5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBdHRy
aWJ1dGVOYW1lcy5pbgpAQCAtMTU3LDYgKzE1Nyw3IEBAIGltYWdlc2l6ZXMKIGltYWdlc3Jjc2V0
CiBpbmNyZW1lbnRhbAogaW5kZXRlcm1pbmF0ZQoraW5lcnQKIGlucHV0bW9kZQogaW50ZWdyaXR5
CiBpcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5pZGwgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmlkbAppbmRleCAzNGUzOWMyN2UyYWFlODJk
NDMyNTk5YTFlYzIyNTg1YWRiYWE0MjcxLi5mZDFkYzIwMjk2M2ZiYTgxMzIyNDYxMDIzZWNhYTRk
ZGMxMDIyM2U5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50Lmlk
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmlkbApAQCAtNTUsNiArNTUs
OSBAQAogCiAgICAgLy8gTm9uLXN0YW5kYXJkOiBXZSBhcmUgdGhlIG9ubHkgYnJvd3NlciB0byBz
dXBwb3J0IHRoaXMgbm93IHRoYXQgQmxpbmsgZHJvcHBlZCBpdCAoaHR0cDovL2NyYnVnLmNvbS82
ODg5NDMpLgogICAgIFtDRVJlYWN0aW9ucywgUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyB3
ZWJraXRkcm9wem9uZTsKKworICAgIC8vIEV4cGVyaW1lbnRhbDogaHR0cHM6Ly9naXRodWIuY29t
L1dJQ0cvaW5lcnQvYmxvYi9tYXN0ZXIvUkVBRE1FLm1kCisgICAgW0NFUmVhY3Rpb25zLCBSZWZs
ZWN0LCBFbmFibGVkQnlTZXR0aW5nPUluZXJ0QXR0cmlidXRlXSBhdHRyaWJ1dGUgYm9vbGVhbiBp
bmVydDsKIH07CiAKIEhUTUxFbGVtZW50IGluY2x1ZGVzIEdsb2JhbEV2ZW50SGFuZGxlcnM7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCA2MGVmYWMwNzE5NGQwYTEyNzdlYWU3OWNi
MDQ0YzQyM2M5NWJmNDBkLi43ZWUyOTA0NzkzZGVlZTFkZTVmYzE0ZjllZDJiZTRhZDc1ZDg5ZWNi
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzOSBAQAorMjAyMS0w
OC0yMCAgVGltIE5ndXllbiAgPG50aW1AYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBp
bmVydCBhdHRyaWJ1dGUgYmVoaW5kIGZlYXR1cmUgZmxhZworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY1Mjc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wb3J0IGluZXJ0LyBXUFQgZGlyZWN0b3J5IHVz
aW5nIGBpbXBvcnQtdzNjLXRlc3RzIC10IHdlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydGAuCisgICAg
ICAgIFdQVCByZXZpc2lvbjogaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93
cHQvY29tbWl0L2YwMmUzOGQ3YTY3OTk5NjgzZDA1NTc5ZjYyYjMzOTQzMGM2MWU0ZWMKKworICAg
ICAgICAqIHJlc291cmNlcy9pbXBvcnQtZXhwZWN0YXRpb25zLmpzb246CisgICAgICAgICogcmVz
b3VyY2VzL3Jlc291cmNlLWZpbGVzLmpzb246CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L2luZXJ0L2ZyYW1lL2J1dHRvbi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvaW5lcnQvZnJhbWUvdzNjLWltcG9ydC5sb2c6IEFkZGVkLgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1kb2VzLW5vdC1tYXRjaC1kaXNhYmxlZC1zZWxlY3Rv
ci50ZW50YXRpdmUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvaW5lcnQvaW5lcnQtZG9lcy1ub3QtbWF0Y2gtZGlzYWJsZWQtc2VsZWN0b3IudGVudGF0
aXZlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVy
dC1pbi1zaGFkb3ctZG9tLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1pbi1zaGFkb3ctZG9tLnRlbnRhdGl2ZS5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtaW5s
aW5lcy50ZW50YXRpdmUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvaW5lcnQvaW5lcnQtaW5saW5lcy50ZW50YXRpdmUuaHRtbDogQWRkZWQuCisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LWxhYmVsLWZvY3VzLnRlbnRhdGl2
ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9pbmVy
dC9pbmVydC1sYWJlbC1mb2N1cy50ZW50YXRpdmUuaHRtbDogQWRkZWQuCisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LW5vZGUtaXMtdW5lZGl0YWJsZS50ZW50YXRpdmUt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQv
aW5lcnQtbm9kZS1pcy11bmVkaXRhYmxlLnRlbnRhdGl2ZS5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtbm9kZS1pcy11bmZvY3VzYWJsZS50ZW50
YXRpdmUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
aW5lcnQvaW5lcnQtbm9kZS1pcy11bmZvY3VzYWJsZS50ZW50YXRpdmUuaHRtbDogQWRkZWQuCisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LW5vZGUtaXMtdW5zZWxlY3Rh
YmxlLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9pbmVydC9pbmVydC1ub2RlLWlzLXVuc2VsZWN0YWJsZS50ZW50YXRpdmUuaHRtbDog
QWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LW9uLXNsb3Rz
LnRlbnRhdGl2ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10
ZXN0cy9pbmVydC9pbmVydC1vbi1zbG90cy50ZW50YXRpdmUuaHRtbDogQWRkZWQuCisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LXJldGFyZ2V0aW5nLWlmcmFtZS50ZW50
YXRpdmUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
aW5lcnQvaW5lcnQtcmV0YXJnZXRpbmctaWZyYW1lLnRlbnRhdGl2ZS5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtcmV0YXJnZXRpbmcudGVudGF0
aXZlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2lu
ZXJ0L2luZXJ0LXJldGFyZ2V0aW5nLnRlbnRhdGl2ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvdzNjLWltcG9ydC5sb2c6IEFkZGVkLgorCiAyMDIxLTA4
LTIwICBUaW0gTmd1eWVuICA8bnRpbUBhcHBsZS5jb20+CiAKICAgICAgICAgSW5pdGlhbCBpbXBs
ZW1lbnRhdGlvbiBvZiBpbmVydCBzdWJ0cmVlcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3Jlc291cmNlcy9pbXBvcnQtZXhwZWN0YXRpb25zLmpzb24gYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvcmVzb3VyY2VzL2ltcG9ydC1leHBlY3RhdGlvbnMuanNvbgppbmRleCA1
NzNhMDZjMGQ5Mjg4MDAyNDkyYzdhYmI3NDM3NTEzMDgzNzdlYjQzLi5mODkyYjdjMmRjYTMyNTBl
M2QyYTdiZDU3ZjI4NmMyZWJjNGJjNjU2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvcmVzb3VyY2VzL2ltcG9ydC1leHBlY3RhdGlvbnMuanNvbgorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvcmVzb3VyY2VzL2ltcG9ydC1leHBlY3RhdGlvbnMuanNvbgpAQCAtMzM0
LDYgKzMzNCw3IEBACiAgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9pbWFnZS1kZWNvZGVzIjogInNr
aXAiLCAKICAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2ltYWdlYml0bWFwLXJlbmRlcmluZ2NvbnRl
eHQiOiAiaW1wb3J0IiwgCiAgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9pbWFnZXMiOiAiaW1wb3J0
IiwgCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydCI6ICJpbXBvcnQiLCAKICAgICAid2Vi
LXBsYXRmb3JtLXRlc3RzL2luZnJhc3RydWN0dXJlIjogImltcG9ydCIsIAogICAgICJ3ZWItcGxh
dGZvcm0tdGVzdHMvaW5uZXJUZXh0IjogImltcG9ydCIsIAogICAgICJ3ZWItcGxhdGZvcm0tdGVz
dHMvaW5wdXQtZXZlbnRzIjogInNraXAiLCAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9yZXNvdXJjZXMvcmVzb3VyY2UtZmlsZXMuanNvbiBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9yZXNvdXJjZXMvcmVzb3VyY2UtZmlsZXMuanNvbgppbmRleCA4ZjY3NDA1M2IyNGE3
OGIxOTU0OTkwY2U2NmZkYWI0OTFhMTU4ZjliLi5iMTc4ZTBhZDIwODU0Zjc3Yzg1MjQzYjE4ODJk
OWM0MDE2ZDRhMWQ5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvcmVzb3Vy
Y2VzL3Jlc291cmNlLWZpbGVzLmpzb24KKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3Jl
c291cmNlcy9yZXNvdXJjZS1maWxlcy5qc29uCkBAIC0yNzcyLDYgKzI3NzIsNyBAQAogICAgICAg
ICAid2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvd2ViYXBwYXBpcy9zY3JpcHRpbmcvZXZlbnRzL29u
ZXJyb3JldmVudGhhbmRsZXItZnJhbWUuaHRtbCIsCiAgICAgICAgICJ3ZWItcGxhdGZvcm0tdGVz
dHMvaHRtbC93ZWJhcHBhcGlzL3VzZXItcHJvbXB0cy9jYW5ub3Qtc2hvdy1zaW1wbGUtZGlhbG9n
cy9zdXBwb3J0L2NvbmZpcm0uaHRtbCIsCiAgICAgICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC93ZWJhcHBhcGlzL3VzZXItcHJvbXB0cy9jYW5ub3Qtc2hvdy1zaW1wbGUtZGlhbG9ncy9zdXBw
b3J0L3Byb21wdC5odG1sIiwKKyAgICAgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9mcmFt
ZS9idXR0b24uaHRtbCIsCiAgICAgICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaW5mcmFzdHJ1Y3R1
cmUvYXNzdW1wdGlvbnMvYWhlbS1ub3RyZWYuaHRtbCIsCiAgICAgICAgICJ3ZWItcGxhdGZvcm0t
dGVzdHMvaW5mcmFzdHJ1Y3R1cmUvcmVmdGVzdC9yZWQuaHRtbCIsCiAgICAgICAgICJ3ZWItcGxh
dGZvcm0tdGVzdHMvaW50ZXJzZWN0aW9uLW9ic2VydmVyL29ic2VydmVyLWluLWlmcmFtZS5odG1s
IiwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvaW5lcnQvZnJhbWUvYnV0dG9uLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2luZXJ0L2ZyYW1lL2J1dHRvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU4Njdj
NzU4MTQyYzY2NTIzNjJhMjNmMTk1MzNhOGQ4NmZlMjk2NDgKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2ZyYW1lL2J1
dHRvbi5odG1sCkBAIC0wLDAgKzEsMzYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVh
ZD4KKzxzdHlsZT4KK2JvZHkgeworICBvdmVyZmxvdzogaGlkZGVuOworfQorCitidXR0b24jYmFj
a2dyb3VuZCB7CisgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgdG9wOiAwOworICBsZWZ0OiAwOwor
ICB3aWR0aDogMTUwcHg7CisgIGhlaWdodDogNDBweDsKKyAgbGluZS1oZWlnaHQ6IDUzcHg7Cit9
CisKK2J1dHRvbi5jbGlja2VkIHsKKyAgYmFja2dyb3VuZC1jb2xvcjogcmVkOworfQorCitidXR0
b24uY2xpY2tlZDo6YWZ0ZXIgeworICBjb250ZW50OiAiIChjbGlja2VkKSI7Cit9CisKKzwvc3R5
bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgPGJ1dHRvbiBpZD0iYmFja2dyb3VuZCI+YmFja2dyb3Vu
ZDwvYnV0dG9uPgorPHNjcmlwdD4KK2RvY3VtZW50LmJvZHkuYWRkRXZlbnRMaXN0ZW5lcignY2xp
Y2snLCAoZSkgPT4geworICBlLnRhcmdldC5jbGFzc0xpc3QuYWRkKCdjbGlja2VkJyk7Cit9KTsK
Kzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9mcmFtZS93M2MtaW1wb3J0LmxvZyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvZnJhbWUv
dzNjLWltcG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTQ1MWIwOGI3YjNiMmExMjYzY2YwYjAyZTc4OGUw
NzQxYzAwMjBhNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvZnJhbWUvdzNjLWltcG9ydC5sb2cKQEAgLTAsMCArMSwx
NyBAQAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUg
VzNDIHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdl
YktpdC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoK
KwlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAorCitUaGVuIHJ1biB0
aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAor
CitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor
UHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVydHkgdmFs
dWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xp
c3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9pbmVydC9mcmFtZS9idXR0b24uaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1kb2VzLW5vdC1tYXRjaC1kaXNh
YmxlZC1zZWxlY3Rvci50ZW50YXRpdmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1kb2VzLW5vdC1tYXRjaC1kaXNh
YmxlZC1zZWxlY3Rvci50ZW50YXRpdmUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE5ZDYzOWUx
OGI3OGNkYzE1ZTM2YzhhMzhiMTAwY2U0MTQxMjFiN2MKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LWRvZXMt
bm90LW1hdGNoLWRpc2FibGVkLXNlbGVjdG9yLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSw0IEBACitUaGUgdGVzdCBwYXNzZXMgaWYgdGhpcyBpcyBpbiBncmVlbi4KKworUEFTUyBU
ZXN0cyB0aGF0IGluZXJ0IGVsZW1lbnRzIGRvIG5vdCBtYXRjaCB0aGUgOmRpc2FibGVkIHNlbGVj
dG9yLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2luZXJ0L2luZXJ0LWRvZXMtbm90LW1hdGNoLWRpc2FibGVkLXNlbGVjdG9yLnRlbnRh
dGl2ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9p
bmVydC9pbmVydC1kb2VzLW5vdC1tYXRjaC1kaXNhYmxlZC1zZWxlY3Rvci50ZW50YXRpdmUuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi43NGI4YWMzZjdkZDVjMzQ0N2JmNDdmZDczMmZhZGU5MjIwNDk3YzkzCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9pbmVydC9pbmVydC1kb2VzLW5vdC1tYXRjaC1kaXNhYmxlZC1zZWxlY3Rvci50ZW50YXRp
dmUuaHRtbApAQCAtMCwwICsxLDI3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+
Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c3R5
bGU+CitidXR0b24geworICAgIGNvbG9yOiBncmVlbjsKK30KKworYnV0dG9uOmRpc2FibGVkIHsK
KyAgICBjb2xvcjogcmVkOworfQorCis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHkgc3R5bGU9ImNv
bG9yOiBncmVlbiI+Cis8YnV0dG9uIGluZXJ0PlRoZSB0ZXN0IHBhc3NlcyBpZiB0aGlzIGlzIGlu
IGdyZWVuLjwvYnV0dG9uPgorPHNjcmlwdD4KK3Rlc3QoZnVuY3Rpb24oKSB7CisgICAgYnV0dG9u
ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignYnV0dG9uJyk7CisgICAgY29sb3IgPSBkb2N1bWVu
dC5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlKGJ1dHRvbikuZ2V0UHJvcGVydHlWYWx1ZSgn
Y29sb3InKTsKKyAgICBhc3NlcnRfZmFsc2UoYnV0dG9uLm1hdGNoZXMoJzpkaXNhYmxlZCcpKTsK
K30sICdUZXN0cyB0aGF0IGluZXJ0IGVsZW1lbnRzIGRvIG5vdCBtYXRjaCB0aGUgOmRpc2FibGVk
IHNlbGVjdG9yLicpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LWlu
LXNoYWRvdy1kb20udGVudGF0aXZlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtaW4tc2hhZG93LWRvbS50ZW50YXRp
dmUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNhMjViNzUxZDBjODE2ZTExOGZhZTE0ZGIxODc5
MmExNWIyOTVlODMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LWluLXNoYWRvdy1kb20udGVudGF0aXZlLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK0J1dHRvbnMgMSBhbmQgMiBzaG91bGQgYmUgaW5l
cnQuCitCdXR0b24gMSAoaW5lcnQpCisKK0ZBSUwgaW5lcnQgb24gU2hhZG93IGhvc3QgYWZmZWN0
cyBjb250ZW50IGluIHNoYWRvdyBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCBmYWxzZSBidXQgZ290
IHRydWUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9pbmVydC9pbmVydC1pbi1zaGFkb3ctZG9tLnRlbnRhdGl2ZS5odG1sIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1pbi1zaGFk
b3ctZG9tLnRlbnRhdGl2ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVjODI1ZGJmZGM5ODU0NThjYzczOTNk
NThiMmVmYzJjZTA3OTYzNjQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LWluLXNoYWRvdy1kb20udGVudGF0
aXZlLmh0bWwKQEAgLTAsMCArMSw1NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFk
PgorICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04IiAvPgorICAgIDx0aXRsZT5pbmVydCBvbiBTaGFk
b3cgaG9zdCBhZmZlY3RzIGNvbnRlbnQgaW4gc2hhZG93PC90aXRsZT4KKyAgICA8bGluayByZWw9
ImF1dGhvciIgdGl0bGU9IkFsaWNlIEJveGhhbGwiIGhyZWY9ImFib3hoYWxsQGNocm9taXVtLm9y
ZyI+CisgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0
PgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5PgorICA8ZGl2PkJ1dHRvbnMgMSBhbmQgMiBzaG91bGQgYmUg
aW5lcnQuPC9kaXY+CisgIDxkaXYgaWQ9InNoYWRvdy1ob3N0IiBpbmVydD4KKyAgICA8YnV0dG9u
IGlkPSJidXR0b24tMSI+QnV0dG9uIDEgKGluZXJ0KTwvYnV0dG9uPgorICA8L2Rpdj4KKyAgPHNj
cmlwdD4KKyAgICAvKgorICAgIEV2ZW50dWFsIGZsYXR0ZW5lZCB0cmVlIHN0cnVjdHVyZToKKwor
ICAgIDxkaXYgaWQ9InNoYWRvdy1ob3N0IiBpbmVydD4KKyAgICAgICNzaGFkb3ctcm9vdCAob3Bl
bikKKyAgICAgIHwgPHNsb3Q+CisgICAgICA6ICAgPGJ1dHRvbiBpZD0iYnV0dG9uLTEiPkJ1dHRv
biAxIChpbmVydCk8L2J1dHRvbj4gPCEtLSBzbG90dGVkIC0tPgorICAgICAgfCA8L3Nsb3Q+Cisg
ICAgICB8IDxidXR0b24gaWQ9ImJ1dHRvbi0yIj5CdXR0b24gMiAoaW5lcnQpPC9idXR0b24+ICAg
PCEtLSBpbiBzaGFkb3cgLS0+CisgICAgPC9kaXY+CisgICAgKi8KKworICAgIGNvbnN0IHNoYWRv
d0hvc3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2hhZG93LWhvc3QiKTsKKyAgICBjb25z
dCBzaGFkb3dSb290ID0gc2hhZG93SG9zdC5hdHRhY2hTaGFkb3coeyBtb2RlOiAib3BlbiIgfSk7
CisKKyAgICAvLyBCdXR0b24gMSB3aWxsIGJlIHNsb3R0ZWQKKyAgICBjb25zdCBzbG90ID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgic2xvdCIpOworICAgIHNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQo
c2xvdCk7CisKKyAgICBjb25zdCBidXR0b24yID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYnV0
dG9uIik7CisgICAgYnV0dG9uMi5pZCA9ICJidXR0b24tMiI7CisgICAgYnV0dG9uMi50ZXh0Q29u
dGVudCA9ICJCdXR0b24gMiAoaW5lcnQpIjsKKyAgICBzaGFkb3dSb290LmFwcGVuZENoaWxkKGJ1
dHRvbjIpOworCisgICAgZnVuY3Rpb24gdGVzdENhbkZvY3VzKHNlbGVjdG9yLCBjYW5Gb2N1cywg
b3B0X2NvbnRleHQpIHsKKyAgICAgIGxldCBjb250ZXh0ID0gb3B0X2NvbnRleHQgfHwgZG9jdW1l
bnQ7CisgICAgICBjb25zdCBlbGVtZW50ID0gY29udGV4dC5xdWVyeVNlbGVjdG9yKHNlbGVjdG9y
KTsKKyAgICAgIGxldCBmb2N1c2VkRWxlbWVudCA9IG51bGw7CisgICAgICBlbGVtZW50LmFkZEV2
ZW50TGlzdGVuZXIoImZvY3VzIiwgZnVuY3Rpb24oKSB7IGZvY3VzZWRFbGVtZW50ID0gZWxlbWVu
dDsgfSwgZmFsc2UpOworICAgICAgZWxlbWVudC5mb2N1cygpOworICAgICAgYXNzZXJ0X2VxdWFs
cygoZm9jdXNlZEVsZW1lbnQgPT09IGVsZW1lbnQpLCBjYW5Gb2N1cyk7CisgICAgfQorCisgICAg
dGVzdCgoKSA9PiB7CisgICAgICB0ZXN0Q2FuRm9jdXMoIiNidXR0b24tMSIsIGZhbHNlKTsKKyAg
ICAgIHRlc3RDYW5Gb2N1cygiI2J1dHRvbi0yIiwgZmFsc2UsIHNoYWRvd1Jvb3QpOworICAgIH0s
ICJpbmVydCBvbiBTaGFkb3cgaG9zdCBhZmZlY3RzIGNvbnRlbnQgaW4gc2hhZG93Iik7CisgIDwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1pbmxpbmVzLnRlbnRhdGl2ZS1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2luZXJ0L2luZXJ0LWlubGluZXMudGVudGF0aXZlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4z
Y2Q3MDZjOTIwNmNiYzVhNjA2MThhYTM3MjM4NmMxMDNkYzE4MTQ1Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVy
dC1pbmxpbmVzLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACitDbGljayBt
ZSBDbGljayBtZQorQ2xpY2sgbWUKK0NsaWNrIG1lCisKK0ZBSUwgVGVzdHMgdGhhdCBpbmVydCBp
bmxpbmVzIGRvIG5vdCByZWNlaXZlIG1vdXNlIGV2ZW50cy4gVG8gdGVzdCBtYW51YWxseSwgY2xp
Y2sgb24gYWxsIHRoZSAiQ2xpY2sgbWUicy4gVGhlIHRlc3QgZmFpbHMgaWYgeW91IHNlZSByZWQu
IGFzc2VydF9mYWxzZTogbm8gZXZlbnQgc2hvdWxkIGJlIGZpcmVkIG9uIGEgZXhwZWN0ZWQgZmFs
c2UgZ290IHRydWUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1pbmxpbmVzLnRlbnRhdGl2ZS5odG1sIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1pbmxpbmVz
LnRlbnRhdGl2ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIwNTZjNjQ5NWQyYzU0NzMzYmVlNmFiNzk2MzMy
YmE4OWYwMWIzNzkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LWlubGluZXMudGVudGF0aXZlLmh0bWwKQEAg
LTAsMCArMSw1NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAgPGhlYWQ+CisgICAgPG1l
dGEgY2hhcnNldD0idXRmLTgiIC8+CisgICAgPHRpdGxlPmluZXJ0IGlubGluZXM8L3RpdGxlPgor
ICAgIDxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iQWxpY2UgQm94aGFsbCIgaHJlZj0iYWJveGhh
bGxAY2hyb21pdW0ub3JnIj4KKyAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVz
cy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3Ny
ZXBvcnQuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Rkcml2
ZXIuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Rkcml2ZXIt
dmVuZG9yLmpzIj48L3NjcmlwdD4KKyAgPC9oZWFkPgorPGJvZHk+Cis8YSBpbmVydCBpZD0iYSIg
aHJlZj0iamF2YXNjcmlwdDp2b2lkKDApIj5DbGljayBtZTwvYT4KKzxidXR0b24gaW5lcnQgaWQ9
ImJ1dHRvbiI+Q2xpY2sgbWU8L2J1dHRvbj4KKzxkaXYgaW5lcnQgaWQ9ImRpdiIgc3R5bGU9ImJh
Y2tncm91bmQtY29sb3I6IGJsdWU7IHdpZHRoOiA1MHB4OyBoZWlnaHQ6IDUwcHgiPkNsaWNrIG1l
PC9kaXY+Cis8c3BhbiBpbmVydCBpZD0ic3BhbiI+Q2xpY2sgbWU8L3NwYW4+Cis8c2NyaXB0Pgor
ZnVuY3Rpb24gZXZlbnRGaXJlZE9uSW5lcnRFbGVtZW50KGUpIHsKKyAgICBlLnRhcmdldC5zdHls
ZS5iYWNrZ3JvdW5kID0gJ3JlZCc7CisgICAgaW5lcnRFbGVtZW50RmlyZWRPbiA9IHRydWU7Cit9
CisKK2luZXJ0RWxlbWVudHMgPSBbJ2EnLCAnYnV0dG9uJywgJ2RpdicsICdzcGFuJ10KK2luZXJ0
RWxlbWVudHMuZm9yRWFjaChmdW5jdGlvbihpZCkgeworICAgIGVsZW1lbnQgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZChpZCk7CisgICAgZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycs
IGV2ZW50RmlyZWRPbkluZXJ0RWxlbWVudCk7CisgICAgZWxlbWVudC5hZGRFdmVudExpc3RlbmVy
KCdtb3VzZW1vdmUnLCBldmVudEZpcmVkT25JbmVydEVsZW1lbnQpOworfSk7CisKK2RvY3VtZW50
LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oZSkgeworICAgIGRvY3VtZW50LmZp
cmVkT24gPSB0cnVlOworfSk7CisKK3Byb21pc2VfdGVzdChhc3luYyAoKSA9PiB7CisgICAgZm9y
IChsZXQgaWQgb2YgaW5lcnRFbGVtZW50cykgeworICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKGlkKTsKKyAgICAgICAgaW5lcnRFbGVtZW50RmlyZWRPbiA9IGZh
bHNlOworICAgICAgICBkb2N1bWVudC5maXJlZE9uID0gZmFsc2U7CisgICAgICAgIHRyeSB7Cisg
ICAgICAgICAgYXdhaXQgdGVzdF9kcml2ZXIuY2xpY2soZWxlbWVudCk7CisgICAgICAgICAgYXNz
ZXJ0X2ZhbHNlKGluZXJ0RWxlbWVudEZpcmVkT24sICdubyBldmVudCBzaG91bGQgYmUgZmlyZWQg
b24gJyArIGlkKTsKKyAgICAgICAgICBhc3NlcnRfdHJ1ZShkb2N1bWVudC5maXJlZE9uLCAnZXZl
bnQgc2hvdWxkIGJlIGZpcmVkIG9uIGRvY3VtZW50IGluc3RlYWQgb2YgJyArIGlkKTsKKyAgICAg
ICAgfSBjYXRjaCAoZSkgeworICAgICAgICAgIC8vIHRlc3QgZHJpdmVyIGRldGVjdHMgaW5lcnQg
ZWxlbWVudHMgYXMgdW5jbGlja2FibGUKKyAgICAgICAgICAvLyBhbmQgdGhyb3dzIGFuIGVycm9y
CisgICAgICAgICAgYXNzZXJ0X2ZhbHNlKGluZXJ0RWxlbWVudEZpcmVkT24sICdubyBldmVudCBz
aG91bGQgYmUgZmlyZWQgb24gJyArIGlkKTsKKyAgICAgICAgfQorICAgIH0KK30sICdUZXN0cyB0
aGF0IGluZXJ0IGlubGluZXMgZG8gbm90IHJlY2VpdmUgbW91c2UgZXZlbnRzLiAnICsKKyAgICdU
byB0ZXN0IG1hbnVhbGx5LCBjbGljayBvbiBhbGwgdGhlICJDbGljayBtZSJzLiBUaGUgdGVzdCAn
ICsKKyAgICdmYWlscyBpZiB5b3Ugc2VlIHJlZC4nKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2luZXJ0L2luZXJ0LWxhYmVsLWZvY3VzLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LWxh
YmVsLWZvY3VzLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWQ1YWIwZWE0ZmE0
NDc1NDUyNDk3YTBhNmU5ZTNhZWYyOTNhMzE4YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtbGFiZWwtZm9j
dXMudGVudGF0aXZlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDcgQEAKK0xhYmVsIGZvciBTdWJt
aXQgICAgIExhYmVsIGZvciBpbnB1dCBpbiBpbmVydCBzdWJ0cmVlCisKKworUEFTUyBDYWxsaW5n
IGZvY3VzKCkgb24gYW4gaW5lcnQgbGFiZWwgc2hvdWxkIHN0aWxsIHNlbmQgZm9jdXMgdG8gaXRz
IHRhcmdldC4KK1BBU1MgQ2xpY2tpbmcgb24gYW4gaW5lcnQgbGFiZWwgc2hvdWxkIHNlbmQgZm9j
dXMgdG8gZG9jdW1lbnQuYm9keS4KK1BBU1MgQ2FsbGluZyBmb2N1cygpIG9uIGEgbGFiZWwgZm9y
IGEgY29udHJvbCB3aGljaCBpcyBpbiBhbiBpbmVydCBzdWJ0cmVlIHNob3VsZCBoYXZlIG5vIGVm
ZmVjdC4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9pbmVydC9pbmVydC1sYWJlbC1mb2N1cy50ZW50YXRpdmUuaHRtbCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtbGFiZWwtZm9j
dXMudGVudGF0aXZlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGJiZTFlY2ExNWM3ZDhmMmY5ZmQ1ZWE0OGMz
M2NkMGE1ZDUwOThlMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtbGFiZWwtZm9jdXMudGVudGF0aXZlLmh0
bWwKQEAgLTAsMCArMSw1MyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAgPGhlYWQ+Cisg
ICAgPG1ldGEgY2hhcnNldD0idXRmLTgiIC8+CisgICAgPHRpdGxlPmluZXJ0IHdpdGggbGFiZWwv
Zm9yPC90aXRsZT4KKyAgICA8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkFsaWNlIEJveGhhbGwi
IGhyZWY9ImFib3hoYWxsQGNocm9taXVtLm9yZyI+CisgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iL3Jlc291
cmNlcy90ZXN0ZHJpdmVyLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNl
cy90ZXN0ZHJpdmVyLXZlbmRvci5qcyI+PC9zY3JpcHQ+CisgIDwvaGVhZD4KKyAgPGJvZHk+Cisg
ICAgPGxhYmVsIGluZXJ0IGlkPSJmb3Itc3VibWl0IiBmb3I9InN1Ym1pdCI+TGFiZWwgZm9yIFN1
Ym1pdDwvbGFiZWw+CisgICAgPGlucHV0IGlkPSJ0ZXh0IiB0eXBlPSJ0ZXh0Ij4KKyAgICA8aW5w
dXQgaWQ9InN1Ym1pdCIgdHlwZT0ic3VibWl0Ij4KKworICAgIDxsYWJlbCBpZD0iZm9yLWlucHV0
LWluLWluZXJ0LXN1YnRyZWUiCisgICAgICAgICAgIGZvcj0iaW5wdXQtaW4taW5lcnQtc3VidHJl
ZSI+TGFiZWwgZm9yIGlucHV0IGluIGluZXJ0IHN1YnRyZWU8L2xhYmVsPgorICAgIDxkaXYgaW5l
cnQ+CisgICAgICA8aW5wdXQgaWQ9ImlucHV0LWluLWluZXJ0LXN1YnRyZWUiPjwvaW5wdXQ+Cisg
ICAgPC9kaXY+CisKKyAgICA8c2NyaXB0PgorICAgICAgdGVzdCgoKSA9PiB7CisgICAgICAgIGxh
YmVsID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI2Zvci1zdWJtaXQnKTsKKyAgICAgICAgbGFi
ZWwuZm9jdXMoKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhkb2N1bWVudC5hY3RpdmVFbGVtZW50
LCBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjc3VibWl0JykpOworICAgICAgfSwgJ0NhbGxpbmcg
Zm9jdXMoKSBvbiBhbiBpbmVydCBsYWJlbCBzaG91bGQgc3RpbGwgc2VuZCBmb2N1cyB0byBpdHMg
dGFyZ2V0LicpOworCisgICAgICBwcm9taXNlX3Rlc3QoYXN5bmMgKCkgPT4geworICAgICAgICB0
ZXh0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3RleHQnKTsKKyAgICAgICAgdGV4dC5mb2N1
cygpOworICAgICAgICBsYWJlbCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNmb3Itc3VibWl0
Jyk7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgYXdhaXQgdGVzdF9kcml2ZXIuY2xpY2sobGFi
ZWwpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCwgZG9j
dW1lbnQuYm9keSk7CisgICAgICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgICAvLyB0ZXN0IGRy
aXZlciBkZXRlY3RzIGluZXJ0IGVsZW1lbnRzIGFzIHVuY2xpY2thYmxlCisgICAgICAgICAgLy8g
YW5kIHRocm93cyBhbiBlcnJvcgorICAgICAgICB9CisgICAgICB9LCAnQ2xpY2tpbmcgb24gYW4g
aW5lcnQgbGFiZWwgc2hvdWxkIHNlbmQgZm9jdXMgdG8gZG9jdW1lbnQuYm9keS4nKTsKKworICAg
ICAgdGVzdCgoKSA9PiB7CisgICAgICAgIHRleHQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcj
dGV4dCcpOworICAgICAgICB0ZXh0LmZvY3VzKCk7CisKKyAgICAgICAgbGFiZWwgPSBkb2N1bWVu
dC5xdWVyeVNlbGVjdG9yKCcjZm9yLWlucHV0LWluLWluZXJ0LXN1YnRyZWUnKTsKKyAgICAgICAg
bGFiZWwuZm9jdXMoKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhkb2N1bWVudC5hY3RpdmVFbGVt
ZW50LCB0ZXh0KTsKKyAgICAgIH0sICdDYWxsaW5nIGZvY3VzKCkgb24gYSBsYWJlbCBmb3IgYSBj
b250cm9sIHdoaWNoIGlzIGluIGFuIGluZXJ0IHN1YnRyZWUgJyArCisgICAgICAgICAnc2hvdWxk
IGhhdmUgbm8gZWZmZWN0LicpOworPC9zY3JpcHQ+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LW5vZGUt
aXMtdW5lZGl0YWJsZS50ZW50YXRpdmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1ub2RlLWlzLXVuZWRpdGFibGUu
dGVudGF0aXZlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNDBhNTlkNjUxYjUyODFiZDUxMTA4
ZjVkZjMxYWQ0ODcwN2IyZjk4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1ub2RlLWlzLXVuZWRpdGFibGUu
dGVudGF0aXZlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK0knbSBub3QgZWRpdGFibGUu
IGFJJ20gZWRpdGFibGUuCisKK1BBU1MgQ2FuJ3QgZWRpdCBpbmVydCBjb250ZW50ZWRpdGFibGUK
K1BBU1MgQ2FuIGVkaXQgbm9uLWluZXJ0IGNvbnRlbnRlZGl0YWJsZQorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LW5v
ZGUtaXMtdW5lZGl0YWJsZS50ZW50YXRpdmUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtbm9kZS1pcy11bmVkaXRhYmxlLnRlbnRh
dGl2ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZkYTIzNzlmYWQ0Mjk3MmQ0ODM5MTI5YzhkYjBiZWQ3YmJk
MmFkZWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LW5vZGUtaXMtdW5lZGl0YWJsZS50ZW50YXRpdmUuaHRt
bApAQCAtMCwwICsxLDM3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorICA8aGVhZD4KKyAg
ICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCIgLz4KKyAgICA8dGl0bGU+aW5lcnQgbm9kZXMgYXJlIHVu
ZWRpdGFibGU8L3RpdGxlPgorICAgIDxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iQWxpY2UgQm94
aGFsbCIgaHJlZj0iYWJveGhhbGxAY2hyb21pdW0ub3JnIj4KKyAgICA8c2NyaXB0IHNyYz0iL3Jl
c291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9yZXNv
dXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIv
cmVzb3VyY2VzL3Rlc3Rkcml2ZXIuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvcmVz
b3VyY2VzL3Rlc3Rkcml2ZXItdmVuZG9yLmpzIj48L3NjcmlwdD4KKyAgPC9oZWFkPgorPGJvZHk+
Cis8c3BhbiBpbmVydCBpZD0ibm90LWVkaXRhYmxlIiBjb250ZW50ZWRpdGFibGU+SSdtIG5vdCBl
ZGl0YWJsZS48L3NwYW4+Cis8c3BhbiBpZD0iZWRpdGFibGUiIGNvbnRlbnRlZGl0YWJsZT5JJ20g
ZWRpdGFibGUuPC9zcGFuPgorPHNjcmlwdD4KK3ZhciBub3RFZGl0YWJsZSA9IGRvY3VtZW50LnF1
ZXJ5U2VsZWN0b3IoJyNub3QtZWRpdGFibGUnKTsKK3ZhciBlZGl0YWJsZSA9IGRvY3VtZW50LnF1
ZXJ5U2VsZWN0b3IoJyNlZGl0YWJsZScpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgKCkgPT4gewor
ICAgIG5vdEVkaXRhYmxlLmZvY3VzKCk7CisgICAgdmFyIG9sZFZhbHVlID0gbm90RWRpdGFibGUu
dGV4dENvbnRlbnQ7CisgICAgYXNzZXJ0X2VxdWFscyhvbGRWYWx1ZSwgIkknbSBub3QgZWRpdGFi
bGUuIik7CisgICAgYXdhaXQgdGVzdF9kcml2ZXIuc2VuZF9rZXlzKGRvY3VtZW50LmJvZHksICdh
Jyk7CisgICAgYXNzZXJ0X2VxdWFscyhub3RFZGl0YWJsZS50ZXh0Q29udGVudCwgb2xkVmFsdWUp
OworfSwgIkNhbid0IGVkaXQgaW5lcnQgY29udGVudGVkaXRhYmxlIik7CisKK3Byb21pc2VfdGVz
dChhc3luYyAoKSA9PiB7CisgICAgZWRpdGFibGUuZm9jdXMoKTsKKyAgICB2YXIgb2xkVmFsdWUg
PSBlZGl0YWJsZS50ZXh0Q29udGVudDsKKyAgICBhc3NlcnRfZXF1YWxzKG9sZFZhbHVlLCAiSSdt
IGVkaXRhYmxlLiIpOworICAgIGF3YWl0IHRlc3RfZHJpdmVyLnNlbmRfa2V5cyhkb2N1bWVudC5i
b2R5LCAnYScpOworICAgIGFzc2VydF9ub3RfZXF1YWxzKGVkaXRhYmxlLnRleHRDb250ZW50LCBv
bGRWYWx1ZSk7Cit9LCAiQ2FuIGVkaXQgbm9uLWluZXJ0IGNvbnRlbnRlZGl0YWJsZSIpOworCis8
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtbm9kZS1pcy11bmZvY3VzYWJs
ZS50ZW50YXRpdmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1ub2RlLWlzLXVuZm9jdXNhYmxlLnRlbnRhdGl2ZS1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTZhZWE4YmI1NTU3ZDc2OGNhNWVlMGNjYWM3ZDkyZGY4
YmY1Nzc5ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtbm9kZS1pcy11bmZvY3VzYWJsZS50ZW50YXRpdmUt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTMgQEAKK091dHNpZGUgb2YgaW5lcnQgY29udGFpbmVy
ICBJbmVydCBidXR0b24KKworSSdtIGVkaXRhYmxlCitJJ20gdGFiaW5kZXhlZC4KKyBMaW5rCisK
K1BBU1MgQnV0dG9uIG91dHNpZGUgb2YgaW5lcnQgY29udGFpbmVyIGlzIGZvY3VzYWJsZS4KK1BB
U1MgQnV0dG9uIHdpdGggaW5lcnQgYXRyaWJ1dGUgaXMgdW5mb2N1c2FibGUuCitQQVNTIEFsbCBm
b2N1c2FibGUgZWxlbWVudHMgaW5zaWRlIGluZXJ0IHN1YnRyZWUgYXJlIHVuZm9jdXNhYmxlCitQ
QVNTIENhbiBnZXQgaW5lcnQgdmlhIHByb3BlcnR5CitQQVNTIEVsZW1lbnRzIGluc2lkZSBvZiBp
bmVydCBzdWJ0cmVlcyByZXR1cm4gZmFsc2Ugd2hlbiBnZXR0aW5nICdpbmVydCcKK1BBU1MgU2V0
dGluZyBpbmVydCB2aWEgcHJvcGVydHkgY29ycmVjdGx5IG1vZGlmaWVzIGluZXJ0IHN0YXRlCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aW5lcnQvaW5lcnQtbm9kZS1pcy11bmZvY3VzYWJsZS50ZW50YXRpdmUuaHRtbCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtbm9kZS1pcy11
bmZvY3VzYWJsZS50ZW50YXRpdmUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YjVkZTM3ZmRjYWRlZGI5ZDk4
ZWM0NGM5YzNjMjBhZWE1MmEwNDAwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1ub2RlLWlzLXVuZm9jdXNh
YmxlLnRlbnRhdGl2ZS5odG1sCkBAIC0wLDAgKzEsNzkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0
bWw+CisgIDxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04IiAvPgorICAgIDx0aXRsZT5p
bmVydCBub2RlcyBhcmUgdW5mb2N1c2FibGU8L3RpdGxlPgorICAgIDxsaW5rIHJlbD0iYXV0aG9y
IiB0aXRsZT0iQWxpY2UgQm94aGFsbCIgaHJlZj0iYWJveGhhbGxAY2hyb21pdW0ub3JnIj4KKyAg
ICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAg
PHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0Pgor
ICA8L2hlYWQ+Cis8Ym9keSBpZD0iYm9keSIgdGFiaW5kZXg9IjEiPgorICA8YnV0dG9uIGlkPSJm
b2N1c2FibGUiPk91dHNpZGUgb2YgaW5lcnQgY29udGFpbmVyPC9idXR0b24+CisgIDxidXR0b24g
aW5lcnQgaWQ9ImluZXJ0Ij5JbmVydCBidXR0b248L2J1dHRvbj4KKyAgPGRpdiBpbmVydCBpZD0i
Y29udGFpbmVyIj4KKyAgICA8aW5wdXQgaWQ9InRleHQiIHR5cGU9InRleHQiPgorICAgIDxpbnB1
dCBpZD0iZGF0ZXRpbWUiIHR5cGU9ImRhdGV0aW1lIj4KKyAgICA8aW5wdXQgaWQ9ImNvbG9yIiB0
eXBlPSJjb2xvciI+CisgICAgPHNlbGVjdCBpZD0ic2VsZWN0Ij4KKyAgICAgICAgPG9wdGdyb3Vw
IGlkPSJvcHRncm91cCI+CisgICAgICAgICAgICA8b3B0aW9uIGlkPSJvcHRpb24iPk9wdGlvbjwv
b3B0aW9uPgorICAgICAgICA8L29wdGdyb3VwPgorICAgIDwvc2VsZWN0PgorICAgIDxkaXYgaWQ9
ImNvbnRlbnRlZGl0YWJsZS1kaXYiIGNvbnRlbnRlZGl0YWJsZT5JJ20gZWRpdGFibGU8L2Rpdj4K
KyAgICA8c3BhbiBpZD0idGFiaW5kZXgtc3BhbiIgdGFiaW5kZXg9IjAiPkknbSB0YWJpbmRleGVk
LjwvZGl2PgorICAgIDxlbWJlZCBpZD0iZW1iZWQiIHR5cGU9ImFwcGxpY2F0aW9uL3gtYmxpbmst
dGVzdC1wbHVnaW4iIHdpZHRoPTEwMCBoZWlnaHQ9MTAwPjwvZW1iZWQ+CisgICAgPGEgaWQ9ImFu
Y2hvciIgaHJlZj0iIj5MaW5rPC9hPgorICA8L2Rpdj4KKzxzY3JpcHQ+CitmdW5jdGlvbiB0ZXN0
Rm9jdXMoZWxlbWVudCwgZXhwZWN0Rm9jdXMpIHsKKyAgICBmb2N1c2VkRWxlbWVudCA9IG51bGw7
CisgICAgZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdmb2N1cycsIGZ1bmN0aW9uKCkgeyBmb2N1
c2VkRWxlbWVudCA9IGVsZW1lbnQ7IH0sIGZhbHNlKTsKKyAgICBlbGVtZW50LmZvY3VzKCk7Cisg
ICAgdGhlRWxlbWVudCA9IGVsZW1lbnQ7CisgICAgYXNzZXJ0X2VxdWFscyhmb2N1c2VkRWxlbWVu
dCA9PT0gdGhlRWxlbWVudCwgZXhwZWN0Rm9jdXMpOworfQorCitmdW5jdGlvbiB0ZXN0VHJlZShl
bGVtZW50LCBleHBlY3RGb2N1cywgZXhjbHVkZUN1cnJlbnQpIHsKKyAgICBpZiAoZWxlbWVudC5u
b2RlVHlwZSA9PSBOb2RlLkVMRU1FTlRfTk9ERSAmJiAhZXhjbHVkZUN1cnJlbnQpCisgICAgICAg
IHRlc3RGb2N1cyhlbGVtZW50LCBleHBlY3RGb2N1cyk7CisgICAgaWYgKGVsZW1lbnQudGFnTmFt
ZSA9PT0gIlNFTEVDVCIpCisgICAgICAgIHJldHVybjsKKyAgICB2YXIgY2hpbGROb2RlcyA9IGVs
ZW1lbnQuY2hpbGROb2RlczsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNoaWxkTm9kZXMubGVu
Z3RoOyBpKyspCisgICAgICAgIHRlc3RUcmVlKGNoaWxkTm9kZXNbaV0sIGV4cGVjdEZvY3VzKTsK
K30KKworCit0ZXN0KGZ1bmN0aW9uKCkgeworICAgIHRlc3RGb2N1cyhkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnZm9jdXNhYmxlJyksIHRydWUpOworfSwgIkJ1dHRvbiBvdXRzaWRlIG9mIGluZXJ0
IGNvbnRhaW5lciBpcyBmb2N1c2FibGUuIik7CisKK3Rlc3QoZnVuY3Rpb24oKSB7CisgICAgdGVz
dEZvY3VzKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbmVydCcpLCBmYWxzZSk7Cit9LCAiQnV0
dG9uIHdpdGggaW5lcnQgYXRyaWJ1dGUgaXMgdW5mb2N1c2FibGUuIik7CisKK3Rlc3QoZnVuY3Rp
b24oKSB7CisgICAgdGVzdFRyZWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnRhaW5lcicp
LCBmYWxzZSk7Cit9LCAiQWxsIGZvY3VzYWJsZSBlbGVtZW50cyBpbnNpZGUgaW5lcnQgc3VidHJl
ZSBhcmUgdW5mb2N1c2FibGUiKTsKKwordGVzdChmdW5jdGlvbigpIHsKKyAgICBhc3NlcnRfZmFs
c2UoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZvY3VzYWJsZSIpLmluZXJ0LCAiSW5lcnQgbm90
IHNldCBleHBsaWNpdGx5IGlzIGZhbHNlIikKKyAgICBhc3NlcnRfdHJ1ZShkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgiaW5lcnQiKS5pbmVydCwgIkluZXJ0IHNldCBleHBsaWNpdGx5IGlzIHRydWUi
KTsKKyAgICBhc3NlcnRfdHJ1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGFpbmVyIiku
aW5lcnQsICJJbmVydCBzZXQgb24gY29udGFpbmVyIGlzIHRydWUiKTsKK30sICJDYW4gZ2V0IGlu
ZXJ0IHZpYSBwcm9wZXJ0eSIpOworCit0ZXN0KGZ1bmN0aW9uKCkgeworICAgIGFzc2VydF9mYWxz
ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGV4dCIpLmluZXJ0LCAiRWxlbWVudHMgaW5zaWRl
IG9mIGluZXJ0IHN1YnRyZWVzIHJldHVybiBmYWxzZSB3aGVuIGdldHRpbmcgaW5lcnQiKTsKK30s
ICJFbGVtZW50cyBpbnNpZGUgb2YgaW5lcnQgc3VidHJlZXMgcmV0dXJuIGZhbHNlIHdoZW4gZ2V0
dGluZyAnaW5lcnQnIik7CisKK3Rlc3QoZnVuY3Rpb24oKSB7CisgICAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ2ZvY3VzYWJsZScpLmluZXJ0ID0gdHJ1ZTsKKyAgICB0ZXN0Rm9jdXMoZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ2ZvY3VzYWJsZScpLCBmYWxzZSk7CisgICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ2luZXJ0JykuaW5lcnQgPSBmYWxzZTsKKyAgICB0ZXN0Rm9jdXMoZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ2luZXJ0JyksIHRydWUpOworICAgIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdjb250YWluZXInKS5pbmVydCA9IGZhbHNlOworICAgIHRlc3RUcmVlKGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdjb250YWluZXInKSwgdHJ1ZSwgdHJ1ZSk7Cit9LCAiU2V0dGluZyBp
bmVydCB2aWEgcHJvcGVydHkgY29ycmVjdGx5IG1vZGlmaWVzIGluZXJ0IHN0YXRlIik7Cis8L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtbm9kZS1pcy11bnNlbGVjdGFibGUu
dGVudGF0aXZlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtbm9kZS1pcy11bnNlbGVjdGFibGUudGVudGF0aXZlLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZmNhMjM4YWY4ZjE0YTE1Yjc5ZjlmYzBhMzFiMzkzNzhm
ODQxZDY0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1ub2RlLWlzLXVuc2VsZWN0YWJsZS50ZW50YXRpdmUt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorSGVyZSBpcyBhIHRleHQgbm9kZSB5b3UgY2Fu
J3Qgc2VsZWN0LgorSSdtIHNlbGVjdGFibGUuCisKK0ZBSUwgSW5lcnQgbm9kZXMgY2Fubm90IGJl
IHNlbGVjdGVkLiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiSSdtIHNlbGVjdGFibGUuIiBidXQg
Z290ICJIZXJlIGlzIGEgdGV4dCBub2RlIHlvdSBjYW4ndCBzZWxlY3QuXG5JJ20gc2VsZWN0YWJs
ZS4iCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaW5lcnQvaW5lcnQtbm9kZS1pcy11bnNlbGVjdGFibGUudGVudGF0aXZlLmh0bWwgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LW5v
ZGUtaXMtdW5zZWxlY3RhYmxlLnRlbnRhdGl2ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI5OWFmMGQ0Y2Qx
NDJkY2IwNTFhZjUxZjQyZDE3NTkxNDJhMDBjNWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LW5vZGUtaXMt
dW5zZWxlY3RhYmxlLnRlbnRhdGl2ZS5odG1sCkBAIC0wLDAgKzEsMjAgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+CisgIDxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04IiAvPgorICAg
IDx0aXRsZT5pbmVydCBub2RlcyBhcmUgdW5zZWxlY3RhYmxlPC90aXRsZT4KKyAgICA8bGluayBy
ZWw9ImF1dGhvciIgdGl0bGU9IkFsaWNlIEJveGhhbGwiIGhyZWY9ImFib3hoYWxsQGNocm9taXVt
Lm9yZyI+CisgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2Ny
aXB0PgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48
L3NjcmlwdD4KKyAgPC9oZWFkPgorPGJvZHk+CisgIDxkaXYgaW5lcnQ+SGVyZSBpcyBhIHRleHQg
bm9kZSB5b3UgY2FuJ3Qgc2VsZWN0LjwvZGl2PgorICA8ZGl2PkknbSBzZWxlY3RhYmxlLjwvZGl2
PgorPHNjcmlwdD4KK3Rlc3QoZnVuY3Rpb24oKSB7CisgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQo
J1NlbGVjdEFsbCcpOworICAgIGFzc2VydF9lcXVhbHMod2luZG93LmdldFNlbGVjdGlvbigpLnRv
U3RyaW5nKCkudHJpbSgpLCAiSSdtIHNlbGVjdGFibGUuIik7Cit9LCAiSW5lcnQgbm9kZXMgY2Fu
bm90IGJlIHNlbGVjdGVkLiIpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2lu
ZXJ0LW9uLXNsb3RzLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LW9uLXNsb3RzLnRlbnRhdGl2ZS1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGYyYjEyNThkMzUyY2RmODkzNDBjN2NjMzA5N2JiOTQ0
ZTdkYzc0ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtb24tc2xvdHMudGVudGF0aXZlLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDUgQEAKK0J1dHRvbiAxIHNob3VsZCBiZSBpbmVydCwgYW5kIEJ1dHRvbiAy
IHNob3VsZCBub3QgYmUgaW5lcnQuCitCdXR0b24gMSAoaW5lcnQpQnV0dG9uIDIgKG5vdCBpbmVy
dCkKKworRkFJTCBpbmVydCBpbnNpZGUgU2hhZG93Um9vdCBhZmZlY3RzIHNsb3R0ZWQgY29udGVu
dCBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCBmYWxzZSBidXQgZ290IHRydWUKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVy
dC1vbi1zbG90cy50ZW50YXRpdmUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtb24tc2xvdHMudGVudGF0aXZlLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZGQwZDdlYzZkNDZkMWVmMzQ0MTdkY2YwOTljZTUxNTZiYjE0OWJlYQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5l
cnQvaW5lcnQtb24tc2xvdHMudGVudGF0aXZlLmh0bWwKQEAgLTAsMCArMSw1NyBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04IiAvPgor
ICAgIDx0aXRsZT5pbmVydCBpbnNpZGUgU2hhZG93Um9vdCBhZmZlY3RzIHNsb3R0ZWQgY29udGVu
dDwvdGl0bGU+CisgICAgPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJBbGljZSBCb3hoYWxsIiBo
cmVmPSJhYm94aGFsbEBjaHJvbWl1bS5vcmciPgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90
ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgPGRpdj5C
dXR0b24gMSBzaG91bGQgYmUgaW5lcnQsIGFuZCBCdXR0b24gMiBzaG91bGQgbm90IGJlIGluZXJ0
LjwvZGl2PgorICA8ZGl2IGlkPSJzaGFkb3ctaG9zdCI+CisgICAgPGJ1dHRvbiBzbG90PSJzbG90
LTEiIGlkPSJidXR0b24tMSI+QnV0dG9uIDEgKGluZXJ0KTwvYnV0dG9uPgorICAgIDxidXR0b24g
c2xvdD0ic2xvdC0yIiBpZD0iYnV0dG9uLTIiPkJ1dHRvbiAyIChub3QgaW5lcnQpPC9idXR0b24+
CisgIDwvZGl2PgorICA8c2NyaXB0PgorICAgIC8qCisgICAgRXZlbnR1YWwgZmxhdHRlbmVkIHRy
ZWUgc3RydWN0dXJlOgorCisgICAgPGRpdiBpZD0ic2hhZG93LWhvc3QiPgorICAgICAgI3NoYWRv
dy1yb290IChvcGVuKQorICAgICAgfCA8c2xvdCBpZD0ic2xvdC0xIiBpbmVydD4KKyAgICAgIDog
ICA8YnV0dG9uIGlkPSJidXR0b24tMSI+QnV0dG9uIDE8L2J1dHRvbj4gPCEtLSBzbG90dGVkIC0t
PgorICAgICAgfCA8L3Nsb3Q+CisgICAgICB8IDxzbG90IGlkPSJzbG90LTIiPgorICAgICAgOiAg
IDxidXR0b24gaWQ9ImJ1dHRvbi0yIj5CdXR0b24gMjwvYnV0dG9uPiA8IS0tIHNsb3R0ZWQgLS0+
CisgICAgICB8IDwvc2xvdD4KKyAgICA8L2Rpdj4KKyAgICAqLworCisgICAgY29uc3Qgc2hhZG93
SG9zdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzaGFkb3ctaG9zdCIpOworICAgIGNvbnN0
IHNoYWRvd1Jvb3QgPSBzaGFkb3dIb3N0LmF0dGFjaFNoYWRvdyh7IG1vZGU6ICJvcGVuIiB9KTsK
KworICAgIGNvbnN0IHNsb3QxID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2xvdCIpOworICAg
IHNsb3QxLm5hbWUgPSAic2xvdC0xIjsKKyAgICBzbG90MS5pbmVydCA9IHRydWU7CisgICAgc2hh
ZG93Um9vdC5hcHBlbmRDaGlsZChzbG90MSk7CisKKyAgICBjb25zdCBzbG90MiA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoInNsb3QiKTsKKyAgICBzbG90Mi5uYW1lID0gInNsb3QtMiI7CisgICAg
c2hhZG93Um9vdC5hcHBlbmRDaGlsZChzbG90Mik7CisKKyAgICBmdW5jdGlvbiB0ZXN0Q2FuRm9j
dXMoc2VsZWN0b3IsIGNhbkZvY3VzKSB7CisgICAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQu
cXVlcnlTZWxlY3RvcihzZWxlY3Rvcik7CisgICAgICBsZXQgZm9jdXNlZEVsZW1lbnQgPSBudWxs
OworICAgICAgZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsIGZ1bmN0aW9uKCkgeyBm
b2N1c2VkRWxlbWVudCA9IGVsZW1lbnQ7IH0sIGZhbHNlKTsKKyAgICAgIGVsZW1lbnQuZm9jdXMo
KTsKKyAgICAgIGFzc2VydF9lcXVhbHMoKGZvY3VzZWRFbGVtZW50ID09PSBlbGVtZW50KSwgY2Fu
Rm9jdXMpOworICAgIH0KKworICAgIHRlc3QoKCkgPT4geworICAgICAgdGVzdENhbkZvY3VzKCIj
YnV0dG9uLTEiLCBmYWxzZSk7CisgICAgICB0ZXN0Q2FuRm9jdXMoIiNidXR0b24tMiIsIHRydWUp
OworICAgIH0sICJpbmVydCBpbnNpZGUgU2hhZG93Um9vdCBhZmZlY3RzIHNsb3R0ZWQgY29udGVu
dCIpOworICA8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtcmV0YXJnZXRp
bmctaWZyYW1lLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LXJldGFyZ2V0aW5nLWlmcmFtZS50ZW50
YXRpdmUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI1OTliZTcxYTgzZWYwOGVkNTYxOWI5NGNj
YjQ2NGZjMWJjOTc3MDkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LXJldGFyZ2V0aW5nLWlmcmFtZS50ZW50
YXRpdmUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNDcgQEAKK0NPTlNPTEUgTUVTU0FHRTogRXJy
b3I6IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIEVsZW1lbnQgbm9kZSA8ZmllbGRzZXQgaWQ9ImFu
Y2VzdG9yQ29udGFpbmVyIj4KKyAgICA8bGVnZW5kPk5vbi1pbmVydCBhLi4uIGJ1dCBnb3QgRWxl
bWVudCBub2RlIDxidXR0b24gaWQ9ImZvcmVncm91bmQiIGNsYXNzPSJjbGlja2VkIj5mb3JlZ3Jv
dW5kPC9idXR0b24+CitDT05TT0xFIE1FU1NBR0U6IEVycm9yOiBhc3NlcnRfZXF1YWxzOiBleHBl
Y3RlZCBFbGVtZW50IG5vZGUgPGZpZWxkc2V0IGlkPSJhbmNlc3RvckNvbnRhaW5lciI+CisgICAg
PGxlZ2VuZD5Ob24taW5lcnQgYS4uLiBidXQgZ290IEVsZW1lbnQgbm9kZSA8YnV0dG9uIGlkPSJm
b3JlZ3JvdW5kIiBjbGFzcz0iY2xpY2tlZCI+Zm9yZWdyb3VuZDwvYnV0dG9uPgorQ09OU09MRSBN
RVNTQUdFOiBFcnJvcjogYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgRWxlbWVudCBub2RlIDxmaWVs
ZHNldCBpZD0iYW5jZXN0b3JDb250YWluZXIiPgorICAgIDxsZWdlbmQ+Tm9uLWluZXJ0IGEuLi4g
YnV0IGdvdCBFbGVtZW50IG5vZGUgPGJ1dHRvbiBpZD0iZm9yZWdyb3VuZCIgY2xhc3M9ImNsaWNr
ZWQiPmZvcmVncm91bmQ8L2J1dHRvbj4KK0NPTlNPTEUgTUVTU0FHRTogRXJyb3I6IGFzc2VydF9l
cXVhbHM6IGV4cGVjdGVkIEVsZW1lbnQgbm9kZSA8ZmllbGRzZXQgaWQ9ImFuY2VzdG9yQ29udGFp
bmVyIj4KKyAgICA8bGVnZW5kPk5vbi1pbmVydCBhLi4uIGJ1dCBnb3QgRWxlbWVudCBub2RlIDxi
dXR0b24gaWQ9ImZvcmVncm91bmQiIGNsYXNzPSJjbGlja2VkIj5mb3JlZ3JvdW5kPC9idXR0b24+
CitDT05TT0xFIE1FU1NBR0U6IEVycm9yOiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCBFbGVtZW50
IG5vZGUgPGZpZWxkc2V0IGlkPSJhbmNlc3RvckNvbnRhaW5lciI+CisgICAgPGxlZ2VuZD5Ob24t
aW5lcnQgYS4uLiBidXQgZ290IEVsZW1lbnQgbm9kZSA8YnV0dG9uIGlkPSJmb3JlZ3JvdW5kIiBj
bGFzcz0iY2xpY2tlZCI+Zm9yZWdyb3VuZDwvYnV0dG9uPgorQ09OU09MRSBNRVNTQUdFOiBFcnJv
cjogYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgRWxlbWVudCBub2RlIDxmaWVsZHNldCBpZD0iYW5j
ZXN0b3JDb250YWluZXIiPgorICAgIDxsZWdlbmQ+Tm9uLWluZXJ0IGEuLi4gYnV0IGdvdCBFbGVt
ZW50IG5vZGUgPGJ1dHRvbiBpZD0iZm9yZWdyb3VuZCIgY2xhc3M9ImNsaWNrZWQiPmZvcmVncm91
bmQ8L2J1dHRvbj4KK0NPTlNPTEUgTUVTU0FHRTogRXJyb3I6IGFzc2VydF9lcXVhbHM6IGV4cGVj
dGVkIEVsZW1lbnQgbm9kZSA8ZmllbGRzZXQgaWQ9ImFuY2VzdG9yQ29udGFpbmVyIj4KKyAgICA8
bGVnZW5kPk5vbi1pbmVydCBhLi4uIGJ1dCBnb3QgRWxlbWVudCBub2RlIDxidXR0b24gaWQ9ImZv
cmVncm91bmQiIGNsYXNzPSJjbGlja2VkIj5mb3JlZ3JvdW5kPC9idXR0b24+CitDT05TT0xFIE1F
U1NBR0U6IEVycm9yOiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCBFbGVtZW50IG5vZGUgPGZpZWxk
c2V0IGlkPSJhbmNlc3RvckNvbnRhaW5lciI+CisgICAgPGxlZ2VuZD5Ob24taW5lcnQgYS4uLiBi
dXQgZ290IEVsZW1lbnQgbm9kZSA8YnV0dG9uIGlkPSJmb3JlZ3JvdW5kIiBjbGFzcz0iY2xpY2tl
ZCI+Zm9yZWdyb3VuZDwvYnV0dG9uPgorQ09OU09MRSBNRVNTQUdFOiBFcnJvcjogYXNzZXJ0X2Vx
dWFsczogZXhwZWN0ZWQgRWxlbWVudCBub2RlIDxmaWVsZHNldCBpZD0iYW5jZXN0b3JDb250YWlu
ZXIiPgorICAgIDxsZWdlbmQ+Tm9uLWluZXJ0IGEuLi4gYnV0IGdvdCBFbGVtZW50IG5vZGUgPGJ1
dHRvbiBpZD0iZm9yZWdyb3VuZCIgY2xhc3M9ImNsaWNrZWQiPmZvcmVncm91bmQ8L2J1dHRvbj4K
K0NPTlNPTEUgTUVTU0FHRTogRXJyb3I6IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIEVsZW1lbnQg
bm9kZSA8ZmllbGRzZXQgaWQ9ImFuY2VzdG9yQ29udGFpbmVyIj4KKyAgICA8bGVnZW5kPk5vbi1p
bmVydCBhLi4uIGJ1dCBnb3QgRWxlbWVudCBub2RlIDxidXR0b24gaWQ9ImZvcmVncm91bmQiIGNs
YXNzPSJjbGlja2VkIj5mb3JlZ3JvdW5kPC9idXR0b24+CitDT05TT0xFIE1FU1NBR0U6IEVycm9y
OiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCBFbGVtZW50IG5vZGUgPGZpZWxkc2V0IGlkPSJhbmNl
c3RvckNvbnRhaW5lciI+CisgICAgPGxlZ2VuZD5Ob24taW5lcnQgYS4uLiBidXQgZ290IEVsZW1l
bnQgbm9kZSA8YnV0dG9uIGlkPSJmb3JlZ3JvdW5kIiBjbGFzcz0iY2xpY2tlZCI+Zm9yZWdyb3Vu
ZDwvYnV0dG9uPgorQ09OU09MRSBNRVNTQUdFOiBFcnJvcjogYXNzZXJ0X2VxdWFsczogZXhwZWN0
ZWQgRWxlbWVudCBub2RlIDxmaWVsZHNldCBpZD0iYW5jZXN0b3JDb250YWluZXIiPgorICAgIDxs
ZWdlbmQ+Tm9uLWluZXJ0IGEuLi4gYnV0IGdvdCBFbGVtZW50IG5vZGUgPGJ1dHRvbiBpZD0iZm9y
ZWdyb3VuZCIgY2xhc3M9ImNsaWNrZWQiPmZvcmVncm91bmQ8L2J1dHRvbj4KK0NPTlNPTEUgTUVT
U0FHRTogRXJyb3I6IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIEVsZW1lbnQgbm9kZSA8ZmllbGRz
ZXQgaWQ9ImFuY2VzdG9yQ29udGFpbmVyIj4KKyAgICA8bGVnZW5kPk5vbi1pbmVydCBhLi4uIGJ1
dCBnb3QgRWxlbWVudCBub2RlIDxidXR0b24gaWQ9ImZvcmVncm91bmQiIGNsYXNzPSJjbGlja2Vk
Ij5mb3JlZ3JvdW5kPC9idXR0b24+CitDbGljayBvbiAiSW5lcnQgYnV0dG9uIi4KKworVGhlIGJs
dWUgc3F1YXJlICgiTm9uLWluZXJ0IGFuY2VzdG9yIGNvbnRhaW5lciIpIHNob3VsZCB0dXJuIGdy
ZWVuLgorVGhlIHllbGxvdywgc2VtaS10cmFuc3BhcmVudCBzcXVhcmUgKCJOb24taW5lcnQsIGRp
c3BsYWNlZCBjb250YWluZXIiKSBzaG91bGQgbm90IHR1cm4gcmVkLgorIk5vbi1pbmVydCBidXR0
b24iIHNob3VsZCBub3QgdHVybiByZWQuCisoVGhlIGZ1bGwgdGVzdCBzdWl0ZSBjaGVja3MgYSBy
YW5nZSBvZiBldmVudHMuKQorCitOb24taW5lcnQgYW5jZXN0b3IgY29udGFpbmVyCisgTm9uLWlu
ZXJ0LCBkaXNwbGFjZWQgYW5jZXN0b3IKK0luZXJ0IGNvbnRhaW5lcgorZm9yZWdyb3VuZAorCitI
YXJuZXNzIEVycm9yIChGQUlMKSwgbWVzc2FnZSA9IEVycm9yOiBhc3NlcnRfZXF1YWxzOiBleHBl
Y3RlZCBFbGVtZW50IG5vZGUgPGZpZWxkc2V0IGlkPSJhbmNlc3RvckNvbnRhaW5lciI+CisgICAg
PGxlZ2VuZD5Ob24taW5lcnQgYS4uLiBidXQgZ290IEVsZW1lbnQgbm9kZSA8YnV0dG9uIGlkPSJm
b3JlZ3JvdW5kIiBjbGFzcz0iY2xpY2tlZCI+Zm9yZWdyb3VuZDwvYnV0dG9uPgorCitQQVNTIGVs
ZW1lbnRzRnJvbVBvaW50IHJldHVybnMgaW5lcnQgZWxlbWVudAorRkFJTCBUZXN0cyB0aGF0IGFu
eSBtb3VzZSBldmVudCBvbiBhIG5vbi1pbmVydCBlbGVtZW50IGlzIGNvcnJlY3RseSB0YXJnZXRl
ZCB0byB0aGF0IGVsZW1lbnQgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGgg
dmFsdWU6ICJkaWQgbm90IGdldCBhdXhjbGljayBvbiBmb3JlZ3JvdW5kIgorRkFJTCBUZXN0cyB0
aGF0IGFueSBtb3VzZSBldmVudCBvbiBhbiBpbmVydCBlbGVtZW50IGlzIHRhcmdldGVkIHRvIHRo
ZSBuZWFyZXN0IG5vbi1pbmVydCBhbmNlc3RvciBhdCB0aGUgc2FtZSBjb29yZGluYXRlcyBwcm9t
aXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogImRpZCBub3QgZ2V0IG1v
dXNlb3ZlciBvbiBhbmNlc3RvckNvbnRhaW5lciIKK1BBU1MgVGVzdHMgdGhhdCBhbnkgcG9pbnRl
ciBldmVudCBvbiBhIG5vbi1pbmVydCBlbGVtZW50IGlzIGNvcnJlY3RseSB0YXJnZXRlZCB0byB0
aGF0IGVsZW1lbnQKK0ZBSUwgVGVzdHMgdGhhdCBhbnkgcG9pbnRlciBldmVudCBvbiBhbiBpbmVy
dCBlbGVtZW50IGlzIHRhcmdldGVkIHRvIHRoZSBuZWFyZXN0IG5vbi1pbmVydCBhbmNlc3RvciBh
dCB0aGUgc2FtZSBjb29yZGluYXRlcyBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24g
d2l0aCB2YWx1ZTogImRpZCBub3QgZ2V0IHBvaW50ZXJvdmVyIG9uIGFuY2VzdG9yQ29udGFpbmVy
IgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2luZXJ0L2luZXJ0LXJldGFyZ2V0aW5nLWlmcmFtZS50ZW50YXRpdmUuaHRtbCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtcmV0YXJn
ZXRpbmctaWZyYW1lLnRlbnRhdGl2ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU3OWZjNTdiZTI1OGE3MDlh
OWQyMmNiMjYzYTY0MjJkOWJkYjc5NTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LXJldGFyZ2V0aW5nLWlm
cmFtZS50ZW50YXRpdmUuaHRtbApAQCAtMCwwICsxLDI3OSBAQAorPCFET0NUWVBFIGh0bWw+Cis8
aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGRyaXZlci5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0ZHJpdmVyLWFjdGlvbnMuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGRyaXZlci12ZW5kb3IuanMiPjwvc2NyaXB0
PgorPHN0eWxlPgorYnV0dG9uI2ZvcmVncm91bmQsCitidXR0b24jYmFja2dyb3VuZCB7CisgIHBv
c2l0aW9uOiBhYnNvbHV0ZTsKKyAgdG9wOiA3NXB4OworICBsZWZ0OiA1MHB4OworICB3aWR0aDog
MTAwcHg7CisgIGhlaWdodDogMjBweDsKK30KKworYnV0dG9uI2JhY2tncm91bmQgeworICBsZWZ0
OiA3NXB4OworICB3aWR0aDogMTUwcHg7CisgIGhlaWdodDogNDBweDsKKyAgdG9wOiAxMjVweDsK
KyAgbGluZS1oZWlnaHQ6IDUzcHg7Cit9CisKKy5jbGlja2VkIHsKKyAgYmFja2dyb3VuZC1jb2xv
cjogcmVkOworfQorCisjYW5jZXN0b3JDb250YWluZXIuY2xpY2tlZCB7CisgIGJhY2tncm91bmQt
Y29sb3I6IGdyZWVuOworfQorCisjYW5jZXN0b3JDb250YWluZXIgeworICBwb3NpdGlvbjogYWJz
b2x1dGU7CisgIHRvcDogMjAwcHg7CisgIGxlZnQ6IDEwcHg7CisgIHdpZHRoOiAzMDBweDsKKyAg
aGVpZ2h0OiAzMDBweDsKKyAgYmFja2dyb3VuZC1jb2xvcjogYmx1ZTsKK30KKworI2Rpc3BsYWNl
ZEFuY2VzdG9yIHsKKyAgcG9zaXRpb246IGFic29sdXRlOworICB0b3A6IDEzcHg7CisgIGxlZnQ6
IDI0MHB4OworICB3aWR0aDogMzAwcHg7CisgIGhlaWdodDogMjUwcHg7CisgIGJhY2tncm91bmQt
Y29sb3I6ICNmZjg5OworfQorCisjZGlzcGxhY2VkQW5jZXN0b3IuY2xpY2tlZCB7CisgIGJhY2tn
cm91bmQtY29sb3I6ICNmMDA5OworfQorCisjaW5lcnRDb250YWluZXIgeworICBiYWNrZ3JvdW5k
LWNvbG9yOiAjZmZmOTsKKyAgcG9zaXRpb246IGFic29sdXRlOworICB0b3A6IDM1cHg7CisgIGxl
ZnQ6IC0xOTJweDsKKyAgd2lkdGg6IDIwMHB4OworICBoZWlnaHQ6IDIwMHB4OworfQorCitmaWVs
ZHNldCB7CisgIG1hcmdpbjogMDsKKyAgcGFkZGluZzogMDsKKyAgYm9yZGVyOiAxcHggc29saWQg
YmxhY2s7Cit9CisKK2xlZ2VuZCB7CisgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOworICBib3Jk
ZXI6IDFweCBzb2xpZCBibGFjazsKKyAgbWFyZ2luLWxlZnQ6IDVweDsKK30KKzwvc3R5bGU+Cis8
L2hlYWQ+Cis8Ym9keT4KKyAgPHA+Q2xpY2sgb24gIkluZXJ0IGJ1dHRvbiIuPC9wPgorICA8dWw+
CisgICAgPGxpPlRoZSBibHVlIHNxdWFyZSAoIk5vbi1pbmVydCBhbmNlc3RvciBjb250YWluZXIi
KSBzaG91bGQgdHVybiBncmVlbi48L2xpPgorICAgIDxsaT5UaGUgeWVsbG93LCBzZW1pLXRyYW5z
cGFyZW50IHNxdWFyZSAoIk5vbi1pbmVydCwgZGlzcGxhY2VkIGNvbnRhaW5lciIpIHNob3VsZCBu
b3QgdHVybiByZWQuPC9saT4KKyAgICA8bGk+Ik5vbi1pbmVydCBidXR0b24iIHNob3VsZCBub3Qg
dHVybiByZWQuPC9saT4KKyAgPC91bD4KKyAgPHAgc3R5bGU9Im1hcmdpbi1ib3R0b206MjUwcHgi
PihUaGUgZnVsbCB0ZXN0IHN1aXRlIGNoZWNrcyBhIHJhbmdlIG9mIGV2ZW50cy4pPC9wPgorICA8
ZmllbGRzZXQgaWQ9ImFuY2VzdG9yQ29udGFpbmVyIj4KKyAgICA8bGVnZW5kPk5vbi1pbmVydCBh
bmNlc3RvciBjb250YWluZXI8L2xlZ2VuZD4KKyAgICA8aWZyYW1lIGlkPSJiYWNrZ3JvdW5kIiBz
cmM9ImZyYW1lL2J1dHRvbi5odG1sIj48L2lmcmFtZT4KKyAgICA8ZmllbGRzZXQgaWQ9ImRpc3Bs
YWNlZEFuY2VzdG9yIj4KKyAgICAgIDxsZWdlbmQ+Tm9uLWluZXJ0LCBkaXNwbGFjZWQgYW5jZXN0
b3I8L2xlZ2VuZD4KKyAgICAgIDxmaWVsZHNldCBpZD0iaW5lcnRDb250YWluZXIiIGluZXJ0Pgor
ICAgICAgICA8bGVnZW5kPkluZXJ0IGNvbnRhaW5lcjwvbGVnZW5kPgorICAgICAgICA8YnV0dG9u
IGlkPSJmb3JlZ3JvdW5kIj5mb3JlZ3JvdW5kPC9idXR0b24+CisgICAgICA8L2ZpZWxkc2V0Pgor
ICAgIDwvZmllbGRzZXQ+CisgIDwvZmllbGRzZXQ+CisKKyAgPHNjcmlwdD4KK2RvY3VtZW50LmJv
ZHkuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoZSkgPT4geworICBlLnRhcmdldC5jbGFzc0xp
c3QuYWRkKCdjbGlja2VkJyk7Cit9KTsKKworZnVuY3Rpb24gY2xpY2tPbihlbGVtZW50KSB7Cisg
IHJldHVybiBuZXcgdGVzdF9kcml2ZXIuQWN0aW9ucygpCisgICAgICAucG9pbnRlck1vdmUoMCwg
MCwge29yaWdpbjogZWxlbWVudH0pCisgICAgICAucG9pbnRlckRvd24oe2J1dHRvbjogdGVzdF9k
cml2ZXIuQWN0aW9ucy5wcm90b3R5cGUuQnV0dG9uVHlwZS5MRUZUfSkKKyAgICAgIC5wb2ludGVy
VXAoe2J1dHRvbjogdGVzdF9kcml2ZXIuQWN0aW9ucy5wcm90b3R5cGUuQnV0dG9uVHlwZS5MRUZU
fSkKKyAgICAgIC5zZW5kKCk7Cit9CisKK2Z1bmN0aW9uIGF1eENsaWNrT24oZWxlbWVudCkgewor
ICByZXR1cm4gbmV3IHRlc3RfZHJpdmVyLkFjdGlvbnMoKQorICAgICAgLnBvaW50ZXJNb3ZlKDAs
IDAsIHtvcmlnaW46IGVsZW1lbnR9KQorICAgICAgLnBvaW50ZXJEb3duKHtidXR0b246IHRlc3Rf
ZHJpdmVyLkFjdGlvbnMucHJvdG90eXBlLkJ1dHRvblR5cGUuUklHSFR9KQorICAgICAgLnBvaW50
ZXJVcCh7YnV0dG9uOiB0ZXN0X2RyaXZlci5BY3Rpb25zLnByb3RvdHlwZS5CdXR0b25UeXBlLlJJ
R0hUfSkKKyAgICAgIC5zZW5kKCk7Cit9CisKK2Z1bmN0aW9uIGRibENsaWNrT24oZWxlbWVudCkg
eworICByZXR1cm4gbmV3IHRlc3RfZHJpdmVyLkFjdGlvbnMoKQorICAgICAgLnBvaW50ZXJNb3Zl
KDAsIDAsIHtvcmlnaW46IGVsZW1lbnR9KQorICAgICAgLnBvaW50ZXJEb3duKHtidXR0b246IHRl
c3RfZHJpdmVyLkFjdGlvbnMucHJvdG90eXBlLkJ1dHRvblR5cGUuTEVGVH0pCisgICAgICAucG9p
bnRlclVwKHtidXR0b246IHRlc3RfZHJpdmVyLkFjdGlvbnMucHJvdG90eXBlLkJ1dHRvblR5cGUu
TEVGVH0pCisgICAgICAucG9pbnRlckRvd24oe2J1dHRvbjogdGVzdF9kcml2ZXIuQWN0aW9ucy5w
cm90b3R5cGUuQnV0dG9uVHlwZS5MRUZUfSkKKyAgICAgIC5wb2ludGVyVXAoe2J1dHRvbjogdGVz
dF9kcml2ZXIuQWN0aW9ucy5wcm90b3R5cGUuQnV0dG9uVHlwZS5MRUZUfSkKKyAgICAgIC5zZW5k
KCk7Cit9CisKK2Z1bmN0aW9uIG1vdmVQb2ludGVyT3ZlcihlbGVtZW50KSB7CisgIGxldCByZWN0
ID0gZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgcmV0dXJuIG5ldyB0ZXN0X2Ry
aXZlci5BY3Rpb25zKCkKKyAgICAgIC5wb2ludGVyTW92ZSgwLCAwLCB7IG9yaWdpbjogZWxlbWVu
dCB9KQorICAgICAgLnNlbmQoKTsKK30KKworZnVuY3Rpb24gbW92ZVBvaW50ZXJUbyh4LCB5KSB7
CisgIHJldHVybiBuZXcgdGVzdF9kcml2ZXIuQWN0aW9ucygpCisgICAgICAucG9pbnRlck1vdmUo
TWF0aC5jZWlsKHgpLCBNYXRoLmNlaWwoeSksIHsgb3JpZ2luOiAidmlld3BvcnQiIH0pCisgICAg
ICAuc2VuZCgpOworfQorCitmdW5jdGlvbiBleHBlY3RFdmVudHNPbihldmVudHMsIGVsZW1lbnQp
IHsKKyAgbGV0IHByb21pc2VzID0gW107CisgIGZvciAoZXZlbnQgb2YgZXZlbnRzKSB7CisgICAg
KChldmVudCwgZWxlbWVudCkgPT4geworICAgICAgdmFyIHByb21pc2UgPSBuZXcgUHJvbWlzZSgo
cmVzb2x2ZSwgcmVqZWN0KSA9PiB7CisgICAgICAgIGxldCBmID0gKGUpID0+IHsKKyAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKGUudHlwZSwgZXZlbnQpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMo
ZS50YXJnZXQsIGVsZW1lbnQpOworICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgICAgfQorICAg
ICAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoZXZlbnQsIGYsIHsgY2FwdHVyZTogdHJ1ZSwg
b25jZTogdHJ1ZSB9KTsKKworICAgICAgICBzdGVwX3RpbWVvdXQoKCkgPT4geworICAgICAgICAg
IGVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihldmVudCwgZiwgeyBjYXB0dXJlOiB0cnVlIH0p
OworICAgICAgICAgIHJlamVjdCgiZGlkIG5vdCBnZXQgIiArIGV2ZW50ICsgIiBvbiAiICsgZWxl
bWVudC5pZCk7CisgICAgICAgIH0sIDUwMDApOworICAgICAgfSk7CisgICAgICBwcm9taXNlcy5w
dXNoKHByb21pc2UpOworICAgIH0pKGV2ZW50LCBlbGVtZW50KTsKKyAgfQorICByZXR1cm4gcHJv
bWlzZXM7Cit9CisKK2Z1bmN0aW9uIHVuZXhwZWN0RXZlbnRzT24oZXZlbnRzLCBlbGVtZW50KSB7
CisgIGxldCBwcm9taXNlcyA9IFtdOworICBmb3IgKGV2ZW50IG9mIGV2ZW50cykgeworICAgICgo
ZXZlbnQsIGVsZW1lbnQpID0+IHsKKyAgICAgIHZhciBwcm9taXNlID0gbmV3IFByb21pc2UoKHJl
c29sdmUsIHJlamVjdCkgPT4geworICAgICAgICBsZXQgZiA9IChlKSA9PiB7CisgICAgICAgICAg
YXNzZXJ0X2VxdWFscyhlLnR5cGUsIGV2ZW50KTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUu
dGFyZ2V0LCBlbGVtZW50KTsKKyAgICAgICAgICByZWplY3QoImdvdCAiICsgZS50eXBlICsgIiBv
biAiICsgZS50YXJnZXQuaWQpOworICAgICAgICB9CisgICAgICAgIGVsZW1lbnQuYWRkRXZlbnRM
aXN0ZW5lcihldmVudCwgZiwgeyBjYXB0dXJlOiB0cnVlLCBvbmNlOiB0cnVlIH0pOworCisgICAg
ICAgIHN0ZXBfdGltZW91dCgoKSA9PiB7CisgICAgICAgICAgZWxlbWVudC5yZW1vdmVFdmVudExp
c3RlbmVyKGV2ZW50LCBmLCB7IGNhcHR1cmU6IHRydWUgfSk7CisgICAgICAgICAgcmVzb2x2ZSgp
OworICAgICAgICB9LCAxMDAwKTsKKyAgICAgIH0pOworICAgICAgcHJvbWlzZXMucHVzaChwcm9t
aXNlKTsKKyAgICB9KShldmVudCwgZWxlbWVudCk7CisgIH0KKyAgcmV0dXJuIHByb21pc2VzOwor
fQorCit0ZXN0KCgpID0+IHsKKyAgbGV0IHJlY3QgPSBmb3JlZ3JvdW5kLmdldEJvdW5kaW5nQ2xp
ZW50UmVjdCgpOworICBsZXQgY2VudGVyX3ggPSByZWN0LmxlZnQgKyAocmVjdC53aWR0aCAvIDIp
OworICBsZXQgY2VudGVyX3kgPSByZWN0LnRvcCArIChyZWN0LmhlaWdodCAvIDIpOworICBhc3Nl
cnRfZXF1YWxzKGRvY3VtZW50LmVsZW1lbnRzRnJvbVBvaW50KGNlbnRlcl94LCBjZW50ZXJfeSlb
MF0sIGZvcmVncm91bmQpOworfSwgImVsZW1lbnRzRnJvbVBvaW50IHJldHVybnMgaW5lcnQgZWxl
bWVudCIpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgKCkgPT4geworICAvLyBUZXN0IG1vdXNlIGV2
ZW50cyBvbiBub24taW5lcnQgZWxlbWVudCAtIGV2ZW50cyBzaG91bGQgZ28gdG8gImZvcmVncm91
bmQiCisgIGluZXJ0Q29udGFpbmVyLmluZXJ0ID0gZmFsc2U7CisgIGF3YWl0IG1vdmVQb2ludGVy
VG8oMCwgMCk7CisgIGxldCBwcm9taXNlcyA9IGV4cGVjdEV2ZW50c09uKFsibW91c2VvdmVyIiwg
Im1vdXNlZW50ZXIiLCAibW91c2Vtb3ZlIiwgIm1vdXNlZG93biIsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAibW91c2V1cCIsICJjbGljayIsICJhdXhjbGljayIsICJtb3VzZW91
dCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibW91c2VsZWF2ZSJdLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JlZ3JvdW5kKTsKKyAgYXdhaXQgY2xpY2tP
bihmb3JlZ3JvdW5kKTsKKyAgYXdhaXQgYXV4Q2xpY2tPbihmb3JlZ3JvdW5kKTsKKyAgYXdhaXQg
ZGJsQ2xpY2tPbihmb3JlZ3JvdW5kKTsKKyAgbGV0IGFuY2VzdG9yQm94ID0gYW5jZXN0b3JDb250
YWluZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CisgIGxldCBpbmVydEJveCA9IGluZXJ0Q29u
dGFpbmVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworICBsZXQgeCA9IGFuY2VzdG9yQm94Lmxl
ZnQgKyAoYW5jZXN0b3JCb3gud2lkdGggLyAyKTsKKyAgbGV0IHkgPSBpbmVydEJveC5ib3R0b20g
KyAoKGFuY2VzdG9yQm94LmJvdHRvbSAtIGluZXJ0Qm94LmJvdHRvbSkgLyAyKTsKKyAgYXdhaXQg
bW92ZVBvaW50ZXJUbyh4LCB5KTsKKyAgYXdhaXQgUHJvbWlzZS5hbGwocHJvbWlzZXMpOworfSwg
IlRlc3RzIHRoYXQgYW55IG1vdXNlIGV2ZW50IG9uIGEgbm9uLWluZXJ0IGVsZW1lbnQgaXMgY29y
cmVjdGx5IHRhcmdldGVkIHRvIHRoYXQgZWxlbWVudCIpOworCitwcm9taXNlX3Rlc3QoYXN5bmMg
KCkgPT4geworICAvLyBNYWtlIHRoZSBjb250YWluaW5nIGVsZW1lbnQgaW5lcnQgLSBub3cgZXZl
bnRzIHNob3VsZCBnbyB0byAiY29udGFpbmVyIgorICAvLyB3aGljaCBpcyB0aGUgbm9uLWluZXJ0
IGFuY2VzdG9yIGF0IHRoZSBzYW1lIHBvc2l0aW9uCisgIGluZXJ0Q29udGFpbmVyLmluZXJ0ID0g
dHJ1ZTsKKyAgYXdhaXQgbW92ZVBvaW50ZXJUbygwLCAwKTsKKworICBsZXQgcHJvbWlzZXMgPSBl
eHBlY3RFdmVudHNPbihbIm1vdXNlb3ZlciIsICJtb3VzZWVudGVyIiwgIm1vdXNlbW92ZSIsICJt
b3VzZWRvd24iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm1vdXNldXAiLCAi
Y2xpY2siLCAiYXV4Y2xpY2siXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5j
ZXN0b3JDb250YWluZXIpOworCisgIHByb21pc2VzID0gcHJvbWlzZXMuY29uY2F0KHVuZXhwZWN0
RXZlbnRzT24oWyJtb3VzZW91dCIsICJtb3VzZWxlYXZlIl0sCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5jZXN0b3JDb250YWluZXIpKTsKKworICBhd2Fp
dCBjbGlja09uKGZvcmVncm91bmQpOworICBhd2FpdCBhdXhDbGlja09uKGZvcmVncm91bmQpOwor
ICBhd2FpdCBkYmxDbGlja09uKGZvcmVncm91bmQpOworICBsZXQgYW5jZXN0b3JCb3ggPSBhbmNl
c3RvckNvbnRhaW5lci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgbGV0IGluZXJ0Qm94ID0g
aW5lcnRDb250YWluZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CisgIGxldCB4ID0gYW5jZXN0
b3JCb3gubGVmdCArIChhbmNlc3RvckJveC53aWR0aCAvIDIpOworICBsZXQgeSA9IGluZXJ0Qm94
LmJvdHRvbSArICgoYW5jZXN0b3JCb3guYm90dG9tIC0gaW5lcnRCb3guYm90dG9tKSAvIDIpOwor
ICBhd2FpdCBtb3ZlUG9pbnRlclRvKHgsIHkpOworICBhd2FpdCBQcm9taXNlLmFsbChwcm9taXNl
cyk7Cit9LCAnVGVzdHMgdGhhdCBhbnkgbW91c2UgZXZlbnQgb24gYW4gaW5lcnQgZWxlbWVudCBp
cyB0YXJnZXRlZCB0byB0aGUgbmVhcmVzdCBub24taW5lcnQgYW5jZXN0b3IgYXQgdGhlIHNhbWUg
Y29vcmRpbmF0ZXMnKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jICgpID0+IHsKKyAgLy8gVGVzdCBw
b2ludGVyIGV2ZW50cyBvbiBub24taW5lcnQgZWxlbWVudCAtIGV2ZW50cyBzaG91bGQgZ28gdG8g
ImZvcmVncm91bmQiCisgIGluZXJ0Q29udGFpbmVyLmluZXJ0ID0gZmFsc2U7CisgIGF3YWl0IG1v
dmVQb2ludGVyVG8oMCwgMCk7CisKKyAgbGV0IHByb21pc2VzID0gZXhwZWN0RXZlbnRzT24oWyJw
b2ludGVyb3ZlciIsICJwb2ludGVyZW50ZXIiLCAicG9pbnRlcm1vdmUiLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgInBvaW50ZXJkb3duIiwgInBvaW50ZXJ1cCIsICJwb2ludGVy
b3V0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwb2ludGVybGVhdmUiXSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yZWdyb3VuZCk7CisgIGF3YWl0IGNs
aWNrT24oZm9yZWdyb3VuZCk7CisgIGxldCBhbmNlc3RvckJveCA9IGFuY2VzdG9yQ29udGFpbmVy
LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworICBsZXQgaW5lcnRCb3ggPSBpbmVydENvbnRhaW5l
ci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgbGV0IHggPSBhbmNlc3RvckJveC5sZWZ0ICsg
KGFuY2VzdG9yQm94LndpZHRoIC8gMik7CisgIGxldCB5ID0gaW5lcnRCb3guYm90dG9tICsgKChh
bmNlc3RvckJveC5ib3R0b20gLSBpbmVydEJveC5ib3R0b20pIC8gMik7CisgIGF3YWl0IG1vdmVQ
b2ludGVyVG8oeCwgeSk7CisgIGF3YWl0IFByb21pc2UuYWxsKHByb21pc2VzKTsKK30sICJUZXN0
cyB0aGF0IGFueSBwb2ludGVyIGV2ZW50IG9uIGEgbm9uLWluZXJ0IGVsZW1lbnQgaXMgY29ycmVj
dGx5IHRhcmdldGVkIHRvIHRoYXQgZWxlbWVudCIpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgKCkg
PT4geworICAvLyBNYWtlIHRoZSBjb250YWluaW5nIGVsZW1lbnQgaW5lcnQgLSBub3cgZXZlbnRz
IHNob3VsZCBnbyB0byAiY29udGFpbmVyIgorICAvLyB3aGljaCBpcyB0aGUgbm9uLWluZXJ0IGFu
Y2VzdG9yIGF0IHRoZSBzYW1lIHBvc2l0aW9uCisgIGluZXJ0Q29udGFpbmVyLmluZXJ0ID0gdHJ1
ZTsKKyAgYXdhaXQgbW92ZVBvaW50ZXJUbygwLCAwKTsKKworICBsZXQgcHJvbWlzZXMgPSBleHBl
Y3RFdmVudHNPbihbInBvaW50ZXJvdmVyIiwgInBvaW50ZXJlbnRlciIsICJwb2ludGVybW92ZSIs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicG9pbnRlcmRvd24iLCAicG9pbnRl
cnVwIiBdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmNlc3RvckNvbnRhaW5l
cik7CisKKyAgcHJvbWlzZXMgPSBwcm9taXNlcy5jb25jYXQodW5leHBlY3RFdmVudHNPbihbInBv
aW50ZXJvdXQiLCAicG9pbnRlcmxlYXZlIl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgYW5jZXN0b3JDb250YWluZXIpKTsKKyAgYXdhaXQgY2xpY2tPbihm
b3JlZ3JvdW5kKTsKKyAgbGV0IGFuY2VzdG9yQm94ID0gYW5jZXN0b3JDb250YWluZXIuZ2V0Qm91
bmRpbmdDbGllbnRSZWN0KCk7CisgIGxldCBpbmVydEJveCA9IGluZXJ0Q29udGFpbmVyLmdldEJv
dW5kaW5nQ2xpZW50UmVjdCgpOworICBsZXQgeCA9IGFuY2VzdG9yQm94LmxlZnQgKyAoYW5jZXN0
b3JCb3gud2lkdGggLyAyKTsKKyAgbGV0IHkgPSBpbmVydEJveC5ib3R0b20gKyAoKGFuY2VzdG9y
Qm94LmJvdHRvbSAtIGluZXJ0Qm94LmJvdHRvbSkgLyAyKTsKKyAgYXdhaXQgbW92ZVBvaW50ZXJU
byh4LCB5KTsKKyAgYXdhaXQgUHJvbWlzZS5hbGwocHJvbWlzZXMpOworfSwgJ1Rlc3RzIHRoYXQg
YW55IHBvaW50ZXIgZXZlbnQgb24gYW4gaW5lcnQgZWxlbWVudCBpcyB0YXJnZXRlZCB0byB0aGUg
bmVhcmVzdCBub24taW5lcnQgYW5jZXN0b3IgYXQgdGhlIHNhbWUgY29vcmRpbmF0ZXMnKTsKKyAg
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LXJldGFyZ2V0aW5nLnRlbnRh
dGl2ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2luZXJ0L2luZXJ0LXJldGFyZ2V0aW5nLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYmI3NDVmYTIxOGRiY2I1YTRlYzZlNmZiYjZhZDJiNWI0ZGE5ZWExNQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aW5lcnQvaW5lcnQtcmV0YXJnZXRpbmcudGVudGF0aXZlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDQ3IEBACitDT05TT0xFIE1FU1NBR0U6IEVycm9yOiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCBF
bGVtZW50IG5vZGUgPGZpZWxkc2V0IGlkPSJhbmNlc3RvckNvbnRhaW5lciI+CisgICAgPGxlZ2Vu
ZD5Ob24taW5lcnQgYS4uLiBidXQgZ290IEVsZW1lbnQgbm9kZSA8YnV0dG9uIGlkPSJmb3JlZ3Jv
dW5kIiBjbGFzcz0iY2xpY2tlZCI+Zm9yZWdyb3VuZDwvYnV0dG9uPgorQ09OU09MRSBNRVNTQUdF
OiBFcnJvcjogYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgRWxlbWVudCBub2RlIDxmaWVsZHNldCBp
ZD0iYW5jZXN0b3JDb250YWluZXIiPgorICAgIDxsZWdlbmQ+Tm9uLWluZXJ0IGEuLi4gYnV0IGdv
dCBFbGVtZW50IG5vZGUgPGJ1dHRvbiBpZD0iZm9yZWdyb3VuZCIgY2xhc3M9ImNsaWNrZWQiPmZv
cmVncm91bmQ8L2J1dHRvbj4KK0NPTlNPTEUgTUVTU0FHRTogRXJyb3I6IGFzc2VydF9lcXVhbHM6
IGV4cGVjdGVkIEVsZW1lbnQgbm9kZSA8ZmllbGRzZXQgaWQ9ImFuY2VzdG9yQ29udGFpbmVyIj4K
KyAgICA8bGVnZW5kPk5vbi1pbmVydCBhLi4uIGJ1dCBnb3QgRWxlbWVudCBub2RlIDxidXR0b24g
aWQ9ImZvcmVncm91bmQiIGNsYXNzPSJjbGlja2VkIj5mb3JlZ3JvdW5kPC9idXR0b24+CitDT05T
T0xFIE1FU1NBR0U6IEVycm9yOiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCBFbGVtZW50IG5vZGUg
PGZpZWxkc2V0IGlkPSJhbmNlc3RvckNvbnRhaW5lciI+CisgICAgPGxlZ2VuZD5Ob24taW5lcnQg
YS4uLiBidXQgZ290IEVsZW1lbnQgbm9kZSA8YnV0dG9uIGlkPSJmb3JlZ3JvdW5kIiBjbGFzcz0i
Y2xpY2tlZCI+Zm9yZWdyb3VuZDwvYnV0dG9uPgorQ09OU09MRSBNRVNTQUdFOiBFcnJvcjogYXNz
ZXJ0X2VxdWFsczogZXhwZWN0ZWQgRWxlbWVudCBub2RlIDxmaWVsZHNldCBpZD0iYW5jZXN0b3JD
b250YWluZXIiPgorICAgIDxsZWdlbmQ+Tm9uLWluZXJ0IGEuLi4gYnV0IGdvdCBFbGVtZW50IG5v
ZGUgPGJ1dHRvbiBpZD0iZm9yZWdyb3VuZCIgY2xhc3M9ImNsaWNrZWQiPmZvcmVncm91bmQ8L2J1
dHRvbj4KK0NPTlNPTEUgTUVTU0FHRTogRXJyb3I6IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIEVs
ZW1lbnQgbm9kZSA8ZmllbGRzZXQgaWQ9ImFuY2VzdG9yQ29udGFpbmVyIj4KKyAgICA8bGVnZW5k
Pk5vbi1pbmVydCBhLi4uIGJ1dCBnb3QgRWxlbWVudCBub2RlIDxidXR0b24gaWQ9ImZvcmVncm91
bmQiIGNsYXNzPSJjbGlja2VkIj5mb3JlZ3JvdW5kPC9idXR0b24+CitDT05TT0xFIE1FU1NBR0U6
IEVycm9yOiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCBFbGVtZW50IG5vZGUgPGZpZWxkc2V0IGlk
PSJhbmNlc3RvckNvbnRhaW5lciI+CisgICAgPGxlZ2VuZD5Ob24taW5lcnQgYS4uLiBidXQgZ290
IEVsZW1lbnQgbm9kZSA8YnV0dG9uIGlkPSJmb3JlZ3JvdW5kIiBjbGFzcz0iY2xpY2tlZCI+Zm9y
ZWdyb3VuZDwvYnV0dG9uPgorQ09OU09MRSBNRVNTQUdFOiBFcnJvcjogYXNzZXJ0X2VxdWFsczog
ZXhwZWN0ZWQgRWxlbWVudCBub2RlIDxmaWVsZHNldCBpZD0iYW5jZXN0b3JDb250YWluZXIiPgor
ICAgIDxsZWdlbmQ+Tm9uLWluZXJ0IGEuLi4gYnV0IGdvdCBFbGVtZW50IG5vZGUgPGJ1dHRvbiBp
ZD0iZm9yZWdyb3VuZCIgY2xhc3M9ImNsaWNrZWQiPmZvcmVncm91bmQ8L2J1dHRvbj4KK0NPTlNP
TEUgTUVTU0FHRTogRXJyb3I6IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIEVsZW1lbnQgbm9kZSA8
ZmllbGRzZXQgaWQ9ImFuY2VzdG9yQ29udGFpbmVyIj4KKyAgICA8bGVnZW5kPk5vbi1pbmVydCBh
Li4uIGJ1dCBnb3QgRWxlbWVudCBub2RlIDxidXR0b24gaWQ9ImZvcmVncm91bmQiIGNsYXNzPSJj
bGlja2VkIj5mb3JlZ3JvdW5kPC9idXR0b24+CitDT05TT0xFIE1FU1NBR0U6IEVycm9yOiBhc3Nl
cnRfZXF1YWxzOiBleHBlY3RlZCBFbGVtZW50IG5vZGUgPGZpZWxkc2V0IGlkPSJhbmNlc3RvckNv
bnRhaW5lciI+CisgICAgPGxlZ2VuZD5Ob24taW5lcnQgYS4uLiBidXQgZ290IEVsZW1lbnQgbm9k
ZSA8YnV0dG9uIGlkPSJmb3JlZ3JvdW5kIiBjbGFzcz0iY2xpY2tlZCI+Zm9yZWdyb3VuZDwvYnV0
dG9uPgorQ09OU09MRSBNRVNTQUdFOiBFcnJvcjogYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgRWxl
bWVudCBub2RlIDxmaWVsZHNldCBpZD0iYW5jZXN0b3JDb250YWluZXIiPgorICAgIDxsZWdlbmQ+
Tm9uLWluZXJ0IGEuLi4gYnV0IGdvdCBFbGVtZW50IG5vZGUgPGJ1dHRvbiBpZD0iZm9yZWdyb3Vu
ZCIgY2xhc3M9ImNsaWNrZWQiPmZvcmVncm91bmQ8L2J1dHRvbj4KK0NPTlNPTEUgTUVTU0FHRTog
RXJyb3I6IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIEVsZW1lbnQgbm9kZSA8ZmllbGRzZXQgaWQ9
ImFuY2VzdG9yQ29udGFpbmVyIj4KKyAgICA8bGVnZW5kPk5vbi1pbmVydCBhLi4uIGJ1dCBnb3Qg
RWxlbWVudCBub2RlIDxidXR0b24gaWQ9ImZvcmVncm91bmQiIGNsYXNzPSJjbGlja2VkIj5mb3Jl
Z3JvdW5kPC9idXR0b24+CitDT05TT0xFIE1FU1NBR0U6IEVycm9yOiBhc3NlcnRfZXF1YWxzOiBl
eHBlY3RlZCBFbGVtZW50IG5vZGUgPGZpZWxkc2V0IGlkPSJhbmNlc3RvckNvbnRhaW5lciI+Cisg
ICAgPGxlZ2VuZD5Ob24taW5lcnQgYS4uLiBidXQgZ290IEVsZW1lbnQgbm9kZSA8YnV0dG9uIGlk
PSJmb3JlZ3JvdW5kIiBjbGFzcz0iY2xpY2tlZCI+Zm9yZWdyb3VuZDwvYnV0dG9uPgorQ2xpY2sg
b24gImZvcmVncm91bmQiLgorCitUaGUgYmx1ZSBzcXVhcmUgKCJOb24taW5lcnQgYW5jZXN0b3Ig
Y29udGFpbmVyIikgc2hvdWxkIHR1cm4gZ3JlZW4uCitUaGUgeWVsbG93LCBzZW1pLXRyYW5zcGFy
ZW50IHNxdWFyZSAoIk5vbi1pbmVydCwgZGlzcGxhY2VkIGNvbnRhaW5lciIpIHNob3VsZCBub3Qg
dHVybiByZWQuCisiTm9uLWluZXJ0IGJ1dHRvbiIgc2hvdWxkIG5vdCB0dXJuIHJlZC4KKyhUaGUg
ZnVsbCB0ZXN0IHN1aXRlIGNoZWNrcyBhIHJhbmdlIG9mIGV2ZW50cy4pCisKK05vbi1pbmVydCBh
bmNlc3RvciBjb250YWluZXIKK2JhY2tncm91bmROb24taW5lcnQsIGRpc3BsYWNlZCBhbmNlc3Rv
cgorSW5lcnQgY29udGFpbmVyCitmb3JlZ3JvdW5kCisKK0hhcm5lc3MgRXJyb3IgKEZBSUwpLCBt
ZXNzYWdlID0gRXJyb3I6IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIEVsZW1lbnQgbm9kZSA8Zmll
bGRzZXQgaWQ9ImFuY2VzdG9yQ29udGFpbmVyIj4KKyAgICA8bGVnZW5kPk5vbi1pbmVydCBhLi4u
IGJ1dCBnb3QgRWxlbWVudCBub2RlIDxidXR0b24gaWQ9ImZvcmVncm91bmQiIGNsYXNzPSJjbGlj
a2VkIj5mb3JlZ3JvdW5kPC9idXR0b24+CisKK1BBU1MgZWxlbWVudHNGcm9tUG9pbnQgcmV0dXJu
cyBpbmVydCBlbGVtZW50CitGQUlMIFRlc3RzIHRoYXQgYW55IG1vdXNlIGV2ZW50IG9uIGEgbm9u
LWluZXJ0IGVsZW1lbnQgaXMgY29ycmVjdGx5IHRhcmdldGVkIHRvIHRoYXQgZWxlbWVudCBwcm9t
aXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogImRpZCBub3QgZ2V0IGF1
eGNsaWNrIG9uIGZvcmVncm91bmQiCitGQUlMIFRlc3RzIHRoYXQgYW55IG1vdXNlIGV2ZW50IG9u
IGFuIGluZXJ0IGVsZW1lbnQgaXMgdGFyZ2V0ZWQgdG8gdGhlIG5lYXJlc3Qgbm9uLWluZXJ0IGFu
Y2VzdG9yIGF0IHRoZSBzYW1lIGNvb3JkaW5hdGVzIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJl
amVjdGlvbiB3aXRoIHZhbHVlOiAiZGlkIG5vdCBnZXQgbW91c2VvdmVyIG9uIGFuY2VzdG9yQ29u
dGFpbmVyIgorUEFTUyBUZXN0cyB0aGF0IGFueSBwb2ludGVyIGV2ZW50IG9uIGEgbm9uLWluZXJ0
IGVsZW1lbnQgaXMgY29ycmVjdGx5IHRhcmdldGVkIHRvIHRoYXQgZWxlbWVudAorRkFJTCBUZXN0
cyB0aGF0IGFueSBwb2ludGVyIGV2ZW50IG9uIGFuIGluZXJ0IGVsZW1lbnQgaXMgdGFyZ2V0ZWQg
dG8gdGhlIG5lYXJlc3Qgbm9uLWluZXJ0IGFuY2VzdG9yIGF0IHRoZSBzYW1lIGNvb3JkaW5hdGVz
IHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiAiZGlkIG5vdCBn
ZXQgcG9pbnRlcm92ZXIgb24gYW5jZXN0b3JDb250YWluZXIiCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtcmV0YXJn
ZXRpbmcudGVudGF0aXZlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2luZXJ0L2luZXJ0LXJldGFyZ2V0aW5nLnRlbnRhdGl2ZS5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjIyODBjZjVhNWQxZmIxNmVmMTkyMzEwZTRmYjRmN2QyMmIzNzAyYjMKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0
L2luZXJ0LXJldGFyZ2V0aW5nLnRlbnRhdGl2ZS5odG1sCkBAIC0wLDAgKzEsMjkwIEBACis8IURP
Q1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0
aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVz
c3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0ZHJpdmVy
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Rkcml2ZXItYWN0aW9u
cy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0ZHJpdmVyLXZlbmRv
ci5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+CitidXR0b24jZm9yZWdyb3VuZCwKK2J1dHRvbiNiYWNr
Z3JvdW5kIHsKKyAgcG9zaXRpb246IGFic29sdXRlOworICB0b3A6IDc1cHg7CisgIGxlZnQ6IDUw
cHg7CisgIHdpZHRoOiAxMDBweDsKKyAgaGVpZ2h0OiAyMHB4OworfQorCitidXR0b24jYmFja2dy
b3VuZCB7CisgIGxlZnQ6IDc1cHg7CisgIHdpZHRoOiAxNTBweDsKKyAgaGVpZ2h0OiA0MHB4Owor
ICB0b3A6IDEyNXB4OworICBsaW5lLWhlaWdodDogNTNweDsKK30KKworLmNsaWNrZWQgeworICBi
YWNrZ3JvdW5kLWNvbG9yOiByZWQ7Cit9CisKKyNhbmNlc3RvckNvbnRhaW5lci5jbGlja2VkIHsK
KyAgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47Cit9CisKKyNhbmNlc3RvckNvbnRhaW5lciB7Cisg
IHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgd2lkdGg6IDMwMHB4OworICBoZWlnaHQ6IDMwMHB4Owor
ICBiYWNrZ3JvdW5kLWNvbG9yOiBibHVlOworfQorCisjZGlzcGxhY2VkQW5jZXN0b3IgeworICBw
b3NpdGlvbjogYWJzb2x1dGU7CisgIHRvcDogMTNweDsKKyAgbGVmdDogMjQwcHg7CisgIHdpZHRo
OiAzMDBweDsKKyAgaGVpZ2h0OiAyNTBweDsKKyAgYmFja2dyb3VuZC1jb2xvcjogI2ZmODk7Cit9
CisKKyNkaXNwbGFjZWRBbmNlc3Rvci5jbGlja2VkIHsKKyAgYmFja2dyb3VuZC1jb2xvcjogI2Yw
MDk7Cit9CisKKyNpbmVydENvbnRhaW5lciB7CisgIGJhY2tncm91bmQtY29sb3I6ICNmZmY5Owor
ICBwb3NpdGlvbjogYWJzb2x1dGU7CisgIHRvcDogMzVweDsKKyAgbGVmdDogLTE5MnB4OworICB3
aWR0aDogMjAwcHg7CisgIGhlaWdodDogMjAwcHg7Cit9CisKK2ZpZWxkc2V0IHsKKyAgbWFyZ2lu
OiAwOworICBwYWRkaW5nOiAwOworICBib3JkZXI6IDFweCBzb2xpZCBibGFjazsKK30KKworbGVn
ZW5kIHsKKyAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7CisgIGJvcmRlcjogMXB4IHNvbGlkIGJs
YWNrOworICBtYXJnaW4tbGVmdDogNXB4OworfQorCitidXR0b24uY2xpY2tlZDo6YWZ0ZXIgewor
ICBjb250ZW50OiAiIChjbGlja2VkKSI7Cit9CisKKy5jbGlja2VkID4gbGVnZW5kOjphZnRlciB7
CisgIGNvbnRlbnQ6ICIgKGNsaWNrZWQpIjsKK30KKworPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5
PgorICA8cD5DbGljayBvbiAiZm9yZWdyb3VuZCIuPC9wPgorICA8dWw+CisgICAgPGxpPlRoZSBi
bHVlIHNxdWFyZSAoIk5vbi1pbmVydCBhbmNlc3RvciBjb250YWluZXIiKSBzaG91bGQgdHVybiBn
cmVlbi48L2xpPgorICAgIDxsaT5UaGUgeWVsbG93LCBzZW1pLXRyYW5zcGFyZW50IHNxdWFyZSAo
Ik5vbi1pbmVydCwgZGlzcGxhY2VkIGNvbnRhaW5lciIpIHNob3VsZCBub3QgdHVybiByZWQuPC9s
aT4KKyAgICA8bGk+Ik5vbi1pbmVydCBidXR0b24iIHNob3VsZCBub3QgdHVybiByZWQuPC9saT4K
KyAgPC91bD4KKyAgPHA+KFRoZSBmdWxsIHRlc3Qgc3VpdGUgY2hlY2tzIGEgcmFuZ2Ugb2YgZXZl
bnRzLik8L3A+CisgIDxmaWVsZHNldCBpZD0iYW5jZXN0b3JDb250YWluZXIiPgorICAgIDxsZWdl
bmQ+Tm9uLWluZXJ0IGFuY2VzdG9yIGNvbnRhaW5lcjwvbGVnZW5kPgorICAgIDxidXR0b24gaWQ9
ImJhY2tncm91bmQiPmJhY2tncm91bmQ8L2J1dHRvbj4KKyAgICA8ZmllbGRzZXQgaWQ9ImRpc3Bs
YWNlZEFuY2VzdG9yIj4KKyAgICAgIDxsZWdlbmQ+Tm9uLWluZXJ0LCBkaXNwbGFjZWQgYW5jZXN0
b3I8L2xlZ2VuZD4KKyAgICAgIDxmaWVsZHNldCBpZD0iaW5lcnRDb250YWluZXIiIGluZXJ0Pgor
ICAgICAgICA8bGVnZW5kPkluZXJ0IGNvbnRhaW5lcjwvbGVnZW5kPgorICAgICAgICA8YnV0dG9u
IGlkPSJmb3JlZ3JvdW5kIj5mb3JlZ3JvdW5kPC9idXR0b24+CisgICAgICA8L2ZpZWxkc2V0Pgor
ICAgIDwvZmllbGRzZXQ+CisgIDwvZmllbGRzZXQ+CisKKyAgPHNjcmlwdD4KK2RvY3VtZW50LmJv
ZHkuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoZSkgPT4geworICBlLnRhcmdldC5jbGFzc0xp
c3QuYWRkKCdjbGlja2VkJyk7Cit9KTsKKworZnVuY3Rpb24gY2xpY2tPbihlbGVtZW50KSB7Cisg
IHJldHVybiBuZXcgdGVzdF9kcml2ZXIuQWN0aW9ucygpCisgICAgICAucG9pbnRlck1vdmUoMCwg
MCwge29yaWdpbjogZWxlbWVudH0pCisgICAgICAucG9pbnRlckRvd24oe2J1dHRvbjogdGVzdF9k
cml2ZXIuQWN0aW9ucy5wcm90b3R5cGUuQnV0dG9uVHlwZS5MRUZUfSkKKyAgICAgIC5wb2ludGVy
VXAoe2J1dHRvbjogdGVzdF9kcml2ZXIuQWN0aW9ucy5wcm90b3R5cGUuQnV0dG9uVHlwZS5MRUZU
fSkKKyAgICAgIC5zZW5kKCk7Cit9CisKK2Z1bmN0aW9uIGF1eENsaWNrT24oZWxlbWVudCkgewor
ICByZXR1cm4gbmV3IHRlc3RfZHJpdmVyLkFjdGlvbnMoKQorICAgICAgLnBvaW50ZXJNb3ZlKDAs
IDAsIHtvcmlnaW46IGVsZW1lbnR9KQorICAgICAgLnBvaW50ZXJEb3duKHtidXR0b246IHRlc3Rf
ZHJpdmVyLkFjdGlvbnMucHJvdG90eXBlLkJ1dHRvblR5cGUuUklHSFR9KQorICAgICAgLnBvaW50
ZXJVcCh7YnV0dG9uOiB0ZXN0X2RyaXZlci5BY3Rpb25zLnByb3RvdHlwZS5CdXR0b25UeXBlLlJJ
R0hUfSkKKyAgICAgIC5zZW5kKCk7Cit9CisKK2Z1bmN0aW9uIGRibENsaWNrT24oZWxlbWVudCkg
eworICByZXR1cm4gbmV3IHRlc3RfZHJpdmVyLkFjdGlvbnMoKQorICAgICAgLnBvaW50ZXJNb3Zl
KDAsIDAsIHtvcmlnaW46IGVsZW1lbnR9KQorICAgICAgLnBvaW50ZXJEb3duKHtidXR0b246IHRl
c3RfZHJpdmVyLkFjdGlvbnMucHJvdG90eXBlLkJ1dHRvblR5cGUuTEVGVH0pCisgICAgICAucG9p
bnRlclVwKHtidXR0b246IHRlc3RfZHJpdmVyLkFjdGlvbnMucHJvdG90eXBlLkJ1dHRvblR5cGUu
TEVGVH0pCisgICAgICAucG9pbnRlckRvd24oe2J1dHRvbjogdGVzdF9kcml2ZXIuQWN0aW9ucy5w
cm90b3R5cGUuQnV0dG9uVHlwZS5MRUZUfSkKKyAgICAgIC5wb2ludGVyVXAoe2J1dHRvbjogdGVz
dF9kcml2ZXIuQWN0aW9ucy5wcm90b3R5cGUuQnV0dG9uVHlwZS5MRUZUfSkKKyAgICAgIC5zZW5k
KCk7Cit9CisKK2Z1bmN0aW9uIG1vdmVQb2ludGVyT3ZlcihlbGVtZW50KSB7CisgIGxldCByZWN0
ID0gZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgcmV0dXJuIG5ldyB0ZXN0X2Ry
aXZlci5BY3Rpb25zKCkKKyAgICAgIC5wb2ludGVyTW92ZSgwLCAwLCB7IG9yaWdpbjogZWxlbWVu
dCB9KQorICAgICAgLnNlbmQoKTsKK30KKworZnVuY3Rpb24gbW92ZVBvaW50ZXJUbyh4LCB5KSB7
CisgIHJldHVybiBuZXcgdGVzdF9kcml2ZXIuQWN0aW9ucygpCisgICAgICAucG9pbnRlck1vdmUo
eCwgeSwgeyBvcmlnaW46ICJ2aWV3cG9ydCIgfSkKKyAgICAgIC5zZW5kKCk7Cit9CisKK2Z1bmN0
aW9uIGV4cGVjdEV2ZW50c09uKGV2ZW50cywgZWxlbWVudCkgeworICBsZXQgcHJvbWlzZXMgPSBb
XTsKKyAgZm9yIChldmVudCBvZiBldmVudHMpIHsKKyAgICAoKGV2ZW50LCBlbGVtZW50KSA9PiB7
CisgICAgICB2YXIgcHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsK
KyAgICAgICAgbGV0IGYgPSAoZSkgPT4geworICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50eXBl
LCBldmVudCk7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldCwgZWxlbWVudCk7Cisg
ICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgICB9CisgICAgICAgIGVsZW1lbnQuYWRkRXZlbnRM
aXN0ZW5lcihldmVudCwgZiwgeyBjYXB0dXJlOiB0cnVlLCBvbmNlOiB0cnVlIH0pOworCisgICAg
ICAgIHN0ZXBfdGltZW91dCgoKSA9PiB7CisgICAgICAgICAgZWxlbWVudC5yZW1vdmVFdmVudExp
c3RlbmVyKGV2ZW50LCBmLCB7IGNhcHR1cmU6IHRydWUgfSk7CisgICAgICAgICAgcmVqZWN0KCJk
aWQgbm90IGdldCAiICsgZXZlbnQgKyAiIG9uICIgKyBlbGVtZW50LmlkKTsKKyAgICAgICAgfSwg
MTAwMCk7CisgICAgICB9KTsKKyAgICAgIHByb21pc2VzLnB1c2gocHJvbWlzZSk7CisgICAgfSko
ZXZlbnQsIGVsZW1lbnQpOworICB9CisgIHJldHVybiBwcm9taXNlczsKK30KKworZnVuY3Rpb24g
dW5leHBlY3RFdmVudHNPbihldmVudHMsIGVsZW1lbnQpIHsKKyAgbGV0IHByb21pc2VzID0gW107
CisgIGZvciAoZXZlbnQgb2YgZXZlbnRzKSB7CisgICAgKChldmVudCwgZWxlbWVudCkgPT4gewor
ICAgICAgdmFyIHByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7Cisg
ICAgICAgIGxldCBmID0gKGUpID0+IHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUudHlwZSwg
ZXZlbnQpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQsIGVsZW1lbnQpOworICAg
ICAgICAgIHJlamVjdCgiZ290ICIgKyBlLnR5cGUgKyAiIG9uICIgKyBlLnRhcmdldC5pZCk7Cisg
ICAgICAgIH0KKyAgICAgICAgZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKGV2ZW50LCBmLCB7IGNh
cHR1cmU6IHRydWUsIG9uY2U6IHRydWUgfSk7CisKKyAgICAgICAgc3RlcF90aW1lb3V0KCgpID0+
IHsKKyAgICAgICAgICBlbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnQsIGYsIHsgY2Fw
dHVyZTogdHJ1ZSB9KTsKKyAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgIH0sIDEwMDApOwor
ICAgICAgfSk7CisgICAgICBwcm9taXNlcy5wdXNoKHByb21pc2UpOworICAgIH0pKGV2ZW50LCBl
bGVtZW50KTsKKyAgfQorICByZXR1cm4gcHJvbWlzZXM7Cit9CisKK3Rlc3QoKCkgPT4geworICBs
ZXQgcmVjdCA9IGZvcmVncm91bmQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CisgIGxldCBjZW50
ZXJfeCA9IHJlY3QubGVmdCArIChyZWN0LndpZHRoIC8gMik7CisgIGxldCBjZW50ZXJfeSA9IHJl
Y3QudG9wICsgKHJlY3QuaGVpZ2h0IC8gMik7CisgIGFzc2VydF9lcXVhbHMoZG9jdW1lbnQuZWxl
bWVudHNGcm9tUG9pbnQoY2VudGVyX3gsIGNlbnRlcl95KVswXSwgZm9yZWdyb3VuZCk7Cit9LCAi
ZWxlbWVudHNGcm9tUG9pbnQgcmV0dXJucyBpbmVydCBlbGVtZW50Iik7CisKK3Byb21pc2VfdGVz
dChhc3luYyAoKSA9PiB7CisgIC8vIFRlc3QgbW91c2UgZXZlbnRzIG9uIG5vbi1pbmVydCBlbGVt
ZW50IC0gZXZlbnRzIHNob3VsZCBnbyB0byAiZm9yZWdyb3VuZCIKKyAgaW5lcnRDb250YWluZXIu
aW5lcnQgPSBmYWxzZTsKKyAgYXdhaXQgbW92ZVBvaW50ZXJUbygwLCAwKTsKKyAgbGV0IHByb21p
c2VzID0gZXhwZWN0RXZlbnRzT24oWyJtb3VzZW92ZXIiLCAibW91c2VlbnRlciIsICJtb3VzZW1v
dmUiLCAibW91c2Vkb3duIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJtb3Vz
ZXVwIiwgImNsaWNrIiwgImF1eGNsaWNrIiwgIm1vdXNlb3V0IiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJtb3VzZWxlYXZlIl0sCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGZvcmVncm91bmQpOworICBhd2FpdCBjbGlja09uKGZvcmVncm91bmQpOworICBhd2Fp
dCBhdXhDbGlja09uKGZvcmVncm91bmQpOworICBhd2FpdCBkYmxDbGlja09uKGZvcmVncm91bmQp
OworICBsZXQgYW5jZXN0b3JCb3ggPSBhbmNlc3RvckNvbnRhaW5lci5nZXRCb3VuZGluZ0NsaWVu
dFJlY3QoKTsKKyAgbGV0IGluZXJ0Qm94ID0gaW5lcnRDb250YWluZXIuZ2V0Qm91bmRpbmdDbGll
bnRSZWN0KCk7CisgIGxldCB4ID0gYW5jZXN0b3JCb3gubGVmdCArIChhbmNlc3RvckJveC53aWR0
aCAvIDIpOworICBsZXQgeSA9IGluZXJ0Qm94LmJvdHRvbSArICgoYW5jZXN0b3JCb3guYm90dG9t
IC0gaW5lcnRCb3guYm90dG9tKSAvIDIpOworICBhd2FpdCBtb3ZlUG9pbnRlclRvKHgsIHkpOwor
ICBhd2FpdCBQcm9taXNlLmFsbChwcm9taXNlcyk7Cit9LCAiVGVzdHMgdGhhdCBhbnkgbW91c2Ug
ZXZlbnQgb24gYSBub24taW5lcnQgZWxlbWVudCBpcyBjb3JyZWN0bHkgdGFyZ2V0ZWQgdG8gdGhh
dCBlbGVtZW50Iik7CisKK3Byb21pc2VfdGVzdChhc3luYyAoKSA9PiB7CisgIC8vIE1ha2UgdGhl
IGNvbnRhaW5pbmcgZWxlbWVudCBpbmVydCAtIG5vdyBldmVudHMgc2hvdWxkIGdvIHRvICJjb250
YWluZXIiCisgIC8vIHdoaWNoIGlzIHRoZSBub24taW5lcnQgYW5jZXN0b3IgYXQgdGhlIHNhbWUg
cG9zaXRpb24KKyAgaW5lcnRDb250YWluZXIuaW5lcnQgPSB0cnVlOworICBhd2FpdCBtb3ZlUG9p
bnRlclRvKDAsIDApOworCisgIGxldCBwcm9taXNlcyA9IGV4cGVjdEV2ZW50c09uKFsibW91c2Vv
dmVyIiwgIm1vdXNlZW50ZXIiLCAibW91c2Vtb3ZlIiwgIm1vdXNlZG93biIsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAibW91c2V1cCIsICJjbGljayIsICJhdXhjbGljayJdLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmNlc3RvckNvbnRhaW5lcik7CisKKyAg
Ly8gVE9ETyhhYm94aGFsbCk6IFdlIGFyZSBnZXR0aW5nIHRoZXNlIHVuZXhwZWN0ZWQgZXZlbnRz
LiBXaHk/CisgIHByb21pc2VzID0gcHJvbWlzZXMuY29uY2F0KHVuZXhwZWN0RXZlbnRzT24oWyJt
b3VzZW91dCIsICJtb3VzZWxlYXZlIl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYW5jZXN0b3JDb250YWluZXIpKTsKKworICBhd2FpdCBjbGlja09uKGZv
cmVncm91bmQpOworICBhd2FpdCBhdXhDbGlja09uKGZvcmVncm91bmQpOworICBhd2FpdCBkYmxD
bGlja09uKGZvcmVncm91bmQpOworICBsZXQgYW5jZXN0b3JCb3ggPSBhbmNlc3RvckNvbnRhaW5l
ci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgbGV0IGluZXJ0Qm94ID0gaW5lcnRDb250YWlu
ZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CisgIGxldCB4ID0gYW5jZXN0b3JCb3gubGVmdCAr
IChhbmNlc3RvckJveC53aWR0aCAvIDIpOworICBsZXQgeSA9IGluZXJ0Qm94LmJvdHRvbSArICgo
YW5jZXN0b3JCb3guYm90dG9tIC0gaW5lcnRCb3guYm90dG9tKSAvIDIpOworICBhd2FpdCBtb3Zl
UG9pbnRlclRvKHgsIHkpOworICBhd2FpdCBQcm9taXNlLmFsbChwcm9taXNlcyk7Cit9LCAnVGVz
dHMgdGhhdCBhbnkgbW91c2UgZXZlbnQgb24gYW4gaW5lcnQgZWxlbWVudCBpcyB0YXJnZXRlZCB0
byB0aGUgbmVhcmVzdCBub24taW5lcnQgYW5jZXN0b3IgYXQgdGhlIHNhbWUgY29vcmRpbmF0ZXMn
KTsKKworcHJvbWlzZV90ZXN0KGFzeW5jICgpID0+IHsKKyAgLy8gVGVzdCBwb2ludGVyIGV2ZW50
cyBvbiBub24taW5lcnQgZWxlbWVudCAtIGV2ZW50cyBzaG91bGQgZ28gdG8gImZvcmVncm91bmQi
CisgIGluZXJ0Q29udGFpbmVyLmluZXJ0ID0gZmFsc2U7CisgIGF3YWl0IG1vdmVQb2ludGVyVG8o
MCwgMCk7CisKKyAgbGV0IHByb21pc2VzID0gZXhwZWN0RXZlbnRzT24oWyJwb2ludGVyb3ZlciIs
ICJwb2ludGVyZW50ZXIiLCAicG9pbnRlcm1vdmUiLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgInBvaW50ZXJkb3duIiwgInBvaW50ZXJ1cCIsICJwb2ludGVyb3V0IiwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwb2ludGVybGVhdmUiXSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZm9yZWdyb3VuZCk7CisgIGF3YWl0IGNsaWNrT24oZm9yZWdy
b3VuZCk7CisgIGxldCBhbmNlc3RvckJveCA9IGFuY2VzdG9yQ29udGFpbmVyLmdldEJvdW5kaW5n
Q2xpZW50UmVjdCgpOworICBsZXQgaW5lcnRCb3ggPSBpbmVydENvbnRhaW5lci5nZXRCb3VuZGlu
Z0NsaWVudFJlY3QoKTsKKyAgbGV0IHggPSBhbmNlc3RvckJveC5sZWZ0ICsgKGFuY2VzdG9yQm94
LndpZHRoIC8gMik7CisgIGxldCB5ID0gaW5lcnRCb3guYm90dG9tICsgKChhbmNlc3RvckJveC5i
b3R0b20gLSBpbmVydEJveC5ib3R0b20pIC8gMik7CisgIGF3YWl0IG1vdmVQb2ludGVyVG8oeCwg
eSk7CisgIGF3YWl0IFByb21pc2UuYWxsKHByb21pc2VzKTsKK30sICJUZXN0cyB0aGF0IGFueSBw
b2ludGVyIGV2ZW50IG9uIGEgbm9uLWluZXJ0IGVsZW1lbnQgaXMgY29ycmVjdGx5IHRhcmdldGVk
IHRvIHRoYXQgZWxlbWVudCIpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgKCkgPT4geworICAvLyBN
YWtlIHRoZSBjb250YWluaW5nIGVsZW1lbnQgaW5lcnQgLSBub3cgZXZlbnRzIHNob3VsZCBnbyB0
byAiY29udGFpbmVyIgorICAvLyB3aGljaCBpcyB0aGUgbm9uLWluZXJ0IGFuY2VzdG9yIGF0IHRo
ZSBzYW1lIHBvc2l0aW9uCisgIGluZXJ0Q29udGFpbmVyLmluZXJ0ID0gdHJ1ZTsKKyAgYXdhaXQg
bW92ZVBvaW50ZXJUbygwLCAwKTsKKworICBsZXQgcHJvbWlzZXMgPSBleHBlY3RFdmVudHNPbihb
InBvaW50ZXJvdmVyIiwgInBvaW50ZXJlbnRlciIsICJwb2ludGVybW92ZSIsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAicG9pbnRlcmRvd24iLCAicG9pbnRlcnVwIiBdLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmNlc3RvckNvbnRhaW5lcik7CisKKyAgLy8g
VE9ETyhhYm94aGFsbCk6IFdlIGFyZSBnZXR0aW5nIHRoZXNlIHVuZXhwZWN0ZWQgZXZlbnRzLiBX
aHk/CisgIHByb21pc2VzID0gcHJvbWlzZXMuY29uY2F0KHVuZXhwZWN0RXZlbnRzT24oWyJwb2lu
dGVyb3V0IiwgInBvaW50ZXJsZWF2ZSJdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGFuY2VzdG9yQ29udGFpbmVyKSk7CisKKyAgYXdhaXQgY2xpY2tPbihm
b3JlZ3JvdW5kKTsKKyAgbGV0IGFuY2VzdG9yQm94ID0gYW5jZXN0b3JDb250YWluZXIuZ2V0Qm91
bmRpbmdDbGllbnRSZWN0KCk7CisgIGxldCBpbmVydEJveCA9IGluZXJ0Q29udGFpbmVyLmdldEJv
dW5kaW5nQ2xpZW50UmVjdCgpOworICBsZXQgeCA9IGFuY2VzdG9yQm94LmxlZnQgKyAoYW5jZXN0
b3JCb3gud2lkdGggLyAyKTsKKyAgbGV0IHkgPSBpbmVydEJveC5ib3R0b20gKyAoKGFuY2VzdG9y
Qm94LmJvdHRvbSAtIGluZXJ0Qm94LmJvdHRvbSkgLyAyKTsKKyAgYXdhaXQgbW92ZVBvaW50ZXJU
byh4LCB5KTsKKyAgYXdhaXQgUHJvbWlzZS5hbGwocHJvbWlzZXMpOworfSwgJ1Rlc3RzIHRoYXQg
YW55IHBvaW50ZXIgZXZlbnQgb24gYW4gaW5lcnQgZWxlbWVudCBpcyB0YXJnZXRlZCB0byB0aGUg
bmVhcmVzdCBub24taW5lcnQgYW5jZXN0b3IgYXQgdGhlIHNhbWUgY29vcmRpbmF0ZXMnKTsKKwor
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L3czYy1pbXBvcnQubG9nIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC93M2MtaW1wb3J0Lmxv
ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5lZmYxYTcxNTBjYjYwYjIyNzNiMzgwOTFkMzJhOTM2NDE0MjgxOWFjCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9pbmVydC93M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsxLDI2IEBACitUaGUgdGVzdHMgaW4g
dGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KK0Rv
IE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwgY3Jl
YXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNv
bS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0CisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2lt
cG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3Ig
cmVtb3ZlIHRoaXMgZmlsZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmlu
ZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRv
ciBwcmVmaXhlczoKK05vbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LWRvZXMt
bm90LW1hdGNoLWRpc2FibGVkLXNlbGVjdG9yLnRlbnRhdGl2ZS5odG1sCisvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1pbi1zaGFkb3ctZG9t
LnRlbnRhdGl2ZS5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9pbmVydC9pbmVydC1pbmxpbmVzLnRlbnRhdGl2ZS5odG1sCisvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1sYWJlbC1mb2N1cy50ZW50
YXRpdmUuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aW5lcnQvaW5lcnQtbm9kZS1pcy11bmVkaXRhYmxlLnRlbnRhdGl2ZS5odG1sCisvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1ub2RlLWlzLXVu
Zm9jdXNhYmxlLnRlbnRhdGl2ZS5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1ub2RlLWlzLXVuc2VsZWN0YWJsZS50ZW50YXRpdmUu
aHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQv
aW5lcnQtb24tc2xvdHMudGVudGF0aXZlLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LXJldGFyZ2V0aW5nLWlmcmFtZS50ZW50YXRp
dmUuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5l
cnQvaW5lcnQtcmV0YXJnZXRpbmcudGVudGF0aXZlLmh0bWwK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>435994</attachid>
            <date>2021-08-20 08:56:08 -0700</date>
            <delta_ts>2021-08-23 07:08:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-165279-20210820175607.patch</filename>
            <type>text/plain</type>
            <size>68956</size>
            <attacher name="Tim Nguyen (:ntim)">ntim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxMzE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGI2Yzg5OGViZjY2ZWExZjUyNTc1Mzg5
MmJkMjE2ZWMzMDQxZTE5YzkuLmJlYTk4ODdkYzg2ODA5NjY2MGViZGNkMjJjNjYxOTVmODA4ODdl
MmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMDgtMjAgIFRpbSBOZ3V5ZW4gIDxudGltQGFw
cGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgaW5lcnQgYXR0cmlidXRlIGJlaGluZCBmZWF0
dXJlIGZsYWcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE2NTI3OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFkZCBydW50aW1lIEluZXJ0QXR0cmlidXRlRW5hYmxlZCBmZWF0dXJlIGZsYWcgZGlzYWJsZWQg
YnkgZGVmYXVsdC4KKworICAgICAgICAqIFNjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5j
ZXNFeHBlcmltZW50YWwueWFtbDoKKwogMjAyMS0wOC0xOSAgQW50dGkgS29pdmlzdG8gIDxhbnR0
aUBhcHBsZS5jb20+CiAKICAgICAgICAgWzpoYXMoKSBwc2V1ZG8tY2xhc3NdIEJhc2ljIHN1cHBv
cnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwppbmRleCA4NTc4MWRiN2ZhOWY1MzhiM2UyYTRiODc4NGI1YmYwMWU4Yjc3YTU5
Li42ZDg5NjkyMmJhY2I2MzQzNDIzNzRkZTkyOGUzMDJhNDA5Y2IyNjlkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjcgQEAKKzIwMjEtMDgtMjAgIFRpbSBOZ3V5ZW4gIDxudGltQGFwcGxlLmNvbT4K
KworICAgICAgICBJbXBsZW1lbnQgaW5lcnQgYXR0cmlidXRlIGJlaGluZCBmZWF0dXJlIGZsYWcK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NTI3OQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3RzOiBp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2ZyYW1lL2J1dHRvbi5odG1sCisg
ICAgICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0
LWRvZXMtbm90LW1hdGNoLWRpc2FibGVkLXNlbGVjdG9yLnRlbnRhdGl2ZS5odG1sCisgICAgICAg
ICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LWluLXNo
YWRvdy1kb20udGVudGF0aXZlLmh0bWwKKyAgICAgICAgICAgICAgIGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtaW5saW5lcy50ZW50YXRpdmUuaHRtbAorICAgICAg
ICAgICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1sYWJl
bC1mb2N1cy50ZW50YXRpdmUuaHRtbAorICAgICAgICAgICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1ub2RlLWlzLXVuZWRpdGFibGUudGVudGF0aXZlLmh0
bWwKKyAgICAgICAgICAgICAgIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQv
aW5lcnQtbm9kZS1pcy11bmZvY3VzYWJsZS50ZW50YXRpdmUuaHRtbAorICAgICAgICAgICAgICAg
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1ub2RlLWlzLXVuc2Vs
ZWN0YWJsZS50ZW50YXRpdmUuaHRtbAorICAgICAgICAgICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1vbi1zbG90cy50ZW50YXRpdmUuaHRtbAorICAgICAg
ICAgICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1yZXRh
cmdldGluZy1pZnJhbWUudGVudGF0aXZlLmh0bWwKKyAgICAgICAgICAgICAgIGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtcmV0YXJnZXRpbmcudGVudGF0aXZlLmh0
bWwKKworICAgICAgICAqIGRvbS9Ob2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6Omlz
SW5lcnQgY29uc3QpOgorICAgICAgICAqIGh0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluOgorICAg
ICAgICAqIGh0bWwvSFRNTEVsZW1lbnQuaWRsOgorCiAyMDIxLTA4LTIwICBDb21taXQgUXVldWUg
IDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByZXZlcnRp
bmcgcjI4MTMwNy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9X
ZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sIGIvU291cmNlL1dURi9TY3JpcHRzL1ByZWZl
cmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKaW5kZXggNWZkYjI0NTRjOTk0
NDQwZjdlOGRmNzUyN2ZmY2UxODcwMzNiMzk3YS4uMTg1YTVhYzBmNDU0Yzc2YzAzNDc5MmFkMTg1
NzYxZmNjYTY5NDk5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2Vz
L1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKKysrIGIvU291cmNlL1dURi9TY3JpcHRz
L1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKQEAgLTUzNCw2ICs1
MzQsMTggQEAgSW5jcmVtZW50YWxQREZMb2FkaW5nRW5hYmxlZDoKICAgICBXZWJLaXQ6CiAgICAg
ICBkZWZhdWx0OiBXZWJLaXQ6OmRlZmF1bHRJbmNyZW1lbnRhbFBERkVuYWJsZWQoKQogCitJbmVy
dEF0dHJpYnV0ZUVuYWJsZWQ6CisgIHR5cGU6IGJvb2wKKyAgaHVtYW5SZWFkYWJsZU5hbWU6ICJp
bmVydCBhdHRyaWJ1dGUiCisgIGh1bWFuUmVhZGFibGVEZXNjcmlwdGlvbjogIkVuYWJsZSBpbmVy
dCBhdHRyaWJ1dGUgc3VwcG9ydCIKKyAgZGVmYXVsdFZhbHVlOgorICAgIFdlYktpdExlZ2FjeToK
KyAgICAgIGRlZmF1bHQ6IGZhbHNlCisgICAgV2ViS2l0OgorICAgICAgZGVmYXVsdDogZmFsc2UK
KyAgICBXZWJDb3JlOgorICAgICAgZGVmYXVsdDogZmFsc2UKKwogIyBGSVhNRTogVGhpcyBpcyBv
biBieSBkZWZhdWx0IGluIFdlYktpdDIuIFBlcmhhcHMgd2Ugc2hvdWxkIGNvbnNpZGVyIHR1cm5p
bmcgaXQgb24gZm9yIFdlYktpdExlZ2FjeSBhcyB3ZWxsLgogSW50ZXJzZWN0aW9uT2JzZXJ2ZXJF
bmFibGVkOgogICB0eXBlOiBib29sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9k
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKaW5kZXggN2VlMTEyNjRjNzcyNmY0
NDQ4MjRjZjRhZDc0OWM4MTM4NjNjZDk0YS4uYjZlZjViMDZjYmUxZGE1NzBlNDI3YTY3MmMxNzMw
NmMwODkwZmI0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcApAQCAtMjYzMiw2ICsyNjMyLDE1IEBAIGJvb2wg
Tm9kZTo6aXNJbmVydCgpIGNvbnN0CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAK
KyAgICBpZiAoZG9jdW1lbnQoKS5zZXR0aW5ncygpLmluZXJ0QXR0cmlidXRlRW5hYmxlZCgpKSB7
CisgICAgICAgIGNvbnN0IEVsZW1lbnQqIGVsZW1lbnQgPSBpczxFbGVtZW50Pih0aGlzKSA/IGRv
d25jYXN0PEVsZW1lbnQ+KHRoaXMpIDogcGFyZW50RWxlbWVudCgpOworICAgICAgICB3aGlsZSAo
ZWxlbWVudCkgeworICAgICAgICAgICAgaWYgKGlzPEhUTUxFbGVtZW50PihlbGVtZW50KSAmJiBl
bGVtZW50LT5oYXNBdHRyaWJ1dGUoSFRNTE5hbWVzOjppbmVydEF0dHIpKQorICAgICAgICAgICAg
ICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgZWxlbWVudCA9IGVsZW1lbnQtPnBhcmVudEVs
ZW1lbnQoKTsKKyAgICAgICAgfQorICAgIH0KKwogICAgIGlmICghZG9jdW1lbnQoKS5mcmFtZSgp
IHx8ICFkb2N1bWVudCgpLmZyYW1lKCktPm93bmVyRWxlbWVudCgpKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEF0dHJpYnV0ZU5h
bWVzLmluIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4KaW5kZXgg
NGZkY2I5ZDMyMThlNzJiODFjMzQ1ZGI1NzFmZWJiMWJkZDlkYzYxNC4uNjI2ZmU0OWRmMmZmZDQ3
OGMyZmUwNGY0MjA3ZGJkNGRmZDdjNjliYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MQXR0cmlidXRlTmFtZXMuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXR0
cmlidXRlTmFtZXMuaW4KQEAgLTE1Nyw2ICsxNTcsNyBAQCBpbWFnZXNpemVzCiBpbWFnZXNyY3Nl
dAogaW5jcmVtZW50YWwKIGluZGV0ZXJtaW5hdGUKK2luZXJ0CiBpbnB1dG1vZGUKIGludGVncml0
eQogaXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaWRsIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5pZGwKaW5kZXggMzRlMzljMjdlMmFhZTgy
ZDQzMjU5OWExZWMyMjU4NWFkYmFhNDI3MS4uZmQxZGMyMDI5NjNmYmE4MTMyMjQ2MTAyM2VjYWE0
ZGRjMTAyMjNlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5p
ZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5pZGwKQEAgLTU1LDYgKzU1
LDkgQEAKIAogICAgIC8vIE5vbi1zdGFuZGFyZDogV2UgYXJlIHRoZSBvbmx5IGJyb3dzZXIgdG8g
c3VwcG9ydCB0aGlzIG5vdyB0aGF0IEJsaW5rIGRyb3BwZWQgaXQgKGh0dHA6Ly9jcmJ1Zy5jb20v
Njg4OTQzKS4KICAgICBbQ0VSZWFjdGlvbnMsIFJlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJpbmcg
d2Via2l0ZHJvcHpvbmU7CisKKyAgICAvLyBFeHBlcmltZW50YWw6IGh0dHBzOi8vZ2l0aHViLmNv
bS9XSUNHL2luZXJ0L2Jsb2IvbWFzdGVyL1JFQURNRS5tZAorICAgIFtDRVJlYWN0aW9ucywgUmVm
bGVjdCwgRW5hYmxlZEJ5U2V0dGluZz1JbmVydEF0dHJpYnV0ZV0gYXR0cmlidXRlIGJvb2xlYW4g
aW5lcnQ7CiB9OwogCiBIVE1MRWxlbWVudCBpbmNsdWRlcyBHbG9iYWxFdmVudEhhbmRsZXJzOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CmluZGV4IDg2MTUxOTQ0MDhiNGFiMmQ4OWVjYjdhNDY4ZWRmODEyNmMyNmM1M2IuLjk0N2E5NDFk
MTAyZGQwNmE0NDZhMjYxZjcxODViYzQzYjE5ZjgzODcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAor
MjAyMS0wOC0yMCAgVGltIE5ndXllbiAgPG50aW1AYXBwbGUuY29tPgorCisgICAgICAgIEltcGxl
bWVudCBpbmVydCBhdHRyaWJ1dGUgYmVoaW5kIGZlYXR1cmUgZmxhZworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY1Mjc5CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ3JlYXRlIGlPUyBiYXNlbGluZXMuCisK
KyAgICAgICAgKiBwbGF0Zm9ybS9pb3Mtd2syL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvaW5lcnQvaW5lcnQtbm9kZS1pcy11bmVkaXRhYmxlLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2lvcy13azIvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1yZXRhcmdldGluZy1pZnJhbWUudGVudGF0aXZlLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vaW9zLXdrMi9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LXJldGFyZ2V0aW5nLnRlbnRhdGl2ZS1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorCiAyMDIxLTA4LTIwICBDb21taXQgUXVldWUgIDxjb21taXQtcXVl
dWVAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByZXZlcnRpbmcgcjI4MTMwNy4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IDkwMjE4MWQ2YzA1ZTdkMmMyZmJhZDJm
YWQ4Zjk2Y2Q4NTJhNjhiNzMuLmIxOWVkNjcyZjNmZmFhNjIxZTU5MzU5ZDRmOTNmZTQ2MDk0MDhm
NzggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDIx
LTA4LTIwICBUaW0gTmd1eWVuICA8bnRpbUBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50
IGluZXJ0IGF0dHJpYnV0ZSBiZWhpbmQgZmVhdHVyZSBmbGFnCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjUyNzkKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBvcnQgaW5lcnQvIFdQVCBkaXJlY3Rvcnkg
dXNpbmcgYGltcG9ydC13M2MtdGVzdHMgLXQgd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0YC4KKyAg
ICAgICAgV1BUIHJldmlzaW9uOiBodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3Rz
L3dwdC9jb21taXQvZjAyZTM4ZDdhNjc5OTk2ODNkMDU1NzlmNjJiMzM5NDMwYzYxZTRlYworCisg
ICAgICAgICogcmVzb3VyY2VzL2ltcG9ydC1leHBlY3RhdGlvbnMuanNvbjoKKyAgICAgICAgKiBy
ZXNvdXJjZXMvcmVzb3VyY2UtZmlsZXMuanNvbjoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVz
dHMvaW5lcnQvZnJhbWUvYnV0dG9uLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9pbmVydC9mcmFtZS93M2MtaW1wb3J0LmxvZzogQWRkZWQuCisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LWRvZXMtbm90LW1hdGNoLWRpc2FibGVkLXNlbGVj
dG9yLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9pbmVydC9pbmVydC1kb2VzLW5vdC1tYXRjaC1kaXNhYmxlZC1zZWxlY3Rvci50ZW50
YXRpdmUuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2lu
ZXJ0LWluLXNoYWRvdy1kb20udGVudGF0aXZlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LWluLXNoYWRvdy1kb20udGVudGF0aXZl
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1p
bmxpbmVzLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1pbmxpbmVzLnRlbnRhdGl2ZS5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtbGFiZWwtZm9jdXMudGVudGF0
aXZlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2lu
ZXJ0L2luZXJ0LWxhYmVsLWZvY3VzLnRlbnRhdGl2ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtbm9kZS1pcy11bmVkaXRhYmxlLnRlbnRhdGl2
ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9pbmVy
dC9pbmVydC1ub2RlLWlzLXVuZWRpdGFibGUudGVudGF0aXZlLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1ub2RlLWlzLXVuZm9jdXNhYmxlLnRl
bnRhdGl2ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0
cy9pbmVydC9pbmVydC1ub2RlLWlzLXVuZm9jdXNhYmxlLnRlbnRhdGl2ZS5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtbm9kZS1pcy11bnNlbGVj
dGFibGUudGVudGF0aXZlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL2luZXJ0L2luZXJ0LW5vZGUtaXMtdW5zZWxlY3RhYmxlLnRlbnRhdGl2ZS5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtb24tc2xv
dHMudGVudGF0aXZlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL2luZXJ0L2luZXJ0LW9uLXNsb3RzLnRlbnRhdGl2ZS5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtcmV0YXJnZXRpbmctaWZyYW1lLnRl
bnRhdGl2ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0
cy9pbmVydC9pbmVydC1yZXRhcmdldGluZy1pZnJhbWUudGVudGF0aXZlLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1yZXRhcmdldGluZy50ZW50
YXRpdmUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
aW5lcnQvaW5lcnQtcmV0YXJnZXRpbmcudGVudGF0aXZlLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC93M2MtaW1wb3J0LmxvZzogQWRkZWQuCisKIDIwMjEt
MDgtMjAgIFRpbSBOZ3V5ZW4gIDxudGltQGFwcGxlLmNvbT4KIAogICAgICAgICBJbml0aWFsIGlt
cGxlbWVudGF0aW9uIG9mIGluZXJ0IHN1YnRyZWVzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvcmVzb3VyY2VzL2ltcG9ydC1leHBlY3RhdGlvbnMuanNvbiBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9yZXNvdXJjZXMvaW1wb3J0LWV4cGVjdGF0aW9ucy5qc29uCmluZGV4
IDU3M2EwNmMwZDkyODgwMDI0OTJjN2FiYjc0Mzc1MTMwODM3N2ViNDMuLmY4OTJiN2MyZGNhMzI1
MGUzZDJhN2JkNTdmMjg2YzJlYmM0YmM2NTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9yZXNvdXJjZXMvaW1wb3J0LWV4cGVjdGF0aW9ucy5qc29uCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9yZXNvdXJjZXMvaW1wb3J0LWV4cGVjdGF0aW9ucy5qc29uCkBAIC0z
MzQsNiArMzM0LDcgQEAKICAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2ltYWdlLWRlY29kZXMiOiAi
c2tpcCIsIAogICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaW1hZ2ViaXRtYXAtcmVuZGVyaW5nY29u
dGV4dCI6ICJpbXBvcnQiLCAKICAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2ltYWdlcyI6ICJpbXBv
cnQiLCAKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0IjogImltcG9ydCIsIAogICAgICJ3
ZWItcGxhdGZvcm0tdGVzdHMvaW5mcmFzdHJ1Y3R1cmUiOiAiaW1wb3J0IiwgCiAgICAgIndlYi1w
bGF0Zm9ybS10ZXN0cy9pbm5lclRleHQiOiAiaW1wb3J0IiwgCiAgICAgIndlYi1wbGF0Zm9ybS10
ZXN0cy9pbnB1dC1ldmVudHMiOiAic2tpcCIsIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3Jlc291cmNlcy9yZXNvdXJjZS1maWxlcy5qc29uIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3Jlc291cmNlcy9yZXNvdXJjZS1maWxlcy5qc29uCmluZGV4IDhmNjc0MDUzYjI0
YTc4YjE5NTQ5OTBjZTY2ZmRhYjQ5MWExNThmOWIuLmIxNzhlMGFkMjA4NTRmNzdjODUyNDNiMTg4
MmQ5YzQwMTZkNGExZDkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9yZXNv
dXJjZXMvcmVzb3VyY2UtZmlsZXMuanNvbgorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
cmVzb3VyY2VzL3Jlc291cmNlLWZpbGVzLmpzb24KQEAgLTI3NzIsNiArMjc3Miw3IEBACiAgICAg
ICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC93ZWJhcHBhcGlzL3NjcmlwdGluZy9ldmVudHMv
b25lcnJvcmV2ZW50aGFuZGxlci1mcmFtZS5odG1sIiwKICAgICAgICAgIndlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL3dlYmFwcGFwaXMvdXNlci1wcm9tcHRzL2Nhbm5vdC1zaG93LXNpbXBsZS1kaWFs
b2dzL3N1cHBvcnQvY29uZmlybS5odG1sIiwKICAgICAgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL3dlYmFwcGFwaXMvdXNlci1wcm9tcHRzL2Nhbm5vdC1zaG93LXNpbXBsZS1kaWFsb2dzL3N1
cHBvcnQvcHJvbXB0Lmh0bWwiLAorICAgICAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2Zy
YW1lL2J1dHRvbi5odG1sIiwKICAgICAgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9pbmZyYXN0cnVj
dHVyZS9hc3N1bXB0aW9ucy9haGVtLW5vdHJlZi5odG1sIiwKICAgICAgICAgIndlYi1wbGF0Zm9y
bS10ZXN0cy9pbmZyYXN0cnVjdHVyZS9yZWZ0ZXN0L3JlZC5odG1sIiwKICAgICAgICAgIndlYi1w
bGF0Zm9ybS10ZXN0cy9pbnRlcnNlY3Rpb24tb2JzZXJ2ZXIvb2JzZXJ2ZXItaW4taWZyYW1lLmh0
bWwiLApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9pbmVydC9mcmFtZS9idXR0b24uaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvZnJhbWUvYnV0dG9uLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTg2
N2M3NTgxNDJjNjY1MjM2MmEyM2YxOTUzM2E4ZDg2ZmUyOTY0OAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvZnJhbWUv
YnV0dG9uLmh0bWwKQEAgLTAsMCArMSwzNiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxo
ZWFkPgorPHN0eWxlPgorYm9keSB7CisgIG92ZXJmbG93OiBoaWRkZW47Cit9CisKK2J1dHRvbiNi
YWNrZ3JvdW5kIHsKKyAgcG9zaXRpb246IGFic29sdXRlOworICB0b3A6IDA7CisgIGxlZnQ6IDA7
CisgIHdpZHRoOiAxNTBweDsKKyAgaGVpZ2h0OiA0MHB4OworICBsaW5lLWhlaWdodDogNTNweDsK
K30KKworYnV0dG9uLmNsaWNrZWQgeworICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7Cit9CisKK2J1
dHRvbi5jbGlja2VkOjphZnRlciB7CisgIGNvbnRlbnQ6ICIgKGNsaWNrZWQpIjsKK30KKworPC9z
dHlsZT4KKzwvaGVhZD4KKzxib2R5PgorICA8YnV0dG9uIGlkPSJiYWNrZ3JvdW5kIj5iYWNrZ3Jv
dW5kPC9idXR0b24+Cis8c2NyaXB0PgorZG9jdW1lbnQuYm9keS5hZGRFdmVudExpc3RlbmVyKCdj
bGljaycsIChlKSA9PiB7CisgIGUudGFyZ2V0LmNsYXNzTGlzdC5hZGQoJ2NsaWNrZWQnKTsKK30p
OworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2ZyYW1lL3czYy1pbXBvcnQubG9n
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9mcmFt
ZS93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNDUxYjA4YjdiM2IyYTEyNjNjZjBiMDJlNzg4
ZTA3NDFjMDAyMGE2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9mcmFtZS93M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsx
LDE3IEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRo
ZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4g
V2ViS2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHVi
OgorCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0CisKK1RoZW4gcnVu
IHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0
CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KKworLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCitQcm9wZXJ0eSB2
YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKKy0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor
TGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2luZXJ0L2ZyYW1lL2J1dHRvbi5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LWRvZXMtbm90LW1hdGNoLWRp
c2FibGVkLXNlbGVjdG9yLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LWRvZXMtbm90LW1hdGNoLWRp
c2FibGVkLXNlbGVjdG9yLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTlkNjM5
ZTE4Yjc4Y2RjMTVlMzZjOGEzOGIxMDBjZTQxNDEyMWI3YwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtZG9l
cy1ub3QtbWF0Y2gtZGlzYWJsZWQtc2VsZWN0b3IudGVudGF0aXZlLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDQgQEAKK1RoZSB0ZXN0IHBhc3NlcyBpZiB0aGlzIGlzIGluIGdyZWVuLgorCitQQVNT
IFRlc3RzIHRoYXQgaW5lcnQgZWxlbWVudHMgZG8gbm90IG1hdGNoIHRoZSA6ZGlzYWJsZWQgc2Vs
ZWN0b3IuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaW5lcnQvaW5lcnQtZG9lcy1ub3QtbWF0Y2gtZGlzYWJsZWQtc2VsZWN0b3IudGVu
dGF0aXZlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2luZXJ0L2luZXJ0LWRvZXMtbm90LW1hdGNoLWRpc2FibGVkLXNlbGVjdG9yLnRlbnRhdGl2ZS5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjc0YjhhYzNmN2RkNWMzNDQ3YmY0N2ZkNzMyZmFkZTkyMjA0OTdjOTMK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2luZXJ0L2luZXJ0LWRvZXMtbm90LW1hdGNoLWRpc2FibGVkLXNlbGVjdG9yLnRlbnRh
dGl2ZS5odG1sCkBAIC0wLDAgKzEsMjcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVh
ZD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxz
dHlsZT4KK2J1dHRvbiB7CisgICAgY29sb3I6IGdyZWVuOworfQorCitidXR0b246ZGlzYWJsZWQg
eworICAgIGNvbG9yOiByZWQ7Cit9CisKKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keSBzdHlsZT0i
Y29sb3I6IGdyZWVuIj4KKzxidXR0b24gaW5lcnQ+VGhlIHRlc3QgcGFzc2VzIGlmIHRoaXMgaXMg
aW4gZ3JlZW4uPC9idXR0b24+Cis8c2NyaXB0PgordGVzdChmdW5jdGlvbigpIHsKKyAgICBidXR0
b24gPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdidXR0b24nKTsKKyAgICBjb2xvciA9IGRvY3Vt
ZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUoYnV0dG9uKS5nZXRQcm9wZXJ0eVZhbHVl
KCdjb2xvcicpOworICAgIGFzc2VydF9mYWxzZShidXR0b24ubWF0Y2hlcygnOmRpc2FibGVkJykp
OworfSwgJ1Rlc3RzIHRoYXQgaW5lcnQgZWxlbWVudHMgZG8gbm90IG1hdGNoIHRoZSA6ZGlzYWJs
ZWQgc2VsZWN0b3IuJyk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQt
aW4tc2hhZG93LWRvbS50ZW50YXRpdmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1pbi1zaGFkb3ctZG9tLnRlbnRh
dGl2ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2EyNWI3NTFkMGM4MTZlMTE4ZmFlMTRkYjE4
NzkyYTE1YjI5NWU4MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtaW4tc2hhZG93LWRvbS50ZW50YXRpdmUt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorQnV0dG9ucyAxIGFuZCAyIHNob3VsZCBiZSBp
bmVydC4KK0J1dHRvbiAxIChpbmVydCkKKworRkFJTCBpbmVydCBvbiBTaGFkb3cgaG9zdCBhZmZl
Y3RzIGNvbnRlbnQgaW4gc2hhZG93IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIGZhbHNlIGJ1dCBn
b3QgdHJ1ZQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2luZXJ0L2luZXJ0LWluLXNoYWRvdy1kb20udGVudGF0aXZlLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LWluLXNo
YWRvdy1kb20udGVudGF0aXZlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWM4MjVkYmZkYzk4NTQ1OGNjNzM5
M2Q1OGIyZWZjMmNlMDc5NjM2NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtaW4tc2hhZG93LWRvbS50ZW50
YXRpdmUuaHRtbApAQCAtMCwwICsxLDU1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhl
YWQ+CisgICAgPG1ldGEgY2hhcnNldD0idXRmLTgiIC8+CisgICAgPHRpdGxlPmluZXJ0IG9uIFNo
YWRvdyBob3N0IGFmZmVjdHMgY29udGVudCBpbiBzaGFkb3c8L3RpdGxlPgorICAgIDxsaW5rIHJl
bD0iYXV0aG9yIiB0aXRsZT0iQWxpY2UgQm94aGFsbCIgaHJlZj0iYWJveGhhbGxAY2hyb21pdW0u
b3JnIj4KKyAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3Jp
cHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgIDxkaXY+QnV0dG9ucyAxIGFuZCAyIHNob3VsZCBi
ZSBpbmVydC48L2Rpdj4KKyAgPGRpdiBpZD0ic2hhZG93LWhvc3QiIGluZXJ0PgorICAgIDxidXR0
b24gaWQ9ImJ1dHRvbi0xIj5CdXR0b24gMSAoaW5lcnQpPC9idXR0b24+CisgIDwvZGl2PgorICA8
c2NyaXB0PgorICAgIC8qCisgICAgRXZlbnR1YWwgZmxhdHRlbmVkIHRyZWUgc3RydWN0dXJlOgor
CisgICAgPGRpdiBpZD0ic2hhZG93LWhvc3QiIGluZXJ0PgorICAgICAgI3NoYWRvdy1yb290IChv
cGVuKQorICAgICAgfCA8c2xvdD4KKyAgICAgIDogICA8YnV0dG9uIGlkPSJidXR0b24tMSI+QnV0
dG9uIDEgKGluZXJ0KTwvYnV0dG9uPiA8IS0tIHNsb3R0ZWQgLS0+CisgICAgICB8IDwvc2xvdD4K
KyAgICAgIHwgPGJ1dHRvbiBpZD0iYnV0dG9uLTIiPkJ1dHRvbiAyIChpbmVydCk8L2J1dHRvbj4g
ICA8IS0tIGluIHNoYWRvdyAtLT4KKyAgICA8L2Rpdj4KKyAgICAqLworCisgICAgY29uc3Qgc2hh
ZG93SG9zdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzaGFkb3ctaG9zdCIpOworICAgIGNv
bnN0IHNoYWRvd1Jvb3QgPSBzaGFkb3dIb3N0LmF0dGFjaFNoYWRvdyh7IG1vZGU6ICJvcGVuIiB9
KTsKKworICAgIC8vIEJ1dHRvbiAxIHdpbGwgYmUgc2xvdHRlZAorICAgIGNvbnN0IHNsb3QgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJzbG90Iik7CisgICAgc2hhZG93Um9vdC5hcHBlbmRDaGls
ZChzbG90KTsKKworICAgIGNvbnN0IGJ1dHRvbjIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJi
dXR0b24iKTsKKyAgICBidXR0b24yLmlkID0gImJ1dHRvbi0yIjsKKyAgICBidXR0b24yLnRleHRD
b250ZW50ID0gIkJ1dHRvbiAyIChpbmVydCkiOworICAgIHNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQo
YnV0dG9uMik7CisKKyAgICBmdW5jdGlvbiB0ZXN0Q2FuRm9jdXMoc2VsZWN0b3IsIGNhbkZvY3Vz
LCBvcHRfY29udGV4dCkgeworICAgICAgbGV0IGNvbnRleHQgPSBvcHRfY29udGV4dCB8fCBkb2N1
bWVudDsKKyAgICAgIGNvbnN0IGVsZW1lbnQgPSBjb250ZXh0LnF1ZXJ5U2VsZWN0b3Ioc2VsZWN0
b3IpOworICAgICAgbGV0IGZvY3VzZWRFbGVtZW50ID0gbnVsbDsKKyAgICAgIGVsZW1lbnQuYWRk
RXZlbnRMaXN0ZW5lcigiZm9jdXMiLCBmdW5jdGlvbigpIHsgZm9jdXNlZEVsZW1lbnQgPSBlbGVt
ZW50OyB9LCBmYWxzZSk7CisgICAgICBlbGVtZW50LmZvY3VzKCk7CisgICAgICBhc3NlcnRfZXF1
YWxzKChmb2N1c2VkRWxlbWVudCA9PT0gZWxlbWVudCksIGNhbkZvY3VzKTsKKyAgICB9CisKKyAg
ICB0ZXN0KCgpID0+IHsKKyAgICAgIHRlc3RDYW5Gb2N1cygiI2J1dHRvbi0xIiwgZmFsc2UpOwor
ICAgICAgdGVzdENhbkZvY3VzKCIjYnV0dG9uLTIiLCBmYWxzZSwgc2hhZG93Um9vdCk7CisgICAg
fSwgImluZXJ0IG9uIFNoYWRvdyBob3N0IGFmZmVjdHMgY29udGVudCBpbiBzaGFkb3ciKTsKKyAg
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LWlubGluZXMudGVudGF0aXZl
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvaW5lcnQvaW5lcnQtaW5saW5lcy50ZW50YXRpdmUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjNjZDcwNmM5MjA2Y2JjNWE2MDYxOGFhMzcyMzg2YzEwM2RjMTgxNDUKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2lu
ZXJ0LWlubGluZXMudGVudGF0aXZlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYgQEAKK0NsaWNr
IG1lIENsaWNrIG1lCitDbGljayBtZQorQ2xpY2sgbWUKKworRkFJTCBUZXN0cyB0aGF0IGluZXJ0
IGlubGluZXMgZG8gbm90IHJlY2VpdmUgbW91c2UgZXZlbnRzLiBUbyB0ZXN0IG1hbnVhbGx5LCBj
bGljayBvbiBhbGwgdGhlICJDbGljayBtZSJzLiBUaGUgdGVzdCBmYWlscyBpZiB5b3Ugc2VlIHJl
ZC4gYXNzZXJ0X2ZhbHNlOiBubyBldmVudCBzaG91bGQgYmUgZmlyZWQgb24gYSBleHBlY3RlZCBm
YWxzZSBnb3QgdHJ1ZQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LWlubGluZXMudGVudGF0aXZlLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LWlubGlu
ZXMudGVudGF0aXZlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjA1NmM2NDk1ZDJjNTQ3MzNiZWU2YWI3OTYz
MzJiYTg5ZjAxYjM3OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtaW5saW5lcy50ZW50YXRpdmUuaHRtbApA
QCAtMCwwICsxLDU1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorICA8aGVhZD4KKyAgICA8
bWV0YSBjaGFyc2V0PSJ1dGYtOCIgLz4KKyAgICA8dGl0bGU+aW5lcnQgaW5saW5lczwvdGl0bGU+
CisgICAgPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJBbGljZSBCb3hoYWxsIiBocmVmPSJhYm94
aGFsbEBjaHJvbWl1bS5vcmciPgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVz
c3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGRy
aXZlci5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGRyaXZl
ci12ZW5kb3IuanMiPjwvc2NyaXB0PgorICA8L2hlYWQ+Cis8Ym9keT4KKzxhIGluZXJ0IGlkPSJh
IiBocmVmPSJqYXZhc2NyaXB0OnZvaWQoMCkiPkNsaWNrIG1lPC9hPgorPGJ1dHRvbiBpbmVydCBp
ZD0iYnV0dG9uIj5DbGljayBtZTwvYnV0dG9uPgorPGRpdiBpbmVydCBpZD0iZGl2IiBzdHlsZT0i
YmFja2dyb3VuZC1jb2xvcjogYmx1ZTsgd2lkdGg6IDUwcHg7IGhlaWdodDogNTBweCI+Q2xpY2sg
bWU8L2Rpdj4KKzxzcGFuIGluZXJ0IGlkPSJzcGFuIj5DbGljayBtZTwvc3Bhbj4KKzxzY3JpcHQ+
CitmdW5jdGlvbiBldmVudEZpcmVkT25JbmVydEVsZW1lbnQoZSkgeworICAgIGUudGFyZ2V0LnN0
eWxlLmJhY2tncm91bmQgPSAncmVkJzsKKyAgICBpbmVydEVsZW1lbnRGaXJlZE9uID0gdHJ1ZTsK
K30KKworaW5lcnRFbGVtZW50cyA9IFsnYScsICdidXR0b24nLCAnZGl2JywgJ3NwYW4nXQoraW5l
cnRFbGVtZW50cy5mb3JFYWNoKGZ1bmN0aW9uKGlkKSB7CisgICAgZWxlbWVudCA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKGlkKTsKKyAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNr
JywgZXZlbnRGaXJlZE9uSW5lcnRFbGVtZW50KTsKKyAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVu
ZXIoJ21vdXNlbW92ZScsIGV2ZW50RmlyZWRPbkluZXJ0RWxlbWVudCk7Cit9KTsKKworZG9jdW1l
bnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbihlKSB7CisgICAgZG9jdW1lbnQu
ZmlyZWRPbiA9IHRydWU7Cit9KTsKKworcHJvbWlzZV90ZXN0KGFzeW5jICgpID0+IHsKKyAgICBm
b3IgKGxldCBpZCBvZiBpbmVydEVsZW1lbnRzKSB7CisgICAgICAgIHZhciBlbGVtZW50ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpOworICAgICAgICBpbmVydEVsZW1lbnRGaXJlZE9uID0g
ZmFsc2U7CisgICAgICAgIGRvY3VtZW50LmZpcmVkT24gPSBmYWxzZTsKKyAgICAgICAgdHJ5IHsK
KyAgICAgICAgICBhd2FpdCB0ZXN0X2RyaXZlci5jbGljayhlbGVtZW50KTsKKyAgICAgICAgICBh
c3NlcnRfZmFsc2UoaW5lcnRFbGVtZW50RmlyZWRPbiwgJ25vIGV2ZW50IHNob3VsZCBiZSBmaXJl
ZCBvbiAnICsgaWQpOworICAgICAgICAgIGFzc2VydF90cnVlKGRvY3VtZW50LmZpcmVkT24sICdl
dmVudCBzaG91bGQgYmUgZmlyZWQgb24gZG9jdW1lbnQgaW5zdGVhZCBvZiAnICsgaWQpOworICAg
ICAgICB9IGNhdGNoIChlKSB7CisgICAgICAgICAgLy8gdGVzdCBkcml2ZXIgZGV0ZWN0cyBpbmVy
dCBlbGVtZW50cyBhcyB1bmNsaWNrYWJsZQorICAgICAgICAgIC8vIGFuZCB0aHJvd3MgYW4gZXJy
b3IKKyAgICAgICAgICBhc3NlcnRfZmFsc2UoaW5lcnRFbGVtZW50RmlyZWRPbiwgJ25vIGV2ZW50
IHNob3VsZCBiZSBmaXJlZCBvbiAnICsgaWQpOworICAgICAgICB9CisgICAgfQorfSwgJ1Rlc3Rz
IHRoYXQgaW5lcnQgaW5saW5lcyBkbyBub3QgcmVjZWl2ZSBtb3VzZSBldmVudHMuICcgKworICAg
J1RvIHRlc3QgbWFudWFsbHksIGNsaWNrIG9uIGFsbCB0aGUgIkNsaWNrIG1lInMuIFRoZSB0ZXN0
ICcgKworICAgJ2ZhaWxzIGlmIHlvdSBzZWUgcmVkLicpOworCis8L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaW5lcnQvaW5lcnQtbGFiZWwtZm9jdXMudGVudGF0aXZlLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQt
bGFiZWwtZm9jdXMudGVudGF0aXZlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZDVhYjBlYTRm
YTQ0NzU0NTI0OTdhMGE2ZTllM2FlZjI5M2EzMThhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1sYWJlbC1m
b2N1cy50ZW50YXRpdmUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNyBAQAorTGFiZWwgZm9yIFN1
Ym1pdCAgICAgTGFiZWwgZm9yIGlucHV0IGluIGluZXJ0IHN1YnRyZWUKKworCitQQVNTIENhbGxp
bmcgZm9jdXMoKSBvbiBhbiBpbmVydCBsYWJlbCBzaG91bGQgc3RpbGwgc2VuZCBmb2N1cyB0byBp
dHMgdGFyZ2V0LgorUEFTUyBDbGlja2luZyBvbiBhbiBpbmVydCBsYWJlbCBzaG91bGQgc2VuZCBm
b2N1cyB0byBkb2N1bWVudC5ib2R5LgorUEFTUyBDYWxsaW5nIGZvY3VzKCkgb24gYSBsYWJlbCBm
b3IgYSBjb250cm9sIHdoaWNoIGlzIGluIGFuIGluZXJ0IHN1YnRyZWUgc2hvdWxkIGhhdmUgbm8g
ZWZmZWN0LgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2luZXJ0L2luZXJ0LWxhYmVsLWZvY3VzLnRlbnRhdGl2ZS5odG1sIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1sYWJlbC1m
b2N1cy50ZW50YXRpdmUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YmJlMWVjYTE1YzdkOGYyZjlmZDVlYTQ4
YzMzY2QwYTVkNTA5OGUwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1sYWJlbC1mb2N1cy50ZW50YXRpdmUu
aHRtbApAQCAtMCwwICsxLDUzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorICA8aGVhZD4K
KyAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCIgLz4KKyAgICA8dGl0bGU+aW5lcnQgd2l0aCBsYWJl
bC9mb3I8L3RpdGxlPgorICAgIDxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iQWxpY2UgQm94aGFs
bCIgaHJlZj0iYWJveGhhbGxAY2hyb21pdW0ub3JnIj4KKyAgICA8c2NyaXB0IHNyYz0iL3Jlc291
cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvcmVz
b3VyY2VzL3Rlc3Rkcml2ZXIuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3Vy
Y2VzL3Rlc3Rkcml2ZXItdmVuZG9yLmpzIj48L3NjcmlwdD4KKyAgPC9oZWFkPgorICA8Ym9keT4K
KyAgICA8bGFiZWwgaW5lcnQgaWQ9ImZvci1zdWJtaXQiIGZvcj0ic3VibWl0Ij5MYWJlbCBmb3Ig
U3VibWl0PC9sYWJlbD4KKyAgICA8aW5wdXQgaWQ9InRleHQiIHR5cGU9InRleHQiPgorICAgIDxp
bnB1dCBpZD0ic3VibWl0IiB0eXBlPSJzdWJtaXQiPgorCisgICAgPGxhYmVsIGlkPSJmb3ItaW5w
dXQtaW4taW5lcnQtc3VidHJlZSIKKyAgICAgICAgICAgZm9yPSJpbnB1dC1pbi1pbmVydC1zdWJ0
cmVlIj5MYWJlbCBmb3IgaW5wdXQgaW4gaW5lcnQgc3VidHJlZTwvbGFiZWw+CisgICAgPGRpdiBp
bmVydD4KKyAgICAgIDxpbnB1dCBpZD0iaW5wdXQtaW4taW5lcnQtc3VidHJlZSI+PC9pbnB1dD4K
KyAgICA8L2Rpdj4KKworICAgIDxzY3JpcHQ+CisgICAgICB0ZXN0KCgpID0+IHsKKyAgICAgICAg
bGFiZWwgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjZm9yLXN1Ym1pdCcpOworICAgICAgICBs
YWJlbC5mb2N1cygpOworICAgICAgICBhc3NlcnRfZXF1YWxzKGRvY3VtZW50LmFjdGl2ZUVsZW1l
bnQsIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNzdWJtaXQnKSk7CisgICAgICB9LCAnQ2FsbGlu
ZyBmb2N1cygpIG9uIGFuIGluZXJ0IGxhYmVsIHNob3VsZCBzdGlsbCBzZW5kIGZvY3VzIHRvIGl0
cyB0YXJnZXQuJyk7CisKKyAgICAgIHByb21pc2VfdGVzdChhc3luYyAoKSA9PiB7CisgICAgICAg
IHRleHQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjdGV4dCcpOworICAgICAgICB0ZXh0LmZv
Y3VzKCk7CisgICAgICAgIGxhYmVsID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI2Zvci1zdWJt
aXQnKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICBhd2FpdCB0ZXN0X2RyaXZlci5jbGljayhs
YWJlbCk7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhkb2N1bWVudC5hY3RpdmVFbGVtZW50LCBk
b2N1bWVudC5ib2R5KTsKKyAgICAgICAgfSBjYXRjaCAoZSkgeworICAgICAgICAgIC8vIHRlc3Qg
ZHJpdmVyIGRldGVjdHMgaW5lcnQgZWxlbWVudHMgYXMgdW5jbGlja2FibGUKKyAgICAgICAgICAv
LyBhbmQgdGhyb3dzIGFuIGVycm9yCisgICAgICAgIH0KKyAgICAgIH0sICdDbGlja2luZyBvbiBh
biBpbmVydCBsYWJlbCBzaG91bGQgc2VuZCBmb2N1cyB0byBkb2N1bWVudC5ib2R5LicpOworCisg
ICAgICB0ZXN0KCgpID0+IHsKKyAgICAgICAgdGV4dCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3Io
JyN0ZXh0Jyk7CisgICAgICAgIHRleHQuZm9jdXMoKTsKKworICAgICAgICBsYWJlbCA9IGRvY3Vt
ZW50LnF1ZXJ5U2VsZWN0b3IoJyNmb3ItaW5wdXQtaW4taW5lcnQtc3VidHJlZScpOworICAgICAg
ICBsYWJlbC5mb2N1cygpOworICAgICAgICBhc3NlcnRfZXF1YWxzKGRvY3VtZW50LmFjdGl2ZUVs
ZW1lbnQsIHRleHQpOworICAgICAgfSwgJ0NhbGxpbmcgZm9jdXMoKSBvbiBhIGxhYmVsIGZvciBh
IGNvbnRyb2wgd2hpY2ggaXMgaW4gYW4gaW5lcnQgc3VidHJlZSAnICsKKyAgICAgICAgICdzaG91
bGQgaGF2ZSBubyBlZmZlY3QuJyk7Cis8L3NjcmlwdD4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtbm9k
ZS1pcy11bmVkaXRhYmxlLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LW5vZGUtaXMtdW5lZGl0YWJs
ZS50ZW50YXRpdmUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU0MGE1OWQ2NTFiNTI4MWJkNTEx
MDhmNWRmMzFhZDQ4NzA3YjJmOTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LW5vZGUtaXMtdW5lZGl0YWJs
ZS50ZW50YXRpdmUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorSSdtIG5vdCBlZGl0YWJs
ZS4gYUknbSBlZGl0YWJsZS4KKworUEFTUyBDYW4ndCBlZGl0IGluZXJ0IGNvbnRlbnRlZGl0YWJs
ZQorUEFTUyBDYW4gZWRpdCBub24taW5lcnQgY29udGVudGVkaXRhYmxlCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQt
bm9kZS1pcy11bmVkaXRhYmxlLnRlbnRhdGl2ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1ub2RlLWlzLXVuZWRpdGFibGUudGVu
dGF0aXZlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmRhMjM3OWZhZDQyOTcyZDQ4MzkxMjljOGRiMGJlZDdi
YmQyYWRlYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtbm9kZS1pcy11bmVkaXRhYmxlLnRlbnRhdGl2ZS5o
dG1sCkBAIC0wLDAgKzEsMzcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+CisgIDxoZWFkPgor
ICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04IiAvPgorICAgIDx0aXRsZT5pbmVydCBub2RlcyBhcmUg
dW5lZGl0YWJsZTwvdGl0bGU+CisgICAgPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJBbGljZSBC
b3hoYWxsIiBocmVmPSJhYm94aGFsbEBjaHJvbWl1bS5vcmciPgorICAgIDxzY3JpcHQgc3JjPSIv
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iL3Jl
c291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9
Ii9yZXNvdXJjZXMvdGVzdGRyaXZlci5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9y
ZXNvdXJjZXMvdGVzdGRyaXZlci12ZW5kb3IuanMiPjwvc2NyaXB0PgorICA8L2hlYWQ+Cis8Ym9k
eT4KKzxzcGFuIGluZXJ0IGlkPSJub3QtZWRpdGFibGUiIGNvbnRlbnRlZGl0YWJsZT5JJ20gbm90
IGVkaXRhYmxlLjwvc3Bhbj4KKzxzcGFuIGlkPSJlZGl0YWJsZSIgY29udGVudGVkaXRhYmxlPkkn
bSBlZGl0YWJsZS48L3NwYW4+Cis8c2NyaXB0PgordmFyIG5vdEVkaXRhYmxlID0gZG9jdW1lbnQu
cXVlcnlTZWxlY3RvcignI25vdC1lZGl0YWJsZScpOwordmFyIGVkaXRhYmxlID0gZG9jdW1lbnQu
cXVlcnlTZWxlY3RvcignI2VkaXRhYmxlJyk7CisKK3Byb21pc2VfdGVzdChhc3luYyAoKSA9PiB7
CisgICAgbm90RWRpdGFibGUuZm9jdXMoKTsKKyAgICB2YXIgb2xkVmFsdWUgPSBub3RFZGl0YWJs
ZS50ZXh0Q29udGVudDsKKyAgICBhc3NlcnRfZXF1YWxzKG9sZFZhbHVlLCAiSSdtIG5vdCBlZGl0
YWJsZS4iKTsKKyAgICBhd2FpdCB0ZXN0X2RyaXZlci5zZW5kX2tleXMoZG9jdW1lbnQuYm9keSwg
J2EnKTsKKyAgICBhc3NlcnRfZXF1YWxzKG5vdEVkaXRhYmxlLnRleHRDb250ZW50LCBvbGRWYWx1
ZSk7Cit9LCAiQ2FuJ3QgZWRpdCBpbmVydCBjb250ZW50ZWRpdGFibGUiKTsKKworcHJvbWlzZV90
ZXN0KGFzeW5jICgpID0+IHsKKyAgICBlZGl0YWJsZS5mb2N1cygpOworICAgIHZhciBvbGRWYWx1
ZSA9IGVkaXRhYmxlLnRleHRDb250ZW50OworICAgIGFzc2VydF9lcXVhbHMob2xkVmFsdWUsICJJ
J20gZWRpdGFibGUuIik7CisgICAgYXdhaXQgdGVzdF9kcml2ZXIuc2VuZF9rZXlzKGRvY3VtZW50
LmJvZHksICdhJyk7CisgICAgYXNzZXJ0X25vdF9lcXVhbHMoZWRpdGFibGUudGV4dENvbnRlbnQs
IG9sZFZhbHVlKTsKK30sICJDYW4gZWRpdCBub24taW5lcnQgY29udGVudGVkaXRhYmxlIik7CisK
Kzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1ub2RlLWlzLXVuZm9jdXNh
YmxlLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LW5vZGUtaXMtdW5mb2N1c2FibGUudGVudGF0aXZl
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NmFlYThiYjU1NTdkNzY4Y2E1ZWUwY2NhYzdkOTJk
ZjhiZjU3NzlmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1ub2RlLWlzLXVuZm9jdXNhYmxlLnRlbnRhdGl2
ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMyBAQAorT3V0c2lkZSBvZiBpbmVydCBjb250YWlu
ZXIgIEluZXJ0IGJ1dHRvbgorCitJJ20gZWRpdGFibGUKK0knbSB0YWJpbmRleGVkLgorIExpbmsK
KworUEFTUyBCdXR0b24gb3V0c2lkZSBvZiBpbmVydCBjb250YWluZXIgaXMgZm9jdXNhYmxlLgor
UEFTUyBCdXR0b24gd2l0aCBpbmVydCBhdHJpYnV0ZSBpcyB1bmZvY3VzYWJsZS4KK1BBU1MgQWxs
IGZvY3VzYWJsZSBlbGVtZW50cyBpbnNpZGUgaW5lcnQgc3VidHJlZSBhcmUgdW5mb2N1c2FibGUK
K1BBU1MgQ2FuIGdldCBpbmVydCB2aWEgcHJvcGVydHkKK1BBU1MgRWxlbWVudHMgaW5zaWRlIG9m
IGluZXJ0IHN1YnRyZWVzIHJldHVybiBmYWxzZSB3aGVuIGdldHRpbmcgJ2luZXJ0JworUEFTUyBT
ZXR0aW5nIGluZXJ0IHZpYSBwcm9wZXJ0eSBjb3JyZWN0bHkgbW9kaWZpZXMgaW5lcnQgc3RhdGUK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9pbmVydC9pbmVydC1ub2RlLWlzLXVuZm9jdXNhYmxlLnRlbnRhdGl2ZS5odG1sIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1ub2RlLWlz
LXVuZm9jdXNhYmxlLnRlbnRhdGl2ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhiNWRlMzdmZGNhZGVkYjlk
OThlYzQ0YzljM2MyMGFlYTUyYTA0MDAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LW5vZGUtaXMtdW5mb2N1
c2FibGUudGVudGF0aXZlLmh0bWwKQEAgLTAsMCArMSw3OSBAQAorPCFET0NUWVBFIGh0bWw+Cis8
aHRtbD4KKyAgPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0idXRmLTgiIC8+CisgICAgPHRpdGxl
PmluZXJ0IG5vZGVzIGFyZSB1bmZvY3VzYWJsZTwvdGl0bGU+CisgICAgPGxpbmsgcmVsPSJhdXRo
b3IiIHRpdGxlPSJBbGljZSBCb3hoYWxsIiBocmVmPSJhYm94aGFsbEBjaHJvbWl1bS5vcmciPgor
ICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKyAg
ICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+
CisgIDwvaGVhZD4KKzxib2R5IGlkPSJib2R5IiB0YWJpbmRleD0iMSI+CisgIDxidXR0b24gaWQ9
ImZvY3VzYWJsZSI+T3V0c2lkZSBvZiBpbmVydCBjb250YWluZXI8L2J1dHRvbj4KKyAgPGJ1dHRv
biBpbmVydCBpZD0iaW5lcnQiPkluZXJ0IGJ1dHRvbjwvYnV0dG9uPgorICA8ZGl2IGluZXJ0IGlk
PSJjb250YWluZXIiPgorICAgIDxpbnB1dCBpZD0idGV4dCIgdHlwZT0idGV4dCI+CisgICAgPGlu
cHV0IGlkPSJkYXRldGltZSIgdHlwZT0iZGF0ZXRpbWUiPgorICAgIDxpbnB1dCBpZD0iY29sb3Ii
IHR5cGU9ImNvbG9yIj4KKyAgICA8c2VsZWN0IGlkPSJzZWxlY3QiPgorICAgICAgICA8b3B0Z3Jv
dXAgaWQ9Im9wdGdyb3VwIj4KKyAgICAgICAgICAgIDxvcHRpb24gaWQ9Im9wdGlvbiI+T3B0aW9u
PC9vcHRpb24+CisgICAgICAgIDwvb3B0Z3JvdXA+CisgICAgPC9zZWxlY3Q+CisgICAgPGRpdiBp
ZD0iY29udGVudGVkaXRhYmxlLWRpdiIgY29udGVudGVkaXRhYmxlPkknbSBlZGl0YWJsZTwvZGl2
PgorICAgIDxzcGFuIGlkPSJ0YWJpbmRleC1zcGFuIiB0YWJpbmRleD0iMCI+SSdtIHRhYmluZGV4
ZWQuPC9kaXY+CisgICAgPGVtYmVkIGlkPSJlbWJlZCIgdHlwZT0iYXBwbGljYXRpb24veC1ibGlu
ay10ZXN0LXBsdWdpbiIgd2lkdGg9MTAwIGhlaWdodD0xMDA+PC9lbWJlZD4KKyAgICA8YSBpZD0i
YW5jaG9yIiBocmVmPSIiPkxpbms8L2E+CisgIDwvZGl2PgorPHNjcmlwdD4KK2Z1bmN0aW9uIHRl
c3RGb2N1cyhlbGVtZW50LCBleHBlY3RGb2N1cykgeworICAgIGZvY3VzZWRFbGVtZW50ID0gbnVs
bDsKKyAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2ZvY3VzJywgZnVuY3Rpb24oKSB7IGZv
Y3VzZWRFbGVtZW50ID0gZWxlbWVudDsgfSwgZmFsc2UpOworICAgIGVsZW1lbnQuZm9jdXMoKTsK
KyAgICB0aGVFbGVtZW50ID0gZWxlbWVudDsKKyAgICBhc3NlcnRfZXF1YWxzKGZvY3VzZWRFbGVt
ZW50ID09PSB0aGVFbGVtZW50LCBleHBlY3RGb2N1cyk7Cit9CisKK2Z1bmN0aW9uIHRlc3RUcmVl
KGVsZW1lbnQsIGV4cGVjdEZvY3VzLCBleGNsdWRlQ3VycmVudCkgeworICAgIGlmIChlbGVtZW50
Lm5vZGVUeXBlID09IE5vZGUuRUxFTUVOVF9OT0RFICYmICFleGNsdWRlQ3VycmVudCkKKyAgICAg
ICAgdGVzdEZvY3VzKGVsZW1lbnQsIGV4cGVjdEZvY3VzKTsKKyAgICBpZiAoZWxlbWVudC50YWdO
YW1lID09PSAiU0VMRUNUIikKKyAgICAgICAgcmV0dXJuOworICAgIHZhciBjaGlsZE5vZGVzID0g
ZWxlbWVudC5jaGlsZE5vZGVzOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2hpbGROb2Rlcy5s
ZW5ndGg7IGkrKykKKyAgICAgICAgdGVzdFRyZWUoY2hpbGROb2Rlc1tpXSwgZXhwZWN0Rm9jdXMp
OworfQorCisKK3Rlc3QoZnVuY3Rpb24oKSB7CisgICAgdGVzdEZvY3VzKGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdmb2N1c2FibGUnKSwgdHJ1ZSk7Cit9LCAiQnV0dG9uIG91dHNpZGUgb2YgaW5l
cnQgY29udGFpbmVyIGlzIGZvY3VzYWJsZS4iKTsKKwordGVzdChmdW5jdGlvbigpIHsKKyAgICB0
ZXN0Rm9jdXMoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2luZXJ0JyksIGZhbHNlKTsKK30sICJC
dXR0b24gd2l0aCBpbmVydCBhdHJpYnV0ZSBpcyB1bmZvY3VzYWJsZS4iKTsKKwordGVzdChmdW5j
dGlvbigpIHsKKyAgICB0ZXN0VHJlZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29udGFpbmVy
JyksIGZhbHNlKTsKK30sICJBbGwgZm9jdXNhYmxlIGVsZW1lbnRzIGluc2lkZSBpbmVydCBzdWJ0
cmVlIGFyZSB1bmZvY3VzYWJsZSIpOworCit0ZXN0KGZ1bmN0aW9uKCkgeworICAgIGFzc2VydF9m
YWxzZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZm9jdXNhYmxlIikuaW5lcnQsICJJbmVydCBu
b3Qgc2V0IGV4cGxpY2l0bHkgaXMgZmFsc2UiKQorICAgIGFzc2VydF90cnVlKGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJpbmVydCIpLmluZXJ0LCAiSW5lcnQgc2V0IGV4cGxpY2l0bHkgaXMgdHJ1
ZSIpOworICAgIGFzc2VydF90cnVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250YWluZXIi
KS5pbmVydCwgIkluZXJ0IHNldCBvbiBjb250YWluZXIgaXMgdHJ1ZSIpOworfSwgIkNhbiBnZXQg
aW5lcnQgdmlhIHByb3BlcnR5Iik7CisKK3Rlc3QoZnVuY3Rpb24oKSB7CisgICAgYXNzZXJ0X2Zh
bHNlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXh0IikuaW5lcnQsICJFbGVtZW50cyBpbnNp
ZGUgb2YgaW5lcnQgc3VidHJlZXMgcmV0dXJuIGZhbHNlIHdoZW4gZ2V0dGluZyBpbmVydCIpOwor
fSwgIkVsZW1lbnRzIGluc2lkZSBvZiBpbmVydCBzdWJ0cmVlcyByZXR1cm4gZmFsc2Ugd2hlbiBn
ZXR0aW5nICdpbmVydCciKTsKKwordGVzdChmdW5jdGlvbigpIHsKKyAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgnZm9jdXNhYmxlJykuaW5lcnQgPSB0cnVlOworICAgIHRlc3RGb2N1cyhkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnZm9jdXNhYmxlJyksIGZhbHNlKTsKKyAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnaW5lcnQnKS5pbmVydCA9IGZhbHNlOworICAgIHRlc3RGb2N1cyhkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnaW5lcnQnKSwgdHJ1ZSk7CisgICAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ2NvbnRhaW5lcicpLmluZXJ0ID0gZmFsc2U7CisgICAgdGVzdFRyZWUoZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnRhaW5lcicpLCB0cnVlLCB0cnVlKTsKK30sICJTZXR0aW5n
IGluZXJ0IHZpYSBwcm9wZXJ0eSBjb3JyZWN0bHkgbW9kaWZpZXMgaW5lcnQgc3RhdGUiKTsKKzwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1ub2RlLWlzLXVuc2VsZWN0YWJs
ZS50ZW50YXRpdmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1ub2RlLWlzLXVuc2VsZWN0YWJsZS50ZW50YXRpdmUt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVmY2EyMzhhZjhmMTRhMTViNzlmOWZjMGEzMWIzOTM3
OGY4NDFkNjQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LW5vZGUtaXMtdW5zZWxlY3RhYmxlLnRlbnRhdGl2
ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitIZXJlIGlzIGEgdGV4dCBub2RlIHlvdSBj
YW4ndCBzZWxlY3QuCitJJ20gc2VsZWN0YWJsZS4KKworRkFJTCBJbmVydCBub2RlcyBjYW5ub3Qg
YmUgc2VsZWN0ZWQuIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJJJ20gc2VsZWN0YWJsZS4iIGJ1
dCBnb3QgIkhlcmUgaXMgYSB0ZXh0IG5vZGUgeW91IGNhbid0IHNlbGVjdC5cbkknbSBzZWxlY3Rh
YmxlLiIKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9pbmVydC9pbmVydC1ub2RlLWlzLXVuc2VsZWN0YWJsZS50ZW50YXRpdmUuaHRtbCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQt
bm9kZS1pcy11bnNlbGVjdGFibGUudGVudGF0aXZlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjk5YWYwZDRj
ZDE0MmRjYjA1MWFmNTFmNDJkMTc1OTE0MmEwMGM1ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtbm9kZS1p
cy11bnNlbGVjdGFibGUudGVudGF0aXZlLmh0bWwKQEAgLTAsMCArMSwyMCBAQAorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKyAgPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0idXRmLTgiIC8+Cisg
ICAgPHRpdGxlPmluZXJ0IG5vZGVzIGFyZSB1bnNlbGVjdGFibGU8L3RpdGxlPgorICAgIDxsaW5r
IHJlbD0iYXV0aG9yIiB0aXRsZT0iQWxpY2UgQm94aGFsbCIgaHJlZj0iYWJveGhhbGxAY2hyb21p
dW0ub3JnIj4KKyAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9z
Y3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMi
Pjwvc2NyaXB0PgorICA8L2hlYWQ+Cis8Ym9keT4KKyAgPGRpdiBpbmVydD5IZXJlIGlzIGEgdGV4
dCBub2RlIHlvdSBjYW4ndCBzZWxlY3QuPC9kaXY+CisgIDxkaXY+SSdtIHNlbGVjdGFibGUuPC9k
aXY+Cis8c2NyaXB0PgordGVzdChmdW5jdGlvbigpIHsKKyAgICBkb2N1bWVudC5leGVjQ29tbWFu
ZCgnU2VsZWN0QWxsJyk7CisgICAgYXNzZXJ0X2VxdWFscyh3aW5kb3cuZ2V0U2VsZWN0aW9uKCku
dG9TdHJpbmcoKS50cmltKCksICJJJ20gc2VsZWN0YWJsZS4iKTsKK30sICJJbmVydCBub2RlcyBj
YW5ub3QgYmUgc2VsZWN0ZWQuIik7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQv
aW5lcnQtb24tc2xvdHMudGVudGF0aXZlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtb24tc2xvdHMudGVudGF0aXZl
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ZjJiMTI1OGQzNTJjZGY4OTM0MGM3Y2MzMDk3YmI5
NDRlN2RjNzRmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1vbi1zbG90cy50ZW50YXRpdmUtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsNSBAQAorQnV0dG9uIDEgc2hvdWxkIGJlIGluZXJ0LCBhbmQgQnV0dG9u
IDIgc2hvdWxkIG5vdCBiZSBpbmVydC4KK0J1dHRvbiAxIChpbmVydClCdXR0b24gMiAobm90IGlu
ZXJ0KQorCitGQUlMIGluZXJ0IGluc2lkZSBTaGFkb3dSb290IGFmZmVjdHMgc2xvdHRlZCBjb250
ZW50IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIGZhbHNlIGJ1dCBnb3QgdHJ1ZQorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2lu
ZXJ0LW9uLXNsb3RzLnRlbnRhdGl2ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1vbi1zbG90cy50ZW50YXRpdmUuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5kZDBkN2VjNmQ0NmQxZWYzNDQxN2RjZjA5OWNlNTE1NmJiMTQ5YmVhCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9p
bmVydC9pbmVydC1vbi1zbG90cy50ZW50YXRpdmUuaHRtbApAQCAtMCwwICsxLDU3IEBACis8IURP
Q1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0idXRmLTgiIC8+
CisgICAgPHRpdGxlPmluZXJ0IGluc2lkZSBTaGFkb3dSb290IGFmZmVjdHMgc2xvdHRlZCBjb250
ZW50PC90aXRsZT4KKyAgICA8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkFsaWNlIEJveGhhbGwi
IGhyZWY9ImFib3hoYWxsQGNocm9taXVtLm9yZyI+CisgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorICA8ZGl2
PkJ1dHRvbiAxIHNob3VsZCBiZSBpbmVydCwgYW5kIEJ1dHRvbiAyIHNob3VsZCBub3QgYmUgaW5l
cnQuPC9kaXY+CisgIDxkaXYgaWQ9InNoYWRvdy1ob3N0Ij4KKyAgICA8YnV0dG9uIHNsb3Q9InNs
b3QtMSIgaWQ9ImJ1dHRvbi0xIj5CdXR0b24gMSAoaW5lcnQpPC9idXR0b24+CisgICAgPGJ1dHRv
biBzbG90PSJzbG90LTIiIGlkPSJidXR0b24tMiI+QnV0dG9uIDIgKG5vdCBpbmVydCk8L2J1dHRv
bj4KKyAgPC9kaXY+CisgIDxzY3JpcHQ+CisgICAgLyoKKyAgICBFdmVudHVhbCBmbGF0dGVuZWQg
dHJlZSBzdHJ1Y3R1cmU6CisKKyAgICA8ZGl2IGlkPSJzaGFkb3ctaG9zdCI+CisgICAgICAjc2hh
ZG93LXJvb3QgKG9wZW4pCisgICAgICB8IDxzbG90IGlkPSJzbG90LTEiIGluZXJ0PgorICAgICAg
OiAgIDxidXR0b24gaWQ9ImJ1dHRvbi0xIj5CdXR0b24gMTwvYnV0dG9uPiA8IS0tIHNsb3R0ZWQg
LS0+CisgICAgICB8IDwvc2xvdD4KKyAgICAgIHwgPHNsb3QgaWQ9InNsb3QtMiI+CisgICAgICA6
ICAgPGJ1dHRvbiBpZD0iYnV0dG9uLTIiPkJ1dHRvbiAyPC9idXR0b24+IDwhLS0gc2xvdHRlZCAt
LT4KKyAgICAgIHwgPC9zbG90PgorICAgIDwvZGl2PgorICAgICovCisKKyAgICBjb25zdCBzaGFk
b3dIb3N0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNoYWRvdy1ob3N0Iik7CisgICAgY29u
c3Qgc2hhZG93Um9vdCA9IHNoYWRvd0hvc3QuYXR0YWNoU2hhZG93KHsgbW9kZTogIm9wZW4iIH0p
OworCisgICAgY29uc3Qgc2xvdDEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzbG90Iik7Cisg
ICAgc2xvdDEubmFtZSA9ICJzbG90LTEiOworICAgIHNsb3QxLmluZXJ0ID0gdHJ1ZTsKKyAgICBz
aGFkb3dSb290LmFwcGVuZENoaWxkKHNsb3QxKTsKKworICAgIGNvbnN0IHNsb3QyID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgic2xvdCIpOworICAgIHNsb3QyLm5hbWUgPSAic2xvdC0yIjsKKyAg
ICBzaGFkb3dSb290LmFwcGVuZENoaWxkKHNsb3QyKTsKKworICAgIGZ1bmN0aW9uIHRlc3RDYW5G
b2N1cyhzZWxlY3RvciwgY2FuRm9jdXMpIHsKKyAgICAgIGNvbnN0IGVsZW1lbnQgPSBkb2N1bWVu
dC5xdWVyeVNlbGVjdG9yKHNlbGVjdG9yKTsKKyAgICAgIGxldCBmb2N1c2VkRWxlbWVudCA9IG51
bGw7CisgICAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwgZnVuY3Rpb24oKSB7
IGZvY3VzZWRFbGVtZW50ID0gZWxlbWVudDsgfSwgZmFsc2UpOworICAgICAgZWxlbWVudC5mb2N1
cygpOworICAgICAgYXNzZXJ0X2VxdWFscygoZm9jdXNlZEVsZW1lbnQgPT09IGVsZW1lbnQpLCBj
YW5Gb2N1cyk7CisgICAgfQorCisgICAgdGVzdCgoKSA9PiB7CisgICAgICB0ZXN0Q2FuRm9jdXMo
IiNidXR0b24tMSIsIGZhbHNlKTsKKyAgICAgIHRlc3RDYW5Gb2N1cygiI2J1dHRvbi0yIiwgdHJ1
ZSk7CisgICAgfSwgImluZXJ0IGluc2lkZSBTaGFkb3dSb290IGFmZmVjdHMgc2xvdHRlZCBjb250
ZW50Iik7CisgIDwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1yZXRhcmdl
dGluZy1pZnJhbWUudGVudGF0aXZlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtcmV0YXJnZXRpbmctaWZyYW1lLnRl
bnRhdGl2ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjU5OWJlNzFhODNlZjA4ZWQ1NjE5Yjk0
Y2NiNDY0ZmMxYmM5NzcwOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtcmV0YXJnZXRpbmctaWZyYW1lLnRl
bnRhdGl2ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0NyBAQAorQ09OU09MRSBNRVNTQUdFOiBF
cnJvcjogYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgRWxlbWVudCBub2RlIDxmaWVsZHNldCBpZD0i
YW5jZXN0b3JDb250YWluZXIiPgorICAgIDxsZWdlbmQ+Tm9uLWluZXJ0IGEuLi4gYnV0IGdvdCBF
bGVtZW50IG5vZGUgPGJ1dHRvbiBpZD0iZm9yZWdyb3VuZCIgY2xhc3M9ImNsaWNrZWQiPmZvcmVn
cm91bmQ8L2J1dHRvbj4KK0NPTlNPTEUgTUVTU0FHRTogRXJyb3I6IGFzc2VydF9lcXVhbHM6IGV4
cGVjdGVkIEVsZW1lbnQgbm9kZSA8ZmllbGRzZXQgaWQ9ImFuY2VzdG9yQ29udGFpbmVyIj4KKyAg
ICA8bGVnZW5kPk5vbi1pbmVydCBhLi4uIGJ1dCBnb3QgRWxlbWVudCBub2RlIDxidXR0b24gaWQ9
ImZvcmVncm91bmQiIGNsYXNzPSJjbGlja2VkIj5mb3JlZ3JvdW5kPC9idXR0b24+CitDT05TT0xF
IE1FU1NBR0U6IEVycm9yOiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCBFbGVtZW50IG5vZGUgPGZp
ZWxkc2V0IGlkPSJhbmNlc3RvckNvbnRhaW5lciI+CisgICAgPGxlZ2VuZD5Ob24taW5lcnQgYS4u
LiBidXQgZ290IEVsZW1lbnQgbm9kZSA8YnV0dG9uIGlkPSJmb3JlZ3JvdW5kIiBjbGFzcz0iY2xp
Y2tlZCI+Zm9yZWdyb3VuZDwvYnV0dG9uPgorQ09OU09MRSBNRVNTQUdFOiBFcnJvcjogYXNzZXJ0
X2VxdWFsczogZXhwZWN0ZWQgRWxlbWVudCBub2RlIDxmaWVsZHNldCBpZD0iYW5jZXN0b3JDb250
YWluZXIiPgorICAgIDxsZWdlbmQ+Tm9uLWluZXJ0IGEuLi4gYnV0IGdvdCBFbGVtZW50IG5vZGUg
PGJ1dHRvbiBpZD0iZm9yZWdyb3VuZCIgY2xhc3M9ImNsaWNrZWQiPmZvcmVncm91bmQ8L2J1dHRv
bj4KK0NPTlNPTEUgTUVTU0FHRTogRXJyb3I6IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIEVsZW1l
bnQgbm9kZSA8ZmllbGRzZXQgaWQ9ImFuY2VzdG9yQ29udGFpbmVyIj4KKyAgICA8bGVnZW5kPk5v
bi1pbmVydCBhLi4uIGJ1dCBnb3QgRWxlbWVudCBub2RlIDxidXR0b24gaWQ9ImZvcmVncm91bmQi
IGNsYXNzPSJjbGlja2VkIj5mb3JlZ3JvdW5kPC9idXR0b24+CitDT05TT0xFIE1FU1NBR0U6IEVy
cm9yOiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCBFbGVtZW50IG5vZGUgPGZpZWxkc2V0IGlkPSJh
bmNlc3RvckNvbnRhaW5lciI+CisgICAgPGxlZ2VuZD5Ob24taW5lcnQgYS4uLiBidXQgZ290IEVs
ZW1lbnQgbm9kZSA8YnV0dG9uIGlkPSJmb3JlZ3JvdW5kIiBjbGFzcz0iY2xpY2tlZCI+Zm9yZWdy
b3VuZDwvYnV0dG9uPgorQ09OU09MRSBNRVNTQUdFOiBFcnJvcjogYXNzZXJ0X2VxdWFsczogZXhw
ZWN0ZWQgRWxlbWVudCBub2RlIDxmaWVsZHNldCBpZD0iYW5jZXN0b3JDb250YWluZXIiPgorICAg
IDxsZWdlbmQ+Tm9uLWluZXJ0IGEuLi4gYnV0IGdvdCBFbGVtZW50IG5vZGUgPGJ1dHRvbiBpZD0i
Zm9yZWdyb3VuZCIgY2xhc3M9ImNsaWNrZWQiPmZvcmVncm91bmQ8L2J1dHRvbj4KK0NPTlNPTEUg
TUVTU0FHRTogRXJyb3I6IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIEVsZW1lbnQgbm9kZSA8Zmll
bGRzZXQgaWQ9ImFuY2VzdG9yQ29udGFpbmVyIj4KKyAgICA8bGVnZW5kPk5vbi1pbmVydCBhLi4u
IGJ1dCBnb3QgRWxlbWVudCBub2RlIDxidXR0b24gaWQ9ImZvcmVncm91bmQiIGNsYXNzPSJjbGlj
a2VkIj5mb3JlZ3JvdW5kPC9idXR0b24+CitDT05TT0xFIE1FU1NBR0U6IEVycm9yOiBhc3NlcnRf
ZXF1YWxzOiBleHBlY3RlZCBFbGVtZW50IG5vZGUgPGZpZWxkc2V0IGlkPSJhbmNlc3RvckNvbnRh
aW5lciI+CisgICAgPGxlZ2VuZD5Ob24taW5lcnQgYS4uLiBidXQgZ290IEVsZW1lbnQgbm9kZSA8
YnV0dG9uIGlkPSJmb3JlZ3JvdW5kIiBjbGFzcz0iY2xpY2tlZCI+Zm9yZWdyb3VuZDwvYnV0dG9u
PgorQ09OU09MRSBNRVNTQUdFOiBFcnJvcjogYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgRWxlbWVu
dCBub2RlIDxmaWVsZHNldCBpZD0iYW5jZXN0b3JDb250YWluZXIiPgorICAgIDxsZWdlbmQ+Tm9u
LWluZXJ0IGEuLi4gYnV0IGdvdCBFbGVtZW50IG5vZGUgPGJ1dHRvbiBpZD0iZm9yZWdyb3VuZCIg
Y2xhc3M9ImNsaWNrZWQiPmZvcmVncm91bmQ8L2J1dHRvbj4KK0NPTlNPTEUgTUVTU0FHRTogRXJy
b3I6IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIEVsZW1lbnQgbm9kZSA8ZmllbGRzZXQgaWQ9ImFu
Y2VzdG9yQ29udGFpbmVyIj4KKyAgICA8bGVnZW5kPk5vbi1pbmVydCBhLi4uIGJ1dCBnb3QgRWxl
bWVudCBub2RlIDxidXR0b24gaWQ9ImZvcmVncm91bmQiIGNsYXNzPSJjbGlja2VkIj5mb3JlZ3Jv
dW5kPC9idXR0b24+CitDT05TT0xFIE1FU1NBR0U6IEVycm9yOiBhc3NlcnRfZXF1YWxzOiBleHBl
Y3RlZCBFbGVtZW50IG5vZGUgPGZpZWxkc2V0IGlkPSJhbmNlc3RvckNvbnRhaW5lciI+CisgICAg
PGxlZ2VuZD5Ob24taW5lcnQgYS4uLiBidXQgZ290IEVsZW1lbnQgbm9kZSA8YnV0dG9uIGlkPSJm
b3JlZ3JvdW5kIiBjbGFzcz0iY2xpY2tlZCI+Zm9yZWdyb3VuZDwvYnV0dG9uPgorQ09OU09MRSBN
RVNTQUdFOiBFcnJvcjogYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgRWxlbWVudCBub2RlIDxmaWVs
ZHNldCBpZD0iYW5jZXN0b3JDb250YWluZXIiPgorICAgIDxsZWdlbmQ+Tm9uLWluZXJ0IGEuLi4g
YnV0IGdvdCBFbGVtZW50IG5vZGUgPGJ1dHRvbiBpZD0iZm9yZWdyb3VuZCIgY2xhc3M9ImNsaWNr
ZWQiPmZvcmVncm91bmQ8L2J1dHRvbj4KK0NsaWNrIG9uICJJbmVydCBidXR0b24iLgorCitUaGUg
Ymx1ZSBzcXVhcmUgKCJOb24taW5lcnQgYW5jZXN0b3IgY29udGFpbmVyIikgc2hvdWxkIHR1cm4g
Z3JlZW4uCitUaGUgeWVsbG93LCBzZW1pLXRyYW5zcGFyZW50IHNxdWFyZSAoIk5vbi1pbmVydCwg
ZGlzcGxhY2VkIGNvbnRhaW5lciIpIHNob3VsZCBub3QgdHVybiByZWQuCisiTm9uLWluZXJ0IGJ1
dHRvbiIgc2hvdWxkIG5vdCB0dXJuIHJlZC4KKyhUaGUgZnVsbCB0ZXN0IHN1aXRlIGNoZWNrcyBh
IHJhbmdlIG9mIGV2ZW50cy4pCisKK05vbi1pbmVydCBhbmNlc3RvciBjb250YWluZXIKKyBOb24t
aW5lcnQsIGRpc3BsYWNlZCBhbmNlc3RvcgorSW5lcnQgY29udGFpbmVyCitmb3JlZ3JvdW5kCisK
K0hhcm5lc3MgRXJyb3IgKEZBSUwpLCBtZXNzYWdlID0gRXJyb3I6IGFzc2VydF9lcXVhbHM6IGV4
cGVjdGVkIEVsZW1lbnQgbm9kZSA8ZmllbGRzZXQgaWQ9ImFuY2VzdG9yQ29udGFpbmVyIj4KKyAg
ICA8bGVnZW5kPk5vbi1pbmVydCBhLi4uIGJ1dCBnb3QgRWxlbWVudCBub2RlIDxidXR0b24gaWQ9
ImZvcmVncm91bmQiIGNsYXNzPSJjbGlja2VkIj5mb3JlZ3JvdW5kPC9idXR0b24+CisKK1BBU1Mg
ZWxlbWVudHNGcm9tUG9pbnQgcmV0dXJucyBpbmVydCBlbGVtZW50CitGQUlMIFRlc3RzIHRoYXQg
YW55IG1vdXNlIGV2ZW50IG9uIGEgbm9uLWluZXJ0IGVsZW1lbnQgaXMgY29ycmVjdGx5IHRhcmdl
dGVkIHRvIHRoYXQgZWxlbWVudCBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0
aCB2YWx1ZTogImRpZCBub3QgZ2V0IGF1eGNsaWNrIG9uIGZvcmVncm91bmQiCitGQUlMIFRlc3Rz
IHRoYXQgYW55IG1vdXNlIGV2ZW50IG9uIGFuIGluZXJ0IGVsZW1lbnQgaXMgdGFyZ2V0ZWQgdG8g
dGhlIG5lYXJlc3Qgbm9uLWluZXJ0IGFuY2VzdG9yIGF0IHRoZSBzYW1lIGNvb3JkaW5hdGVzIHBy
b21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiAiZGlkIG5vdCBnZXQg
bW91c2VvdmVyIG9uIGFuY2VzdG9yQ29udGFpbmVyIgorUEFTUyBUZXN0cyB0aGF0IGFueSBwb2lu
dGVyIGV2ZW50IG9uIGEgbm9uLWluZXJ0IGVsZW1lbnQgaXMgY29ycmVjdGx5IHRhcmdldGVkIHRv
IHRoYXQgZWxlbWVudAorRkFJTCBUZXN0cyB0aGF0IGFueSBwb2ludGVyIGV2ZW50IG9uIGFuIGlu
ZXJ0IGVsZW1lbnQgaXMgdGFyZ2V0ZWQgdG8gdGhlIG5lYXJlc3Qgbm9uLWluZXJ0IGFuY2VzdG9y
IGF0IHRoZSBzYW1lIGNvb3JkaW5hdGVzIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlv
biB3aXRoIHZhbHVlOiAiZGlkIG5vdCBnZXQgcG9pbnRlcm92ZXIgb24gYW5jZXN0b3JDb250YWlu
ZXIiCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaW5lcnQvaW5lcnQtcmV0YXJnZXRpbmctaWZyYW1lLnRlbnRhdGl2ZS5odG1sIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1yZXRh
cmdldGluZy1pZnJhbWUudGVudGF0aXZlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTc5ZmM1N2JlMjU4YTcw
OWE5ZDIyY2IyNjNhNjQyMmQ5YmRiNzk1MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtcmV0YXJnZXRpbmct
aWZyYW1lLnRlbnRhdGl2ZS5odG1sCkBAIC0wLDAgKzEsMjc5IEBACis8IURPQ1RZUEUgaHRtbD4K
KzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0ZHJpdmVyLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Rkcml2ZXItYWN0aW9ucy5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0ZHJpdmVyLXZlbmRvci5qcyI+PC9zY3Jp
cHQ+Cis8c3R5bGU+CitidXR0b24jZm9yZWdyb3VuZCwKK2J1dHRvbiNiYWNrZ3JvdW5kIHsKKyAg
cG9zaXRpb246IGFic29sdXRlOworICB0b3A6IDc1cHg7CisgIGxlZnQ6IDUwcHg7CisgIHdpZHRo
OiAxMDBweDsKKyAgaGVpZ2h0OiAyMHB4OworfQorCitidXR0b24jYmFja2dyb3VuZCB7CisgIGxl
ZnQ6IDc1cHg7CisgIHdpZHRoOiAxNTBweDsKKyAgaGVpZ2h0OiA0MHB4OworICB0b3A6IDEyNXB4
OworICBsaW5lLWhlaWdodDogNTNweDsKK30KKworLmNsaWNrZWQgeworICBiYWNrZ3JvdW5kLWNv
bG9yOiByZWQ7Cit9CisKKyNhbmNlc3RvckNvbnRhaW5lci5jbGlja2VkIHsKKyAgYmFja2dyb3Vu
ZC1jb2xvcjogZ3JlZW47Cit9CisKKyNhbmNlc3RvckNvbnRhaW5lciB7CisgIHBvc2l0aW9uOiBh
YnNvbHV0ZTsKKyAgdG9wOiAyMDBweDsKKyAgbGVmdDogMTBweDsKKyAgd2lkdGg6IDMwMHB4Owor
ICBoZWlnaHQ6IDMwMHB4OworICBiYWNrZ3JvdW5kLWNvbG9yOiBibHVlOworfQorCisjZGlzcGxh
Y2VkQW5jZXN0b3IgeworICBwb3NpdGlvbjogYWJzb2x1dGU7CisgIHRvcDogMTNweDsKKyAgbGVm
dDogMjQwcHg7CisgIHdpZHRoOiAzMDBweDsKKyAgaGVpZ2h0OiAyNTBweDsKKyAgYmFja2dyb3Vu
ZC1jb2xvcjogI2ZmODk7Cit9CisKKyNkaXNwbGFjZWRBbmNlc3Rvci5jbGlja2VkIHsKKyAgYmFj
a2dyb3VuZC1jb2xvcjogI2YwMDk7Cit9CisKKyNpbmVydENvbnRhaW5lciB7CisgIGJhY2tncm91
bmQtY29sb3I6ICNmZmY5OworICBwb3NpdGlvbjogYWJzb2x1dGU7CisgIHRvcDogMzVweDsKKyAg
bGVmdDogLTE5MnB4OworICB3aWR0aDogMjAwcHg7CisgIGhlaWdodDogMjAwcHg7Cit9CisKK2Zp
ZWxkc2V0IHsKKyAgbWFyZ2luOiAwOworICBwYWRkaW5nOiAwOworICBib3JkZXI6IDFweCBzb2xp
ZCBibGFjazsKK30KKworbGVnZW5kIHsKKyAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7CisgIGJv
cmRlcjogMXB4IHNvbGlkIGJsYWNrOworICBtYXJnaW4tbGVmdDogNXB4OworfQorPC9zdHlsZT4K
KzwvaGVhZD4KKzxib2R5PgorICA8cD5DbGljayBvbiAiSW5lcnQgYnV0dG9uIi48L3A+CisgIDx1
bD4KKyAgICA8bGk+VGhlIGJsdWUgc3F1YXJlICgiTm9uLWluZXJ0IGFuY2VzdG9yIGNvbnRhaW5l
ciIpIHNob3VsZCB0dXJuIGdyZWVuLjwvbGk+CisgICAgPGxpPlRoZSB5ZWxsb3csIHNlbWktdHJh
bnNwYXJlbnQgc3F1YXJlICgiTm9uLWluZXJ0LCBkaXNwbGFjZWQgY29udGFpbmVyIikgc2hvdWxk
IG5vdCB0dXJuIHJlZC48L2xpPgorICAgIDxsaT4iTm9uLWluZXJ0IGJ1dHRvbiIgc2hvdWxkIG5v
dCB0dXJuIHJlZC48L2xpPgorICA8L3VsPgorICA8cCBzdHlsZT0ibWFyZ2luLWJvdHRvbToyNTBw
eCI+KFRoZSBmdWxsIHRlc3Qgc3VpdGUgY2hlY2tzIGEgcmFuZ2Ugb2YgZXZlbnRzLik8L3A+Cisg
IDxmaWVsZHNldCBpZD0iYW5jZXN0b3JDb250YWluZXIiPgorICAgIDxsZWdlbmQ+Tm9uLWluZXJ0
IGFuY2VzdG9yIGNvbnRhaW5lcjwvbGVnZW5kPgorICAgIDxpZnJhbWUgaWQ9ImJhY2tncm91bmQi
IHNyYz0iZnJhbWUvYnV0dG9uLmh0bWwiPjwvaWZyYW1lPgorICAgIDxmaWVsZHNldCBpZD0iZGlz
cGxhY2VkQW5jZXN0b3IiPgorICAgICAgPGxlZ2VuZD5Ob24taW5lcnQsIGRpc3BsYWNlZCBhbmNl
c3RvcjwvbGVnZW5kPgorICAgICAgPGZpZWxkc2V0IGlkPSJpbmVydENvbnRhaW5lciIgaW5lcnQ+
CisgICAgICAgIDxsZWdlbmQ+SW5lcnQgY29udGFpbmVyPC9sZWdlbmQ+CisgICAgICAgIDxidXR0
b24gaWQ9ImZvcmVncm91bmQiPmZvcmVncm91bmQ8L2J1dHRvbj4KKyAgICAgIDwvZmllbGRzZXQ+
CisgICAgPC9maWVsZHNldD4KKyAgPC9maWVsZHNldD4KKworICA8c2NyaXB0PgorZG9jdW1lbnQu
Ym9keS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIChlKSA9PiB7CisgIGUudGFyZ2V0LmNsYXNz
TGlzdC5hZGQoJ2NsaWNrZWQnKTsKK30pOworCitmdW5jdGlvbiBjbGlja09uKGVsZW1lbnQpIHsK
KyAgcmV0dXJuIG5ldyB0ZXN0X2RyaXZlci5BY3Rpb25zKCkKKyAgICAgIC5wb2ludGVyTW92ZSgw
LCAwLCB7b3JpZ2luOiBlbGVtZW50fSkKKyAgICAgIC5wb2ludGVyRG93bih7YnV0dG9uOiB0ZXN0
X2RyaXZlci5BY3Rpb25zLnByb3RvdHlwZS5CdXR0b25UeXBlLkxFRlR9KQorICAgICAgLnBvaW50
ZXJVcCh7YnV0dG9uOiB0ZXN0X2RyaXZlci5BY3Rpb25zLnByb3RvdHlwZS5CdXR0b25UeXBlLkxF
RlR9KQorICAgICAgLnNlbmQoKTsKK30KKworZnVuY3Rpb24gYXV4Q2xpY2tPbihlbGVtZW50KSB7
CisgIHJldHVybiBuZXcgdGVzdF9kcml2ZXIuQWN0aW9ucygpCisgICAgICAucG9pbnRlck1vdmUo
MCwgMCwge29yaWdpbjogZWxlbWVudH0pCisgICAgICAucG9pbnRlckRvd24oe2J1dHRvbjogdGVz
dF9kcml2ZXIuQWN0aW9ucy5wcm90b3R5cGUuQnV0dG9uVHlwZS5SSUdIVH0pCisgICAgICAucG9p
bnRlclVwKHtidXR0b246IHRlc3RfZHJpdmVyLkFjdGlvbnMucHJvdG90eXBlLkJ1dHRvblR5cGUu
UklHSFR9KQorICAgICAgLnNlbmQoKTsKK30KKworZnVuY3Rpb24gZGJsQ2xpY2tPbihlbGVtZW50
KSB7CisgIHJldHVybiBuZXcgdGVzdF9kcml2ZXIuQWN0aW9ucygpCisgICAgICAucG9pbnRlck1v
dmUoMCwgMCwge29yaWdpbjogZWxlbWVudH0pCisgICAgICAucG9pbnRlckRvd24oe2J1dHRvbjog
dGVzdF9kcml2ZXIuQWN0aW9ucy5wcm90b3R5cGUuQnV0dG9uVHlwZS5MRUZUfSkKKyAgICAgIC5w
b2ludGVyVXAoe2J1dHRvbjogdGVzdF9kcml2ZXIuQWN0aW9ucy5wcm90b3R5cGUuQnV0dG9uVHlw
ZS5MRUZUfSkKKyAgICAgIC5wb2ludGVyRG93bih7YnV0dG9uOiB0ZXN0X2RyaXZlci5BY3Rpb25z
LnByb3RvdHlwZS5CdXR0b25UeXBlLkxFRlR9KQorICAgICAgLnBvaW50ZXJVcCh7YnV0dG9uOiB0
ZXN0X2RyaXZlci5BY3Rpb25zLnByb3RvdHlwZS5CdXR0b25UeXBlLkxFRlR9KQorICAgICAgLnNl
bmQoKTsKK30KKworZnVuY3Rpb24gbW92ZVBvaW50ZXJPdmVyKGVsZW1lbnQpIHsKKyAgbGV0IHJl
Y3QgPSBlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworICByZXR1cm4gbmV3IHRlc3Rf
ZHJpdmVyLkFjdGlvbnMoKQorICAgICAgLnBvaW50ZXJNb3ZlKDAsIDAsIHsgb3JpZ2luOiBlbGVt
ZW50IH0pCisgICAgICAuc2VuZCgpOworfQorCitmdW5jdGlvbiBtb3ZlUG9pbnRlclRvKHgsIHkp
IHsKKyAgcmV0dXJuIG5ldyB0ZXN0X2RyaXZlci5BY3Rpb25zKCkKKyAgICAgIC5wb2ludGVyTW92
ZShNYXRoLmNlaWwoeCksIE1hdGguY2VpbCh5KSwgeyBvcmlnaW46ICJ2aWV3cG9ydCIgfSkKKyAg
ICAgIC5zZW5kKCk7Cit9CisKK2Z1bmN0aW9uIGV4cGVjdEV2ZW50c09uKGV2ZW50cywgZWxlbWVu
dCkgeworICBsZXQgcHJvbWlzZXMgPSBbXTsKKyAgZm9yIChldmVudCBvZiBldmVudHMpIHsKKyAg
ICAoKGV2ZW50LCBlbGVtZW50KSA9PiB7CisgICAgICB2YXIgcHJvbWlzZSA9IG5ldyBQcm9taXNl
KChyZXNvbHZlLCByZWplY3QpID0+IHsKKyAgICAgICAgbGV0IGYgPSAoZSkgPT4geworICAgICAg
ICAgIGFzc2VydF9lcXVhbHMoZS50eXBlLCBldmVudCk7CisgICAgICAgICAgYXNzZXJ0X2VxdWFs
cyhlLnRhcmdldCwgZWxlbWVudCk7CisgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgICB9Cisg
ICAgICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihldmVudCwgZiwgeyBjYXB0dXJlOiB0cnVl
LCBvbmNlOiB0cnVlIH0pOworCisgICAgICAgIHN0ZXBfdGltZW91dCgoKSA9PiB7CisgICAgICAg
ICAgZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50LCBmLCB7IGNhcHR1cmU6IHRydWUg
fSk7CisgICAgICAgICAgcmVqZWN0KCJkaWQgbm90IGdldCAiICsgZXZlbnQgKyAiIG9uICIgKyBl
bGVtZW50LmlkKTsKKyAgICAgICAgfSwgNTAwMCk7CisgICAgICB9KTsKKyAgICAgIHByb21pc2Vz
LnB1c2gocHJvbWlzZSk7CisgICAgfSkoZXZlbnQsIGVsZW1lbnQpOworICB9CisgIHJldHVybiBw
cm9taXNlczsKK30KKworZnVuY3Rpb24gdW5leHBlY3RFdmVudHNPbihldmVudHMsIGVsZW1lbnQp
IHsKKyAgbGV0IHByb21pc2VzID0gW107CisgIGZvciAoZXZlbnQgb2YgZXZlbnRzKSB7CisgICAg
KChldmVudCwgZWxlbWVudCkgPT4geworICAgICAgdmFyIHByb21pc2UgPSBuZXcgUHJvbWlzZSgo
cmVzb2x2ZSwgcmVqZWN0KSA9PiB7CisgICAgICAgIGxldCBmID0gKGUpID0+IHsKKyAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKGUudHlwZSwgZXZlbnQpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMo
ZS50YXJnZXQsIGVsZW1lbnQpOworICAgICAgICAgIHJlamVjdCgiZ290ICIgKyBlLnR5cGUgKyAi
IG9uICIgKyBlLnRhcmdldC5pZCk7CisgICAgICAgIH0KKyAgICAgICAgZWxlbWVudC5hZGRFdmVu
dExpc3RlbmVyKGV2ZW50LCBmLCB7IGNhcHR1cmU6IHRydWUsIG9uY2U6IHRydWUgfSk7CisKKyAg
ICAgICAgc3RlcF90aW1lb3V0KCgpID0+IHsKKyAgICAgICAgICBlbGVtZW50LnJlbW92ZUV2ZW50
TGlzdGVuZXIoZXZlbnQsIGYsIHsgY2FwdHVyZTogdHJ1ZSB9KTsKKyAgICAgICAgICByZXNvbHZl
KCk7CisgICAgICAgIH0sIDEwMDApOworICAgICAgfSk7CisgICAgICBwcm9taXNlcy5wdXNoKHBy
b21pc2UpOworICAgIH0pKGV2ZW50LCBlbGVtZW50KTsKKyAgfQorICByZXR1cm4gcHJvbWlzZXM7
Cit9CisKK3Rlc3QoKCkgPT4geworICBsZXQgcmVjdCA9IGZvcmVncm91bmQuZ2V0Qm91bmRpbmdD
bGllbnRSZWN0KCk7CisgIGxldCBjZW50ZXJfeCA9IHJlY3QubGVmdCArIChyZWN0LndpZHRoIC8g
Mik7CisgIGxldCBjZW50ZXJfeSA9IHJlY3QudG9wICsgKHJlY3QuaGVpZ2h0IC8gMik7CisgIGFz
c2VydF9lcXVhbHMoZG9jdW1lbnQuZWxlbWVudHNGcm9tUG9pbnQoY2VudGVyX3gsIGNlbnRlcl95
KVswXSwgZm9yZWdyb3VuZCk7Cit9LCAiZWxlbWVudHNGcm9tUG9pbnQgcmV0dXJucyBpbmVydCBl
bGVtZW50Iik7CisKK3Byb21pc2VfdGVzdChhc3luYyAoKSA9PiB7CisgIC8vIFRlc3QgbW91c2Ug
ZXZlbnRzIG9uIG5vbi1pbmVydCBlbGVtZW50IC0gZXZlbnRzIHNob3VsZCBnbyB0byAiZm9yZWdy
b3VuZCIKKyAgaW5lcnRDb250YWluZXIuaW5lcnQgPSBmYWxzZTsKKyAgYXdhaXQgbW92ZVBvaW50
ZXJUbygwLCAwKTsKKyAgbGV0IHByb21pc2VzID0gZXhwZWN0RXZlbnRzT24oWyJtb3VzZW92ZXIi
LCAibW91c2VlbnRlciIsICJtb3VzZW1vdmUiLCAibW91c2Vkb3duIiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJtb3VzZXVwIiwgImNsaWNrIiwgImF1eGNsaWNrIiwgIm1vdXNl
b3V0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJtb3VzZWxlYXZlIl0sCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcmVncm91bmQpOworICBhd2FpdCBjbGlj
a09uKGZvcmVncm91bmQpOworICBhd2FpdCBhdXhDbGlja09uKGZvcmVncm91bmQpOworICBhd2Fp
dCBkYmxDbGlja09uKGZvcmVncm91bmQpOworICBsZXQgYW5jZXN0b3JCb3ggPSBhbmNlc3RvckNv
bnRhaW5lci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgbGV0IGluZXJ0Qm94ID0gaW5lcnRD
b250YWluZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CisgIGxldCB4ID0gYW5jZXN0b3JCb3gu
bGVmdCArIChhbmNlc3RvckJveC53aWR0aCAvIDIpOworICBsZXQgeSA9IGluZXJ0Qm94LmJvdHRv
bSArICgoYW5jZXN0b3JCb3guYm90dG9tIC0gaW5lcnRCb3guYm90dG9tKSAvIDIpOworICBhd2Fp
dCBtb3ZlUG9pbnRlclRvKHgsIHkpOworICBhd2FpdCBQcm9taXNlLmFsbChwcm9taXNlcyk7Cit9
LCAiVGVzdHMgdGhhdCBhbnkgbW91c2UgZXZlbnQgb24gYSBub24taW5lcnQgZWxlbWVudCBpcyBj
b3JyZWN0bHkgdGFyZ2V0ZWQgdG8gdGhhdCBlbGVtZW50Iik7CisKK3Byb21pc2VfdGVzdChhc3lu
YyAoKSA9PiB7CisgIC8vIE1ha2UgdGhlIGNvbnRhaW5pbmcgZWxlbWVudCBpbmVydCAtIG5vdyBl
dmVudHMgc2hvdWxkIGdvIHRvICJjb250YWluZXIiCisgIC8vIHdoaWNoIGlzIHRoZSBub24taW5l
cnQgYW5jZXN0b3IgYXQgdGhlIHNhbWUgcG9zaXRpb24KKyAgaW5lcnRDb250YWluZXIuaW5lcnQg
PSB0cnVlOworICBhd2FpdCBtb3ZlUG9pbnRlclRvKDAsIDApOworCisgIGxldCBwcm9taXNlcyA9
IGV4cGVjdEV2ZW50c09uKFsibW91c2VvdmVyIiwgIm1vdXNlZW50ZXIiLCAibW91c2Vtb3ZlIiwg
Im1vdXNlZG93biIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibW91c2V1cCIs
ICJjbGljayIsICJhdXhjbGljayJdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBh
bmNlc3RvckNvbnRhaW5lcik7CisKKyAgcHJvbWlzZXMgPSBwcm9taXNlcy5jb25jYXQodW5leHBl
Y3RFdmVudHNPbihbIm1vdXNlb3V0IiwgIm1vdXNlbGVhdmUiXSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmNlc3RvckNvbnRhaW5lcikpOworCisgIGF3
YWl0IGNsaWNrT24oZm9yZWdyb3VuZCk7CisgIGF3YWl0IGF1eENsaWNrT24oZm9yZWdyb3VuZCk7
CisgIGF3YWl0IGRibENsaWNrT24oZm9yZWdyb3VuZCk7CisgIGxldCBhbmNlc3RvckJveCA9IGFu
Y2VzdG9yQ29udGFpbmVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworICBsZXQgaW5lcnRCb3gg
PSBpbmVydENvbnRhaW5lci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgbGV0IHggPSBhbmNl
c3RvckJveC5sZWZ0ICsgKGFuY2VzdG9yQm94LndpZHRoIC8gMik7CisgIGxldCB5ID0gaW5lcnRC
b3guYm90dG9tICsgKChhbmNlc3RvckJveC5ib3R0b20gLSBpbmVydEJveC5ib3R0b20pIC8gMik7
CisgIGF3YWl0IG1vdmVQb2ludGVyVG8oeCwgeSk7CisgIGF3YWl0IFByb21pc2UuYWxsKHByb21p
c2VzKTsKK30sICdUZXN0cyB0aGF0IGFueSBtb3VzZSBldmVudCBvbiBhbiBpbmVydCBlbGVtZW50
IGlzIHRhcmdldGVkIHRvIHRoZSBuZWFyZXN0IG5vbi1pbmVydCBhbmNlc3RvciBhdCB0aGUgc2Ft
ZSBjb29yZGluYXRlcycpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgKCkgPT4geworICAvLyBUZXN0
IHBvaW50ZXIgZXZlbnRzIG9uIG5vbi1pbmVydCBlbGVtZW50IC0gZXZlbnRzIHNob3VsZCBnbyB0
byAiZm9yZWdyb3VuZCIKKyAgaW5lcnRDb250YWluZXIuaW5lcnQgPSBmYWxzZTsKKyAgYXdhaXQg
bW92ZVBvaW50ZXJUbygwLCAwKTsKKworICBsZXQgcHJvbWlzZXMgPSBleHBlY3RFdmVudHNPbihb
InBvaW50ZXJvdmVyIiwgInBvaW50ZXJlbnRlciIsICJwb2ludGVybW92ZSIsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAicG9pbnRlcmRvd24iLCAicG9pbnRlcnVwIiwgInBvaW50
ZXJvdXQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInBvaW50ZXJsZWF2ZSJd
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JlZ3JvdW5kKTsKKyAgYXdhaXQg
Y2xpY2tPbihmb3JlZ3JvdW5kKTsKKyAgbGV0IGFuY2VzdG9yQm94ID0gYW5jZXN0b3JDb250YWlu
ZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CisgIGxldCBpbmVydEJveCA9IGluZXJ0Q29udGFp
bmVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworICBsZXQgeCA9IGFuY2VzdG9yQm94LmxlZnQg
KyAoYW5jZXN0b3JCb3gud2lkdGggLyAyKTsKKyAgbGV0IHkgPSBpbmVydEJveC5ib3R0b20gKyAo
KGFuY2VzdG9yQm94LmJvdHRvbSAtIGluZXJ0Qm94LmJvdHRvbSkgLyAyKTsKKyAgYXdhaXQgbW92
ZVBvaW50ZXJUbyh4LCB5KTsKKyAgYXdhaXQgUHJvbWlzZS5hbGwocHJvbWlzZXMpOworfSwgIlRl
c3RzIHRoYXQgYW55IHBvaW50ZXIgZXZlbnQgb24gYSBub24taW5lcnQgZWxlbWVudCBpcyBjb3Jy
ZWN0bHkgdGFyZ2V0ZWQgdG8gdGhhdCBlbGVtZW50Iik7CisKK3Byb21pc2VfdGVzdChhc3luYyAo
KSA9PiB7CisgIC8vIE1ha2UgdGhlIGNvbnRhaW5pbmcgZWxlbWVudCBpbmVydCAtIG5vdyBldmVu
dHMgc2hvdWxkIGdvIHRvICJjb250YWluZXIiCisgIC8vIHdoaWNoIGlzIHRoZSBub24taW5lcnQg
YW5jZXN0b3IgYXQgdGhlIHNhbWUgcG9zaXRpb24KKyAgaW5lcnRDb250YWluZXIuaW5lcnQgPSB0
cnVlOworICBhd2FpdCBtb3ZlUG9pbnRlclRvKDAsIDApOworCisgIGxldCBwcm9taXNlcyA9IGV4
cGVjdEV2ZW50c09uKFsicG9pbnRlcm92ZXIiLCAicG9pbnRlcmVudGVyIiwgInBvaW50ZXJtb3Zl
IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwb2ludGVyZG93biIsICJwb2lu
dGVydXAiIF0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuY2VzdG9yQ29udGFp
bmVyKTsKKworICBwcm9taXNlcyA9IHByb21pc2VzLmNvbmNhdCh1bmV4cGVjdEV2ZW50c09uKFsi
cG9pbnRlcm91dCIsICJwb2ludGVybGVhdmUiXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBhbmNlc3RvckNvbnRhaW5lcikpOworICBhd2FpdCBjbGlja09u
KGZvcmVncm91bmQpOworICBsZXQgYW5jZXN0b3JCb3ggPSBhbmNlc3RvckNvbnRhaW5lci5nZXRC
b3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgbGV0IGluZXJ0Qm94ID0gaW5lcnRDb250YWluZXIuZ2V0
Qm91bmRpbmdDbGllbnRSZWN0KCk7CisgIGxldCB4ID0gYW5jZXN0b3JCb3gubGVmdCArIChhbmNl
c3RvckJveC53aWR0aCAvIDIpOworICBsZXQgeSA9IGluZXJ0Qm94LmJvdHRvbSArICgoYW5jZXN0
b3JCb3guYm90dG9tIC0gaW5lcnRCb3guYm90dG9tKSAvIDIpOworICBhd2FpdCBtb3ZlUG9pbnRl
clRvKHgsIHkpOworICBhd2FpdCBQcm9taXNlLmFsbChwcm9taXNlcyk7Cit9LCAnVGVzdHMgdGhh
dCBhbnkgcG9pbnRlciBldmVudCBvbiBhbiBpbmVydCBlbGVtZW50IGlzIHRhcmdldGVkIHRvIHRo
ZSBuZWFyZXN0IG5vbi1pbmVydCBhbmNlc3RvciBhdCB0aGUgc2FtZSBjb29yZGluYXRlcycpOwor
ICA8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtcmV0YXJnZXRpbmcudGVu
dGF0aXZlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaW5lcnQvaW5lcnQtcmV0YXJnZXRpbmcudGVudGF0aXZlLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5iYjc0NWZhMjE4ZGJjYjVhNGVjNmU2ZmJiNmFkMmI1YjRkYTllYTE1Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9pbmVydC9pbmVydC1yZXRhcmdldGluZy50ZW50YXRpdmUtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsNDcgQEAKK0NPTlNPTEUgTUVTU0FHRTogRXJyb3I6IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVk
IEVsZW1lbnQgbm9kZSA8ZmllbGRzZXQgaWQ9ImFuY2VzdG9yQ29udGFpbmVyIj4KKyAgICA8bGVn
ZW5kPk5vbi1pbmVydCBhLi4uIGJ1dCBnb3QgRWxlbWVudCBub2RlIDxidXR0b24gaWQ9ImZvcmVn
cm91bmQiIGNsYXNzPSJjbGlja2VkIj5mb3JlZ3JvdW5kPC9idXR0b24+CitDT05TT0xFIE1FU1NB
R0U6IEVycm9yOiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCBFbGVtZW50IG5vZGUgPGZpZWxkc2V0
IGlkPSJhbmNlc3RvckNvbnRhaW5lciI+CisgICAgPGxlZ2VuZD5Ob24taW5lcnQgYS4uLiBidXQg
Z290IEVsZW1lbnQgbm9kZSA8YnV0dG9uIGlkPSJmb3JlZ3JvdW5kIiBjbGFzcz0iY2xpY2tlZCI+
Zm9yZWdyb3VuZDwvYnV0dG9uPgorQ09OU09MRSBNRVNTQUdFOiBFcnJvcjogYXNzZXJ0X2VxdWFs
czogZXhwZWN0ZWQgRWxlbWVudCBub2RlIDxmaWVsZHNldCBpZD0iYW5jZXN0b3JDb250YWluZXIi
PgorICAgIDxsZWdlbmQ+Tm9uLWluZXJ0IGEuLi4gYnV0IGdvdCBFbGVtZW50IG5vZGUgPGJ1dHRv
biBpZD0iZm9yZWdyb3VuZCIgY2xhc3M9ImNsaWNrZWQiPmZvcmVncm91bmQ8L2J1dHRvbj4KK0NP
TlNPTEUgTUVTU0FHRTogRXJyb3I6IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIEVsZW1lbnQgbm9k
ZSA8ZmllbGRzZXQgaWQ9ImFuY2VzdG9yQ29udGFpbmVyIj4KKyAgICA8bGVnZW5kPk5vbi1pbmVy
dCBhLi4uIGJ1dCBnb3QgRWxlbWVudCBub2RlIDxidXR0b24gaWQ9ImZvcmVncm91bmQiIGNsYXNz
PSJjbGlja2VkIj5mb3JlZ3JvdW5kPC9idXR0b24+CitDT05TT0xFIE1FU1NBR0U6IEVycm9yOiBh
c3NlcnRfZXF1YWxzOiBleHBlY3RlZCBFbGVtZW50IG5vZGUgPGZpZWxkc2V0IGlkPSJhbmNlc3Rv
ckNvbnRhaW5lciI+CisgICAgPGxlZ2VuZD5Ob24taW5lcnQgYS4uLiBidXQgZ290IEVsZW1lbnQg
bm9kZSA8YnV0dG9uIGlkPSJmb3JlZ3JvdW5kIiBjbGFzcz0iY2xpY2tlZCI+Zm9yZWdyb3VuZDwv
YnV0dG9uPgorQ09OU09MRSBNRVNTQUdFOiBFcnJvcjogYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQg
RWxlbWVudCBub2RlIDxmaWVsZHNldCBpZD0iYW5jZXN0b3JDb250YWluZXIiPgorICAgIDxsZWdl
bmQ+Tm9uLWluZXJ0IGEuLi4gYnV0IGdvdCBFbGVtZW50IG5vZGUgPGJ1dHRvbiBpZD0iZm9yZWdy
b3VuZCIgY2xhc3M9ImNsaWNrZWQiPmZvcmVncm91bmQ8L2J1dHRvbj4KK0NPTlNPTEUgTUVTU0FH
RTogRXJyb3I6IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIEVsZW1lbnQgbm9kZSA8ZmllbGRzZXQg
aWQ9ImFuY2VzdG9yQ29udGFpbmVyIj4KKyAgICA8bGVnZW5kPk5vbi1pbmVydCBhLi4uIGJ1dCBn
b3QgRWxlbWVudCBub2RlIDxidXR0b24gaWQ9ImZvcmVncm91bmQiIGNsYXNzPSJjbGlja2VkIj5m
b3JlZ3JvdW5kPC9idXR0b24+CitDT05TT0xFIE1FU1NBR0U6IEVycm9yOiBhc3NlcnRfZXF1YWxz
OiBleHBlY3RlZCBFbGVtZW50IG5vZGUgPGZpZWxkc2V0IGlkPSJhbmNlc3RvckNvbnRhaW5lciI+
CisgICAgPGxlZ2VuZD5Ob24taW5lcnQgYS4uLiBidXQgZ290IEVsZW1lbnQgbm9kZSA8YnV0dG9u
IGlkPSJmb3JlZ3JvdW5kIiBjbGFzcz0iY2xpY2tlZCI+Zm9yZWdyb3VuZDwvYnV0dG9uPgorQ09O
U09MRSBNRVNTQUdFOiBFcnJvcjogYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgRWxlbWVudCBub2Rl
IDxmaWVsZHNldCBpZD0iYW5jZXN0b3JDb250YWluZXIiPgorICAgIDxsZWdlbmQ+Tm9uLWluZXJ0
IGEuLi4gYnV0IGdvdCBFbGVtZW50IG5vZGUgPGJ1dHRvbiBpZD0iZm9yZWdyb3VuZCIgY2xhc3M9
ImNsaWNrZWQiPmZvcmVncm91bmQ8L2J1dHRvbj4KK0NPTlNPTEUgTUVTU0FHRTogRXJyb3I6IGFz
c2VydF9lcXVhbHM6IGV4cGVjdGVkIEVsZW1lbnQgbm9kZSA8ZmllbGRzZXQgaWQ9ImFuY2VzdG9y
Q29udGFpbmVyIj4KKyAgICA8bGVnZW5kPk5vbi1pbmVydCBhLi4uIGJ1dCBnb3QgRWxlbWVudCBu
b2RlIDxidXR0b24gaWQ9ImZvcmVncm91bmQiIGNsYXNzPSJjbGlja2VkIj5mb3JlZ3JvdW5kPC9i
dXR0b24+CitDT05TT0xFIE1FU1NBR0U6IEVycm9yOiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCBF
bGVtZW50IG5vZGUgPGZpZWxkc2V0IGlkPSJhbmNlc3RvckNvbnRhaW5lciI+CisgICAgPGxlZ2Vu
ZD5Ob24taW5lcnQgYS4uLiBidXQgZ290IEVsZW1lbnQgbm9kZSA8YnV0dG9uIGlkPSJmb3JlZ3Jv
dW5kIiBjbGFzcz0iY2xpY2tlZCI+Zm9yZWdyb3VuZDwvYnV0dG9uPgorQ09OU09MRSBNRVNTQUdF
OiBFcnJvcjogYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgRWxlbWVudCBub2RlIDxmaWVsZHNldCBp
ZD0iYW5jZXN0b3JDb250YWluZXIiPgorICAgIDxsZWdlbmQ+Tm9uLWluZXJ0IGEuLi4gYnV0IGdv
dCBFbGVtZW50IG5vZGUgPGJ1dHRvbiBpZD0iZm9yZWdyb3VuZCIgY2xhc3M9ImNsaWNrZWQiPmZv
cmVncm91bmQ8L2J1dHRvbj4KK0NPTlNPTEUgTUVTU0FHRTogRXJyb3I6IGFzc2VydF9lcXVhbHM6
IGV4cGVjdGVkIEVsZW1lbnQgbm9kZSA8ZmllbGRzZXQgaWQ9ImFuY2VzdG9yQ29udGFpbmVyIj4K
KyAgICA8bGVnZW5kPk5vbi1pbmVydCBhLi4uIGJ1dCBnb3QgRWxlbWVudCBub2RlIDxidXR0b24g
aWQ9ImZvcmVncm91bmQiIGNsYXNzPSJjbGlja2VkIj5mb3JlZ3JvdW5kPC9idXR0b24+CitDbGlj
ayBvbiAiZm9yZWdyb3VuZCIuCisKK1RoZSBibHVlIHNxdWFyZSAoIk5vbi1pbmVydCBhbmNlc3Rv
ciBjb250YWluZXIiKSBzaG91bGQgdHVybiBncmVlbi4KK1RoZSB5ZWxsb3csIHNlbWktdHJhbnNw
YXJlbnQgc3F1YXJlICgiTm9uLWluZXJ0LCBkaXNwbGFjZWQgY29udGFpbmVyIikgc2hvdWxkIG5v
dCB0dXJuIHJlZC4KKyJOb24taW5lcnQgYnV0dG9uIiBzaG91bGQgbm90IHR1cm4gcmVkLgorKFRo
ZSBmdWxsIHRlc3Qgc3VpdGUgY2hlY2tzIGEgcmFuZ2Ugb2YgZXZlbnRzLikKKworTm9uLWluZXJ0
IGFuY2VzdG9yIGNvbnRhaW5lcgorYmFja2dyb3VuZE5vbi1pbmVydCwgZGlzcGxhY2VkIGFuY2Vz
dG9yCitJbmVydCBjb250YWluZXIKK2ZvcmVncm91bmQKKworSGFybmVzcyBFcnJvciAoRkFJTCks
IG1lc3NhZ2UgPSBFcnJvcjogYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgRWxlbWVudCBub2RlIDxm
aWVsZHNldCBpZD0iYW5jZXN0b3JDb250YWluZXIiPgorICAgIDxsZWdlbmQ+Tm9uLWluZXJ0IGEu
Li4gYnV0IGdvdCBFbGVtZW50IG5vZGUgPGJ1dHRvbiBpZD0iZm9yZWdyb3VuZCIgY2xhc3M9ImNs
aWNrZWQiPmZvcmVncm91bmQ8L2J1dHRvbj4KKworUEFTUyBlbGVtZW50c0Zyb21Qb2ludCByZXR1
cm5zIGluZXJ0IGVsZW1lbnQKK0ZBSUwgVGVzdHMgdGhhdCBhbnkgbW91c2UgZXZlbnQgb24gYSBu
b24taW5lcnQgZWxlbWVudCBpcyBjb3JyZWN0bHkgdGFyZ2V0ZWQgdG8gdGhhdCBlbGVtZW50IHBy
b21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiAiZGlkIG5vdCBnZXQg
YXV4Y2xpY2sgb24gZm9yZWdyb3VuZCIKK0ZBSUwgVGVzdHMgdGhhdCBhbnkgbW91c2UgZXZlbnQg
b24gYW4gaW5lcnQgZWxlbWVudCBpcyB0YXJnZXRlZCB0byB0aGUgbmVhcmVzdCBub24taW5lcnQg
YW5jZXN0b3IgYXQgdGhlIHNhbWUgY29vcmRpbmF0ZXMgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQg
cmVqZWN0aW9uIHdpdGggdmFsdWU6ICJkaWQgbm90IGdldCBtb3VzZW92ZXIgb24gYW5jZXN0b3JD
b250YWluZXIiCitQQVNTIFRlc3RzIHRoYXQgYW55IHBvaW50ZXIgZXZlbnQgb24gYSBub24taW5l
cnQgZWxlbWVudCBpcyBjb3JyZWN0bHkgdGFyZ2V0ZWQgdG8gdGhhdCBlbGVtZW50CitGQUlMIFRl
c3RzIHRoYXQgYW55IHBvaW50ZXIgZXZlbnQgb24gYW4gaW5lcnQgZWxlbWVudCBpcyB0YXJnZXRl
ZCB0byB0aGUgbmVhcmVzdCBub24taW5lcnQgYW5jZXN0b3IgYXQgdGhlIHNhbWUgY29vcmRpbmF0
ZXMgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6ICJkaWQgbm90
IGdldCBwb2ludGVyb3ZlciBvbiBhbmNlc3RvckNvbnRhaW5lciIKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1yZXRh
cmdldGluZy50ZW50YXRpdmUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtcmV0YXJnZXRpbmcudGVudGF0aXZlLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMjI4MGNmNWE1ZDFmYjE2ZWYxOTIzMTBlNGZiNGY3ZDIyYjM3MDJiMwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5l
cnQvaW5lcnQtcmV0YXJnZXRpbmcudGVudGF0aXZlLmh0bWwKQEAgLTAsMCArMSwyOTAgQEAKKzwh
RE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Rkcml2
ZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGRyaXZlci1hY3Rp
b25zLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Rkcml2ZXItdmVu
ZG9yLmpzIj48L3NjcmlwdD4KKzxzdHlsZT4KK2J1dHRvbiNmb3JlZ3JvdW5kLAorYnV0dG9uI2Jh
Y2tncm91bmQgeworICBwb3NpdGlvbjogYWJzb2x1dGU7CisgIHRvcDogNzVweDsKKyAgbGVmdDog
NTBweDsKKyAgd2lkdGg6IDEwMHB4OworICBoZWlnaHQ6IDIwcHg7Cit9CisKK2J1dHRvbiNiYWNr
Z3JvdW5kIHsKKyAgbGVmdDogNzVweDsKKyAgd2lkdGg6IDE1MHB4OworICBoZWlnaHQ6IDQwcHg7
CisgIHRvcDogMTI1cHg7CisgIGxpbmUtaGVpZ2h0OiA1M3B4OworfQorCisuY2xpY2tlZCB7Cisg
IGJhY2tncm91bmQtY29sb3I6IHJlZDsKK30KKworI2FuY2VzdG9yQ29udGFpbmVyLmNsaWNrZWQg
eworICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKK30KKworI2FuY2VzdG9yQ29udGFpbmVyIHsK
KyAgcG9zaXRpb246IHJlbGF0aXZlOworICB3aWR0aDogMzAwcHg7CisgIGhlaWdodDogMzAwcHg7
CisgIGJhY2tncm91bmQtY29sb3I6IGJsdWU7Cit9CisKKyNkaXNwbGFjZWRBbmNlc3RvciB7Cisg
IHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgdG9wOiAxM3B4OworICBsZWZ0OiAyNDBweDsKKyAgd2lk
dGg6IDMwMHB4OworICBoZWlnaHQ6IDI1MHB4OworICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY4OTsK
K30KKworI2Rpc3BsYWNlZEFuY2VzdG9yLmNsaWNrZWQgeworICBiYWNrZ3JvdW5kLWNvbG9yOiAj
ZjAwOTsKK30KKworI2luZXJ0Q29udGFpbmVyIHsKKyAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjk7
CisgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgdG9wOiAzNXB4OworICBsZWZ0OiAtMTkycHg7Cisg
IHdpZHRoOiAyMDBweDsKKyAgaGVpZ2h0OiAyMDBweDsKK30KKworZmllbGRzZXQgeworICBtYXJn
aW46IDA7CisgIHBhZGRpbmc6IDA7CisgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOworfQorCits
ZWdlbmQgeworICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsKKyAgYm9yZGVyOiAxcHggc29saWQg
YmxhY2s7CisgIG1hcmdpbi1sZWZ0OiA1cHg7Cit9CisKK2J1dHRvbi5jbGlja2VkOjphZnRlciB7
CisgIGNvbnRlbnQ6ICIgKGNsaWNrZWQpIjsKK30KKworLmNsaWNrZWQgPiBsZWdlbmQ6OmFmdGVy
IHsKKyAgY29udGVudDogIiAoY2xpY2tlZCkiOworfQorCis8L3N0eWxlPgorPC9oZWFkPgorPGJv
ZHk+CisgIDxwPkNsaWNrIG9uICJmb3JlZ3JvdW5kIi48L3A+CisgIDx1bD4KKyAgICA8bGk+VGhl
IGJsdWUgc3F1YXJlICgiTm9uLWluZXJ0IGFuY2VzdG9yIGNvbnRhaW5lciIpIHNob3VsZCB0dXJu
IGdyZWVuLjwvbGk+CisgICAgPGxpPlRoZSB5ZWxsb3csIHNlbWktdHJhbnNwYXJlbnQgc3F1YXJl
ICgiTm9uLWluZXJ0LCBkaXNwbGFjZWQgY29udGFpbmVyIikgc2hvdWxkIG5vdCB0dXJuIHJlZC48
L2xpPgorICAgIDxsaT4iTm9uLWluZXJ0IGJ1dHRvbiIgc2hvdWxkIG5vdCB0dXJuIHJlZC48L2xp
PgorICA8L3VsPgorICA8cD4oVGhlIGZ1bGwgdGVzdCBzdWl0ZSBjaGVja3MgYSByYW5nZSBvZiBl
dmVudHMuKTwvcD4KKyAgPGZpZWxkc2V0IGlkPSJhbmNlc3RvckNvbnRhaW5lciI+CisgICAgPGxl
Z2VuZD5Ob24taW5lcnQgYW5jZXN0b3IgY29udGFpbmVyPC9sZWdlbmQ+CisgICAgPGJ1dHRvbiBp
ZD0iYmFja2dyb3VuZCI+YmFja2dyb3VuZDwvYnV0dG9uPgorICAgIDxmaWVsZHNldCBpZD0iZGlz
cGxhY2VkQW5jZXN0b3IiPgorICAgICAgPGxlZ2VuZD5Ob24taW5lcnQsIGRpc3BsYWNlZCBhbmNl
c3RvcjwvbGVnZW5kPgorICAgICAgPGZpZWxkc2V0IGlkPSJpbmVydENvbnRhaW5lciIgaW5lcnQ+
CisgICAgICAgIDxsZWdlbmQ+SW5lcnQgY29udGFpbmVyPC9sZWdlbmQ+CisgICAgICAgIDxidXR0
b24gaWQ9ImZvcmVncm91bmQiPmZvcmVncm91bmQ8L2J1dHRvbj4KKyAgICAgIDwvZmllbGRzZXQ+
CisgICAgPC9maWVsZHNldD4KKyAgPC9maWVsZHNldD4KKworICA8c2NyaXB0PgorZG9jdW1lbnQu
Ym9keS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIChlKSA9PiB7CisgIGUudGFyZ2V0LmNsYXNz
TGlzdC5hZGQoJ2NsaWNrZWQnKTsKK30pOworCitmdW5jdGlvbiBjbGlja09uKGVsZW1lbnQpIHsK
KyAgcmV0dXJuIG5ldyB0ZXN0X2RyaXZlci5BY3Rpb25zKCkKKyAgICAgIC5wb2ludGVyTW92ZSgw
LCAwLCB7b3JpZ2luOiBlbGVtZW50fSkKKyAgICAgIC5wb2ludGVyRG93bih7YnV0dG9uOiB0ZXN0
X2RyaXZlci5BY3Rpb25zLnByb3RvdHlwZS5CdXR0b25UeXBlLkxFRlR9KQorICAgICAgLnBvaW50
ZXJVcCh7YnV0dG9uOiB0ZXN0X2RyaXZlci5BY3Rpb25zLnByb3RvdHlwZS5CdXR0b25UeXBlLkxF
RlR9KQorICAgICAgLnNlbmQoKTsKK30KKworZnVuY3Rpb24gYXV4Q2xpY2tPbihlbGVtZW50KSB7
CisgIHJldHVybiBuZXcgdGVzdF9kcml2ZXIuQWN0aW9ucygpCisgICAgICAucG9pbnRlck1vdmUo
MCwgMCwge29yaWdpbjogZWxlbWVudH0pCisgICAgICAucG9pbnRlckRvd24oe2J1dHRvbjogdGVz
dF9kcml2ZXIuQWN0aW9ucy5wcm90b3R5cGUuQnV0dG9uVHlwZS5SSUdIVH0pCisgICAgICAucG9p
bnRlclVwKHtidXR0b246IHRlc3RfZHJpdmVyLkFjdGlvbnMucHJvdG90eXBlLkJ1dHRvblR5cGUu
UklHSFR9KQorICAgICAgLnNlbmQoKTsKK30KKworZnVuY3Rpb24gZGJsQ2xpY2tPbihlbGVtZW50
KSB7CisgIHJldHVybiBuZXcgdGVzdF9kcml2ZXIuQWN0aW9ucygpCisgICAgICAucG9pbnRlck1v
dmUoMCwgMCwge29yaWdpbjogZWxlbWVudH0pCisgICAgICAucG9pbnRlckRvd24oe2J1dHRvbjog
dGVzdF9kcml2ZXIuQWN0aW9ucy5wcm90b3R5cGUuQnV0dG9uVHlwZS5MRUZUfSkKKyAgICAgIC5w
b2ludGVyVXAoe2J1dHRvbjogdGVzdF9kcml2ZXIuQWN0aW9ucy5wcm90b3R5cGUuQnV0dG9uVHlw
ZS5MRUZUfSkKKyAgICAgIC5wb2ludGVyRG93bih7YnV0dG9uOiB0ZXN0X2RyaXZlci5BY3Rpb25z
LnByb3RvdHlwZS5CdXR0b25UeXBlLkxFRlR9KQorICAgICAgLnBvaW50ZXJVcCh7YnV0dG9uOiB0
ZXN0X2RyaXZlci5BY3Rpb25zLnByb3RvdHlwZS5CdXR0b25UeXBlLkxFRlR9KQorICAgICAgLnNl
bmQoKTsKK30KKworZnVuY3Rpb24gbW92ZVBvaW50ZXJPdmVyKGVsZW1lbnQpIHsKKyAgbGV0IHJl
Y3QgPSBlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworICByZXR1cm4gbmV3IHRlc3Rf
ZHJpdmVyLkFjdGlvbnMoKQorICAgICAgLnBvaW50ZXJNb3ZlKDAsIDAsIHsgb3JpZ2luOiBlbGVt
ZW50IH0pCisgICAgICAuc2VuZCgpOworfQorCitmdW5jdGlvbiBtb3ZlUG9pbnRlclRvKHgsIHkp
IHsKKyAgcmV0dXJuIG5ldyB0ZXN0X2RyaXZlci5BY3Rpb25zKCkKKyAgICAgIC5wb2ludGVyTW92
ZSh4LCB5LCB7IG9yaWdpbjogInZpZXdwb3J0IiB9KQorICAgICAgLnNlbmQoKTsKK30KKworZnVu
Y3Rpb24gZXhwZWN0RXZlbnRzT24oZXZlbnRzLCBlbGVtZW50KSB7CisgIGxldCBwcm9taXNlcyA9
IFtdOworICBmb3IgKGV2ZW50IG9mIGV2ZW50cykgeworICAgICgoZXZlbnQsIGVsZW1lbnQpID0+
IHsKKyAgICAgIHZhciBwcm9taXNlID0gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4g
eworICAgICAgICBsZXQgZiA9IChlKSA9PiB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnR5
cGUsIGV2ZW50KTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LCBlbGVtZW50KTsK
KyAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgIH0KKyAgICAgICAgZWxlbWVudC5hZGRFdmVu
dExpc3RlbmVyKGV2ZW50LCBmLCB7IGNhcHR1cmU6IHRydWUsIG9uY2U6IHRydWUgfSk7CisKKyAg
ICAgICAgc3RlcF90aW1lb3V0KCgpID0+IHsKKyAgICAgICAgICBlbGVtZW50LnJlbW92ZUV2ZW50
TGlzdGVuZXIoZXZlbnQsIGYsIHsgY2FwdHVyZTogdHJ1ZSB9KTsKKyAgICAgICAgICByZWplY3Qo
ImRpZCBub3QgZ2V0ICIgKyBldmVudCArICIgb24gIiArIGVsZW1lbnQuaWQpOworICAgICAgICB9
LCAxMDAwKTsKKyAgICAgIH0pOworICAgICAgcHJvbWlzZXMucHVzaChwcm9taXNlKTsKKyAgICB9
KShldmVudCwgZWxlbWVudCk7CisgIH0KKyAgcmV0dXJuIHByb21pc2VzOworfQorCitmdW5jdGlv
biB1bmV4cGVjdEV2ZW50c09uKGV2ZW50cywgZWxlbWVudCkgeworICBsZXQgcHJvbWlzZXMgPSBb
XTsKKyAgZm9yIChldmVudCBvZiBldmVudHMpIHsKKyAgICAoKGV2ZW50LCBlbGVtZW50KSA9PiB7
CisgICAgICB2YXIgcHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsK
KyAgICAgICAgbGV0IGYgPSAoZSkgPT4geworICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50eXBl
LCBldmVudCk7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldCwgZWxlbWVudCk7Cisg
ICAgICAgICAgcmVqZWN0KCJnb3QgIiArIGUudHlwZSArICIgb24gIiArIGUudGFyZ2V0LmlkKTsK
KyAgICAgICAgfQorICAgICAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoZXZlbnQsIGYsIHsg
Y2FwdHVyZTogdHJ1ZSwgb25jZTogdHJ1ZSB9KTsKKworICAgICAgICBzdGVwX3RpbWVvdXQoKCkg
PT4geworICAgICAgICAgIGVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihldmVudCwgZiwgeyBj
YXB0dXJlOiB0cnVlIH0pOworICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgICAgfSwgMTAwMCk7
CisgICAgICB9KTsKKyAgICAgIHByb21pc2VzLnB1c2gocHJvbWlzZSk7CisgICAgfSkoZXZlbnQs
IGVsZW1lbnQpOworICB9CisgIHJldHVybiBwcm9taXNlczsKK30KKwordGVzdCgoKSA9PiB7Cisg
IGxldCByZWN0ID0gZm9yZWdyb3VuZC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgbGV0IGNl
bnRlcl94ID0gcmVjdC5sZWZ0ICsgKHJlY3Qud2lkdGggLyAyKTsKKyAgbGV0IGNlbnRlcl95ID0g
cmVjdC50b3AgKyAocmVjdC5oZWlnaHQgLyAyKTsKKyAgYXNzZXJ0X2VxdWFscyhkb2N1bWVudC5l
bGVtZW50c0Zyb21Qb2ludChjZW50ZXJfeCwgY2VudGVyX3kpWzBdLCBmb3JlZ3JvdW5kKTsKK30s
ICJlbGVtZW50c0Zyb21Qb2ludCByZXR1cm5zIGluZXJ0IGVsZW1lbnQiKTsKKworcHJvbWlzZV90
ZXN0KGFzeW5jICgpID0+IHsKKyAgLy8gVGVzdCBtb3VzZSBldmVudHMgb24gbm9uLWluZXJ0IGVs
ZW1lbnQgLSBldmVudHMgc2hvdWxkIGdvIHRvICJmb3JlZ3JvdW5kIgorICBpbmVydENvbnRhaW5l
ci5pbmVydCA9IGZhbHNlOworICBhd2FpdCBtb3ZlUG9pbnRlclRvKDAsIDApOworICBsZXQgcHJv
bWlzZXMgPSBleHBlY3RFdmVudHNPbihbIm1vdXNlb3ZlciIsICJtb3VzZWVudGVyIiwgIm1vdXNl
bW92ZSIsICJtb3VzZWRvd24iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm1v
dXNldXAiLCAiY2xpY2siLCAiYXV4Y2xpY2siLCAibW91c2VvdXQiLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIm1vdXNlbGVhdmUiXSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZm9yZWdyb3VuZCk7CisgIGF3YWl0IGNsaWNrT24oZm9yZWdyb3VuZCk7CisgIGF3
YWl0IGF1eENsaWNrT24oZm9yZWdyb3VuZCk7CisgIGF3YWl0IGRibENsaWNrT24oZm9yZWdyb3Vu
ZCk7CisgIGxldCBhbmNlc3RvckJveCA9IGFuY2VzdG9yQ29udGFpbmVyLmdldEJvdW5kaW5nQ2xp
ZW50UmVjdCgpOworICBsZXQgaW5lcnRCb3ggPSBpbmVydENvbnRhaW5lci5nZXRCb3VuZGluZ0Ns
aWVudFJlY3QoKTsKKyAgbGV0IHggPSBhbmNlc3RvckJveC5sZWZ0ICsgKGFuY2VzdG9yQm94Lndp
ZHRoIC8gMik7CisgIGxldCB5ID0gaW5lcnRCb3guYm90dG9tICsgKChhbmNlc3RvckJveC5ib3R0
b20gLSBpbmVydEJveC5ib3R0b20pIC8gMik7CisgIGF3YWl0IG1vdmVQb2ludGVyVG8oeCwgeSk7
CisgIGF3YWl0IFByb21pc2UuYWxsKHByb21pc2VzKTsKK30sICJUZXN0cyB0aGF0IGFueSBtb3Vz
ZSBldmVudCBvbiBhIG5vbi1pbmVydCBlbGVtZW50IGlzIGNvcnJlY3RseSB0YXJnZXRlZCB0byB0
aGF0IGVsZW1lbnQiKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jICgpID0+IHsKKyAgLy8gTWFrZSB0
aGUgY29udGFpbmluZyBlbGVtZW50IGluZXJ0IC0gbm93IGV2ZW50cyBzaG91bGQgZ28gdG8gImNv
bnRhaW5lciIKKyAgLy8gd2hpY2ggaXMgdGhlIG5vbi1pbmVydCBhbmNlc3RvciBhdCB0aGUgc2Ft
ZSBwb3NpdGlvbgorICBpbmVydENvbnRhaW5lci5pbmVydCA9IHRydWU7CisgIGF3YWl0IG1vdmVQ
b2ludGVyVG8oMCwgMCk7CisKKyAgbGV0IHByb21pc2VzID0gZXhwZWN0RXZlbnRzT24oWyJtb3Vz
ZW92ZXIiLCAibW91c2VlbnRlciIsICJtb3VzZW1vdmUiLCAibW91c2Vkb3duIiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJtb3VzZXVwIiwgImNsaWNrIiwgImF1eGNsaWNrIl0s
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuY2VzdG9yQ29udGFpbmVyKTsKKwor
ICAvLyBUT0RPKGFib3hoYWxsKTogV2UgYXJlIGdldHRpbmcgdGhlc2UgdW5leHBlY3RlZCBldmVu
dHMuIFdoeT8KKyAgcHJvbWlzZXMgPSBwcm9taXNlcy5jb25jYXQodW5leHBlY3RFdmVudHNPbihb
Im1vdXNlb3V0IiwgIm1vdXNlbGVhdmUiXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBhbmNlc3RvckNvbnRhaW5lcikpOworCisgIGF3YWl0IGNsaWNrT24o
Zm9yZWdyb3VuZCk7CisgIGF3YWl0IGF1eENsaWNrT24oZm9yZWdyb3VuZCk7CisgIGF3YWl0IGRi
bENsaWNrT24oZm9yZWdyb3VuZCk7CisgIGxldCBhbmNlc3RvckJveCA9IGFuY2VzdG9yQ29udGFp
bmVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworICBsZXQgaW5lcnRCb3ggPSBpbmVydENvbnRh
aW5lci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgbGV0IHggPSBhbmNlc3RvckJveC5sZWZ0
ICsgKGFuY2VzdG9yQm94LndpZHRoIC8gMik7CisgIGxldCB5ID0gaW5lcnRCb3guYm90dG9tICsg
KChhbmNlc3RvckJveC5ib3R0b20gLSBpbmVydEJveC5ib3R0b20pIC8gMik7CisgIGF3YWl0IG1v
dmVQb2ludGVyVG8oeCwgeSk7CisgIGF3YWl0IFByb21pc2UuYWxsKHByb21pc2VzKTsKK30sICdU
ZXN0cyB0aGF0IGFueSBtb3VzZSBldmVudCBvbiBhbiBpbmVydCBlbGVtZW50IGlzIHRhcmdldGVk
IHRvIHRoZSBuZWFyZXN0IG5vbi1pbmVydCBhbmNlc3RvciBhdCB0aGUgc2FtZSBjb29yZGluYXRl
cycpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgKCkgPT4geworICAvLyBUZXN0IHBvaW50ZXIgZXZl
bnRzIG9uIG5vbi1pbmVydCBlbGVtZW50IC0gZXZlbnRzIHNob3VsZCBnbyB0byAiZm9yZWdyb3Vu
ZCIKKyAgaW5lcnRDb250YWluZXIuaW5lcnQgPSBmYWxzZTsKKyAgYXdhaXQgbW92ZVBvaW50ZXJU
bygwLCAwKTsKKworICBsZXQgcHJvbWlzZXMgPSBleHBlY3RFdmVudHNPbihbInBvaW50ZXJvdmVy
IiwgInBvaW50ZXJlbnRlciIsICJwb2ludGVybW92ZSIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAicG9pbnRlcmRvd24iLCAicG9pbnRlcnVwIiwgInBvaW50ZXJvdXQiLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInBvaW50ZXJsZWF2ZSJdLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBmb3JlZ3JvdW5kKTsKKyAgYXdhaXQgY2xpY2tPbihmb3Jl
Z3JvdW5kKTsKKyAgbGV0IGFuY2VzdG9yQm94ID0gYW5jZXN0b3JDb250YWluZXIuZ2V0Qm91bmRp
bmdDbGllbnRSZWN0KCk7CisgIGxldCBpbmVydEJveCA9IGluZXJ0Q29udGFpbmVyLmdldEJvdW5k
aW5nQ2xpZW50UmVjdCgpOworICBsZXQgeCA9IGFuY2VzdG9yQm94LmxlZnQgKyAoYW5jZXN0b3JC
b3gud2lkdGggLyAyKTsKKyAgbGV0IHkgPSBpbmVydEJveC5ib3R0b20gKyAoKGFuY2VzdG9yQm94
LmJvdHRvbSAtIGluZXJ0Qm94LmJvdHRvbSkgLyAyKTsKKyAgYXdhaXQgbW92ZVBvaW50ZXJUbyh4
LCB5KTsKKyAgYXdhaXQgUHJvbWlzZS5hbGwocHJvbWlzZXMpOworfSwgIlRlc3RzIHRoYXQgYW55
IHBvaW50ZXIgZXZlbnQgb24gYSBub24taW5lcnQgZWxlbWVudCBpcyBjb3JyZWN0bHkgdGFyZ2V0
ZWQgdG8gdGhhdCBlbGVtZW50Iik7CisKK3Byb21pc2VfdGVzdChhc3luYyAoKSA9PiB7CisgIC8v
IE1ha2UgdGhlIGNvbnRhaW5pbmcgZWxlbWVudCBpbmVydCAtIG5vdyBldmVudHMgc2hvdWxkIGdv
IHRvICJjb250YWluZXIiCisgIC8vIHdoaWNoIGlzIHRoZSBub24taW5lcnQgYW5jZXN0b3IgYXQg
dGhlIHNhbWUgcG9zaXRpb24KKyAgaW5lcnRDb250YWluZXIuaW5lcnQgPSB0cnVlOworICBhd2Fp
dCBtb3ZlUG9pbnRlclRvKDAsIDApOworCisgIGxldCBwcm9taXNlcyA9IGV4cGVjdEV2ZW50c09u
KFsicG9pbnRlcm92ZXIiLCAicG9pbnRlcmVudGVyIiwgInBvaW50ZXJtb3ZlIiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJwb2ludGVyZG93biIsICJwb2ludGVydXAiIF0sCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuY2VzdG9yQ29udGFpbmVyKTsKKworICAv
LyBUT0RPKGFib3hoYWxsKTogV2UgYXJlIGdldHRpbmcgdGhlc2UgdW5leHBlY3RlZCBldmVudHMu
IFdoeT8KKyAgcHJvbWlzZXMgPSBwcm9taXNlcy5jb25jYXQodW5leHBlY3RFdmVudHNPbihbInBv
aW50ZXJvdXQiLCAicG9pbnRlcmxlYXZlIl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgYW5jZXN0b3JDb250YWluZXIpKTsKKworICBhd2FpdCBjbGlja09u
KGZvcmVncm91bmQpOworICBsZXQgYW5jZXN0b3JCb3ggPSBhbmNlc3RvckNvbnRhaW5lci5nZXRC
b3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgbGV0IGluZXJ0Qm94ID0gaW5lcnRDb250YWluZXIuZ2V0
Qm91bmRpbmdDbGllbnRSZWN0KCk7CisgIGxldCB4ID0gYW5jZXN0b3JCb3gubGVmdCArIChhbmNl
c3RvckJveC53aWR0aCAvIDIpOworICBsZXQgeSA9IGluZXJ0Qm94LmJvdHRvbSArICgoYW5jZXN0
b3JCb3guYm90dG9tIC0gaW5lcnRCb3guYm90dG9tKSAvIDIpOworICBhd2FpdCBtb3ZlUG9pbnRl
clRvKHgsIHkpOworICBhd2FpdCBQcm9taXNlLmFsbChwcm9taXNlcyk7Cit9LCAnVGVzdHMgdGhh
dCBhbnkgcG9pbnRlciBldmVudCBvbiBhbiBpbmVydCBlbGVtZW50IGlzIHRhcmdldGVkIHRvIHRo
ZSBuZWFyZXN0IG5vbi1pbmVydCBhbmNlc3RvciBhdCB0aGUgc2FtZSBjb29yZGluYXRlcycpOwor
Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvdzNjLWltcG9ydC5sb2cgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L3czYy1pbXBvcnQu
bG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmVmZjFhNzE1MGNiNjBiMjI3M2IzODA5MWQzMmE5MzY0MTQyODE5YWMK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2luZXJ0L3czYy1pbXBvcnQubG9nCkBAIC0wLDAgKzEsMjYgQEAKK1RoZSB0ZXN0cyBp
biB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5Lgor
RG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCitJbnN0ZWFkLCBj
cmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6CisJaHR0cHM6Ly9naXRodWIu
Y29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKKworVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMv
aW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKKworRG8gTk9UIG1vZGlmeSBv
ciByZW1vdmUgdGhpcyBmaWxlLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1Byb3BlcnRpZXMgcmVxdWly
aW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKK1Byb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVu
ZG9yIHByZWZpeGVzOgorTm9uZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitMaXN0IG9mIGZpbGVzOgorL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtZG9l
cy1ub3QtbWF0Y2gtZGlzYWJsZWQtc2VsZWN0b3IudGVudGF0aXZlLmh0bWwKKy9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LWluLXNoYWRvdy1k
b20udGVudGF0aXZlLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2luZXJ0L2luZXJ0LWlubGluZXMudGVudGF0aXZlLmh0bWwKKy9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LWxhYmVsLWZvY3VzLnRl
bnRhdGl2ZS5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9pbmVydC9pbmVydC1ub2RlLWlzLXVuZWRpdGFibGUudGVudGF0aXZlLmh0bWwKKy9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LW5vZGUtaXMt
dW5mb2N1c2FibGUudGVudGF0aXZlLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LW5vZGUtaXMtdW5zZWxlY3RhYmxlLnRlbnRhdGl2
ZS5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVy
dC9pbmVydC1vbi1zbG90cy50ZW50YXRpdmUuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtcmV0YXJnZXRpbmctaWZyYW1lLnRlbnRh
dGl2ZS5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9p
bmVydC9pbmVydC1yZXRhcmdldGluZy50ZW50YXRpdmUuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2lu
ZXJ0L2luZXJ0LW5vZGUtaXMtdW5lZGl0YWJsZS50ZW50YXRpdmUtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2luZXJ0L2luZXJ0LW5vZGUtaXMtdW5lZGl0YWJsZS50ZW50YXRpdmUtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjIxMTRjYzE4ZGVjOTA0YTE0NmJmMDA4YTA4YjgwNjdmZjU0MWFlMDYKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtbm9kZS1pcy11bmVkaXRhYmxlLnRlbnRhdGl2
ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitJJ20gbm90IGVkaXRhYmxlLiBJJ20gZWRp
dGFibGUuCisKK1BBU1MgQ2FuJ3QgZWRpdCBpbmVydCBjb250ZW50ZWRpdGFibGUKK0ZBSUwgQ2Fu
IGVkaXQgbm9uLWluZXJ0IGNvbnRlbnRlZGl0YWJsZSBhc3NlcnRfbm90X2VxdWFsczogZ290IGRp
c2FsbG93ZWQgdmFsdWUgIkknbSBlZGl0YWJsZS4iCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2lvcy13azIvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9p
bmVydC1yZXRhcmdldGluZy1pZnJhbWUudGVudGF0aXZlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2lvcy13azIvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVy
dC9pbmVydC1yZXRhcmdldGluZy1pZnJhbWUudGVudGF0aXZlLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5lMWY5ZWE0MGNmMjEzZWQ0NTA1YTk5ZGY0OTczOGZhYWVlNzI0OGM4Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LXJldGFyZ2V0aW5nLWlmcmFtZS50ZW50YXRpdmUtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTggQEAKK0NsaWNrIG9uICJJbmVydCBidXR0b24iLgorCitU
aGUgYmx1ZSBzcXVhcmUgKCJOb24taW5lcnQgYW5jZXN0b3IgY29udGFpbmVyIikgc2hvdWxkIHR1
cm4gZ3JlZW4uCitUaGUgeWVsbG93LCBzZW1pLXRyYW5zcGFyZW50IHNxdWFyZSAoIk5vbi1pbmVy
dCwgZGlzcGxhY2VkIGNvbnRhaW5lciIpIHNob3VsZCBub3QgdHVybiByZWQuCisiTm9uLWluZXJ0
IGJ1dHRvbiIgc2hvdWxkIG5vdCB0dXJuIHJlZC4KKyhUaGUgZnVsbCB0ZXN0IHN1aXRlIGNoZWNr
cyBhIHJhbmdlIG9mIGV2ZW50cy4pCisKK05vbi1pbmVydCBhbmNlc3RvciBjb250YWluZXIKKyBO
b24taW5lcnQsIGRpc3BsYWNlZCBhbmNlc3RvcgorSW5lcnQgY29udGFpbmVyCitmb3JlZ3JvdW5k
CisKK1BBU1MgZWxlbWVudHNGcm9tUG9pbnQgcmV0dXJucyBpbmVydCBlbGVtZW50CitGQUlMIFRl
c3RzIHRoYXQgYW55IG1vdXNlIGV2ZW50IG9uIGEgbm9uLWluZXJ0IGVsZW1lbnQgaXMgY29ycmVj
dGx5IHRhcmdldGVkIHRvIHRoYXQgZWxlbWVudCBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWpl
Y3Rpb24gd2l0aCB2YWx1ZTogImRpZCBub3QgZ2V0IG1vdXNlb3ZlciBvbiBmb3JlZ3JvdW5kIgor
RkFJTCBUZXN0cyB0aGF0IGFueSBtb3VzZSBldmVudCBvbiBhbiBpbmVydCBlbGVtZW50IGlzIHRh
cmdldGVkIHRvIHRoZSBuZWFyZXN0IG5vbi1pbmVydCBhbmNlc3RvciBhdCB0aGUgc2FtZSBjb29y
ZGluYXRlcyBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogImRp
ZCBub3QgZ2V0IG1vdXNlb3ZlciBvbiBhbmNlc3RvckNvbnRhaW5lciIKK0ZBSUwgVGVzdHMgdGhh
dCBhbnkgcG9pbnRlciBldmVudCBvbiBhIG5vbi1pbmVydCBlbGVtZW50IGlzIGNvcnJlY3RseSB0
YXJnZXRlZCB0byB0aGF0IGVsZW1lbnQgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9u
IHdpdGggdmFsdWU6ICJkaWQgbm90IGdldCBwb2ludGVyb3ZlciBvbiBmb3JlZ3JvdW5kIgorRkFJ
TCBUZXN0cyB0aGF0IGFueSBwb2ludGVyIGV2ZW50IG9uIGFuIGluZXJ0IGVsZW1lbnQgaXMgdGFy
Z2V0ZWQgdG8gdGhlIG5lYXJlc3Qgbm9uLWluZXJ0IGFuY2VzdG9yIGF0IHRoZSBzYW1lIGNvb3Jk
aW5hdGVzIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiAiZGlk
IG5vdCBnZXQgcG9pbnRlcm92ZXIgb24gYW5jZXN0b3JDb250YWluZXIiCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9pbmVydC9pbmVydC1yZXRhcmdldGluZy50ZW50YXRpdmUtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2luZXJ0L2luZXJ0LXJldGFyZ2V0aW5nLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMWE1ZmJhM2JmNzEyODU3ZDc4NWM4ZDAwYzhiODcxMmZkZWY0Y2FlYwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1yZXRhcmdldGluZy50ZW50YXRpdmUtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMTggQEAKK0NsaWNrIG9uICJmb3JlZ3JvdW5kIi4KKworVGhlIGJsdWUgc3F1
YXJlICgiTm9uLWluZXJ0IGFuY2VzdG9yIGNvbnRhaW5lciIpIHNob3VsZCB0dXJuIGdyZWVuLgor
VGhlIHllbGxvdywgc2VtaS10cmFuc3BhcmVudCBzcXVhcmUgKCJOb24taW5lcnQsIGRpc3BsYWNl
ZCBjb250YWluZXIiKSBzaG91bGQgbm90IHR1cm4gcmVkLgorIk5vbi1pbmVydCBidXR0b24iIHNo
b3VsZCBub3QgdHVybiByZWQuCisoVGhlIGZ1bGwgdGVzdCBzdWl0ZSBjaGVja3MgYSByYW5nZSBv
ZiBldmVudHMuKQorCitOb24taW5lcnQgYW5jZXN0b3IgY29udGFpbmVyCitiYWNrZ3JvdW5kTm9u
LWluZXJ0LCBkaXNwbGFjZWQgYW5jZXN0b3IKK0luZXJ0IGNvbnRhaW5lcgorZm9yZWdyb3VuZAor
CitQQVNTIGVsZW1lbnRzRnJvbVBvaW50IHJldHVybnMgaW5lcnQgZWxlbWVudAorRkFJTCBUZXN0
cyB0aGF0IGFueSBtb3VzZSBldmVudCBvbiBhIG5vbi1pbmVydCBlbGVtZW50IGlzIGNvcnJlY3Rs
eSB0YXJnZXRlZCB0byB0aGF0IGVsZW1lbnQgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0
aW9uIHdpdGggdmFsdWU6ICJkaWQgbm90IGdldCBtb3VzZW92ZXIgb24gZm9yZWdyb3VuZCIKK0ZB
SUwgVGVzdHMgdGhhdCBhbnkgbW91c2UgZXZlbnQgb24gYW4gaW5lcnQgZWxlbWVudCBpcyB0YXJn
ZXRlZCB0byB0aGUgbmVhcmVzdCBub24taW5lcnQgYW5jZXN0b3IgYXQgdGhlIHNhbWUgY29vcmRp
bmF0ZXMgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6ICJkaWQg
bm90IGdldCBtb3VzZW92ZXIgb24gYW5jZXN0b3JDb250YWluZXIiCitGQUlMIFRlc3RzIHRoYXQg
YW55IHBvaW50ZXIgZXZlbnQgb24gYSBub24taW5lcnQgZWxlbWVudCBpcyBjb3JyZWN0bHkgdGFy
Z2V0ZWQgdG8gdGhhdCBlbGVtZW50IHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3
aXRoIHZhbHVlOiAiZGlkIG5vdCBnZXQgcG9pbnRlcm92ZXIgb24gZm9yZWdyb3VuZCIKK0ZBSUwg
VGVzdHMgdGhhdCBhbnkgcG9pbnRlciBldmVudCBvbiBhbiBpbmVydCBlbGVtZW50IGlzIHRhcmdl
dGVkIHRvIHRoZSBuZWFyZXN0IG5vbi1pbmVydCBhbmNlc3RvciBhdCB0aGUgc2FtZSBjb29yZGlu
YXRlcyBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogImRpZCBu
b3QgZ2V0IHBvaW50ZXJvdmVyIG9uIGFuY2VzdG9yQ29udGFpbmVyIgorCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>436191</attachid>
            <date>2021-08-23 07:08:10 -0700</date>
            <delta_ts>2021-08-23 07:26:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-165279-20210823160809.patch</filename>
            <type>text/plain</type>
            <size>71126</size>
            <attacher name="Tim Nguyen (:ntim)">ntim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxNDM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDY0NmExZjc0Y2M5ODAxZTkxZmQwY2Y3
ZGY1NWNmNDViOTNiYzEzYWUuLjE4YzYyZDMyNTMwN2MxODU4ZGQ2YWFlN2Q2ZTkwYTFkM2U1ZTk2
M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMDgtMjAgIFRpbSBOZ3V5ZW4gIDxudGltQGFw
cGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgaW5lcnQgYXR0cmlidXRlIGJlaGluZCBmZWF0
dXJlIGZsYWcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE2NTI3OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFkZCBydW50aW1lIEluZXJ0QXR0cmlidXRlRW5hYmxlZCBmZWF0dXJlIGZsYWcgZGlzYWJsZWQg
YnkgZGVmYXVsdC4KKworICAgICAgICAqIFNjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5j
ZXNFeHBlcmltZW50YWwueWFtbDoKKwogMjAyMS0wOC0yMSAgTXlsZXMgQy4gTWF4ZmllbGQgIDxt
bWF4ZmllbGRAYXBwbGUuY29tPgogCiAgICAgICAgIG92ZXJ3cml0ZUNvZGVQb2ludCgpIGluIGNy
ZWF0ZUFuZEZpbGxHbHlwaFBhZ2UoKSBpcyB3cm9uZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDVjNzE4ZTNiNmE5
YWRmZDgwNWUzMWM5YjZkZmMwMDMxMDc1NDUyYTUuLjM2MGMyYmIzMTQ2MWNhZmUxMDY2NGFlYTZl
OGY5YzUxOTZmMjE4MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMCBAQAorMjAyMS0wOC0yMCAg
VGltIE5ndXllbiAgPG50aW1AYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBpbmVydCBh
dHRyaWJ1dGUgYmVoaW5kIGZlYXR1cmUgZmxhZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY1Mjc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVGVzdHM6IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvaW5lcnQvZnJhbWUvYnV0dG9uLmh0bWwKKyAgICAgICAgICAgICAgIGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtZG9lcy1ub3QtbWF0Y2gtZGlzYWJsZWQtc2Vs
ZWN0b3IudGVudGF0aXZlLmh0bWwKKyAgICAgICAgICAgICAgIGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtaW4tc2hhZG93LWRvbS50ZW50YXRpdmUuaHRtbAorICAg
ICAgICAgICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1p
bmxpbmVzLnRlbnRhdGl2ZS5odG1sCisgICAgICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LWxhYmVsLWZvY3VzLnRlbnRhdGl2ZS5odG1sCisgICAg
ICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LW5v
ZGUtaXMtdW5lZGl0YWJsZS50ZW50YXRpdmUuaHRtbAorICAgICAgICAgICAgICAgaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1ub2RlLWlzLXVuZm9jdXNhYmxlLnRl
bnRhdGl2ZS5odG1sCisgICAgICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2luZXJ0L2luZXJ0LW5vZGUtaXMtdW5zZWxlY3RhYmxlLnRlbnRhdGl2ZS5odG1sCisgICAg
ICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LW9u
LXNsb3RzLnRlbnRhdGl2ZS5odG1sCisgICAgICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LXJldGFyZ2V0aW5nLWlmcmFtZS50ZW50YXRpdmUuaHRt
bAorICAgICAgICAgICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9p
bmVydC1yZXRhcmdldGluZy50ZW50YXRpdmUuaHRtbAorCisgICAgICAgICogZG9tL0RvY3VtZW50
Lmg6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6aGFzSW5lcnRBdHRyaWJ1dGVCZWVuVXNl
ZCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6c2V0SGFzSW5lcnRBdHRyaWJ1dGVCZWVu
VXNlZCk6CisgICAgICAgICogZG9tL05vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6
aXNJbmVydCBjb25zdCk6CisgICAgICAgICogaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW46Cisg
ICAgICAgICogaHRtbC9IVE1MRWxlbWVudC5pZGw6CisKIDIwMjEtMDgtMjIgIENhcmxvcyBHYXJj
aWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtGcmVldHlwZV0gU2V0
IG1heGltdW0gYWxsb3dlZCBmb250IHNpemUgZm9yIEZyZWV0eXBlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFt
bCBiL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1l
bnRhbC55YW1sCmluZGV4IDVmZGIyNDU0Yzk5NDQ0MGY3ZThkZjc1MjdmZmNlMTg3MDMzYjM5N2Eu
LjE4NWE1YWMwZjQ1NGM3NmMwMzQ3OTJhZDE4NTc2MWZjY2E2OTQ5OTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55
YW1sCisrKyBiL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4
cGVyaW1lbnRhbC55YW1sCkBAIC01MzQsNiArNTM0LDE4IEBAIEluY3JlbWVudGFsUERGTG9hZGlu
Z0VuYWJsZWQ6CiAgICAgV2ViS2l0OgogICAgICAgZGVmYXVsdDogV2ViS2l0OjpkZWZhdWx0SW5j
cmVtZW50YWxQREZFbmFibGVkKCkKIAorSW5lcnRBdHRyaWJ1dGVFbmFibGVkOgorICB0eXBlOiBi
b29sCisgIGh1bWFuUmVhZGFibGVOYW1lOiAiaW5lcnQgYXR0cmlidXRlIgorICBodW1hblJlYWRh
YmxlRGVzY3JpcHRpb246ICJFbmFibGUgaW5lcnQgYXR0cmlidXRlIHN1cHBvcnQiCisgIGRlZmF1
bHRWYWx1ZToKKyAgICBXZWJLaXRMZWdhY3k6CisgICAgICBkZWZhdWx0OiBmYWxzZQorICAgIFdl
YktpdDoKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCisgICAgV2ViQ29yZToKKyAgICAgIGRlZmF1bHQ6
IGZhbHNlCisKICMgRklYTUU6IFRoaXMgaXMgb24gYnkgZGVmYXVsdCBpbiBXZWJLaXQyLiBQZXJo
YXBzIHdlIHNob3VsZCBjb25zaWRlciB0dXJuaW5nIGl0IG9uIGZvciBXZWJLaXRMZWdhY3kgYXMg
d2VsbC4KIEludGVyc2VjdGlvbk9ic2VydmVyRW5hYmxlZDoKICAgdHlwZTogYm9vbApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuaAppbmRleCA0YzI5NWQ0NThmMWFlMDYxNzlhNTQ2Yjk0ZGIzODA3NzI2NTRjMWM1
Li41OTFmZTkzZWJkZDhhMzMyYmU3Yjk2N2EyNDViNzViODJjMTJkYzhlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuaApAQCAtMTYzMiw2ICsxNjMyLDkgQEAgcHVibGljOgogCiAgICAgVVJMIGZhbGxiYWNr
QmFzZVVSTCgpIGNvbnN0OwogCisgICAgYm9vbCBoYXNJbmVydEF0dHJpYnV0ZUJlZW5Vc2VkKCkg
eyByZXR1cm4gbV9oYXNJbmVydEF0dHJpYnV0ZUJlZW5Vc2VkOyB9CisgICAgdm9pZCBzZXRIYXNJ
bmVydEF0dHJpYnV0ZUJlZW5Vc2VkKCkgeyBtX2hhc0luZXJ0QXR0cmlidXRlQmVlblVzZWQgPSB0
cnVlOyB9CisKIHByb3RlY3RlZDoKICAgICBlbnVtIENvbnN0cnVjdGlvbkZsYWdzIHsgU3ludGhl
c2l6ZWQgPSAxLCBOb25SZW5kZXJlZFBsYWNlaG9sZGVyID0gMSA8PCAxIH07CiAgICAgV0VCQ09S
RV9FWFBPUlQgRG9jdW1lbnQoRnJhbWUqLCBjb25zdCBTZXR0aW5ncyYsIGNvbnN0IFVSTCYsIERv
Y3VtZW50Q2xhc3NGbGFncyA9IERlZmF1bHREb2N1bWVudENsYXNzLCB1bnNpZ25lZCBjb25zdHJ1
Y3Rpb25GbGFncyA9IDApOwpAQCAtMjE1MSw2ICsyMTU0LDggQEAgcHJpdmF0ZToKIAogICAgIGJv
b2wgbV91cGRhdGVUaXRsZVRhc2tTY2hlZHVsZWQgeyBmYWxzZSB9OwogCisgICAgYm9vbCBtX2hh
c0luZXJ0QXR0cmlidXRlQmVlblVzZWQgeyBmYWxzZSB9OworCiAgICAgRm9jdXNUcmlnZ2VyIG1f
bGF0ZXN0Rm9jdXNUcmlnZ2VyIHsgRm9jdXNUcmlnZ2VyOjpPdGhlciB9OwogCiAgICAgT3JpZW50
YXRpb25Ob3RpZmllciBtX29yaWVudGF0aW9uTm90aWZpZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKaW5kZXgg
N2VlMTEyNjRjNzcyNmY0NDQ4MjRjZjRhZDc0OWM4MTM4NjNjZDk0YS4uNzJjNmMxN2Q5ODZlODM1
YTVmNTI1MDJlYjI2YWYwNGJmMDY1MjVhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L05vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcApAQCAtMjYzMiw2ICsy
NjMyLDE1IEBAIGJvb2wgTm9kZTo6aXNJbmVydCgpIGNvbnN0CiAgICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKICAgICB9CiAKKyAgICBpZiAoZG9jdW1lbnQoKS5oYXNJbmVydEF0dHJpYnV0ZUJlZW5V
c2VkKCkgJiYgZG9jdW1lbnQoKS5zZXR0aW5ncygpLmluZXJ0QXR0cmlidXRlRW5hYmxlZCgpKSB7
CisgICAgICAgIGNvbnN0IEVsZW1lbnQqIGVsZW1lbnQgPSBpczxFbGVtZW50Pih0aGlzKSA/IGRv
d25jYXN0PEVsZW1lbnQ+KHRoaXMpIDogcGFyZW50RWxlbWVudCgpOworICAgICAgICB3aGlsZSAo
ZWxlbWVudCkgeworICAgICAgICAgICAgaWYgKGlzPEhUTUxFbGVtZW50PihlbGVtZW50KSAmJiBl
bGVtZW50LT5oYXNBdHRyaWJ1dGUoSFRNTE5hbWVzOjppbmVydEF0dHIpKQorICAgICAgICAgICAg
ICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgZWxlbWVudCA9IGVsZW1lbnQtPnBhcmVudEVs
ZW1lbnQoKTsKKyAgICAgICAgfQorICAgIH0KKwogICAgIGlmICghZG9jdW1lbnQoKS5mcmFtZSgp
IHx8ICFkb2N1bWVudCgpLmZyYW1lKCktPm93bmVyRWxlbWVudCgpKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEF0dHJpYnV0ZU5h
bWVzLmluIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4KaW5kZXgg
NGZkY2I5ZDMyMThlNzJiODFjMzQ1ZGI1NzFmZWJiMWJkZDlkYzYxNC4uNjI2ZmU0OWRmMmZmZDQ3
OGMyZmUwNGY0MjA3ZGJkNGRmZDdjNjliYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MQXR0cmlidXRlTmFtZXMuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXR0
cmlidXRlTmFtZXMuaW4KQEAgLTE1Nyw2ICsxNTcsNyBAQCBpbWFnZXNpemVzCiBpbWFnZXNyY3Nl
dAogaW5jcmVtZW50YWwKIGluZGV0ZXJtaW5hdGUKK2luZXJ0CiBpbnB1dG1vZGUKIGludGVncml0
eQogaXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAKaW5kZXggMDZhYjVjZTdiMjFjOTc5
ODAzMDI5YmUzMmZjZDc5YmNiYmRmM2U4Yi4uYzE2ZDJkNGE4ODExZjVhMmNiYWQ5M2IzNDk3ZDQ0
OWYwMDU3ZTNiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAKQEAgLTQ4MSw5ICs0
ODEsMTIgQEAgdm9pZCBIVE1MRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmEKICAgICAgICAgICAgIHNldFRhYkluZGV4
RXhwbGljaXRseShzdGQ6Om51bGxvcHQpOwogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIAor
CisgICAgaWYgKG5hbWUgPT0gaW5lcnRBdHRyICYmICF2YWx1ZS5pc051bGwoKSkKKyAgICAgICAg
ZG9jdW1lbnQoKS5zZXRIYXNJbmVydEF0dHJpYnV0ZUJlZW5Vc2VkKCk7CisKICAgICBpZiAobmFt
ZSA9PSBpbnB1dG1vZGVBdHRyKSB7Ci0gICAgICAgIGF1dG8mIGRvY3VtZW50ID0gdGhpcy0+ZG9j
dW1lbnQoKTsKKyAgICAgICAgYXV0byYgZG9jdW1lbnQgPSBkb2N1bWVudCgpOwogICAgICAgICBp
ZiAodGhpcyA9PSBkb2N1bWVudC5mb2N1c2VkRWxlbWVudCgpKSB7CiAgICAgICAgICAgICBpZiAo
YXV0byogcGFnZSA9IGRvY3VtZW50LnBhZ2UoKSkKICAgICAgICAgICAgICAgICBwYWdlLT5jaHJv
bWUoKS5jbGllbnQoKS5mb2N1c2VkRWxlbWVudERpZENoYW5nZUlucHV0TW9kZSgqdGhpcywgY2Fu
b25pY2FsSW5wdXRNb2RlKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
RWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmlkbAppbmRleCAz
NGUzOWMyN2UyYWFlODJkNDMyNTk5YTFlYzIyNTg1YWRiYWE0MjcxLi5mYWNhYzlmMTY3ZmZlMGVi
MzQ2OGVmYjk2ODNiMDE3MDU1ZjUxYTMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxFbGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50Lmlk
bApAQCAtNDcsNiArNDcsOSBAQAogICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgJ2F0dGFjaEludGVy
bmFscycuCiAgICAgLy8gRWxlbWVudEludGVybmFscyBhdHRhY2hJbnRlcm5hbHMoKTsKIAorICAg
IC8vIEV4cGVyaW1lbnRhbDogaHR0cHM6Ly9naXRodWIuY29tL1dJQ0cvaW5lcnQvYmxvYi9tYXN0
ZXIvUkVBRE1FLm1kCisgICAgW0NFUmVhY3Rpb25zLCBSZWZsZWN0LCBFbmFibGVkQnlTZXR0aW5n
PUluZXJ0QXR0cmlidXRlXSBhdHRyaWJ1dGUgYm9vbGVhbiBpbmVydDsKKwogICAgIC8vIE5vbi1z
dGFuZGFyZDogSUUgZXh0ZW5zaW9uLiBNYXkgZ2V0IGFkZGVkIHRvIHRoZSBzcGVjaWZpY2F0aW9u
IChodHRwczovL2dpdGh1Yi5jb20vd2hhdHdnL2h0bWwvaXNzdWVzLzY2OCkuCiAgICAgW0NFUmVh
Y3Rpb25zXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBET01TdHJpbmcgb3V0
ZXJUZXh0OwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKaW5kZXggZDdjNThhNjE1Mzg0YThiMjY3YmVkMjgzMmEwZDNiMmU4ZGM0NmU2
OS4uMTVhZGZhYjc4NjdiNmVhYjU0Y2ZmODA4OTE5MGJhMDA0MmIwZTBkNiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE2IEBACisyMDIxLTA4LTIwICBUaW0gTmd1eWVuICA8bnRpbUBhcHBsZS5jb20+CisKKyAg
ICAgICAgSW1wbGVtZW50IGluZXJ0IGF0dHJpYnV0ZSBiZWhpbmQgZmVhdHVyZSBmbGFnCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjUyNzkKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDcmVhdGUgaU9TIGJh
c2VsaW5lcy4KKworICAgICAgICAqIHBsYXRmb3JtL2lvcy13azIvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1ub2RlLWlzLXVuZWRpdGFibGUudGVudGF0aXZlLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vaW9zLXdrMi9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LXJldGFyZ2V0aW5nLWlmcmFtZS50ZW50
YXRpdmUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9pb3Mtd2syL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtcmV0YXJnZXRpbmcudGVu
dGF0aXZlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisKIDIwMjEtMDgtMjIgIFl1c3VrZSBTdXp1a2kg
IDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBbSlNDXSBSZW1vdmUgYWxyZWFkeS1zaGlw
cGVkIHdhc20gb3B0aW9uIGZsYWdzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCA1
YjY3MTk2OWFkMTIxYmNhMTU3ZDdiYmZmOThhMmRkZTUwZjU5ZDNkLi5jZWU5NjlkMzJhMDk0NWYw
YTUxNWU1ODEzMTI1YWEyZjAyZDhhMzFiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwzOSBAQAorMjAyMS0wOC0yMCAgVGltIE5ndXllbiAgPG50aW1AYXBwbGUuY29t
PgorCisgICAgICAgIEltcGxlbWVudCBpbmVydCBhdHRyaWJ1dGUgYmVoaW5kIGZlYXR1cmUgZmxh
ZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY1Mjc5
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wb3J0
IGluZXJ0LyBXUFQgZGlyZWN0b3J5IHVzaW5nIGBpbXBvcnQtdzNjLXRlc3RzIC10IHdlYi1wbGF0
Zm9ybS10ZXN0cy9pbmVydGAuCisgICAgICAgIFdQVCByZXZpc2lvbjogaHR0cHM6Ly9naXRodWIu
Y29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvY29tbWl0L2YwMmUzOGQ3YTY3OTk5NjgzZDA1NTc5
ZjYyYjMzOTQzMGM2MWU0ZWMKKworICAgICAgICAqIHJlc291cmNlcy9pbXBvcnQtZXhwZWN0YXRp
b25zLmpzb246CisgICAgICAgICogcmVzb3VyY2VzL3Jlc291cmNlLWZpbGVzLmpzb246CisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2ZyYW1lL2J1dHRvbi5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvZnJhbWUvdzNjLWltcG9ydC5sb2c6
IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1kb2VzLW5v
dC1tYXRjaC1kaXNhYmxlZC1zZWxlY3Rvci50ZW50YXRpdmUtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtZG9lcy1ub3QtbWF0Y2gt
ZGlzYWJsZWQtc2VsZWN0b3IudGVudGF0aXZlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1pbi1zaGFkb3ctZG9tLnRlbnRhdGl2ZS1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1p
bi1zaGFkb3ctZG9tLnRlbnRhdGl2ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvaW5lcnQvaW5lcnQtaW5saW5lcy50ZW50YXRpdmUtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtaW5saW5lcy50ZW50
YXRpdmUuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2lu
ZXJ0LWxhYmVsLWZvY3VzLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1sYWJlbC1mb2N1cy50ZW50YXRpdmUuaHRt
bDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LW5vZGUt
aXMtdW5lZGl0YWJsZS50ZW50YXRpdmUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtbm9kZS1pcy11bmVkaXRhYmxlLnRlbnRhdGl2
ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQt
bm9kZS1pcy11bmZvY3VzYWJsZS50ZW50YXRpdmUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtbm9kZS1pcy11bmZvY3VzYWJsZS50
ZW50YXRpdmUuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0
L2luZXJ0LW5vZGUtaXMtdW5zZWxlY3RhYmxlLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1ub2RlLWlzLXVuc2Vs
ZWN0YWJsZS50ZW50YXRpdmUuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRl
c3RzL2luZXJ0L2luZXJ0LW9uLXNsb3RzLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1vbi1zbG90cy50ZW50YXRp
dmUuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0
LXJldGFyZ2V0aW5nLWlmcmFtZS50ZW50YXRpdmUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtcmV0YXJnZXRpbmctaWZyYW1lLnRl
bnRhdGl2ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQv
aW5lcnQtcmV0YXJnZXRpbmcudGVudGF0aXZlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LXJldGFyZ2V0aW5nLnRlbnRhdGl2ZS5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvdzNjLWltcG9y
dC5sb2c6IEFkZGVkLgorCiAyMDIxLTA4LTIyICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVs
ZEBhcHBsZS5jb20+CiAKICAgICAgICAgQ29udHJvbCBjaGFyYWN0ZXJzIChVbmljb2RlIGNhdGVn
b3J5IENjKSBzaG91bGQgYmUgcmVuZGVyZWQgdmlzaWJseQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3Jlc291cmNlcy9pbXBvcnQtZXhwZWN0YXRpb25zLmpzb24gYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvcmVzb3VyY2VzL2ltcG9ydC1leHBlY3RhdGlvbnMuanNvbgpp
bmRleCA1NzNhMDZjMGQ5Mjg4MDAyNDkyYzdhYmI3NDM3NTEzMDgzNzdlYjQzLi5mODkyYjdjMmRj
YTMyNTBlM2QyYTdiZDU3ZjI4NmMyZWJjNGJjNjU2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvcmVzb3VyY2VzL2ltcG9ydC1leHBlY3RhdGlvbnMuanNvbgorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvcmVzb3VyY2VzL2ltcG9ydC1leHBlY3RhdGlvbnMuanNvbgpA
QCAtMzM0LDYgKzMzNCw3IEBACiAgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9pbWFnZS1kZWNvZGVz
IjogInNraXAiLCAKICAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2ltYWdlYml0bWFwLXJlbmRlcmlu
Z2NvbnRleHQiOiAiaW1wb3J0IiwgCiAgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9pbWFnZXMiOiAi
aW1wb3J0IiwgCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydCI6ICJpbXBvcnQiLCAKICAg
ICAid2ViLXBsYXRmb3JtLXRlc3RzL2luZnJhc3RydWN0dXJlIjogImltcG9ydCIsIAogICAgICJ3
ZWItcGxhdGZvcm0tdGVzdHMvaW5uZXJUZXh0IjogImltcG9ydCIsIAogICAgICJ3ZWItcGxhdGZv
cm0tdGVzdHMvaW5wdXQtZXZlbnRzIjogInNraXAiLCAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9yZXNvdXJjZXMvcmVzb3VyY2UtZmlsZXMuanNvbiBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9yZXNvdXJjZXMvcmVzb3VyY2UtZmlsZXMuanNvbgppbmRleCA4ZjY3NDA1
M2IyNGE3OGIxOTU0OTkwY2U2NmZkYWI0OTFhMTU4ZjliLi5iMTc4ZTBhZDIwODU0Zjc3Yzg1MjQz
YjE4ODJkOWM0MDE2ZDRhMWQ5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
cmVzb3VyY2VzL3Jlc291cmNlLWZpbGVzLmpzb24KKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3Jlc291cmNlcy9yZXNvdXJjZS1maWxlcy5qc29uCkBAIC0yNzcyLDYgKzI3NzIsNyBAQAog
ICAgICAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvd2ViYXBwYXBpcy9zY3JpcHRpbmcvZXZl
bnRzL29uZXJyb3JldmVudGhhbmRsZXItZnJhbWUuaHRtbCIsCiAgICAgICAgICJ3ZWItcGxhdGZv
cm0tdGVzdHMvaHRtbC93ZWJhcHBhcGlzL3VzZXItcHJvbXB0cy9jYW5ub3Qtc2hvdy1zaW1wbGUt
ZGlhbG9ncy9zdXBwb3J0L2NvbmZpcm0uaHRtbCIsCiAgICAgICAgICJ3ZWItcGxhdGZvcm0tdGVz
dHMvaHRtbC93ZWJhcHBhcGlzL3VzZXItcHJvbXB0cy9jYW5ub3Qtc2hvdy1zaW1wbGUtZGlhbG9n
cy9zdXBwb3J0L3Byb21wdC5odG1sIiwKKyAgICAgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9pbmVy
dC9mcmFtZS9idXR0b24uaHRtbCIsCiAgICAgICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaW5mcmFz
dHJ1Y3R1cmUvYXNzdW1wdGlvbnMvYWhlbS1ub3RyZWYuaHRtbCIsCiAgICAgICAgICJ3ZWItcGxh
dGZvcm0tdGVzdHMvaW5mcmFzdHJ1Y3R1cmUvcmVmdGVzdC9yZWQuaHRtbCIsCiAgICAgICAgICJ3
ZWItcGxhdGZvcm0tdGVzdHMvaW50ZXJzZWN0aW9uLW9ic2VydmVyL29ic2VydmVyLWluLWlmcmFt
ZS5odG1sIiwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaW5lcnQvZnJhbWUvYnV0dG9uLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2ZyYW1lL2J1dHRvbi5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjU4NjdjNzU4MTQyYzY2NTIzNjJhMjNmMTk1MzNhOGQ4NmZlMjk2NDgKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2Zy
YW1lL2J1dHRvbi5odG1sCkBAIC0wLDAgKzEsMzYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8aGVhZD4KKzxzdHlsZT4KK2JvZHkgeworICBvdmVyZmxvdzogaGlkZGVuOworfQorCitidXR0
b24jYmFja2dyb3VuZCB7CisgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgdG9wOiAwOworICBsZWZ0
OiAwOworICB3aWR0aDogMTUwcHg7CisgIGhlaWdodDogNDBweDsKKyAgbGluZS1oZWlnaHQ6IDUz
cHg7Cit9CisKK2J1dHRvbi5jbGlja2VkIHsKKyAgYmFja2dyb3VuZC1jb2xvcjogcmVkOworfQor
CitidXR0b24uY2xpY2tlZDo6YWZ0ZXIgeworICBjb250ZW50OiAiIChjbGlja2VkKSI7Cit9CisK
Kzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgPGJ1dHRvbiBpZD0iYmFja2dyb3VuZCI+YmFj
a2dyb3VuZDwvYnV0dG9uPgorPHNjcmlwdD4KK2RvY3VtZW50LmJvZHkuYWRkRXZlbnRMaXN0ZW5l
cignY2xpY2snLCAoZSkgPT4geworICBlLnRhcmdldC5jbGFzc0xpc3QuYWRkKCdjbGlja2VkJyk7
Cit9KTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9mcmFtZS93M2MtaW1wb3J0
LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQv
ZnJhbWUvdzNjLWltcG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTQ1MWIwOGI3YjNiMmExMjYzY2YwYjAy
ZTc4OGUwNzQxYzAwMjBhNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvZnJhbWUvdzNjLWltcG9ydC5sb2cKQEAgLTAs
MCArMSwxNyBAQAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJv
bSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5
IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdp
dGh1YjoKKwlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAorCitUaGVu
IHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWlt
cG9ydAorCitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQorUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVy
dHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9pbmVydC9mcmFtZS9idXR0b24uaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1kb2VzLW5vdC1tYXRj
aC1kaXNhYmxlZC1zZWxlY3Rvci50ZW50YXRpdmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1kb2VzLW5vdC1tYXRj
aC1kaXNhYmxlZC1zZWxlY3Rvci50ZW50YXRpdmUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE5
ZDYzOWUxOGI3OGNkYzE1ZTM2YzhhMzhiMTAwY2U0MTQxMjFiN2MKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0
LWRvZXMtbm90LW1hdGNoLWRpc2FibGVkLXNlbGVjdG9yLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSw0IEBACitUaGUgdGVzdCBwYXNzZXMgaWYgdGhpcyBpcyBpbiBncmVlbi4KKwor
UEFTUyBUZXN0cyB0aGF0IGluZXJ0IGVsZW1lbnRzIGRvIG5vdCBtYXRjaCB0aGUgOmRpc2FibGVk
IHNlbGVjdG9yLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LWRvZXMtbm90LW1hdGNoLWRpc2FibGVkLXNlbGVjdG9y
LnRlbnRhdGl2ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9pbmVydC9pbmVydC1kb2VzLW5vdC1tYXRjaC1kaXNhYmxlZC1zZWxlY3Rvci50ZW50YXRp
dmUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi43NGI4YWMzZjdkZDVjMzQ0N2JmNDdmZDczMmZhZGU5MjIwNDk3
YzkzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1kb2VzLW5vdC1tYXRjaC1kaXNhYmxlZC1zZWxlY3Rvci50
ZW50YXRpdmUuaHRtbApAQCAtMCwwICsxLDI3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
PGhlYWQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+
Cis8c3R5bGU+CitidXR0b24geworICAgIGNvbG9yOiBncmVlbjsKK30KKworYnV0dG9uOmRpc2Fi
bGVkIHsKKyAgICBjb2xvcjogcmVkOworfQorCis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHkgc3R5
bGU9ImNvbG9yOiBncmVlbiI+Cis8YnV0dG9uIGluZXJ0PlRoZSB0ZXN0IHBhc3NlcyBpZiB0aGlz
IGlzIGluIGdyZWVuLjwvYnV0dG9uPgorPHNjcmlwdD4KK3Rlc3QoZnVuY3Rpb24oKSB7CisgICAg
YnV0dG9uID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignYnV0dG9uJyk7CisgICAgY29sb3IgPSBk
b2N1bWVudC5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlKGJ1dHRvbikuZ2V0UHJvcGVydHlW
YWx1ZSgnY29sb3InKTsKKyAgICBhc3NlcnRfZmFsc2UoYnV0dG9uLm1hdGNoZXMoJzpkaXNhYmxl
ZCcpKTsKK30sICdUZXN0cyB0aGF0IGluZXJ0IGVsZW1lbnRzIGRvIG5vdCBtYXRjaCB0aGUgOmRp
c2FibGVkIHNlbGVjdG9yLicpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2lu
ZXJ0LWluLXNoYWRvdy1kb20udGVudGF0aXZlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtaW4tc2hhZG93LWRvbS50
ZW50YXRpdmUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNhMjViNzUxZDBjODE2ZTExOGZhZTE0
ZGIxODc5MmExNWIyOTVlODMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LWluLXNoYWRvdy1kb20udGVudGF0
aXZlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK0J1dHRvbnMgMSBhbmQgMiBzaG91bGQg
YmUgaW5lcnQuCitCdXR0b24gMSAoaW5lcnQpCisKK0ZBSUwgaW5lcnQgb24gU2hhZG93IGhvc3Qg
YWZmZWN0cyBjb250ZW50IGluIHNoYWRvdyBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCBmYWxzZSBi
dXQgZ290IHRydWUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1pbi1zaGFkb3ctZG9tLnRlbnRhdGl2ZS5odG1sIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1p
bi1zaGFkb3ctZG9tLnRlbnRhdGl2ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVjODI1ZGJmZGM5ODU0NThj
YzczOTNkNThiMmVmYzJjZTA3OTYzNjQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LWluLXNoYWRvdy1kb20u
dGVudGF0aXZlLmh0bWwKQEAgLTAsMCArMSw1NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
KzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04IiAvPgorICAgIDx0aXRsZT5pbmVydCBv
biBTaGFkb3cgaG9zdCBhZmZlY3RzIGNvbnRlbnQgaW4gc2hhZG93PC90aXRsZT4KKyAgICA8bGlu
ayByZWw9ImF1dGhvciIgdGl0bGU9IkFsaWNlIEJveGhhbGwiIGhyZWY9ImFib3hoYWxsQGNocm9t
aXVtLm9yZyI+CisgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwv
c2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0Lmpz
Ij48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorICA8ZGl2PkJ1dHRvbnMgMSBhbmQgMiBzaG91
bGQgYmUgaW5lcnQuPC9kaXY+CisgIDxkaXYgaWQ9InNoYWRvdy1ob3N0IiBpbmVydD4KKyAgICA8
YnV0dG9uIGlkPSJidXR0b24tMSI+QnV0dG9uIDEgKGluZXJ0KTwvYnV0dG9uPgorICA8L2Rpdj4K
KyAgPHNjcmlwdD4KKyAgICAvKgorICAgIEV2ZW50dWFsIGZsYXR0ZW5lZCB0cmVlIHN0cnVjdHVy
ZToKKworICAgIDxkaXYgaWQ9InNoYWRvdy1ob3N0IiBpbmVydD4KKyAgICAgICNzaGFkb3ctcm9v
dCAob3BlbikKKyAgICAgIHwgPHNsb3Q+CisgICAgICA6ICAgPGJ1dHRvbiBpZD0iYnV0dG9uLTEi
PkJ1dHRvbiAxIChpbmVydCk8L2J1dHRvbj4gPCEtLSBzbG90dGVkIC0tPgorICAgICAgfCA8L3Ns
b3Q+CisgICAgICB8IDxidXR0b24gaWQ9ImJ1dHRvbi0yIj5CdXR0b24gMiAoaW5lcnQpPC9idXR0
b24+ICAgPCEtLSBpbiBzaGFkb3cgLS0+CisgICAgPC9kaXY+CisgICAgKi8KKworICAgIGNvbnN0
IHNoYWRvd0hvc3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2hhZG93LWhvc3QiKTsKKyAg
ICBjb25zdCBzaGFkb3dSb290ID0gc2hhZG93SG9zdC5hdHRhY2hTaGFkb3coeyBtb2RlOiAib3Bl
biIgfSk7CisKKyAgICAvLyBCdXR0b24gMSB3aWxsIGJlIHNsb3R0ZWQKKyAgICBjb25zdCBzbG90
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2xvdCIpOworICAgIHNoYWRvd1Jvb3QuYXBwZW5k
Q2hpbGQoc2xvdCk7CisKKyAgICBjb25zdCBidXR0b24yID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgiYnV0dG9uIik7CisgICAgYnV0dG9uMi5pZCA9ICJidXR0b24tMiI7CisgICAgYnV0dG9uMi50
ZXh0Q29udGVudCA9ICJCdXR0b24gMiAoaW5lcnQpIjsKKyAgICBzaGFkb3dSb290LmFwcGVuZENo
aWxkKGJ1dHRvbjIpOworCisgICAgZnVuY3Rpb24gdGVzdENhbkZvY3VzKHNlbGVjdG9yLCBjYW5G
b2N1cywgb3B0X2NvbnRleHQpIHsKKyAgICAgIGxldCBjb250ZXh0ID0gb3B0X2NvbnRleHQgfHwg
ZG9jdW1lbnQ7CisgICAgICBjb25zdCBlbGVtZW50ID0gY29udGV4dC5xdWVyeVNlbGVjdG9yKHNl
bGVjdG9yKTsKKyAgICAgIGxldCBmb2N1c2VkRWxlbWVudCA9IG51bGw7CisgICAgICBlbGVtZW50
LmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwgZnVuY3Rpb24oKSB7IGZvY3VzZWRFbGVtZW50ID0g
ZWxlbWVudDsgfSwgZmFsc2UpOworICAgICAgZWxlbWVudC5mb2N1cygpOworICAgICAgYXNzZXJ0
X2VxdWFscygoZm9jdXNlZEVsZW1lbnQgPT09IGVsZW1lbnQpLCBjYW5Gb2N1cyk7CisgICAgfQor
CisgICAgdGVzdCgoKSA9PiB7CisgICAgICB0ZXN0Q2FuRm9jdXMoIiNidXR0b24tMSIsIGZhbHNl
KTsKKyAgICAgIHRlc3RDYW5Gb2N1cygiI2J1dHRvbi0yIiwgZmFsc2UsIHNoYWRvd1Jvb3QpOwor
ICAgIH0sICJpbmVydCBvbiBTaGFkb3cgaG9zdCBhZmZlY3RzIGNvbnRlbnQgaW4gc2hhZG93Iik7
CisgIDwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1pbmxpbmVzLnRlbnRh
dGl2ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2luZXJ0L2luZXJ0LWlubGluZXMudGVudGF0aXZlLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4zY2Q3MDZjOTIwNmNiYzVhNjA2MThhYTM3MjM4NmMxMDNkYzE4MTQ1Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVy
dC9pbmVydC1pbmxpbmVzLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACitD
bGljayBtZSBDbGljayBtZQorQ2xpY2sgbWUKK0NsaWNrIG1lCisKK0ZBSUwgVGVzdHMgdGhhdCBp
bmVydCBpbmxpbmVzIGRvIG5vdCByZWNlaXZlIG1vdXNlIGV2ZW50cy4gVG8gdGVzdCBtYW51YWxs
eSwgY2xpY2sgb24gYWxsIHRoZSAiQ2xpY2sgbWUicy4gVGhlIHRlc3QgZmFpbHMgaWYgeW91IHNl
ZSByZWQuIGFzc2VydF9mYWxzZTogbm8gZXZlbnQgc2hvdWxkIGJlIGZpcmVkIG9uIGEgZXhwZWN0
ZWQgZmFsc2UgZ290IHRydWUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1pbmxpbmVzLnRlbnRhdGl2ZS5odG1sIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1p
bmxpbmVzLnRlbnRhdGl2ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIwNTZjNjQ5NWQyYzU0NzMzYmVlNmFi
Nzk2MzMyYmE4OWYwMWIzNzkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LWlubGluZXMudGVudGF0aXZlLmh0
bWwKQEAgLTAsMCArMSw1NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAgPGhlYWQ+Cisg
ICAgPG1ldGEgY2hhcnNldD0idXRmLTgiIC8+CisgICAgPHRpdGxlPmluZXJ0IGlubGluZXM8L3Rp
dGxlPgorICAgIDxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iQWxpY2UgQm94aGFsbCIgaHJlZj0i
YWJveGhhbGxAY2hyb21pdW0ub3JnIj4KKyAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0
aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhh
cm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rl
c3Rkcml2ZXIuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Rk
cml2ZXItdmVuZG9yLmpzIj48L3NjcmlwdD4KKyAgPC9oZWFkPgorPGJvZHk+Cis8YSBpbmVydCBp
ZD0iYSIgaHJlZj0iamF2YXNjcmlwdDp2b2lkKDApIj5DbGljayBtZTwvYT4KKzxidXR0b24gaW5l
cnQgaWQ9ImJ1dHRvbiI+Q2xpY2sgbWU8L2J1dHRvbj4KKzxkaXYgaW5lcnQgaWQ9ImRpdiIgc3R5
bGU9ImJhY2tncm91bmQtY29sb3I6IGJsdWU7IHdpZHRoOiA1MHB4OyBoZWlnaHQ6IDUwcHgiPkNs
aWNrIG1lPC9kaXY+Cis8c3BhbiBpbmVydCBpZD0ic3BhbiI+Q2xpY2sgbWU8L3NwYW4+Cis8c2Ny
aXB0PgorZnVuY3Rpb24gZXZlbnRGaXJlZE9uSW5lcnRFbGVtZW50KGUpIHsKKyAgICBlLnRhcmdl
dC5zdHlsZS5iYWNrZ3JvdW5kID0gJ3JlZCc7CisgICAgaW5lcnRFbGVtZW50RmlyZWRPbiA9IHRy
dWU7Cit9CisKK2luZXJ0RWxlbWVudHMgPSBbJ2EnLCAnYnV0dG9uJywgJ2RpdicsICdzcGFuJ10K
K2luZXJ0RWxlbWVudHMuZm9yRWFjaChmdW5jdGlvbihpZCkgeworICAgIGVsZW1lbnQgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZChpZCk7CisgICAgZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdj
bGljaycsIGV2ZW50RmlyZWRPbkluZXJ0RWxlbWVudCk7CisgICAgZWxlbWVudC5hZGRFdmVudExp
c3RlbmVyKCdtb3VzZW1vdmUnLCBldmVudEZpcmVkT25JbmVydEVsZW1lbnQpOworfSk7CisKK2Rv
Y3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oZSkgeworICAgIGRvY3Vt
ZW50LmZpcmVkT24gPSB0cnVlOworfSk7CisKK3Byb21pc2VfdGVzdChhc3luYyAoKSA9PiB7Cisg
ICAgZm9yIChsZXQgaWQgb2YgaW5lcnRFbGVtZW50cykgeworICAgICAgICB2YXIgZWxlbWVudCA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKTsKKyAgICAgICAgaW5lcnRFbGVtZW50RmlyZWRP
biA9IGZhbHNlOworICAgICAgICBkb2N1bWVudC5maXJlZE9uID0gZmFsc2U7CisgICAgICAgIHRy
eSB7CisgICAgICAgICAgYXdhaXQgdGVzdF9kcml2ZXIuY2xpY2soZWxlbWVudCk7CisgICAgICAg
ICAgYXNzZXJ0X2ZhbHNlKGluZXJ0RWxlbWVudEZpcmVkT24sICdubyBldmVudCBzaG91bGQgYmUg
ZmlyZWQgb24gJyArIGlkKTsKKyAgICAgICAgICBhc3NlcnRfdHJ1ZShkb2N1bWVudC5maXJlZE9u
LCAnZXZlbnQgc2hvdWxkIGJlIGZpcmVkIG9uIGRvY3VtZW50IGluc3RlYWQgb2YgJyArIGlkKTsK
KyAgICAgICAgfSBjYXRjaCAoZSkgeworICAgICAgICAgIC8vIHRlc3QgZHJpdmVyIGRldGVjdHMg
aW5lcnQgZWxlbWVudHMgYXMgdW5jbGlja2FibGUKKyAgICAgICAgICAvLyBhbmQgdGhyb3dzIGFu
IGVycm9yCisgICAgICAgICAgYXNzZXJ0X2ZhbHNlKGluZXJ0RWxlbWVudEZpcmVkT24sICdubyBl
dmVudCBzaG91bGQgYmUgZmlyZWQgb24gJyArIGlkKTsKKyAgICAgICAgfQorICAgIH0KK30sICdU
ZXN0cyB0aGF0IGluZXJ0IGlubGluZXMgZG8gbm90IHJlY2VpdmUgbW91c2UgZXZlbnRzLiAnICsK
KyAgICdUbyB0ZXN0IG1hbnVhbGx5LCBjbGljayBvbiBhbGwgdGhlICJDbGljayBtZSJzLiBUaGUg
dGVzdCAnICsKKyAgICdmYWlscyBpZiB5b3Ugc2VlIHJlZC4nKTsKKworPC9zY3JpcHQ+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LWxhYmVsLWZvY3VzLnRlbnRhdGl2ZS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2lu
ZXJ0LWxhYmVsLWZvY3VzLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWQ1YWIw
ZWE0ZmE0NDc1NDUyNDk3YTBhNmU5ZTNhZWYyOTNhMzE4YQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtbGFi
ZWwtZm9jdXMudGVudGF0aXZlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDcgQEAKK0xhYmVsIGZv
ciBTdWJtaXQgICAgIExhYmVsIGZvciBpbnB1dCBpbiBpbmVydCBzdWJ0cmVlCisKKworUEFTUyBD
YWxsaW5nIGZvY3VzKCkgb24gYW4gaW5lcnQgbGFiZWwgc2hvdWxkIHN0aWxsIHNlbmQgZm9jdXMg
dG8gaXRzIHRhcmdldC4KK1BBU1MgQ2xpY2tpbmcgb24gYW4gaW5lcnQgbGFiZWwgc2hvdWxkIHNl
bmQgZm9jdXMgdG8gZG9jdW1lbnQuYm9keS4KK1BBU1MgQ2FsbGluZyBmb2N1cygpIG9uIGEgbGFi
ZWwgZm9yIGEgY29udHJvbCB3aGljaCBpcyBpbiBhbiBpbmVydCBzdWJ0cmVlIHNob3VsZCBoYXZl
IG5vIGVmZmVjdC4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1sYWJlbC1mb2N1cy50ZW50YXRpdmUuaHRtbCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtbGFi
ZWwtZm9jdXMudGVudGF0aXZlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGJiZTFlY2ExNWM3ZDhmMmY5ZmQ1
ZWE0OGMzM2NkMGE1ZDUwOThlMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtbGFiZWwtZm9jdXMudGVudGF0
aXZlLmh0bWwKQEAgLTAsMCArMSw1MyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAgPGhl
YWQ+CisgICAgPG1ldGEgY2hhcnNldD0idXRmLTgiIC8+CisgICAgPHRpdGxlPmluZXJ0IHdpdGgg
bGFiZWwvZm9yPC90aXRsZT4KKyAgICA8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkFsaWNlIEJv
eGhhbGwiIGhyZWY9ImFib3hoYWxsQGNocm9taXVtLm9yZyI+CisgICAgPHNjcmlwdCBzcmM9Ii9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0i
L3Jlc291cmNlcy90ZXN0ZHJpdmVyLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iL3Jl
c291cmNlcy90ZXN0ZHJpdmVyLXZlbmRvci5qcyI+PC9zY3JpcHQ+CisgIDwvaGVhZD4KKyAgPGJv
ZHk+CisgICAgPGxhYmVsIGluZXJ0IGlkPSJmb3Itc3VibWl0IiBmb3I9InN1Ym1pdCI+TGFiZWwg
Zm9yIFN1Ym1pdDwvbGFiZWw+CisgICAgPGlucHV0IGlkPSJ0ZXh0IiB0eXBlPSJ0ZXh0Ij4KKyAg
ICA8aW5wdXQgaWQ9InN1Ym1pdCIgdHlwZT0ic3VibWl0Ij4KKworICAgIDxsYWJlbCBpZD0iZm9y
LWlucHV0LWluLWluZXJ0LXN1YnRyZWUiCisgICAgICAgICAgIGZvcj0iaW5wdXQtaW4taW5lcnQt
c3VidHJlZSI+TGFiZWwgZm9yIGlucHV0IGluIGluZXJ0IHN1YnRyZWU8L2xhYmVsPgorICAgIDxk
aXYgaW5lcnQ+CisgICAgICA8aW5wdXQgaWQ9ImlucHV0LWluLWluZXJ0LXN1YnRyZWUiPjwvaW5w
dXQ+CisgICAgPC9kaXY+CisKKyAgICA8c2NyaXB0PgorICAgICAgdGVzdCgoKSA9PiB7CisgICAg
ICAgIGxhYmVsID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI2Zvci1zdWJtaXQnKTsKKyAgICAg
ICAgbGFiZWwuZm9jdXMoKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhkb2N1bWVudC5hY3RpdmVF
bGVtZW50LCBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjc3VibWl0JykpOworICAgICAgfSwgJ0Nh
bGxpbmcgZm9jdXMoKSBvbiBhbiBpbmVydCBsYWJlbCBzaG91bGQgc3RpbGwgc2VuZCBmb2N1cyB0
byBpdHMgdGFyZ2V0LicpOworCisgICAgICBwcm9taXNlX3Rlc3QoYXN5bmMgKCkgPT4geworICAg
ICAgICB0ZXh0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3RleHQnKTsKKyAgICAgICAgdGV4
dC5mb2N1cygpOworICAgICAgICBsYWJlbCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNmb3It
c3VibWl0Jyk7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgYXdhaXQgdGVzdF9kcml2ZXIuY2xp
Y2sobGFiZWwpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMoZG9jdW1lbnQuYWN0aXZlRWxlbWVu
dCwgZG9jdW1lbnQuYm9keSk7CisgICAgICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgICAvLyB0
ZXN0IGRyaXZlciBkZXRlY3RzIGluZXJ0IGVsZW1lbnRzIGFzIHVuY2xpY2thYmxlCisgICAgICAg
ICAgLy8gYW5kIHRocm93cyBhbiBlcnJvcgorICAgICAgICB9CisgICAgICB9LCAnQ2xpY2tpbmcg
b24gYW4gaW5lcnQgbGFiZWwgc2hvdWxkIHNlbmQgZm9jdXMgdG8gZG9jdW1lbnQuYm9keS4nKTsK
KworICAgICAgdGVzdCgoKSA9PiB7CisgICAgICAgIHRleHQgPSBkb2N1bWVudC5xdWVyeVNlbGVj
dG9yKCcjdGV4dCcpOworICAgICAgICB0ZXh0LmZvY3VzKCk7CisKKyAgICAgICAgbGFiZWwgPSBk
b2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjZm9yLWlucHV0LWluLWluZXJ0LXN1YnRyZWUnKTsKKyAg
ICAgICAgbGFiZWwuZm9jdXMoKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhkb2N1bWVudC5hY3Rp
dmVFbGVtZW50LCB0ZXh0KTsKKyAgICAgIH0sICdDYWxsaW5nIGZvY3VzKCkgb24gYSBsYWJlbCBm
b3IgYSBjb250cm9sIHdoaWNoIGlzIGluIGFuIGluZXJ0IHN1YnRyZWUgJyArCisgICAgICAgICAn
c2hvdWxkIGhhdmUgbm8gZWZmZWN0LicpOworPC9zY3JpcHQ+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0
LW5vZGUtaXMtdW5lZGl0YWJsZS50ZW50YXRpdmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1ub2RlLWlzLXVuZWRp
dGFibGUudGVudGF0aXZlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNDBhNTlkNjUxYjUyODFi
ZDUxMTA4ZjVkZjMxYWQ0ODcwN2IyZjk4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1ub2RlLWlzLXVuZWRp
dGFibGUudGVudGF0aXZlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK0knbSBub3QgZWRp
dGFibGUuIGFJJ20gZWRpdGFibGUuCisKK1BBU1MgQ2FuJ3QgZWRpdCBpbmVydCBjb250ZW50ZWRp
dGFibGUKK1BBU1MgQ2FuIGVkaXQgbm9uLWluZXJ0IGNvbnRlbnRlZGl0YWJsZQorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2lu
ZXJ0LW5vZGUtaXMtdW5lZGl0YWJsZS50ZW50YXRpdmUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtbm9kZS1pcy11bmVkaXRhYmxl
LnRlbnRhdGl2ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZkYTIzNzlmYWQ0Mjk3MmQ0ODM5MTI5YzhkYjBi
ZWQ3YmJkMmFkZWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LW5vZGUtaXMtdW5lZGl0YWJsZS50ZW50YXRp
dmUuaHRtbApAQCAtMCwwICsxLDM3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorICA8aGVh
ZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCIgLz4KKyAgICA8dGl0bGU+aW5lcnQgbm9kZXMg
YXJlIHVuZWRpdGFibGU8L3RpdGxlPgorICAgIDxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iQWxp
Y2UgQm94aGFsbCIgaHJlZj0iYWJveGhhbGxAY2hyb21pdW0ub3JnIj4KKyAgICA8c2NyaXB0IHNy
Yz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9
Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQg
c3JjPSIvcmVzb3VyY2VzL3Rlc3Rkcml2ZXIuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3Jj
PSIvcmVzb3VyY2VzL3Rlc3Rkcml2ZXItdmVuZG9yLmpzIj48L3NjcmlwdD4KKyAgPC9oZWFkPgor
PGJvZHk+Cis8c3BhbiBpbmVydCBpZD0ibm90LWVkaXRhYmxlIiBjb250ZW50ZWRpdGFibGU+SSdt
IG5vdCBlZGl0YWJsZS48L3NwYW4+Cis8c3BhbiBpZD0iZWRpdGFibGUiIGNvbnRlbnRlZGl0YWJs
ZT5JJ20gZWRpdGFibGUuPC9zcGFuPgorPHNjcmlwdD4KK3ZhciBub3RFZGl0YWJsZSA9IGRvY3Vt
ZW50LnF1ZXJ5U2VsZWN0b3IoJyNub3QtZWRpdGFibGUnKTsKK3ZhciBlZGl0YWJsZSA9IGRvY3Vt
ZW50LnF1ZXJ5U2VsZWN0b3IoJyNlZGl0YWJsZScpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgKCkg
PT4geworICAgIG5vdEVkaXRhYmxlLmZvY3VzKCk7CisgICAgdmFyIG9sZFZhbHVlID0gbm90RWRp
dGFibGUudGV4dENvbnRlbnQ7CisgICAgYXNzZXJ0X2VxdWFscyhvbGRWYWx1ZSwgIkknbSBub3Qg
ZWRpdGFibGUuIik7CisgICAgYXdhaXQgdGVzdF9kcml2ZXIuc2VuZF9rZXlzKGRvY3VtZW50LmJv
ZHksICdhJyk7CisgICAgYXNzZXJ0X2VxdWFscyhub3RFZGl0YWJsZS50ZXh0Q29udGVudCwgb2xk
VmFsdWUpOworfSwgIkNhbid0IGVkaXQgaW5lcnQgY29udGVudGVkaXRhYmxlIik7CisKK3Byb21p
c2VfdGVzdChhc3luYyAoKSA9PiB7CisgICAgZWRpdGFibGUuZm9jdXMoKTsKKyAgICB2YXIgb2xk
VmFsdWUgPSBlZGl0YWJsZS50ZXh0Q29udGVudDsKKyAgICBhc3NlcnRfZXF1YWxzKG9sZFZhbHVl
LCAiSSdtIGVkaXRhYmxlLiIpOworICAgIGF3YWl0IHRlc3RfZHJpdmVyLnNlbmRfa2V5cyhkb2N1
bWVudC5ib2R5LCAnYScpOworICAgIGFzc2VydF9ub3RfZXF1YWxzKGVkaXRhYmxlLnRleHRDb250
ZW50LCBvbGRWYWx1ZSk7Cit9LCAiQ2FuIGVkaXQgbm9uLWluZXJ0IGNvbnRlbnRlZGl0YWJsZSIp
OworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtbm9kZS1pcy11bmZv
Y3VzYWJsZS50ZW50YXRpdmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1ub2RlLWlzLXVuZm9jdXNhYmxlLnRlbnRh
dGl2ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTZhZWE4YmI1NTU3ZDc2OGNhNWVlMGNjYWM3
ZDkyZGY4YmY1Nzc5ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtbm9kZS1pcy11bmZvY3VzYWJsZS50ZW50
YXRpdmUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTMgQEAKK091dHNpZGUgb2YgaW5lcnQgY29u
dGFpbmVyICBJbmVydCBidXR0b24KKworSSdtIGVkaXRhYmxlCitJJ20gdGFiaW5kZXhlZC4KKyBM
aW5rCisKK1BBU1MgQnV0dG9uIG91dHNpZGUgb2YgaW5lcnQgY29udGFpbmVyIGlzIGZvY3VzYWJs
ZS4KK1BBU1MgQnV0dG9uIHdpdGggaW5lcnQgYXRyaWJ1dGUgaXMgdW5mb2N1c2FibGUuCitQQVNT
IEFsbCBmb2N1c2FibGUgZWxlbWVudHMgaW5zaWRlIGluZXJ0IHN1YnRyZWUgYXJlIHVuZm9jdXNh
YmxlCitQQVNTIENhbiBnZXQgaW5lcnQgdmlhIHByb3BlcnR5CitQQVNTIEVsZW1lbnRzIGluc2lk
ZSBvZiBpbmVydCBzdWJ0cmVlcyByZXR1cm4gZmFsc2Ugd2hlbiBnZXR0aW5nICdpbmVydCcKK1BB
U1MgU2V0dGluZyBpbmVydCB2aWEgcHJvcGVydHkgY29ycmVjdGx5IG1vZGlmaWVzIGluZXJ0IHN0
YXRlCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaW5lcnQvaW5lcnQtbm9kZS1pcy11bmZvY3VzYWJsZS50ZW50YXRpdmUuaHRtbCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtbm9k
ZS1pcy11bmZvY3VzYWJsZS50ZW50YXRpdmUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YjVkZTM3ZmRjYWRl
ZGI5ZDk4ZWM0NGM5YzNjMjBhZWE1MmEwNDAwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1ub2RlLWlzLXVu
Zm9jdXNhYmxlLnRlbnRhdGl2ZS5odG1sCkBAIC0wLDAgKzEsNzkgQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+CisgIDxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04IiAvPgorICAgIDx0
aXRsZT5pbmVydCBub2RlcyBhcmUgdW5mb2N1c2FibGU8L3RpdGxlPgorICAgIDxsaW5rIHJlbD0i
YXV0aG9yIiB0aXRsZT0iQWxpY2UgQm94aGFsbCIgaHJlZj0iYWJveGhhbGxAY2hyb21pdW0ub3Jn
Ij4KKyAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+
CisgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2Ny
aXB0PgorICA8L2hlYWQ+Cis8Ym9keSBpZD0iYm9keSIgdGFiaW5kZXg9IjEiPgorICA8YnV0dG9u
IGlkPSJmb2N1c2FibGUiPk91dHNpZGUgb2YgaW5lcnQgY29udGFpbmVyPC9idXR0b24+CisgIDxi
dXR0b24gaW5lcnQgaWQ9ImluZXJ0Ij5JbmVydCBidXR0b248L2J1dHRvbj4KKyAgPGRpdiBpbmVy
dCBpZD0iY29udGFpbmVyIj4KKyAgICA8aW5wdXQgaWQ9InRleHQiIHR5cGU9InRleHQiPgorICAg
IDxpbnB1dCBpZD0iZGF0ZXRpbWUiIHR5cGU9ImRhdGV0aW1lIj4KKyAgICA8aW5wdXQgaWQ9ImNv
bG9yIiB0eXBlPSJjb2xvciI+CisgICAgPHNlbGVjdCBpZD0ic2VsZWN0Ij4KKyAgICAgICAgPG9w
dGdyb3VwIGlkPSJvcHRncm91cCI+CisgICAgICAgICAgICA8b3B0aW9uIGlkPSJvcHRpb24iPk9w
dGlvbjwvb3B0aW9uPgorICAgICAgICA8L29wdGdyb3VwPgorICAgIDwvc2VsZWN0PgorICAgIDxk
aXYgaWQ9ImNvbnRlbnRlZGl0YWJsZS1kaXYiIGNvbnRlbnRlZGl0YWJsZT5JJ20gZWRpdGFibGU8
L2Rpdj4KKyAgICA8c3BhbiBpZD0idGFiaW5kZXgtc3BhbiIgdGFiaW5kZXg9IjAiPkknbSB0YWJp
bmRleGVkLjwvZGl2PgorICAgIDxlbWJlZCBpZD0iZW1iZWQiIHR5cGU9ImFwcGxpY2F0aW9uL3gt
YmxpbmstdGVzdC1wbHVnaW4iIHdpZHRoPTEwMCBoZWlnaHQ9MTAwPjwvZW1iZWQ+CisgICAgPGEg
aWQ9ImFuY2hvciIgaHJlZj0iIj5MaW5rPC9hPgorICA8L2Rpdj4KKzxzY3JpcHQ+CitmdW5jdGlv
biB0ZXN0Rm9jdXMoZWxlbWVudCwgZXhwZWN0Rm9jdXMpIHsKKyAgICBmb2N1c2VkRWxlbWVudCA9
IG51bGw7CisgICAgZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdmb2N1cycsIGZ1bmN0aW9uKCkg
eyBmb2N1c2VkRWxlbWVudCA9IGVsZW1lbnQ7IH0sIGZhbHNlKTsKKyAgICBlbGVtZW50LmZvY3Vz
KCk7CisgICAgdGhlRWxlbWVudCA9IGVsZW1lbnQ7CisgICAgYXNzZXJ0X2VxdWFscyhmb2N1c2Vk
RWxlbWVudCA9PT0gdGhlRWxlbWVudCwgZXhwZWN0Rm9jdXMpOworfQorCitmdW5jdGlvbiB0ZXN0
VHJlZShlbGVtZW50LCBleHBlY3RGb2N1cywgZXhjbHVkZUN1cnJlbnQpIHsKKyAgICBpZiAoZWxl
bWVudC5ub2RlVHlwZSA9PSBOb2RlLkVMRU1FTlRfTk9ERSAmJiAhZXhjbHVkZUN1cnJlbnQpCisg
ICAgICAgIHRlc3RGb2N1cyhlbGVtZW50LCBleHBlY3RGb2N1cyk7CisgICAgaWYgKGVsZW1lbnQu
dGFnTmFtZSA9PT0gIlNFTEVDVCIpCisgICAgICAgIHJldHVybjsKKyAgICB2YXIgY2hpbGROb2Rl
cyA9IGVsZW1lbnQuY2hpbGROb2RlczsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNoaWxkTm9k
ZXMubGVuZ3RoOyBpKyspCisgICAgICAgIHRlc3RUcmVlKGNoaWxkTm9kZXNbaV0sIGV4cGVjdEZv
Y3VzKTsKK30KKworCit0ZXN0KGZ1bmN0aW9uKCkgeworICAgIHRlc3RGb2N1cyhkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnZm9jdXNhYmxlJyksIHRydWUpOworfSwgIkJ1dHRvbiBvdXRzaWRlIG9m
IGluZXJ0IGNvbnRhaW5lciBpcyBmb2N1c2FibGUuIik7CisKK3Rlc3QoZnVuY3Rpb24oKSB7Cisg
ICAgdGVzdEZvY3VzKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbmVydCcpLCBmYWxzZSk7Cit9
LCAiQnV0dG9uIHdpdGggaW5lcnQgYXRyaWJ1dGUgaXMgdW5mb2N1c2FibGUuIik7CisKK3Rlc3Qo
ZnVuY3Rpb24oKSB7CisgICAgdGVzdFRyZWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnRh
aW5lcicpLCBmYWxzZSk7Cit9LCAiQWxsIGZvY3VzYWJsZSBlbGVtZW50cyBpbnNpZGUgaW5lcnQg
c3VidHJlZSBhcmUgdW5mb2N1c2FibGUiKTsKKwordGVzdChmdW5jdGlvbigpIHsKKyAgICBhc3Nl
cnRfZmFsc2UoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZvY3VzYWJsZSIpLmluZXJ0LCAiSW5l
cnQgbm90IHNldCBleHBsaWNpdGx5IGlzIGZhbHNlIikKKyAgICBhc3NlcnRfdHJ1ZShkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgiaW5lcnQiKS5pbmVydCwgIkluZXJ0IHNldCBleHBsaWNpdGx5IGlz
IHRydWUiKTsKKyAgICBhc3NlcnRfdHJ1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGFp
bmVyIikuaW5lcnQsICJJbmVydCBzZXQgb24gY29udGFpbmVyIGlzIHRydWUiKTsKK30sICJDYW4g
Z2V0IGluZXJ0IHZpYSBwcm9wZXJ0eSIpOworCit0ZXN0KGZ1bmN0aW9uKCkgeworICAgIGFzc2Vy
dF9mYWxzZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGV4dCIpLmluZXJ0LCAiRWxlbWVudHMg
aW5zaWRlIG9mIGluZXJ0IHN1YnRyZWVzIHJldHVybiBmYWxzZSB3aGVuIGdldHRpbmcgaW5lcnQi
KTsKK30sICJFbGVtZW50cyBpbnNpZGUgb2YgaW5lcnQgc3VidHJlZXMgcmV0dXJuIGZhbHNlIHdo
ZW4gZ2V0dGluZyAnaW5lcnQnIik7CisKK3Rlc3QoZnVuY3Rpb24oKSB7CisgICAgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ2ZvY3VzYWJsZScpLmluZXJ0ID0gdHJ1ZTsKKyAgICB0ZXN0Rm9jdXMo
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZvY3VzYWJsZScpLCBmYWxzZSk7CisgICAgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ2luZXJ0JykuaW5lcnQgPSBmYWxzZTsKKyAgICB0ZXN0Rm9jdXMo
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2luZXJ0JyksIHRydWUpOworICAgIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdjb250YWluZXInKS5pbmVydCA9IGZhbHNlOworICAgIHRlc3RUcmVlKGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb250YWluZXInKSwgdHJ1ZSwgdHJ1ZSk7Cit9LCAiU2V0
dGluZyBpbmVydCB2aWEgcHJvcGVydHkgY29ycmVjdGx5IG1vZGlmaWVzIGluZXJ0IHN0YXRlIik7
Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtbm9kZS1pcy11bnNlbGVj
dGFibGUudGVudGF0aXZlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtbm9kZS1pcy11bnNlbGVjdGFibGUudGVudGF0
aXZlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZmNhMjM4YWY4ZjE0YTE1Yjc5ZjlmYzBhMzFi
MzkzNzhmODQxZDY0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1ub2RlLWlzLXVuc2VsZWN0YWJsZS50ZW50
YXRpdmUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorSGVyZSBpcyBhIHRleHQgbm9kZSB5
b3UgY2FuJ3Qgc2VsZWN0LgorSSdtIHNlbGVjdGFibGUuCisKK0ZBSUwgSW5lcnQgbm9kZXMgY2Fu
bm90IGJlIHNlbGVjdGVkLiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiSSdtIHNlbGVjdGFibGUu
IiBidXQgZ290ICJIZXJlIGlzIGEgdGV4dCBub2RlIHlvdSBjYW4ndCBzZWxlY3QuXG5JJ20gc2Vs
ZWN0YWJsZS4iCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtbm9kZS1pcy11bnNlbGVjdGFibGUudGVudGF0aXZlLmh0
bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2lu
ZXJ0LW5vZGUtaXMtdW5zZWxlY3RhYmxlLnRlbnRhdGl2ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI5OWFm
MGQ0Y2QxNDJkY2IwNTFhZjUxZjQyZDE3NTkxNDJhMDBjNWUKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LW5v
ZGUtaXMtdW5zZWxlY3RhYmxlLnRlbnRhdGl2ZS5odG1sCkBAIC0wLDAgKzEsMjAgQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+CisgIDxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04IiAv
PgorICAgIDx0aXRsZT5pbmVydCBub2RlcyBhcmUgdW5zZWxlY3RhYmxlPC90aXRsZT4KKyAgICA8
bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkFsaWNlIEJveGhhbGwiIGhyZWY9ImFib3hoYWxsQGNo
cm9taXVtLm9yZyI+CisgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMi
Pjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0
LmpzIj48L3NjcmlwdD4KKyAgPC9oZWFkPgorPGJvZHk+CisgIDxkaXYgaW5lcnQ+SGVyZSBpcyBh
IHRleHQgbm9kZSB5b3UgY2FuJ3Qgc2VsZWN0LjwvZGl2PgorICA8ZGl2PkknbSBzZWxlY3RhYmxl
LjwvZGl2PgorPHNjcmlwdD4KK3Rlc3QoZnVuY3Rpb24oKSB7CisgICAgZG9jdW1lbnQuZXhlY0Nv
bW1hbmQoJ1NlbGVjdEFsbCcpOworICAgIGFzc2VydF9lcXVhbHMod2luZG93LmdldFNlbGVjdGlv
bigpLnRvU3RyaW5nKCkudHJpbSgpLCAiSSdtIHNlbGVjdGFibGUuIik7Cit9LCAiSW5lcnQgbm9k
ZXMgY2Fubm90IGJlIHNlbGVjdGVkLiIpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2lu
ZXJ0L2luZXJ0LW9uLXNsb3RzLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LW9uLXNsb3RzLnRlbnRh
dGl2ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGYyYjEyNThkMzUyY2RmODkzNDBjN2NjMzA5
N2JiOTQ0ZTdkYzc0ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtb24tc2xvdHMudGVudGF0aXZlLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK0J1dHRvbiAxIHNob3VsZCBiZSBpbmVydCwgYW5kIEJ1
dHRvbiAyIHNob3VsZCBub3QgYmUgaW5lcnQuCitCdXR0b24gMSAoaW5lcnQpQnV0dG9uIDIgKG5v
dCBpbmVydCkKKworRkFJTCBpbmVydCBpbnNpZGUgU2hhZG93Um9vdCBhZmZlY3RzIHNsb3R0ZWQg
Y29udGVudCBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCBmYWxzZSBidXQgZ290IHRydWUKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVy
dC9pbmVydC1vbi1zbG90cy50ZW50YXRpdmUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtb24tc2xvdHMudGVudGF0aXZlLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZGQwZDdlYzZkNDZkMWVmMzQ0MTdkY2YwOTljZTUxNTZiYjE0OWJlYQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvaW5lcnQvaW5lcnQtb24tc2xvdHMudGVudGF0aXZlLmh0bWwKQEAgLTAsMCArMSw1NyBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04
IiAvPgorICAgIDx0aXRsZT5pbmVydCBpbnNpZGUgU2hhZG93Um9vdCBhZmZlY3RzIHNsb3R0ZWQg
Y29udGVudDwvdGl0bGU+CisgICAgPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJBbGljZSBCb3ho
YWxsIiBocmVmPSJhYm94aGFsbEBjaHJvbWl1bS5vcmciPgorICAgIDxzY3JpcHQgc3JjPSIvcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iL3Jlc291
cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAg
PGRpdj5CdXR0b24gMSBzaG91bGQgYmUgaW5lcnQsIGFuZCBCdXR0b24gMiBzaG91bGQgbm90IGJl
IGluZXJ0LjwvZGl2PgorICA8ZGl2IGlkPSJzaGFkb3ctaG9zdCI+CisgICAgPGJ1dHRvbiBzbG90
PSJzbG90LTEiIGlkPSJidXR0b24tMSI+QnV0dG9uIDEgKGluZXJ0KTwvYnV0dG9uPgorICAgIDxi
dXR0b24gc2xvdD0ic2xvdC0yIiBpZD0iYnV0dG9uLTIiPkJ1dHRvbiAyIChub3QgaW5lcnQpPC9i
dXR0b24+CisgIDwvZGl2PgorICA8c2NyaXB0PgorICAgIC8qCisgICAgRXZlbnR1YWwgZmxhdHRl
bmVkIHRyZWUgc3RydWN0dXJlOgorCisgICAgPGRpdiBpZD0ic2hhZG93LWhvc3QiPgorICAgICAg
I3NoYWRvdy1yb290IChvcGVuKQorICAgICAgfCA8c2xvdCBpZD0ic2xvdC0xIiBpbmVydD4KKyAg
ICAgIDogICA8YnV0dG9uIGlkPSJidXR0b24tMSI+QnV0dG9uIDE8L2J1dHRvbj4gPCEtLSBzbG90
dGVkIC0tPgorICAgICAgfCA8L3Nsb3Q+CisgICAgICB8IDxzbG90IGlkPSJzbG90LTIiPgorICAg
ICAgOiAgIDxidXR0b24gaWQ9ImJ1dHRvbi0yIj5CdXR0b24gMjwvYnV0dG9uPiA8IS0tIHNsb3R0
ZWQgLS0+CisgICAgICB8IDwvc2xvdD4KKyAgICA8L2Rpdj4KKyAgICAqLworCisgICAgY29uc3Qg
c2hhZG93SG9zdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzaGFkb3ctaG9zdCIpOworICAg
IGNvbnN0IHNoYWRvd1Jvb3QgPSBzaGFkb3dIb3N0LmF0dGFjaFNoYWRvdyh7IG1vZGU6ICJvcGVu
IiB9KTsKKworICAgIGNvbnN0IHNsb3QxID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2xvdCIp
OworICAgIHNsb3QxLm5hbWUgPSAic2xvdC0xIjsKKyAgICBzbG90MS5pbmVydCA9IHRydWU7Cisg
ICAgc2hhZG93Um9vdC5hcHBlbmRDaGlsZChzbG90MSk7CisKKyAgICBjb25zdCBzbG90MiA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoInNsb3QiKTsKKyAgICBzbG90Mi5uYW1lID0gInNsb3QtMiI7
CisgICAgc2hhZG93Um9vdC5hcHBlbmRDaGlsZChzbG90Mik7CisKKyAgICBmdW5jdGlvbiB0ZXN0
Q2FuRm9jdXMoc2VsZWN0b3IsIGNhbkZvY3VzKSB7CisgICAgICBjb25zdCBlbGVtZW50ID0gZG9j
dW1lbnQucXVlcnlTZWxlY3RvcihzZWxlY3Rvcik7CisgICAgICBsZXQgZm9jdXNlZEVsZW1lbnQg
PSBudWxsOworICAgICAgZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsIGZ1bmN0aW9u
KCkgeyBmb2N1c2VkRWxlbWVudCA9IGVsZW1lbnQ7IH0sIGZhbHNlKTsKKyAgICAgIGVsZW1lbnQu
Zm9jdXMoKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoKGZvY3VzZWRFbGVtZW50ID09PSBlbGVtZW50
KSwgY2FuRm9jdXMpOworICAgIH0KKworICAgIHRlc3QoKCkgPT4geworICAgICAgdGVzdENhbkZv
Y3VzKCIjYnV0dG9uLTEiLCBmYWxzZSk7CisgICAgICB0ZXN0Q2FuRm9jdXMoIiNidXR0b24tMiIs
IHRydWUpOworICAgIH0sICJpbmVydCBpbnNpZGUgU2hhZG93Um9vdCBhZmZlY3RzIHNsb3R0ZWQg
Y29udGVudCIpOworICA8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtcmV0
YXJnZXRpbmctaWZyYW1lLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LXJldGFyZ2V0aW5nLWlmcmFt
ZS50ZW50YXRpdmUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI1OTliZTcxYTgzZWYwOGVkNTYx
OWI5NGNjYjQ2NGZjMWJjOTc3MDkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LXJldGFyZ2V0aW5nLWlmcmFt
ZS50ZW50YXRpdmUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNDcgQEAKK0NPTlNPTEUgTUVTU0FH
RTogRXJyb3I6IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIEVsZW1lbnQgbm9kZSA8ZmllbGRzZXQg
aWQ9ImFuY2VzdG9yQ29udGFpbmVyIj4KKyAgICA8bGVnZW5kPk5vbi1pbmVydCBhLi4uIGJ1dCBn
b3QgRWxlbWVudCBub2RlIDxidXR0b24gaWQ9ImZvcmVncm91bmQiIGNsYXNzPSJjbGlja2VkIj5m
b3JlZ3JvdW5kPC9idXR0b24+CitDT05TT0xFIE1FU1NBR0U6IEVycm9yOiBhc3NlcnRfZXF1YWxz
OiBleHBlY3RlZCBFbGVtZW50IG5vZGUgPGZpZWxkc2V0IGlkPSJhbmNlc3RvckNvbnRhaW5lciI+
CisgICAgPGxlZ2VuZD5Ob24taW5lcnQgYS4uLiBidXQgZ290IEVsZW1lbnQgbm9kZSA8YnV0dG9u
IGlkPSJmb3JlZ3JvdW5kIiBjbGFzcz0iY2xpY2tlZCI+Zm9yZWdyb3VuZDwvYnV0dG9uPgorQ09O
U09MRSBNRVNTQUdFOiBFcnJvcjogYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgRWxlbWVudCBub2Rl
IDxmaWVsZHNldCBpZD0iYW5jZXN0b3JDb250YWluZXIiPgorICAgIDxsZWdlbmQ+Tm9uLWluZXJ0
IGEuLi4gYnV0IGdvdCBFbGVtZW50IG5vZGUgPGJ1dHRvbiBpZD0iZm9yZWdyb3VuZCIgY2xhc3M9
ImNsaWNrZWQiPmZvcmVncm91bmQ8L2J1dHRvbj4KK0NPTlNPTEUgTUVTU0FHRTogRXJyb3I6IGFz
c2VydF9lcXVhbHM6IGV4cGVjdGVkIEVsZW1lbnQgbm9kZSA8ZmllbGRzZXQgaWQ9ImFuY2VzdG9y
Q29udGFpbmVyIj4KKyAgICA8bGVnZW5kPk5vbi1pbmVydCBhLi4uIGJ1dCBnb3QgRWxlbWVudCBu
b2RlIDxidXR0b24gaWQ9ImZvcmVncm91bmQiIGNsYXNzPSJjbGlja2VkIj5mb3JlZ3JvdW5kPC9i
dXR0b24+CitDT05TT0xFIE1FU1NBR0U6IEVycm9yOiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCBF
bGVtZW50IG5vZGUgPGZpZWxkc2V0IGlkPSJhbmNlc3RvckNvbnRhaW5lciI+CisgICAgPGxlZ2Vu
ZD5Ob24taW5lcnQgYS4uLiBidXQgZ290IEVsZW1lbnQgbm9kZSA8YnV0dG9uIGlkPSJmb3JlZ3Jv
dW5kIiBjbGFzcz0iY2xpY2tlZCI+Zm9yZWdyb3VuZDwvYnV0dG9uPgorQ09OU09MRSBNRVNTQUdF
OiBFcnJvcjogYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgRWxlbWVudCBub2RlIDxmaWVsZHNldCBp
ZD0iYW5jZXN0b3JDb250YWluZXIiPgorICAgIDxsZWdlbmQ+Tm9uLWluZXJ0IGEuLi4gYnV0IGdv
dCBFbGVtZW50IG5vZGUgPGJ1dHRvbiBpZD0iZm9yZWdyb3VuZCIgY2xhc3M9ImNsaWNrZWQiPmZv
cmVncm91bmQ8L2J1dHRvbj4KK0NPTlNPTEUgTUVTU0FHRTogRXJyb3I6IGFzc2VydF9lcXVhbHM6
IGV4cGVjdGVkIEVsZW1lbnQgbm9kZSA8ZmllbGRzZXQgaWQ9ImFuY2VzdG9yQ29udGFpbmVyIj4K
KyAgICA8bGVnZW5kPk5vbi1pbmVydCBhLi4uIGJ1dCBnb3QgRWxlbWVudCBub2RlIDxidXR0b24g
aWQ9ImZvcmVncm91bmQiIGNsYXNzPSJjbGlja2VkIj5mb3JlZ3JvdW5kPC9idXR0b24+CitDT05T
T0xFIE1FU1NBR0U6IEVycm9yOiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCBFbGVtZW50IG5vZGUg
PGZpZWxkc2V0IGlkPSJhbmNlc3RvckNvbnRhaW5lciI+CisgICAgPGxlZ2VuZD5Ob24taW5lcnQg
YS4uLiBidXQgZ290IEVsZW1lbnQgbm9kZSA8YnV0dG9uIGlkPSJmb3JlZ3JvdW5kIiBjbGFzcz0i
Y2xpY2tlZCI+Zm9yZWdyb3VuZDwvYnV0dG9uPgorQ09OU09MRSBNRVNTQUdFOiBFcnJvcjogYXNz
ZXJ0X2VxdWFsczogZXhwZWN0ZWQgRWxlbWVudCBub2RlIDxmaWVsZHNldCBpZD0iYW5jZXN0b3JD
b250YWluZXIiPgorICAgIDxsZWdlbmQ+Tm9uLWluZXJ0IGEuLi4gYnV0IGdvdCBFbGVtZW50IG5v
ZGUgPGJ1dHRvbiBpZD0iZm9yZWdyb3VuZCIgY2xhc3M9ImNsaWNrZWQiPmZvcmVncm91bmQ8L2J1
dHRvbj4KK0NPTlNPTEUgTUVTU0FHRTogRXJyb3I6IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIEVs
ZW1lbnQgbm9kZSA8ZmllbGRzZXQgaWQ9ImFuY2VzdG9yQ29udGFpbmVyIj4KKyAgICA8bGVnZW5k
Pk5vbi1pbmVydCBhLi4uIGJ1dCBnb3QgRWxlbWVudCBub2RlIDxidXR0b24gaWQ9ImZvcmVncm91
bmQiIGNsYXNzPSJjbGlja2VkIj5mb3JlZ3JvdW5kPC9idXR0b24+CitDT05TT0xFIE1FU1NBR0U6
IEVycm9yOiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCBFbGVtZW50IG5vZGUgPGZpZWxkc2V0IGlk
PSJhbmNlc3RvckNvbnRhaW5lciI+CisgICAgPGxlZ2VuZD5Ob24taW5lcnQgYS4uLiBidXQgZ290
IEVsZW1lbnQgbm9kZSA8YnV0dG9uIGlkPSJmb3JlZ3JvdW5kIiBjbGFzcz0iY2xpY2tlZCI+Zm9y
ZWdyb3VuZDwvYnV0dG9uPgorQ09OU09MRSBNRVNTQUdFOiBFcnJvcjogYXNzZXJ0X2VxdWFsczog
ZXhwZWN0ZWQgRWxlbWVudCBub2RlIDxmaWVsZHNldCBpZD0iYW5jZXN0b3JDb250YWluZXIiPgor
ICAgIDxsZWdlbmQ+Tm9uLWluZXJ0IGEuLi4gYnV0IGdvdCBFbGVtZW50IG5vZGUgPGJ1dHRvbiBp
ZD0iZm9yZWdyb3VuZCIgY2xhc3M9ImNsaWNrZWQiPmZvcmVncm91bmQ8L2J1dHRvbj4KK0NPTlNP
TEUgTUVTU0FHRTogRXJyb3I6IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIEVsZW1lbnQgbm9kZSA8
ZmllbGRzZXQgaWQ9ImFuY2VzdG9yQ29udGFpbmVyIj4KKyAgICA8bGVnZW5kPk5vbi1pbmVydCBh
Li4uIGJ1dCBnb3QgRWxlbWVudCBub2RlIDxidXR0b24gaWQ9ImZvcmVncm91bmQiIGNsYXNzPSJj
bGlja2VkIj5mb3JlZ3JvdW5kPC9idXR0b24+CitDbGljayBvbiAiSW5lcnQgYnV0dG9uIi4KKwor
VGhlIGJsdWUgc3F1YXJlICgiTm9uLWluZXJ0IGFuY2VzdG9yIGNvbnRhaW5lciIpIHNob3VsZCB0
dXJuIGdyZWVuLgorVGhlIHllbGxvdywgc2VtaS10cmFuc3BhcmVudCBzcXVhcmUgKCJOb24taW5l
cnQsIGRpc3BsYWNlZCBjb250YWluZXIiKSBzaG91bGQgbm90IHR1cm4gcmVkLgorIk5vbi1pbmVy
dCBidXR0b24iIHNob3VsZCBub3QgdHVybiByZWQuCisoVGhlIGZ1bGwgdGVzdCBzdWl0ZSBjaGVj
a3MgYSByYW5nZSBvZiBldmVudHMuKQorCitOb24taW5lcnQgYW5jZXN0b3IgY29udGFpbmVyCisg
Tm9uLWluZXJ0LCBkaXNwbGFjZWQgYW5jZXN0b3IKK0luZXJ0IGNvbnRhaW5lcgorZm9yZWdyb3Vu
ZAorCitIYXJuZXNzIEVycm9yIChGQUlMKSwgbWVzc2FnZSA9IEVycm9yOiBhc3NlcnRfZXF1YWxz
OiBleHBlY3RlZCBFbGVtZW50IG5vZGUgPGZpZWxkc2V0IGlkPSJhbmNlc3RvckNvbnRhaW5lciI+
CisgICAgPGxlZ2VuZD5Ob24taW5lcnQgYS4uLiBidXQgZ290IEVsZW1lbnQgbm9kZSA8YnV0dG9u
IGlkPSJmb3JlZ3JvdW5kIiBjbGFzcz0iY2xpY2tlZCI+Zm9yZWdyb3VuZDwvYnV0dG9uPgorCitQ
QVNTIGVsZW1lbnRzRnJvbVBvaW50IHJldHVybnMgaW5lcnQgZWxlbWVudAorRkFJTCBUZXN0cyB0
aGF0IGFueSBtb3VzZSBldmVudCBvbiBhIG5vbi1pbmVydCBlbGVtZW50IGlzIGNvcnJlY3RseSB0
YXJnZXRlZCB0byB0aGF0IGVsZW1lbnQgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9u
IHdpdGggdmFsdWU6ICJkaWQgbm90IGdldCBhdXhjbGljayBvbiBmb3JlZ3JvdW5kIgorRkFJTCBU
ZXN0cyB0aGF0IGFueSBtb3VzZSBldmVudCBvbiBhbiBpbmVydCBlbGVtZW50IGlzIHRhcmdldGVk
IHRvIHRoZSBuZWFyZXN0IG5vbi1pbmVydCBhbmNlc3RvciBhdCB0aGUgc2FtZSBjb29yZGluYXRl
cyBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogImRpZCBub3Qg
Z2V0IG1vdXNlb3ZlciBvbiBhbmNlc3RvckNvbnRhaW5lciIKK1BBU1MgVGVzdHMgdGhhdCBhbnkg
cG9pbnRlciBldmVudCBvbiBhIG5vbi1pbmVydCBlbGVtZW50IGlzIGNvcnJlY3RseSB0YXJnZXRl
ZCB0byB0aGF0IGVsZW1lbnQKK0ZBSUwgVGVzdHMgdGhhdCBhbnkgcG9pbnRlciBldmVudCBvbiBh
biBpbmVydCBlbGVtZW50IGlzIHRhcmdldGVkIHRvIHRoZSBuZWFyZXN0IG5vbi1pbmVydCBhbmNl
c3RvciBhdCB0aGUgc2FtZSBjb29yZGluYXRlcyBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWpl
Y3Rpb24gd2l0aCB2YWx1ZTogImRpZCBub3QgZ2V0IHBvaW50ZXJvdmVyIG9uIGFuY2VzdG9yQ29u
dGFpbmVyIgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2luZXJ0L2luZXJ0LXJldGFyZ2V0aW5nLWlmcmFtZS50ZW50YXRpdmUuaHRtbCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQt
cmV0YXJnZXRpbmctaWZyYW1lLnRlbnRhdGl2ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU3OWZjNTdiZTI1
OGE3MDlhOWQyMmNiMjYzYTY0MjJkOWJkYjc5NTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LXJldGFyZ2V0
aW5nLWlmcmFtZS50ZW50YXRpdmUuaHRtbApAQCAtMCwwICsxLDI3OSBAQAorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3Mu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGRyaXZlci5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0ZHJpdmVyLWFjdGlvbnMuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGRyaXZlci12ZW5kb3IuanMiPjwv
c2NyaXB0PgorPHN0eWxlPgorYnV0dG9uI2ZvcmVncm91bmQsCitidXR0b24jYmFja2dyb3VuZCB7
CisgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgdG9wOiA3NXB4OworICBsZWZ0OiA1MHB4OworICB3
aWR0aDogMTAwcHg7CisgIGhlaWdodDogMjBweDsKK30KKworYnV0dG9uI2JhY2tncm91bmQgewor
ICBsZWZ0OiA3NXB4OworICB3aWR0aDogMTUwcHg7CisgIGhlaWdodDogNDBweDsKKyAgdG9wOiAx
MjVweDsKKyAgbGluZS1oZWlnaHQ6IDUzcHg7Cit9CisKKy5jbGlja2VkIHsKKyAgYmFja2dyb3Vu
ZC1jb2xvcjogcmVkOworfQorCisjYW5jZXN0b3JDb250YWluZXIuY2xpY2tlZCB7CisgIGJhY2tn
cm91bmQtY29sb3I6IGdyZWVuOworfQorCisjYW5jZXN0b3JDb250YWluZXIgeworICBwb3NpdGlv
bjogYWJzb2x1dGU7CisgIHRvcDogMjAwcHg7CisgIGxlZnQ6IDEwcHg7CisgIHdpZHRoOiAzMDBw
eDsKKyAgaGVpZ2h0OiAzMDBweDsKKyAgYmFja2dyb3VuZC1jb2xvcjogYmx1ZTsKK30KKworI2Rp
c3BsYWNlZEFuY2VzdG9yIHsKKyAgcG9zaXRpb246IGFic29sdXRlOworICB0b3A6IDEzcHg7Cisg
IGxlZnQ6IDI0MHB4OworICB3aWR0aDogMzAwcHg7CisgIGhlaWdodDogMjUwcHg7CisgIGJhY2tn
cm91bmQtY29sb3I6ICNmZjg5OworfQorCisjZGlzcGxhY2VkQW5jZXN0b3IuY2xpY2tlZCB7Cisg
IGJhY2tncm91bmQtY29sb3I6ICNmMDA5OworfQorCisjaW5lcnRDb250YWluZXIgeworICBiYWNr
Z3JvdW5kLWNvbG9yOiAjZmZmOTsKKyAgcG9zaXRpb246IGFic29sdXRlOworICB0b3A6IDM1cHg7
CisgIGxlZnQ6IC0xOTJweDsKKyAgd2lkdGg6IDIwMHB4OworICBoZWlnaHQ6IDIwMHB4OworfQor
CitmaWVsZHNldCB7CisgIG1hcmdpbjogMDsKKyAgcGFkZGluZzogMDsKKyAgYm9yZGVyOiAxcHgg
c29saWQgYmxhY2s7Cit9CisKK2xlZ2VuZCB7CisgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOwor
ICBib3JkZXI6IDFweCBzb2xpZCBibGFjazsKKyAgbWFyZ2luLWxlZnQ6IDVweDsKK30KKzwvc3R5
bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgPHA+Q2xpY2sgb24gIkluZXJ0IGJ1dHRvbiIuPC9wPgor
ICA8dWw+CisgICAgPGxpPlRoZSBibHVlIHNxdWFyZSAoIk5vbi1pbmVydCBhbmNlc3RvciBjb250
YWluZXIiKSBzaG91bGQgdHVybiBncmVlbi48L2xpPgorICAgIDxsaT5UaGUgeWVsbG93LCBzZW1p
LXRyYW5zcGFyZW50IHNxdWFyZSAoIk5vbi1pbmVydCwgZGlzcGxhY2VkIGNvbnRhaW5lciIpIHNo
b3VsZCBub3QgdHVybiByZWQuPC9saT4KKyAgICA8bGk+Ik5vbi1pbmVydCBidXR0b24iIHNob3Vs
ZCBub3QgdHVybiByZWQuPC9saT4KKyAgPC91bD4KKyAgPHAgc3R5bGU9Im1hcmdpbi1ib3R0b206
MjUwcHgiPihUaGUgZnVsbCB0ZXN0IHN1aXRlIGNoZWNrcyBhIHJhbmdlIG9mIGV2ZW50cy4pPC9w
PgorICA8ZmllbGRzZXQgaWQ9ImFuY2VzdG9yQ29udGFpbmVyIj4KKyAgICA8bGVnZW5kPk5vbi1p
bmVydCBhbmNlc3RvciBjb250YWluZXI8L2xlZ2VuZD4KKyAgICA8aWZyYW1lIGlkPSJiYWNrZ3Jv
dW5kIiBzcmM9ImZyYW1lL2J1dHRvbi5odG1sIj48L2lmcmFtZT4KKyAgICA8ZmllbGRzZXQgaWQ9
ImRpc3BsYWNlZEFuY2VzdG9yIj4KKyAgICAgIDxsZWdlbmQ+Tm9uLWluZXJ0LCBkaXNwbGFjZWQg
YW5jZXN0b3I8L2xlZ2VuZD4KKyAgICAgIDxmaWVsZHNldCBpZD0iaW5lcnRDb250YWluZXIiIGlu
ZXJ0PgorICAgICAgICA8bGVnZW5kPkluZXJ0IGNvbnRhaW5lcjwvbGVnZW5kPgorICAgICAgICA8
YnV0dG9uIGlkPSJmb3JlZ3JvdW5kIj5mb3JlZ3JvdW5kPC9idXR0b24+CisgICAgICA8L2ZpZWxk
c2V0PgorICAgIDwvZmllbGRzZXQ+CisgIDwvZmllbGRzZXQ+CisKKyAgPHNjcmlwdD4KK2RvY3Vt
ZW50LmJvZHkuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoZSkgPT4geworICBlLnRhcmdldC5j
bGFzc0xpc3QuYWRkKCdjbGlja2VkJyk7Cit9KTsKKworZnVuY3Rpb24gY2xpY2tPbihlbGVtZW50
KSB7CisgIHJldHVybiBuZXcgdGVzdF9kcml2ZXIuQWN0aW9ucygpCisgICAgICAucG9pbnRlck1v
dmUoMCwgMCwge29yaWdpbjogZWxlbWVudH0pCisgICAgICAucG9pbnRlckRvd24oe2J1dHRvbjog
dGVzdF9kcml2ZXIuQWN0aW9ucy5wcm90b3R5cGUuQnV0dG9uVHlwZS5MRUZUfSkKKyAgICAgIC5w
b2ludGVyVXAoe2J1dHRvbjogdGVzdF9kcml2ZXIuQWN0aW9ucy5wcm90b3R5cGUuQnV0dG9uVHlw
ZS5MRUZUfSkKKyAgICAgIC5zZW5kKCk7Cit9CisKK2Z1bmN0aW9uIGF1eENsaWNrT24oZWxlbWVu
dCkgeworICByZXR1cm4gbmV3IHRlc3RfZHJpdmVyLkFjdGlvbnMoKQorICAgICAgLnBvaW50ZXJN
b3ZlKDAsIDAsIHtvcmlnaW46IGVsZW1lbnR9KQorICAgICAgLnBvaW50ZXJEb3duKHtidXR0b246
IHRlc3RfZHJpdmVyLkFjdGlvbnMucHJvdG90eXBlLkJ1dHRvblR5cGUuUklHSFR9KQorICAgICAg
LnBvaW50ZXJVcCh7YnV0dG9uOiB0ZXN0X2RyaXZlci5BY3Rpb25zLnByb3RvdHlwZS5CdXR0b25U
eXBlLlJJR0hUfSkKKyAgICAgIC5zZW5kKCk7Cit9CisKK2Z1bmN0aW9uIGRibENsaWNrT24oZWxl
bWVudCkgeworICByZXR1cm4gbmV3IHRlc3RfZHJpdmVyLkFjdGlvbnMoKQorICAgICAgLnBvaW50
ZXJNb3ZlKDAsIDAsIHtvcmlnaW46IGVsZW1lbnR9KQorICAgICAgLnBvaW50ZXJEb3duKHtidXR0
b246IHRlc3RfZHJpdmVyLkFjdGlvbnMucHJvdG90eXBlLkJ1dHRvblR5cGUuTEVGVH0pCisgICAg
ICAucG9pbnRlclVwKHtidXR0b246IHRlc3RfZHJpdmVyLkFjdGlvbnMucHJvdG90eXBlLkJ1dHRv
blR5cGUuTEVGVH0pCisgICAgICAucG9pbnRlckRvd24oe2J1dHRvbjogdGVzdF9kcml2ZXIuQWN0
aW9ucy5wcm90b3R5cGUuQnV0dG9uVHlwZS5MRUZUfSkKKyAgICAgIC5wb2ludGVyVXAoe2J1dHRv
bjogdGVzdF9kcml2ZXIuQWN0aW9ucy5wcm90b3R5cGUuQnV0dG9uVHlwZS5MRUZUfSkKKyAgICAg
IC5zZW5kKCk7Cit9CisKK2Z1bmN0aW9uIG1vdmVQb2ludGVyT3ZlcihlbGVtZW50KSB7CisgIGxl
dCByZWN0ID0gZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgcmV0dXJuIG5ldyB0
ZXN0X2RyaXZlci5BY3Rpb25zKCkKKyAgICAgIC5wb2ludGVyTW92ZSgwLCAwLCB7IG9yaWdpbjog
ZWxlbWVudCB9KQorICAgICAgLnNlbmQoKTsKK30KKworZnVuY3Rpb24gbW92ZVBvaW50ZXJUbyh4
LCB5KSB7CisgIHJldHVybiBuZXcgdGVzdF9kcml2ZXIuQWN0aW9ucygpCisgICAgICAucG9pbnRl
ck1vdmUoTWF0aC5jZWlsKHgpLCBNYXRoLmNlaWwoeSksIHsgb3JpZ2luOiAidmlld3BvcnQiIH0p
CisgICAgICAuc2VuZCgpOworfQorCitmdW5jdGlvbiBleHBlY3RFdmVudHNPbihldmVudHMsIGVs
ZW1lbnQpIHsKKyAgbGV0IHByb21pc2VzID0gW107CisgIGZvciAoZXZlbnQgb2YgZXZlbnRzKSB7
CisgICAgKChldmVudCwgZWxlbWVudCkgPT4geworICAgICAgdmFyIHByb21pc2UgPSBuZXcgUHJv
bWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7CisgICAgICAgIGxldCBmID0gKGUpID0+IHsKKyAg
ICAgICAgICBhc3NlcnRfZXF1YWxzKGUudHlwZSwgZXZlbnQpOworICAgICAgICAgIGFzc2VydF9l
cXVhbHMoZS50YXJnZXQsIGVsZW1lbnQpOworICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgICAg
fQorICAgICAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoZXZlbnQsIGYsIHsgY2FwdHVyZTog
dHJ1ZSwgb25jZTogdHJ1ZSB9KTsKKworICAgICAgICBzdGVwX3RpbWVvdXQoKCkgPT4geworICAg
ICAgICAgIGVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihldmVudCwgZiwgeyBjYXB0dXJlOiB0
cnVlIH0pOworICAgICAgICAgIHJlamVjdCgiZGlkIG5vdCBnZXQgIiArIGV2ZW50ICsgIiBvbiAi
ICsgZWxlbWVudC5pZCk7CisgICAgICAgIH0sIDUwMDApOworICAgICAgfSk7CisgICAgICBwcm9t
aXNlcy5wdXNoKHByb21pc2UpOworICAgIH0pKGV2ZW50LCBlbGVtZW50KTsKKyAgfQorICByZXR1
cm4gcHJvbWlzZXM7Cit9CisKK2Z1bmN0aW9uIHVuZXhwZWN0RXZlbnRzT24oZXZlbnRzLCBlbGVt
ZW50KSB7CisgIGxldCBwcm9taXNlcyA9IFtdOworICBmb3IgKGV2ZW50IG9mIGV2ZW50cykgewor
ICAgICgoZXZlbnQsIGVsZW1lbnQpID0+IHsKKyAgICAgIHZhciBwcm9taXNlID0gbmV3IFByb21p
c2UoKHJlc29sdmUsIHJlamVjdCkgPT4geworICAgICAgICBsZXQgZiA9IChlKSA9PiB7CisgICAg
ICAgICAgYXNzZXJ0X2VxdWFscyhlLnR5cGUsIGV2ZW50KTsKKyAgICAgICAgICBhc3NlcnRfZXF1
YWxzKGUudGFyZ2V0LCBlbGVtZW50KTsKKyAgICAgICAgICByZWplY3QoImdvdCAiICsgZS50eXBl
ICsgIiBvbiAiICsgZS50YXJnZXQuaWQpOworICAgICAgICB9CisgICAgICAgIGVsZW1lbnQuYWRk
RXZlbnRMaXN0ZW5lcihldmVudCwgZiwgeyBjYXB0dXJlOiB0cnVlLCBvbmNlOiB0cnVlIH0pOwor
CisgICAgICAgIHN0ZXBfdGltZW91dCgoKSA9PiB7CisgICAgICAgICAgZWxlbWVudC5yZW1vdmVF
dmVudExpc3RlbmVyKGV2ZW50LCBmLCB7IGNhcHR1cmU6IHRydWUgfSk7CisgICAgICAgICAgcmVz
b2x2ZSgpOworICAgICAgICB9LCAxMDAwKTsKKyAgICAgIH0pOworICAgICAgcHJvbWlzZXMucHVz
aChwcm9taXNlKTsKKyAgICB9KShldmVudCwgZWxlbWVudCk7CisgIH0KKyAgcmV0dXJuIHByb21p
c2VzOworfQorCit0ZXN0KCgpID0+IHsKKyAgbGV0IHJlY3QgPSBmb3JlZ3JvdW5kLmdldEJvdW5k
aW5nQ2xpZW50UmVjdCgpOworICBsZXQgY2VudGVyX3ggPSByZWN0LmxlZnQgKyAocmVjdC53aWR0
aCAvIDIpOworICBsZXQgY2VudGVyX3kgPSByZWN0LnRvcCArIChyZWN0LmhlaWdodCAvIDIpOwor
ICBhc3NlcnRfZXF1YWxzKGRvY3VtZW50LmVsZW1lbnRzRnJvbVBvaW50KGNlbnRlcl94LCBjZW50
ZXJfeSlbMF0sIGZvcmVncm91bmQpOworfSwgImVsZW1lbnRzRnJvbVBvaW50IHJldHVybnMgaW5l
cnQgZWxlbWVudCIpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgKCkgPT4geworICAvLyBUZXN0IG1v
dXNlIGV2ZW50cyBvbiBub24taW5lcnQgZWxlbWVudCAtIGV2ZW50cyBzaG91bGQgZ28gdG8gImZv
cmVncm91bmQiCisgIGluZXJ0Q29udGFpbmVyLmluZXJ0ID0gZmFsc2U7CisgIGF3YWl0IG1vdmVQ
b2ludGVyVG8oMCwgMCk7CisgIGxldCBwcm9taXNlcyA9IGV4cGVjdEV2ZW50c09uKFsibW91c2Vv
dmVyIiwgIm1vdXNlZW50ZXIiLCAibW91c2Vtb3ZlIiwgIm1vdXNlZG93biIsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAibW91c2V1cCIsICJjbGljayIsICJhdXhjbGljayIsICJt
b3VzZW91dCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibW91c2VsZWF2ZSJd
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JlZ3JvdW5kKTsKKyAgYXdhaXQg
Y2xpY2tPbihmb3JlZ3JvdW5kKTsKKyAgYXdhaXQgYXV4Q2xpY2tPbihmb3JlZ3JvdW5kKTsKKyAg
YXdhaXQgZGJsQ2xpY2tPbihmb3JlZ3JvdW5kKTsKKyAgbGV0IGFuY2VzdG9yQm94ID0gYW5jZXN0
b3JDb250YWluZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CisgIGxldCBpbmVydEJveCA9IGlu
ZXJ0Q29udGFpbmVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworICBsZXQgeCA9IGFuY2VzdG9y
Qm94LmxlZnQgKyAoYW5jZXN0b3JCb3gud2lkdGggLyAyKTsKKyAgbGV0IHkgPSBpbmVydEJveC5i
b3R0b20gKyAoKGFuY2VzdG9yQm94LmJvdHRvbSAtIGluZXJ0Qm94LmJvdHRvbSkgLyAyKTsKKyAg
YXdhaXQgbW92ZVBvaW50ZXJUbyh4LCB5KTsKKyAgYXdhaXQgUHJvbWlzZS5hbGwocHJvbWlzZXMp
OworfSwgIlRlc3RzIHRoYXQgYW55IG1vdXNlIGV2ZW50IG9uIGEgbm9uLWluZXJ0IGVsZW1lbnQg
aXMgY29ycmVjdGx5IHRhcmdldGVkIHRvIHRoYXQgZWxlbWVudCIpOworCitwcm9taXNlX3Rlc3Qo
YXN5bmMgKCkgPT4geworICAvLyBNYWtlIHRoZSBjb250YWluaW5nIGVsZW1lbnQgaW5lcnQgLSBu
b3cgZXZlbnRzIHNob3VsZCBnbyB0byAiY29udGFpbmVyIgorICAvLyB3aGljaCBpcyB0aGUgbm9u
LWluZXJ0IGFuY2VzdG9yIGF0IHRoZSBzYW1lIHBvc2l0aW9uCisgIGluZXJ0Q29udGFpbmVyLmlu
ZXJ0ID0gdHJ1ZTsKKyAgYXdhaXQgbW92ZVBvaW50ZXJUbygwLCAwKTsKKworICBsZXQgcHJvbWlz
ZXMgPSBleHBlY3RFdmVudHNPbihbIm1vdXNlb3ZlciIsICJtb3VzZWVudGVyIiwgIm1vdXNlbW92
ZSIsICJtb3VzZWRvd24iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm1vdXNl
dXAiLCAiY2xpY2siLCAiYXV4Y2xpY2siXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgYW5jZXN0b3JDb250YWluZXIpOworCisgIHByb21pc2VzID0gcHJvbWlzZXMuY29uY2F0KHVu
ZXhwZWN0RXZlbnRzT24oWyJtb3VzZW91dCIsICJtb3VzZWxlYXZlIl0sCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5jZXN0b3JDb250YWluZXIpKTsKKwor
ICBhd2FpdCBjbGlja09uKGZvcmVncm91bmQpOworICBhd2FpdCBhdXhDbGlja09uKGZvcmVncm91
bmQpOworICBhd2FpdCBkYmxDbGlja09uKGZvcmVncm91bmQpOworICBsZXQgYW5jZXN0b3JCb3gg
PSBhbmNlc3RvckNvbnRhaW5lci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgbGV0IGluZXJ0
Qm94ID0gaW5lcnRDb250YWluZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CisgIGxldCB4ID0g
YW5jZXN0b3JCb3gubGVmdCArIChhbmNlc3RvckJveC53aWR0aCAvIDIpOworICBsZXQgeSA9IGlu
ZXJ0Qm94LmJvdHRvbSArICgoYW5jZXN0b3JCb3guYm90dG9tIC0gaW5lcnRCb3guYm90dG9tKSAv
IDIpOworICBhd2FpdCBtb3ZlUG9pbnRlclRvKHgsIHkpOworICBhd2FpdCBQcm9taXNlLmFsbChw
cm9taXNlcyk7Cit9LCAnVGVzdHMgdGhhdCBhbnkgbW91c2UgZXZlbnQgb24gYW4gaW5lcnQgZWxl
bWVudCBpcyB0YXJnZXRlZCB0byB0aGUgbmVhcmVzdCBub24taW5lcnQgYW5jZXN0b3IgYXQgdGhl
IHNhbWUgY29vcmRpbmF0ZXMnKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jICgpID0+IHsKKyAgLy8g
VGVzdCBwb2ludGVyIGV2ZW50cyBvbiBub24taW5lcnQgZWxlbWVudCAtIGV2ZW50cyBzaG91bGQg
Z28gdG8gImZvcmVncm91bmQiCisgIGluZXJ0Q29udGFpbmVyLmluZXJ0ID0gZmFsc2U7CisgIGF3
YWl0IG1vdmVQb2ludGVyVG8oMCwgMCk7CisKKyAgbGV0IHByb21pc2VzID0gZXhwZWN0RXZlbnRz
T24oWyJwb2ludGVyb3ZlciIsICJwb2ludGVyZW50ZXIiLCAicG9pbnRlcm1vdmUiLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgInBvaW50ZXJkb3duIiwgInBvaW50ZXJ1cCIsICJw
b2ludGVyb3V0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwb2ludGVybGVh
dmUiXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yZWdyb3VuZCk7CisgIGF3
YWl0IGNsaWNrT24oZm9yZWdyb3VuZCk7CisgIGxldCBhbmNlc3RvckJveCA9IGFuY2VzdG9yQ29u
dGFpbmVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworICBsZXQgaW5lcnRCb3ggPSBpbmVydENv
bnRhaW5lci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgbGV0IHggPSBhbmNlc3RvckJveC5s
ZWZ0ICsgKGFuY2VzdG9yQm94LndpZHRoIC8gMik7CisgIGxldCB5ID0gaW5lcnRCb3guYm90dG9t
ICsgKChhbmNlc3RvckJveC5ib3R0b20gLSBpbmVydEJveC5ib3R0b20pIC8gMik7CisgIGF3YWl0
IG1vdmVQb2ludGVyVG8oeCwgeSk7CisgIGF3YWl0IFByb21pc2UuYWxsKHByb21pc2VzKTsKK30s
ICJUZXN0cyB0aGF0IGFueSBwb2ludGVyIGV2ZW50IG9uIGEgbm9uLWluZXJ0IGVsZW1lbnQgaXMg
Y29ycmVjdGx5IHRhcmdldGVkIHRvIHRoYXQgZWxlbWVudCIpOworCitwcm9taXNlX3Rlc3QoYXN5
bmMgKCkgPT4geworICAvLyBNYWtlIHRoZSBjb250YWluaW5nIGVsZW1lbnQgaW5lcnQgLSBub3cg
ZXZlbnRzIHNob3VsZCBnbyB0byAiY29udGFpbmVyIgorICAvLyB3aGljaCBpcyB0aGUgbm9uLWlu
ZXJ0IGFuY2VzdG9yIGF0IHRoZSBzYW1lIHBvc2l0aW9uCisgIGluZXJ0Q29udGFpbmVyLmluZXJ0
ID0gdHJ1ZTsKKyAgYXdhaXQgbW92ZVBvaW50ZXJUbygwLCAwKTsKKworICBsZXQgcHJvbWlzZXMg
PSBleHBlY3RFdmVudHNPbihbInBvaW50ZXJvdmVyIiwgInBvaW50ZXJlbnRlciIsICJwb2ludGVy
bW92ZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicG9pbnRlcmRvd24iLCAi
cG9pbnRlcnVwIiBdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmNlc3RvckNv
bnRhaW5lcik7CisKKyAgcHJvbWlzZXMgPSBwcm9taXNlcy5jb25jYXQodW5leHBlY3RFdmVudHNP
bihbInBvaW50ZXJvdXQiLCAicG9pbnRlcmxlYXZlIl0sCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgYW5jZXN0b3JDb250YWluZXIpKTsKKyAgYXdhaXQgY2xp
Y2tPbihmb3JlZ3JvdW5kKTsKKyAgbGV0IGFuY2VzdG9yQm94ID0gYW5jZXN0b3JDb250YWluZXIu
Z2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CisgIGxldCBpbmVydEJveCA9IGluZXJ0Q29udGFpbmVy
LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworICBsZXQgeCA9IGFuY2VzdG9yQm94LmxlZnQgKyAo
YW5jZXN0b3JCb3gud2lkdGggLyAyKTsKKyAgbGV0IHkgPSBpbmVydEJveC5ib3R0b20gKyAoKGFu
Y2VzdG9yQm94LmJvdHRvbSAtIGluZXJ0Qm94LmJvdHRvbSkgLyAyKTsKKyAgYXdhaXQgbW92ZVBv
aW50ZXJUbyh4LCB5KTsKKyAgYXdhaXQgUHJvbWlzZS5hbGwocHJvbWlzZXMpOworfSwgJ1Rlc3Rz
IHRoYXQgYW55IHBvaW50ZXIgZXZlbnQgb24gYW4gaW5lcnQgZWxlbWVudCBpcyB0YXJnZXRlZCB0
byB0aGUgbmVhcmVzdCBub24taW5lcnQgYW5jZXN0b3IgYXQgdGhlIHNhbWUgY29vcmRpbmF0ZXMn
KTsKKyAgPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LXJldGFyZ2V0aW5n
LnRlbnRhdGl2ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LXJldGFyZ2V0aW5nLnRlbnRhdGl2ZS1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYmI3NDVmYTIxOGRiY2I1YTRlYzZlNmZiYjZhZDJiNWI0ZGE5ZWExNQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaW5lcnQvaW5lcnQtcmV0YXJnZXRpbmcudGVudGF0aXZlLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDQ3IEBACitDT05TT0xFIE1FU1NBR0U6IEVycm9yOiBhc3NlcnRfZXF1YWxzOiBleHBl
Y3RlZCBFbGVtZW50IG5vZGUgPGZpZWxkc2V0IGlkPSJhbmNlc3RvckNvbnRhaW5lciI+CisgICAg
PGxlZ2VuZD5Ob24taW5lcnQgYS4uLiBidXQgZ290IEVsZW1lbnQgbm9kZSA8YnV0dG9uIGlkPSJm
b3JlZ3JvdW5kIiBjbGFzcz0iY2xpY2tlZCI+Zm9yZWdyb3VuZDwvYnV0dG9uPgorQ09OU09MRSBN
RVNTQUdFOiBFcnJvcjogYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgRWxlbWVudCBub2RlIDxmaWVs
ZHNldCBpZD0iYW5jZXN0b3JDb250YWluZXIiPgorICAgIDxsZWdlbmQ+Tm9uLWluZXJ0IGEuLi4g
YnV0IGdvdCBFbGVtZW50IG5vZGUgPGJ1dHRvbiBpZD0iZm9yZWdyb3VuZCIgY2xhc3M9ImNsaWNr
ZWQiPmZvcmVncm91bmQ8L2J1dHRvbj4KK0NPTlNPTEUgTUVTU0FHRTogRXJyb3I6IGFzc2VydF9l
cXVhbHM6IGV4cGVjdGVkIEVsZW1lbnQgbm9kZSA8ZmllbGRzZXQgaWQ9ImFuY2VzdG9yQ29udGFp
bmVyIj4KKyAgICA8bGVnZW5kPk5vbi1pbmVydCBhLi4uIGJ1dCBnb3QgRWxlbWVudCBub2RlIDxi
dXR0b24gaWQ9ImZvcmVncm91bmQiIGNsYXNzPSJjbGlja2VkIj5mb3JlZ3JvdW5kPC9idXR0b24+
CitDT05TT0xFIE1FU1NBR0U6IEVycm9yOiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCBFbGVtZW50
IG5vZGUgPGZpZWxkc2V0IGlkPSJhbmNlc3RvckNvbnRhaW5lciI+CisgICAgPGxlZ2VuZD5Ob24t
aW5lcnQgYS4uLiBidXQgZ290IEVsZW1lbnQgbm9kZSA8YnV0dG9uIGlkPSJmb3JlZ3JvdW5kIiBj
bGFzcz0iY2xpY2tlZCI+Zm9yZWdyb3VuZDwvYnV0dG9uPgorQ09OU09MRSBNRVNTQUdFOiBFcnJv
cjogYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgRWxlbWVudCBub2RlIDxmaWVsZHNldCBpZD0iYW5j
ZXN0b3JDb250YWluZXIiPgorICAgIDxsZWdlbmQ+Tm9uLWluZXJ0IGEuLi4gYnV0IGdvdCBFbGVt
ZW50IG5vZGUgPGJ1dHRvbiBpZD0iZm9yZWdyb3VuZCIgY2xhc3M9ImNsaWNrZWQiPmZvcmVncm91
bmQ8L2J1dHRvbj4KK0NPTlNPTEUgTUVTU0FHRTogRXJyb3I6IGFzc2VydF9lcXVhbHM6IGV4cGVj
dGVkIEVsZW1lbnQgbm9kZSA8ZmllbGRzZXQgaWQ9ImFuY2VzdG9yQ29udGFpbmVyIj4KKyAgICA8
bGVnZW5kPk5vbi1pbmVydCBhLi4uIGJ1dCBnb3QgRWxlbWVudCBub2RlIDxidXR0b24gaWQ9ImZv
cmVncm91bmQiIGNsYXNzPSJjbGlja2VkIj5mb3JlZ3JvdW5kPC9idXR0b24+CitDT05TT0xFIE1F
U1NBR0U6IEVycm9yOiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCBFbGVtZW50IG5vZGUgPGZpZWxk
c2V0IGlkPSJhbmNlc3RvckNvbnRhaW5lciI+CisgICAgPGxlZ2VuZD5Ob24taW5lcnQgYS4uLiBi
dXQgZ290IEVsZW1lbnQgbm9kZSA8YnV0dG9uIGlkPSJmb3JlZ3JvdW5kIiBjbGFzcz0iY2xpY2tl
ZCI+Zm9yZWdyb3VuZDwvYnV0dG9uPgorQ09OU09MRSBNRVNTQUdFOiBFcnJvcjogYXNzZXJ0X2Vx
dWFsczogZXhwZWN0ZWQgRWxlbWVudCBub2RlIDxmaWVsZHNldCBpZD0iYW5jZXN0b3JDb250YWlu
ZXIiPgorICAgIDxsZWdlbmQ+Tm9uLWluZXJ0IGEuLi4gYnV0IGdvdCBFbGVtZW50IG5vZGUgPGJ1
dHRvbiBpZD0iZm9yZWdyb3VuZCIgY2xhc3M9ImNsaWNrZWQiPmZvcmVncm91bmQ8L2J1dHRvbj4K
K0NPTlNPTEUgTUVTU0FHRTogRXJyb3I6IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIEVsZW1lbnQg
bm9kZSA8ZmllbGRzZXQgaWQ9ImFuY2VzdG9yQ29udGFpbmVyIj4KKyAgICA8bGVnZW5kPk5vbi1p
bmVydCBhLi4uIGJ1dCBnb3QgRWxlbWVudCBub2RlIDxidXR0b24gaWQ9ImZvcmVncm91bmQiIGNs
YXNzPSJjbGlja2VkIj5mb3JlZ3JvdW5kPC9idXR0b24+CitDT05TT0xFIE1FU1NBR0U6IEVycm9y
OiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCBFbGVtZW50IG5vZGUgPGZpZWxkc2V0IGlkPSJhbmNl
c3RvckNvbnRhaW5lciI+CisgICAgPGxlZ2VuZD5Ob24taW5lcnQgYS4uLiBidXQgZ290IEVsZW1l
bnQgbm9kZSA8YnV0dG9uIGlkPSJmb3JlZ3JvdW5kIiBjbGFzcz0iY2xpY2tlZCI+Zm9yZWdyb3Vu
ZDwvYnV0dG9uPgorQ09OU09MRSBNRVNTQUdFOiBFcnJvcjogYXNzZXJ0X2VxdWFsczogZXhwZWN0
ZWQgRWxlbWVudCBub2RlIDxmaWVsZHNldCBpZD0iYW5jZXN0b3JDb250YWluZXIiPgorICAgIDxs
ZWdlbmQ+Tm9uLWluZXJ0IGEuLi4gYnV0IGdvdCBFbGVtZW50IG5vZGUgPGJ1dHRvbiBpZD0iZm9y
ZWdyb3VuZCIgY2xhc3M9ImNsaWNrZWQiPmZvcmVncm91bmQ8L2J1dHRvbj4KK0NPTlNPTEUgTUVT
U0FHRTogRXJyb3I6IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIEVsZW1lbnQgbm9kZSA8ZmllbGRz
ZXQgaWQ9ImFuY2VzdG9yQ29udGFpbmVyIj4KKyAgICA8bGVnZW5kPk5vbi1pbmVydCBhLi4uIGJ1
dCBnb3QgRWxlbWVudCBub2RlIDxidXR0b24gaWQ9ImZvcmVncm91bmQiIGNsYXNzPSJjbGlja2Vk
Ij5mb3JlZ3JvdW5kPC9idXR0b24+CitDT05TT0xFIE1FU1NBR0U6IEVycm9yOiBhc3NlcnRfZXF1
YWxzOiBleHBlY3RlZCBFbGVtZW50IG5vZGUgPGZpZWxkc2V0IGlkPSJhbmNlc3RvckNvbnRhaW5l
ciI+CisgICAgPGxlZ2VuZD5Ob24taW5lcnQgYS4uLiBidXQgZ290IEVsZW1lbnQgbm9kZSA8YnV0
dG9uIGlkPSJmb3JlZ3JvdW5kIiBjbGFzcz0iY2xpY2tlZCI+Zm9yZWdyb3VuZDwvYnV0dG9uPgor
Q2xpY2sgb24gImZvcmVncm91bmQiLgorCitUaGUgYmx1ZSBzcXVhcmUgKCJOb24taW5lcnQgYW5j
ZXN0b3IgY29udGFpbmVyIikgc2hvdWxkIHR1cm4gZ3JlZW4uCitUaGUgeWVsbG93LCBzZW1pLXRy
YW5zcGFyZW50IHNxdWFyZSAoIk5vbi1pbmVydCwgZGlzcGxhY2VkIGNvbnRhaW5lciIpIHNob3Vs
ZCBub3QgdHVybiByZWQuCisiTm9uLWluZXJ0IGJ1dHRvbiIgc2hvdWxkIG5vdCB0dXJuIHJlZC4K
KyhUaGUgZnVsbCB0ZXN0IHN1aXRlIGNoZWNrcyBhIHJhbmdlIG9mIGV2ZW50cy4pCisKK05vbi1p
bmVydCBhbmNlc3RvciBjb250YWluZXIKK2JhY2tncm91bmROb24taW5lcnQsIGRpc3BsYWNlZCBh
bmNlc3RvcgorSW5lcnQgY29udGFpbmVyCitmb3JlZ3JvdW5kCisKK0hhcm5lc3MgRXJyb3IgKEZB
SUwpLCBtZXNzYWdlID0gRXJyb3I6IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIEVsZW1lbnQgbm9k
ZSA8ZmllbGRzZXQgaWQ9ImFuY2VzdG9yQ29udGFpbmVyIj4KKyAgICA8bGVnZW5kPk5vbi1pbmVy
dCBhLi4uIGJ1dCBnb3QgRWxlbWVudCBub2RlIDxidXR0b24gaWQ9ImZvcmVncm91bmQiIGNsYXNz
PSJjbGlja2VkIj5mb3JlZ3JvdW5kPC9idXR0b24+CisKK1BBU1MgZWxlbWVudHNGcm9tUG9pbnQg
cmV0dXJucyBpbmVydCBlbGVtZW50CitGQUlMIFRlc3RzIHRoYXQgYW55IG1vdXNlIGV2ZW50IG9u
IGEgbm9uLWluZXJ0IGVsZW1lbnQgaXMgY29ycmVjdGx5IHRhcmdldGVkIHRvIHRoYXQgZWxlbWVu
dCBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogImRpZCBub3Qg
Z2V0IGF1eGNsaWNrIG9uIGZvcmVncm91bmQiCitGQUlMIFRlc3RzIHRoYXQgYW55IG1vdXNlIGV2
ZW50IG9uIGFuIGluZXJ0IGVsZW1lbnQgaXMgdGFyZ2V0ZWQgdG8gdGhlIG5lYXJlc3Qgbm9uLWlu
ZXJ0IGFuY2VzdG9yIGF0IHRoZSBzYW1lIGNvb3JkaW5hdGVzIHByb21pc2VfdGVzdDogVW5oYW5k
bGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiAiZGlkIG5vdCBnZXQgbW91c2VvdmVyIG9uIGFuY2Vz
dG9yQ29udGFpbmVyIgorUEFTUyBUZXN0cyB0aGF0IGFueSBwb2ludGVyIGV2ZW50IG9uIGEgbm9u
LWluZXJ0IGVsZW1lbnQgaXMgY29ycmVjdGx5IHRhcmdldGVkIHRvIHRoYXQgZWxlbWVudAorRkFJ
TCBUZXN0cyB0aGF0IGFueSBwb2ludGVyIGV2ZW50IG9uIGFuIGluZXJ0IGVsZW1lbnQgaXMgdGFy
Z2V0ZWQgdG8gdGhlIG5lYXJlc3Qgbm9uLWluZXJ0IGFuY2VzdG9yIGF0IHRoZSBzYW1lIGNvb3Jk
aW5hdGVzIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiAiZGlk
IG5vdCBnZXQgcG9pbnRlcm92ZXIgb24gYW5jZXN0b3JDb250YWluZXIiCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQt
cmV0YXJnZXRpbmcudGVudGF0aXZlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LXJldGFyZ2V0aW5nLnRlbnRhdGl2ZS5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjIyODBjZjVhNWQxZmIxNmVmMTkyMzEwZTRmYjRmN2QyMmIzNzAyYjMKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2luZXJ0L2luZXJ0LXJldGFyZ2V0aW5nLnRlbnRhdGl2ZS5odG1sCkBAIC0wLDAgKzEsMjkwIEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNl
cy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0
aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0
ZHJpdmVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Rkcml2ZXIt
YWN0aW9ucy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0ZHJpdmVy
LXZlbmRvci5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+CitidXR0b24jZm9yZWdyb3VuZCwKK2J1dHRv
biNiYWNrZ3JvdW5kIHsKKyAgcG9zaXRpb246IGFic29sdXRlOworICB0b3A6IDc1cHg7CisgIGxl
ZnQ6IDUwcHg7CisgIHdpZHRoOiAxMDBweDsKKyAgaGVpZ2h0OiAyMHB4OworfQorCitidXR0b24j
YmFja2dyb3VuZCB7CisgIGxlZnQ6IDc1cHg7CisgIHdpZHRoOiAxNTBweDsKKyAgaGVpZ2h0OiA0
MHB4OworICB0b3A6IDEyNXB4OworICBsaW5lLWhlaWdodDogNTNweDsKK30KKworLmNsaWNrZWQg
eworICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7Cit9CisKKyNhbmNlc3RvckNvbnRhaW5lci5jbGlj
a2VkIHsKKyAgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47Cit9CisKKyNhbmNlc3RvckNvbnRhaW5l
ciB7CisgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgd2lkdGg6IDMwMHB4OworICBoZWlnaHQ6IDMw
MHB4OworICBiYWNrZ3JvdW5kLWNvbG9yOiBibHVlOworfQorCisjZGlzcGxhY2VkQW5jZXN0b3Ig
eworICBwb3NpdGlvbjogYWJzb2x1dGU7CisgIHRvcDogMTNweDsKKyAgbGVmdDogMjQwcHg7Cisg
IHdpZHRoOiAzMDBweDsKKyAgaGVpZ2h0OiAyNTBweDsKKyAgYmFja2dyb3VuZC1jb2xvcjogI2Zm
ODk7Cit9CisKKyNkaXNwbGFjZWRBbmNlc3Rvci5jbGlja2VkIHsKKyAgYmFja2dyb3VuZC1jb2xv
cjogI2YwMDk7Cit9CisKKyNpbmVydENvbnRhaW5lciB7CisgIGJhY2tncm91bmQtY29sb3I6ICNm
ZmY5OworICBwb3NpdGlvbjogYWJzb2x1dGU7CisgIHRvcDogMzVweDsKKyAgbGVmdDogLTE5MnB4
OworICB3aWR0aDogMjAwcHg7CisgIGhlaWdodDogMjAwcHg7Cit9CisKK2ZpZWxkc2V0IHsKKyAg
bWFyZ2luOiAwOworICBwYWRkaW5nOiAwOworICBib3JkZXI6IDFweCBzb2xpZCBibGFjazsKK30K
KworbGVnZW5kIHsKKyAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7CisgIGJvcmRlcjogMXB4IHNv
bGlkIGJsYWNrOworICBtYXJnaW4tbGVmdDogNXB4OworfQorCitidXR0b24uY2xpY2tlZDo6YWZ0
ZXIgeworICBjb250ZW50OiAiIChjbGlja2VkKSI7Cit9CisKKy5jbGlja2VkID4gbGVnZW5kOjph
ZnRlciB7CisgIGNvbnRlbnQ6ICIgKGNsaWNrZWQpIjsKK30KKworPC9zdHlsZT4KKzwvaGVhZD4K
Kzxib2R5PgorICA8cD5DbGljayBvbiAiZm9yZWdyb3VuZCIuPC9wPgorICA8dWw+CisgICAgPGxp
PlRoZSBibHVlIHNxdWFyZSAoIk5vbi1pbmVydCBhbmNlc3RvciBjb250YWluZXIiKSBzaG91bGQg
dHVybiBncmVlbi48L2xpPgorICAgIDxsaT5UaGUgeWVsbG93LCBzZW1pLXRyYW5zcGFyZW50IHNx
dWFyZSAoIk5vbi1pbmVydCwgZGlzcGxhY2VkIGNvbnRhaW5lciIpIHNob3VsZCBub3QgdHVybiBy
ZWQuPC9saT4KKyAgICA8bGk+Ik5vbi1pbmVydCBidXR0b24iIHNob3VsZCBub3QgdHVybiByZWQu
PC9saT4KKyAgPC91bD4KKyAgPHA+KFRoZSBmdWxsIHRlc3Qgc3VpdGUgY2hlY2tzIGEgcmFuZ2Ug
b2YgZXZlbnRzLik8L3A+CisgIDxmaWVsZHNldCBpZD0iYW5jZXN0b3JDb250YWluZXIiPgorICAg
IDxsZWdlbmQ+Tm9uLWluZXJ0IGFuY2VzdG9yIGNvbnRhaW5lcjwvbGVnZW5kPgorICAgIDxidXR0
b24gaWQ9ImJhY2tncm91bmQiPmJhY2tncm91bmQ8L2J1dHRvbj4KKyAgICA8ZmllbGRzZXQgaWQ9
ImRpc3BsYWNlZEFuY2VzdG9yIj4KKyAgICAgIDxsZWdlbmQ+Tm9uLWluZXJ0LCBkaXNwbGFjZWQg
YW5jZXN0b3I8L2xlZ2VuZD4KKyAgICAgIDxmaWVsZHNldCBpZD0iaW5lcnRDb250YWluZXIiIGlu
ZXJ0PgorICAgICAgICA8bGVnZW5kPkluZXJ0IGNvbnRhaW5lcjwvbGVnZW5kPgorICAgICAgICA8
YnV0dG9uIGlkPSJmb3JlZ3JvdW5kIj5mb3JlZ3JvdW5kPC9idXR0b24+CisgICAgICA8L2ZpZWxk
c2V0PgorICAgIDwvZmllbGRzZXQ+CisgIDwvZmllbGRzZXQ+CisKKyAgPHNjcmlwdD4KK2RvY3Vt
ZW50LmJvZHkuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoZSkgPT4geworICBlLnRhcmdldC5j
bGFzc0xpc3QuYWRkKCdjbGlja2VkJyk7Cit9KTsKKworZnVuY3Rpb24gY2xpY2tPbihlbGVtZW50
KSB7CisgIHJldHVybiBuZXcgdGVzdF9kcml2ZXIuQWN0aW9ucygpCisgICAgICAucG9pbnRlck1v
dmUoMCwgMCwge29yaWdpbjogZWxlbWVudH0pCisgICAgICAucG9pbnRlckRvd24oe2J1dHRvbjog
dGVzdF9kcml2ZXIuQWN0aW9ucy5wcm90b3R5cGUuQnV0dG9uVHlwZS5MRUZUfSkKKyAgICAgIC5w
b2ludGVyVXAoe2J1dHRvbjogdGVzdF9kcml2ZXIuQWN0aW9ucy5wcm90b3R5cGUuQnV0dG9uVHlw
ZS5MRUZUfSkKKyAgICAgIC5zZW5kKCk7Cit9CisKK2Z1bmN0aW9uIGF1eENsaWNrT24oZWxlbWVu
dCkgeworICByZXR1cm4gbmV3IHRlc3RfZHJpdmVyLkFjdGlvbnMoKQorICAgICAgLnBvaW50ZXJN
b3ZlKDAsIDAsIHtvcmlnaW46IGVsZW1lbnR9KQorICAgICAgLnBvaW50ZXJEb3duKHtidXR0b246
IHRlc3RfZHJpdmVyLkFjdGlvbnMucHJvdG90eXBlLkJ1dHRvblR5cGUuUklHSFR9KQorICAgICAg
LnBvaW50ZXJVcCh7YnV0dG9uOiB0ZXN0X2RyaXZlci5BY3Rpb25zLnByb3RvdHlwZS5CdXR0b25U
eXBlLlJJR0hUfSkKKyAgICAgIC5zZW5kKCk7Cit9CisKK2Z1bmN0aW9uIGRibENsaWNrT24oZWxl
bWVudCkgeworICByZXR1cm4gbmV3IHRlc3RfZHJpdmVyLkFjdGlvbnMoKQorICAgICAgLnBvaW50
ZXJNb3ZlKDAsIDAsIHtvcmlnaW46IGVsZW1lbnR9KQorICAgICAgLnBvaW50ZXJEb3duKHtidXR0
b246IHRlc3RfZHJpdmVyLkFjdGlvbnMucHJvdG90eXBlLkJ1dHRvblR5cGUuTEVGVH0pCisgICAg
ICAucG9pbnRlclVwKHtidXR0b246IHRlc3RfZHJpdmVyLkFjdGlvbnMucHJvdG90eXBlLkJ1dHRv
blR5cGUuTEVGVH0pCisgICAgICAucG9pbnRlckRvd24oe2J1dHRvbjogdGVzdF9kcml2ZXIuQWN0
aW9ucy5wcm90b3R5cGUuQnV0dG9uVHlwZS5MRUZUfSkKKyAgICAgIC5wb2ludGVyVXAoe2J1dHRv
bjogdGVzdF9kcml2ZXIuQWN0aW9ucy5wcm90b3R5cGUuQnV0dG9uVHlwZS5MRUZUfSkKKyAgICAg
IC5zZW5kKCk7Cit9CisKK2Z1bmN0aW9uIG1vdmVQb2ludGVyT3ZlcihlbGVtZW50KSB7CisgIGxl
dCByZWN0ID0gZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgcmV0dXJuIG5ldyB0
ZXN0X2RyaXZlci5BY3Rpb25zKCkKKyAgICAgIC5wb2ludGVyTW92ZSgwLCAwLCB7IG9yaWdpbjog
ZWxlbWVudCB9KQorICAgICAgLnNlbmQoKTsKK30KKworZnVuY3Rpb24gbW92ZVBvaW50ZXJUbyh4
LCB5KSB7CisgIHJldHVybiBuZXcgdGVzdF9kcml2ZXIuQWN0aW9ucygpCisgICAgICAucG9pbnRl
ck1vdmUoeCwgeSwgeyBvcmlnaW46ICJ2aWV3cG9ydCIgfSkKKyAgICAgIC5zZW5kKCk7Cit9CisK
K2Z1bmN0aW9uIGV4cGVjdEV2ZW50c09uKGV2ZW50cywgZWxlbWVudCkgeworICBsZXQgcHJvbWlz
ZXMgPSBbXTsKKyAgZm9yIChldmVudCBvZiBldmVudHMpIHsKKyAgICAoKGV2ZW50LCBlbGVtZW50
KSA9PiB7CisgICAgICB2YXIgcHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3Qp
ID0+IHsKKyAgICAgICAgbGV0IGYgPSAoZSkgPT4geworICAgICAgICAgIGFzc2VydF9lcXVhbHMo
ZS50eXBlLCBldmVudCk7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldCwgZWxlbWVu
dCk7CisgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgICB9CisgICAgICAgIGVsZW1lbnQuYWRk
RXZlbnRMaXN0ZW5lcihldmVudCwgZiwgeyBjYXB0dXJlOiB0cnVlLCBvbmNlOiB0cnVlIH0pOwor
CisgICAgICAgIHN0ZXBfdGltZW91dCgoKSA9PiB7CisgICAgICAgICAgZWxlbWVudC5yZW1vdmVF
dmVudExpc3RlbmVyKGV2ZW50LCBmLCB7IGNhcHR1cmU6IHRydWUgfSk7CisgICAgICAgICAgcmVq
ZWN0KCJkaWQgbm90IGdldCAiICsgZXZlbnQgKyAiIG9uICIgKyBlbGVtZW50LmlkKTsKKyAgICAg
ICAgfSwgMTAwMCk7CisgICAgICB9KTsKKyAgICAgIHByb21pc2VzLnB1c2gocHJvbWlzZSk7Cisg
ICAgfSkoZXZlbnQsIGVsZW1lbnQpOworICB9CisgIHJldHVybiBwcm9taXNlczsKK30KKworZnVu
Y3Rpb24gdW5leHBlY3RFdmVudHNPbihldmVudHMsIGVsZW1lbnQpIHsKKyAgbGV0IHByb21pc2Vz
ID0gW107CisgIGZvciAoZXZlbnQgb2YgZXZlbnRzKSB7CisgICAgKChldmVudCwgZWxlbWVudCkg
PT4geworICAgICAgdmFyIHByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9
PiB7CisgICAgICAgIGxldCBmID0gKGUpID0+IHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUu
dHlwZSwgZXZlbnQpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQsIGVsZW1lbnQp
OworICAgICAgICAgIHJlamVjdCgiZ290ICIgKyBlLnR5cGUgKyAiIG9uICIgKyBlLnRhcmdldC5p
ZCk7CisgICAgICAgIH0KKyAgICAgICAgZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKGV2ZW50LCBm
LCB7IGNhcHR1cmU6IHRydWUsIG9uY2U6IHRydWUgfSk7CisKKyAgICAgICAgc3RlcF90aW1lb3V0
KCgpID0+IHsKKyAgICAgICAgICBlbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnQsIGYs
IHsgY2FwdHVyZTogdHJ1ZSB9KTsKKyAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgIH0sIDEw
MDApOworICAgICAgfSk7CisgICAgICBwcm9taXNlcy5wdXNoKHByb21pc2UpOworICAgIH0pKGV2
ZW50LCBlbGVtZW50KTsKKyAgfQorICByZXR1cm4gcHJvbWlzZXM7Cit9CisKK3Rlc3QoKCkgPT4g
eworICBsZXQgcmVjdCA9IGZvcmVncm91bmQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CisgIGxl
dCBjZW50ZXJfeCA9IHJlY3QubGVmdCArIChyZWN0LndpZHRoIC8gMik7CisgIGxldCBjZW50ZXJf
eSA9IHJlY3QudG9wICsgKHJlY3QuaGVpZ2h0IC8gMik7CisgIGFzc2VydF9lcXVhbHMoZG9jdW1l
bnQuZWxlbWVudHNGcm9tUG9pbnQoY2VudGVyX3gsIGNlbnRlcl95KVswXSwgZm9yZWdyb3VuZCk7
Cit9LCAiZWxlbWVudHNGcm9tUG9pbnQgcmV0dXJucyBpbmVydCBlbGVtZW50Iik7CisKK3Byb21p
c2VfdGVzdChhc3luYyAoKSA9PiB7CisgIC8vIFRlc3QgbW91c2UgZXZlbnRzIG9uIG5vbi1pbmVy
dCBlbGVtZW50IC0gZXZlbnRzIHNob3VsZCBnbyB0byAiZm9yZWdyb3VuZCIKKyAgaW5lcnRDb250
YWluZXIuaW5lcnQgPSBmYWxzZTsKKyAgYXdhaXQgbW92ZVBvaW50ZXJUbygwLCAwKTsKKyAgbGV0
IHByb21pc2VzID0gZXhwZWN0RXZlbnRzT24oWyJtb3VzZW92ZXIiLCAibW91c2VlbnRlciIsICJt
b3VzZW1vdmUiLCAibW91c2Vkb3duIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJtb3VzZXVwIiwgImNsaWNrIiwgImF1eGNsaWNrIiwgIm1vdXNlb3V0IiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJtb3VzZWxlYXZlIl0sCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGZvcmVncm91bmQpOworICBhd2FpdCBjbGlja09uKGZvcmVncm91bmQpOwor
ICBhd2FpdCBhdXhDbGlja09uKGZvcmVncm91bmQpOworICBhd2FpdCBkYmxDbGlja09uKGZvcmVn
cm91bmQpOworICBsZXQgYW5jZXN0b3JCb3ggPSBhbmNlc3RvckNvbnRhaW5lci5nZXRCb3VuZGlu
Z0NsaWVudFJlY3QoKTsKKyAgbGV0IGluZXJ0Qm94ID0gaW5lcnRDb250YWluZXIuZ2V0Qm91bmRp
bmdDbGllbnRSZWN0KCk7CisgIGxldCB4ID0gYW5jZXN0b3JCb3gubGVmdCArIChhbmNlc3RvckJv
eC53aWR0aCAvIDIpOworICBsZXQgeSA9IGluZXJ0Qm94LmJvdHRvbSArICgoYW5jZXN0b3JCb3gu
Ym90dG9tIC0gaW5lcnRCb3guYm90dG9tKSAvIDIpOworICBhd2FpdCBtb3ZlUG9pbnRlclRvKHgs
IHkpOworICBhd2FpdCBQcm9taXNlLmFsbChwcm9taXNlcyk7Cit9LCAiVGVzdHMgdGhhdCBhbnkg
bW91c2UgZXZlbnQgb24gYSBub24taW5lcnQgZWxlbWVudCBpcyBjb3JyZWN0bHkgdGFyZ2V0ZWQg
dG8gdGhhdCBlbGVtZW50Iik7CisKK3Byb21pc2VfdGVzdChhc3luYyAoKSA9PiB7CisgIC8vIE1h
a2UgdGhlIGNvbnRhaW5pbmcgZWxlbWVudCBpbmVydCAtIG5vdyBldmVudHMgc2hvdWxkIGdvIHRv
ICJjb250YWluZXIiCisgIC8vIHdoaWNoIGlzIHRoZSBub24taW5lcnQgYW5jZXN0b3IgYXQgdGhl
IHNhbWUgcG9zaXRpb24KKyAgaW5lcnRDb250YWluZXIuaW5lcnQgPSB0cnVlOworICBhd2FpdCBt
b3ZlUG9pbnRlclRvKDAsIDApOworCisgIGxldCBwcm9taXNlcyA9IGV4cGVjdEV2ZW50c09uKFsi
bW91c2VvdmVyIiwgIm1vdXNlZW50ZXIiLCAibW91c2Vtb3ZlIiwgIm1vdXNlZG93biIsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibW91c2V1cCIsICJjbGljayIsICJhdXhjbGlj
ayJdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmNlc3RvckNvbnRhaW5lcik7
CisKKyAgLy8gVE9ETyhhYm94aGFsbCk6IFdlIGFyZSBnZXR0aW5nIHRoZXNlIHVuZXhwZWN0ZWQg
ZXZlbnRzLiBXaHk/CisgIHByb21pc2VzID0gcHJvbWlzZXMuY29uY2F0KHVuZXhwZWN0RXZlbnRz
T24oWyJtb3VzZW91dCIsICJtb3VzZWxlYXZlIl0sCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgYW5jZXN0b3JDb250YWluZXIpKTsKKworICBhd2FpdCBjbGlj
a09uKGZvcmVncm91bmQpOworICBhd2FpdCBhdXhDbGlja09uKGZvcmVncm91bmQpOworICBhd2Fp
dCBkYmxDbGlja09uKGZvcmVncm91bmQpOworICBsZXQgYW5jZXN0b3JCb3ggPSBhbmNlc3RvckNv
bnRhaW5lci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgbGV0IGluZXJ0Qm94ID0gaW5lcnRD
b250YWluZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CisgIGxldCB4ID0gYW5jZXN0b3JCb3gu
bGVmdCArIChhbmNlc3RvckJveC53aWR0aCAvIDIpOworICBsZXQgeSA9IGluZXJ0Qm94LmJvdHRv
bSArICgoYW5jZXN0b3JCb3guYm90dG9tIC0gaW5lcnRCb3guYm90dG9tKSAvIDIpOworICBhd2Fp
dCBtb3ZlUG9pbnRlclRvKHgsIHkpOworICBhd2FpdCBQcm9taXNlLmFsbChwcm9taXNlcyk7Cit9
LCAnVGVzdHMgdGhhdCBhbnkgbW91c2UgZXZlbnQgb24gYW4gaW5lcnQgZWxlbWVudCBpcyB0YXJn
ZXRlZCB0byB0aGUgbmVhcmVzdCBub24taW5lcnQgYW5jZXN0b3IgYXQgdGhlIHNhbWUgY29vcmRp
bmF0ZXMnKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jICgpID0+IHsKKyAgLy8gVGVzdCBwb2ludGVy
IGV2ZW50cyBvbiBub24taW5lcnQgZWxlbWVudCAtIGV2ZW50cyBzaG91bGQgZ28gdG8gImZvcmVn
cm91bmQiCisgIGluZXJ0Q29udGFpbmVyLmluZXJ0ID0gZmFsc2U7CisgIGF3YWl0IG1vdmVQb2lu
dGVyVG8oMCwgMCk7CisKKyAgbGV0IHByb21pc2VzID0gZXhwZWN0RXZlbnRzT24oWyJwb2ludGVy
b3ZlciIsICJwb2ludGVyZW50ZXIiLCAicG9pbnRlcm1vdmUiLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgInBvaW50ZXJkb3duIiwgInBvaW50ZXJ1cCIsICJwb2ludGVyb3V0IiwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwb2ludGVybGVhdmUiXSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yZWdyb3VuZCk7CisgIGF3YWl0IGNsaWNrT24o
Zm9yZWdyb3VuZCk7CisgIGxldCBhbmNlc3RvckJveCA9IGFuY2VzdG9yQ29udGFpbmVyLmdldEJv
dW5kaW5nQ2xpZW50UmVjdCgpOworICBsZXQgaW5lcnRCb3ggPSBpbmVydENvbnRhaW5lci5nZXRC
b3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgbGV0IHggPSBhbmNlc3RvckJveC5sZWZ0ICsgKGFuY2Vz
dG9yQm94LndpZHRoIC8gMik7CisgIGxldCB5ID0gaW5lcnRCb3guYm90dG9tICsgKChhbmNlc3Rv
ckJveC5ib3R0b20gLSBpbmVydEJveC5ib3R0b20pIC8gMik7CisgIGF3YWl0IG1vdmVQb2ludGVy
VG8oeCwgeSk7CisgIGF3YWl0IFByb21pc2UuYWxsKHByb21pc2VzKTsKK30sICJUZXN0cyB0aGF0
IGFueSBwb2ludGVyIGV2ZW50IG9uIGEgbm9uLWluZXJ0IGVsZW1lbnQgaXMgY29ycmVjdGx5IHRh
cmdldGVkIHRvIHRoYXQgZWxlbWVudCIpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgKCkgPT4gewor
ICAvLyBNYWtlIHRoZSBjb250YWluaW5nIGVsZW1lbnQgaW5lcnQgLSBub3cgZXZlbnRzIHNob3Vs
ZCBnbyB0byAiY29udGFpbmVyIgorICAvLyB3aGljaCBpcyB0aGUgbm9uLWluZXJ0IGFuY2VzdG9y
IGF0IHRoZSBzYW1lIHBvc2l0aW9uCisgIGluZXJ0Q29udGFpbmVyLmluZXJ0ID0gdHJ1ZTsKKyAg
YXdhaXQgbW92ZVBvaW50ZXJUbygwLCAwKTsKKworICBsZXQgcHJvbWlzZXMgPSBleHBlY3RFdmVu
dHNPbihbInBvaW50ZXJvdmVyIiwgInBvaW50ZXJlbnRlciIsICJwb2ludGVybW92ZSIsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicG9pbnRlcmRvd24iLCAicG9pbnRlcnVwIiBd
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmNlc3RvckNvbnRhaW5lcik7CisK
KyAgLy8gVE9ETyhhYm94aGFsbCk6IFdlIGFyZSBnZXR0aW5nIHRoZXNlIHVuZXhwZWN0ZWQgZXZl
bnRzLiBXaHk/CisgIHByb21pc2VzID0gcHJvbWlzZXMuY29uY2F0KHVuZXhwZWN0RXZlbnRzT24o
WyJwb2ludGVyb3V0IiwgInBvaW50ZXJsZWF2ZSJdLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGFuY2VzdG9yQ29udGFpbmVyKSk7CisKKyAgYXdhaXQgY2xp
Y2tPbihmb3JlZ3JvdW5kKTsKKyAgbGV0IGFuY2VzdG9yQm94ID0gYW5jZXN0b3JDb250YWluZXIu
Z2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CisgIGxldCBpbmVydEJveCA9IGluZXJ0Q29udGFpbmVy
LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworICBsZXQgeCA9IGFuY2VzdG9yQm94LmxlZnQgKyAo
YW5jZXN0b3JCb3gud2lkdGggLyAyKTsKKyAgbGV0IHkgPSBpbmVydEJveC5ib3R0b20gKyAoKGFu
Y2VzdG9yQm94LmJvdHRvbSAtIGluZXJ0Qm94LmJvdHRvbSkgLyAyKTsKKyAgYXdhaXQgbW92ZVBv
aW50ZXJUbyh4LCB5KTsKKyAgYXdhaXQgUHJvbWlzZS5hbGwocHJvbWlzZXMpOworfSwgJ1Rlc3Rz
IHRoYXQgYW55IHBvaW50ZXIgZXZlbnQgb24gYW4gaW5lcnQgZWxlbWVudCBpcyB0YXJnZXRlZCB0
byB0aGUgbmVhcmVzdCBub24taW5lcnQgYW5jZXN0b3IgYXQgdGhlIHNhbWUgY29vcmRpbmF0ZXMn
KTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L3czYy1pbXBvcnQubG9nIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC93M2MtaW1w
b3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5lZmYxYTcxNTBjYjYwYjIyNzNiMzgwOTFkMzJhOTM2NDE0Mjgx
OWFjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9pbmVydC93M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsxLDI2IEBACitUaGUgdGVz
dHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9y
eS4KK0RvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVh
ZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0
aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0CisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3Jp
cHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2Rp
Znkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJl
cXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5n
IHZlbmRvciBwcmVmaXhlczoKK05vbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoK
Ky9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0
LWRvZXMtbm90LW1hdGNoLWRpc2FibGVkLXNlbGVjdG9yLnRlbnRhdGl2ZS5odG1sCisvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1pbi1zaGFk
b3ctZG9tLnRlbnRhdGl2ZS5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1pbmxpbmVzLnRlbnRhdGl2ZS5odG1sCisvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1sYWJlbC1mb2N1
cy50ZW50YXRpdmUuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaW5lcnQvaW5lcnQtbm9kZS1pcy11bmVkaXRhYmxlLnRlbnRhdGl2ZS5odG1sCisvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1ub2Rl
LWlzLXVuZm9jdXNhYmxlLnRlbnRhdGl2ZS5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1ub2RlLWlzLXVuc2VsZWN0YWJsZS50ZW50
YXRpdmUuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aW5lcnQvaW5lcnQtb24tc2xvdHMudGVudGF0aXZlLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LXJldGFyZ2V0aW5nLWlmcmFtZS50
ZW50YXRpdmUuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvaW5lcnQvaW5lcnQtcmV0YXJnZXRpbmcudGVudGF0aXZlLmh0bWwKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9pbmVydC9pbmVydC1ub2RlLWlzLXVuZWRpdGFibGUudGVudGF0aXZlLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9pbmVydC9pbmVydC1ub2RlLWlzLXVuZWRpdGFibGUudGVudGF0aXZlLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4yMTE0Y2MxOGRlYzkwNGExNDZiZjAwOGEwOGI4MDY3ZmY1NDFhZTA2Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LW5vZGUtaXMtdW5lZGl0YWJsZS50ZW50
YXRpdmUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorSSdtIG5vdCBlZGl0YWJsZS4gSSdt
IGVkaXRhYmxlLgorCitQQVNTIENhbid0IGVkaXQgaW5lcnQgY29udGVudGVkaXRhYmxlCitGQUlM
IENhbiBlZGl0IG5vbi1pbmVydCBjb250ZW50ZWRpdGFibGUgYXNzZXJ0X25vdF9lcXVhbHM6IGdv
dCBkaXNhbGxvd2VkIHZhbHVlICJJJ20gZWRpdGFibGUuIgorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5l
cnQvaW5lcnQtcmV0YXJnZXRpbmctaWZyYW1lLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aW5lcnQvaW5lcnQtcmV0YXJnZXRpbmctaWZyYW1lLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZTFmOWVhNDBjZjIxM2VkNDUwNWE5OWRmNDk3MzhmYWFlZTcyNDhjOAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1yZXRhcmdldGluZy1pZnJhbWUudGVudGF0aXZl
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE4IEBACitDbGljayBvbiAiSW5lcnQgYnV0dG9uIi4K
KworVGhlIGJsdWUgc3F1YXJlICgiTm9uLWluZXJ0IGFuY2VzdG9yIGNvbnRhaW5lciIpIHNob3Vs
ZCB0dXJuIGdyZWVuLgorVGhlIHllbGxvdywgc2VtaS10cmFuc3BhcmVudCBzcXVhcmUgKCJOb24t
aW5lcnQsIGRpc3BsYWNlZCBjb250YWluZXIiKSBzaG91bGQgbm90IHR1cm4gcmVkLgorIk5vbi1p
bmVydCBidXR0b24iIHNob3VsZCBub3QgdHVybiByZWQuCisoVGhlIGZ1bGwgdGVzdCBzdWl0ZSBj
aGVja3MgYSByYW5nZSBvZiBldmVudHMuKQorCitOb24taW5lcnQgYW5jZXN0b3IgY29udGFpbmVy
CisgTm9uLWluZXJ0LCBkaXNwbGFjZWQgYW5jZXN0b3IKK0luZXJ0IGNvbnRhaW5lcgorZm9yZWdy
b3VuZAorCitQQVNTIGVsZW1lbnRzRnJvbVBvaW50IHJldHVybnMgaW5lcnQgZWxlbWVudAorRkFJ
TCBUZXN0cyB0aGF0IGFueSBtb3VzZSBldmVudCBvbiBhIG5vbi1pbmVydCBlbGVtZW50IGlzIGNv
cnJlY3RseSB0YXJnZXRlZCB0byB0aGF0IGVsZW1lbnQgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQg
cmVqZWN0aW9uIHdpdGggdmFsdWU6ICJkaWQgbm90IGdldCBtb3VzZW92ZXIgb24gZm9yZWdyb3Vu
ZCIKK0ZBSUwgVGVzdHMgdGhhdCBhbnkgbW91c2UgZXZlbnQgb24gYW4gaW5lcnQgZWxlbWVudCBp
cyB0YXJnZXRlZCB0byB0aGUgbmVhcmVzdCBub24taW5lcnQgYW5jZXN0b3IgYXQgdGhlIHNhbWUg
Y29vcmRpbmF0ZXMgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6
ICJkaWQgbm90IGdldCBtb3VzZW92ZXIgb24gYW5jZXN0b3JDb250YWluZXIiCitGQUlMIFRlc3Rz
IHRoYXQgYW55IHBvaW50ZXIgZXZlbnQgb24gYSBub24taW5lcnQgZWxlbWVudCBpcyBjb3JyZWN0
bHkgdGFyZ2V0ZWQgdG8gdGhhdCBlbGVtZW50IHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVj
dGlvbiB3aXRoIHZhbHVlOiAiZGlkIG5vdCBnZXQgcG9pbnRlcm92ZXIgb24gZm9yZWdyb3VuZCIK
K0ZBSUwgVGVzdHMgdGhhdCBhbnkgcG9pbnRlciBldmVudCBvbiBhbiBpbmVydCBlbGVtZW50IGlz
IHRhcmdldGVkIHRvIHRoZSBuZWFyZXN0IG5vbi1pbmVydCBhbmNlc3RvciBhdCB0aGUgc2FtZSBj
b29yZGluYXRlcyBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTog
ImRpZCBub3QgZ2V0IHBvaW50ZXJvdmVyIG9uIGFuY2VzdG9yQ29udGFpbmVyIgorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaW5lcnQvaW5lcnQtcmV0YXJnZXRpbmcudGVudGF0aXZlLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9pbmVydC9pbmVydC1yZXRhcmdldGluZy50ZW50YXRpdmUtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjFhNWZiYTNiZjcxMjg1N2Q3ODVjOGQwMGM4Yjg3MTJmZGVmNGNhZWMKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtcmV0YXJnZXRpbmcudGVudGF0aXZlLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDE4IEBACitDbGljayBvbiAiZm9yZWdyb3VuZCIuCisKK1RoZSBibHVl
IHNxdWFyZSAoIk5vbi1pbmVydCBhbmNlc3RvciBjb250YWluZXIiKSBzaG91bGQgdHVybiBncmVl
bi4KK1RoZSB5ZWxsb3csIHNlbWktdHJhbnNwYXJlbnQgc3F1YXJlICgiTm9uLWluZXJ0LCBkaXNw
bGFjZWQgY29udGFpbmVyIikgc2hvdWxkIG5vdCB0dXJuIHJlZC4KKyJOb24taW5lcnQgYnV0dG9u
IiBzaG91bGQgbm90IHR1cm4gcmVkLgorKFRoZSBmdWxsIHRlc3Qgc3VpdGUgY2hlY2tzIGEgcmFu
Z2Ugb2YgZXZlbnRzLikKKworTm9uLWluZXJ0IGFuY2VzdG9yIGNvbnRhaW5lcgorYmFja2dyb3Vu
ZE5vbi1pbmVydCwgZGlzcGxhY2VkIGFuY2VzdG9yCitJbmVydCBjb250YWluZXIKK2ZvcmVncm91
bmQKKworUEFTUyBlbGVtZW50c0Zyb21Qb2ludCByZXR1cm5zIGluZXJ0IGVsZW1lbnQKK0ZBSUwg
VGVzdHMgdGhhdCBhbnkgbW91c2UgZXZlbnQgb24gYSBub24taW5lcnQgZWxlbWVudCBpcyBjb3Jy
ZWN0bHkgdGFyZ2V0ZWQgdG8gdGhhdCBlbGVtZW50IHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJl
amVjdGlvbiB3aXRoIHZhbHVlOiAiZGlkIG5vdCBnZXQgbW91c2VvdmVyIG9uIGZvcmVncm91bmQi
CitGQUlMIFRlc3RzIHRoYXQgYW55IG1vdXNlIGV2ZW50IG9uIGFuIGluZXJ0IGVsZW1lbnQgaXMg
dGFyZ2V0ZWQgdG8gdGhlIG5lYXJlc3Qgbm9uLWluZXJ0IGFuY2VzdG9yIGF0IHRoZSBzYW1lIGNv
b3JkaW5hdGVzIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiAi
ZGlkIG5vdCBnZXQgbW91c2VvdmVyIG9uIGFuY2VzdG9yQ29udGFpbmVyIgorRkFJTCBUZXN0cyB0
aGF0IGFueSBwb2ludGVyIGV2ZW50IG9uIGEgbm9uLWluZXJ0IGVsZW1lbnQgaXMgY29ycmVjdGx5
IHRhcmdldGVkIHRvIHRoYXQgZWxlbWVudCBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rp
b24gd2l0aCB2YWx1ZTogImRpZCBub3QgZ2V0IHBvaW50ZXJvdmVyIG9uIGZvcmVncm91bmQiCitG
QUlMIFRlc3RzIHRoYXQgYW55IHBvaW50ZXIgZXZlbnQgb24gYW4gaW5lcnQgZWxlbWVudCBpcyB0
YXJnZXRlZCB0byB0aGUgbmVhcmVzdCBub24taW5lcnQgYW5jZXN0b3IgYXQgdGhlIHNhbWUgY29v
cmRpbmF0ZXMgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6ICJk
aWQgbm90IGdldCBwb2ludGVyb3ZlciBvbiBhbmNlc3RvckNvbnRhaW5lciIKKwo=
</data>
<flag name="commit-queue"
          id="459165"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>436192</attachid>
            <date>2021-08-23 07:14:02 -0700</date>
            <delta_ts>2021-08-23 09:04:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-165279-20210823161401.patch</filename>
            <type>text/plain</type>
            <size>70937</size>
            <attacher name="Tim Nguyen (:ntim)">ntim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxNDM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDY0NmExZjc0Y2M5ODAxZTkxZmQwY2Y3
ZGY1NWNmNDViOTNiYzEzYWUuLjE4YzYyZDMyNTMwN2MxODU4ZGQ2YWFlN2Q2ZTkwYTFkM2U1ZTk2
M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMDgtMjAgIFRpbSBOZ3V5ZW4gIDxudGltQGFw
cGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgaW5lcnQgYXR0cmlidXRlIGJlaGluZCBmZWF0
dXJlIGZsYWcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE2NTI3OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFkZCBydW50aW1lIEluZXJ0QXR0cmlidXRlRW5hYmxlZCBmZWF0dXJlIGZsYWcgZGlzYWJsZWQg
YnkgZGVmYXVsdC4KKworICAgICAgICAqIFNjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5j
ZXNFeHBlcmltZW50YWwueWFtbDoKKwogMjAyMS0wOC0yMSAgTXlsZXMgQy4gTWF4ZmllbGQgIDxt
bWF4ZmllbGRAYXBwbGUuY29tPgogCiAgICAgICAgIG92ZXJ3cml0ZUNvZGVQb2ludCgpIGluIGNy
ZWF0ZUFuZEZpbGxHbHlwaFBhZ2UoKSBpcyB3cm9uZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDVjNzE4ZTNiNmE5
YWRmZDgwNWUzMWM5YjZkZmMwMDMxMDc1NDUyYTUuLjM2MGMyYmIzMTQ2MWNhZmUxMDY2NGFlYTZl
OGY5YzUxOTZmMjE4MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMCBAQAorMjAyMS0wOC0yMCAg
VGltIE5ndXllbiAgPG50aW1AYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBpbmVydCBh
dHRyaWJ1dGUgYmVoaW5kIGZlYXR1cmUgZmxhZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY1Mjc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVGVzdHM6IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvaW5lcnQvZnJhbWUvYnV0dG9uLmh0bWwKKyAgICAgICAgICAgICAgIGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtZG9lcy1ub3QtbWF0Y2gtZGlzYWJsZWQtc2Vs
ZWN0b3IudGVudGF0aXZlLmh0bWwKKyAgICAgICAgICAgICAgIGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtaW4tc2hhZG93LWRvbS50ZW50YXRpdmUuaHRtbAorICAg
ICAgICAgICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1p
bmxpbmVzLnRlbnRhdGl2ZS5odG1sCisgICAgICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LWxhYmVsLWZvY3VzLnRlbnRhdGl2ZS5odG1sCisgICAg
ICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LW5v
ZGUtaXMtdW5lZGl0YWJsZS50ZW50YXRpdmUuaHRtbAorICAgICAgICAgICAgICAgaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1ub2RlLWlzLXVuZm9jdXNhYmxlLnRl
bnRhdGl2ZS5odG1sCisgICAgICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2luZXJ0L2luZXJ0LW5vZGUtaXMtdW5zZWxlY3RhYmxlLnRlbnRhdGl2ZS5odG1sCisgICAg
ICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LW9u
LXNsb3RzLnRlbnRhdGl2ZS5odG1sCisgICAgICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LXJldGFyZ2V0aW5nLWlmcmFtZS50ZW50YXRpdmUuaHRt
bAorICAgICAgICAgICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9p
bmVydC1yZXRhcmdldGluZy50ZW50YXRpdmUuaHRtbAorCisgICAgICAgICogZG9tL0RvY3VtZW50
Lmg6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6aGFzSW5lcnRBdHRyaWJ1dGVCZWVuVXNl
ZCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6c2V0SGFzSW5lcnRBdHRyaWJ1dGVCZWVu
VXNlZCk6CisgICAgICAgICogZG9tL05vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6
aXNJbmVydCBjb25zdCk6CisgICAgICAgICogaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW46Cisg
ICAgICAgICogaHRtbC9IVE1MRWxlbWVudC5pZGw6CisKIDIwMjEtMDgtMjIgIENhcmxvcyBHYXJj
aWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtGcmVldHlwZV0gU2V0
IG1heGltdW0gYWxsb3dlZCBmb250IHNpemUgZm9yIEZyZWV0eXBlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFt
bCBiL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1l
bnRhbC55YW1sCmluZGV4IDVmZGIyNDU0Yzk5NDQ0MGY3ZThkZjc1MjdmZmNlMTg3MDMzYjM5N2Eu
LjE4NWE1YWMwZjQ1NGM3NmMwMzQ3OTJhZDE4NTc2MWZjY2E2OTQ5OTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55
YW1sCisrKyBiL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4
cGVyaW1lbnRhbC55YW1sCkBAIC01MzQsNiArNTM0LDE4IEBAIEluY3JlbWVudGFsUERGTG9hZGlu
Z0VuYWJsZWQ6CiAgICAgV2ViS2l0OgogICAgICAgZGVmYXVsdDogV2ViS2l0OjpkZWZhdWx0SW5j
cmVtZW50YWxQREZFbmFibGVkKCkKIAorSW5lcnRBdHRyaWJ1dGVFbmFibGVkOgorICB0eXBlOiBi
b29sCisgIGh1bWFuUmVhZGFibGVOYW1lOiAiaW5lcnQgYXR0cmlidXRlIgorICBodW1hblJlYWRh
YmxlRGVzY3JpcHRpb246ICJFbmFibGUgaW5lcnQgYXR0cmlidXRlIHN1cHBvcnQiCisgIGRlZmF1
bHRWYWx1ZToKKyAgICBXZWJLaXRMZWdhY3k6CisgICAgICBkZWZhdWx0OiBmYWxzZQorICAgIFdl
YktpdDoKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCisgICAgV2ViQ29yZToKKyAgICAgIGRlZmF1bHQ6
IGZhbHNlCisKICMgRklYTUU6IFRoaXMgaXMgb24gYnkgZGVmYXVsdCBpbiBXZWJLaXQyLiBQZXJo
YXBzIHdlIHNob3VsZCBjb25zaWRlciB0dXJuaW5nIGl0IG9uIGZvciBXZWJLaXRMZWdhY3kgYXMg
d2VsbC4KIEludGVyc2VjdGlvbk9ic2VydmVyRW5hYmxlZDoKICAgdHlwZTogYm9vbApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuaAppbmRleCA0YzI5NWQ0NThmMWFlMDYxNzlhNTQ2Yjk0ZGIzODA3NzI2NTRjMWM1
Li41OTFmZTkzZWJkZDhhMzMyYmU3Yjk2N2EyNDViNzViODJjMTJkYzhlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuaApAQCAtMTYzMiw2ICsxNjMyLDkgQEAgcHVibGljOgogCiAgICAgVVJMIGZhbGxiYWNr
QmFzZVVSTCgpIGNvbnN0OwogCisgICAgYm9vbCBoYXNJbmVydEF0dHJpYnV0ZUJlZW5Vc2VkKCkg
eyByZXR1cm4gbV9oYXNJbmVydEF0dHJpYnV0ZUJlZW5Vc2VkOyB9CisgICAgdm9pZCBzZXRIYXNJ
bmVydEF0dHJpYnV0ZUJlZW5Vc2VkKCkgeyBtX2hhc0luZXJ0QXR0cmlidXRlQmVlblVzZWQgPSB0
cnVlOyB9CisKIHByb3RlY3RlZDoKICAgICBlbnVtIENvbnN0cnVjdGlvbkZsYWdzIHsgU3ludGhl
c2l6ZWQgPSAxLCBOb25SZW5kZXJlZFBsYWNlaG9sZGVyID0gMSA8PCAxIH07CiAgICAgV0VCQ09S
RV9FWFBPUlQgRG9jdW1lbnQoRnJhbWUqLCBjb25zdCBTZXR0aW5ncyYsIGNvbnN0IFVSTCYsIERv
Y3VtZW50Q2xhc3NGbGFncyA9IERlZmF1bHREb2N1bWVudENsYXNzLCB1bnNpZ25lZCBjb25zdHJ1
Y3Rpb25GbGFncyA9IDApOwpAQCAtMjE1MSw2ICsyMTU0LDggQEAgcHJpdmF0ZToKIAogICAgIGJv
b2wgbV91cGRhdGVUaXRsZVRhc2tTY2hlZHVsZWQgeyBmYWxzZSB9OwogCisgICAgYm9vbCBtX2hh
c0luZXJ0QXR0cmlidXRlQmVlblVzZWQgeyBmYWxzZSB9OworCiAgICAgRm9jdXNUcmlnZ2VyIG1f
bGF0ZXN0Rm9jdXNUcmlnZ2VyIHsgRm9jdXNUcmlnZ2VyOjpPdGhlciB9OwogCiAgICAgT3JpZW50
YXRpb25Ob3RpZmllciBtX29yaWVudGF0aW9uTm90aWZpZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKaW5kZXgg
N2VlMTEyNjRjNzcyNmY0NDQ4MjRjZjRhZDc0OWM4MTM4NjNjZDk0YS4uNzJjNmMxN2Q5ODZlODM1
YTVmNTI1MDJlYjI2YWYwNGJmMDY1MjVhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L05vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcApAQCAtMjYzMiw2ICsy
NjMyLDE1IEBAIGJvb2wgTm9kZTo6aXNJbmVydCgpIGNvbnN0CiAgICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKICAgICB9CiAKKyAgICBpZiAoZG9jdW1lbnQoKS5oYXNJbmVydEF0dHJpYnV0ZUJlZW5V
c2VkKCkgJiYgZG9jdW1lbnQoKS5zZXR0aW5ncygpLmluZXJ0QXR0cmlidXRlRW5hYmxlZCgpKSB7
CisgICAgICAgIGNvbnN0IEVsZW1lbnQqIGVsZW1lbnQgPSBpczxFbGVtZW50Pih0aGlzKSA/IGRv
d25jYXN0PEVsZW1lbnQ+KHRoaXMpIDogcGFyZW50RWxlbWVudCgpOworICAgICAgICB3aGlsZSAo
ZWxlbWVudCkgeworICAgICAgICAgICAgaWYgKGlzPEhUTUxFbGVtZW50PihlbGVtZW50KSAmJiBl
bGVtZW50LT5oYXNBdHRyaWJ1dGUoSFRNTE5hbWVzOjppbmVydEF0dHIpKQorICAgICAgICAgICAg
ICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgZWxlbWVudCA9IGVsZW1lbnQtPnBhcmVudEVs
ZW1lbnQoKTsKKyAgICAgICAgfQorICAgIH0KKwogICAgIGlmICghZG9jdW1lbnQoKS5mcmFtZSgp
IHx8ICFkb2N1bWVudCgpLmZyYW1lKCktPm93bmVyRWxlbWVudCgpKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEF0dHJpYnV0ZU5h
bWVzLmluIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4KaW5kZXgg
NGZkY2I5ZDMyMThlNzJiODFjMzQ1ZGI1NzFmZWJiMWJkZDlkYzYxNC4uNjI2ZmU0OWRmMmZmZDQ3
OGMyZmUwNGY0MjA3ZGJkNGRmZDdjNjliYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MQXR0cmlidXRlTmFtZXMuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXR0
cmlidXRlTmFtZXMuaW4KQEAgLTE1Nyw2ICsxNTcsNyBAQCBpbWFnZXNpemVzCiBpbWFnZXNyY3Nl
dAogaW5jcmVtZW50YWwKIGluZGV0ZXJtaW5hdGUKK2luZXJ0CiBpbnB1dG1vZGUKIGludGVncml0
eQogaXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAKaW5kZXggMDZhYjVjZTdiMjFjOTc5
ODAzMDI5YmUzMmZjZDc5YmNiYmRmM2U4Yi4uNDg1MzUyMzU1ZmJhMDYyYWI0MDFkZjE4Mjc2NDNk
NzQ2YjgxOWVhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAKQEAgLTQ4MSw3ICs0
ODEsMTAgQEAgdm9pZCBIVE1MRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmEKICAgICAgICAgICAgIHNldFRhYkluZGV4
RXhwbGljaXRseShzdGQ6Om51bGxvcHQpOwogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIAor
CisgICAgaWYgKG5hbWUgPT0gaW5lcnRBdHRyICYmICF2YWx1ZS5pc051bGwoKSkKKyAgICAgICAg
ZG9jdW1lbnQoKS5zZXRIYXNJbmVydEF0dHJpYnV0ZUJlZW5Vc2VkKCk7CisKICAgICBpZiAobmFt
ZSA9PSBpbnB1dG1vZGVBdHRyKSB7CiAgICAgICAgIGF1dG8mIGRvY3VtZW50ID0gdGhpcy0+ZG9j
dW1lbnQoKTsKICAgICAgICAgaWYgKHRoaXMgPT0gZG9jdW1lbnQuZm9jdXNlZEVsZW1lbnQoKSkg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmlkbAppbmRleCAzNGUzOWMyN2UyYWFlODJkNDMy
NTk5YTFlYzIyNTg1YWRiYWE0MjcxLi5mYWNhYzlmMTY3ZmZlMGViMzQ2OGVmYjk2ODNiMDE3MDU1
ZjUxYTMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmlkbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmlkbApAQCAtNDcsNiArNDcsOSBA
QAogICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgJ2F0dGFjaEludGVybmFscycuCiAgICAgLy8gRWxl
bWVudEludGVybmFscyBhdHRhY2hJbnRlcm5hbHMoKTsKIAorICAgIC8vIEV4cGVyaW1lbnRhbDog
aHR0cHM6Ly9naXRodWIuY29tL1dJQ0cvaW5lcnQvYmxvYi9tYXN0ZXIvUkVBRE1FLm1kCisgICAg
W0NFUmVhY3Rpb25zLCBSZWZsZWN0LCBFbmFibGVkQnlTZXR0aW5nPUluZXJ0QXR0cmlidXRlXSBh
dHRyaWJ1dGUgYm9vbGVhbiBpbmVydDsKKwogICAgIC8vIE5vbi1zdGFuZGFyZDogSUUgZXh0ZW5z
aW9uLiBNYXkgZ2V0IGFkZGVkIHRvIHRoZSBzcGVjaWZpY2F0aW9uIChodHRwczovL2dpdGh1Yi5j
b20vd2hhdHdnL2h0bWwvaXNzdWVzLzY2OCkuCiAgICAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUg
W0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBET01TdHJpbmcgb3V0ZXJUZXh0OwogCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
ZDdjNThhNjE1Mzg0YThiMjY3YmVkMjgzMmEwZDNiMmU4ZGM0NmU2OS4uMTVhZGZhYjc4NjdiNmVh
YjU0Y2ZmODA4OTE5MGJhMDA0MmIwZTBkNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIxLTA4
LTIwICBUaW0gTmd1eWVuICA8bnRpbUBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IGlu
ZXJ0IGF0dHJpYnV0ZSBiZWhpbmQgZmVhdHVyZSBmbGFnCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjUyNzkKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDcmVhdGUgaU9TIGJhc2VsaW5lcy4KKworICAgICAg
ICAqIHBsYXRmb3JtL2lvcy13azIvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVy
dC9pbmVydC1ub2RlLWlzLXVuZWRpdGFibGUudGVudGF0aXZlLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogcGxhdGZvcm0vaW9zLXdrMi9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2luZXJ0L2luZXJ0LXJldGFyZ2V0aW5nLWlmcmFtZS50ZW50YXRpdmUtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9pb3Mtd2syL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtcmV0YXJnZXRpbmcudGVudGF0aXZlLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisKIDIwMjEtMDgtMjIgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNv
bT4KIAogICAgICAgICBbSlNDXSBSZW1vdmUgYWxyZWFkeS1zaGlwcGVkIHdhc20gb3B0aW9uIGZs
YWdzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCA1YjY3MTk2OWFkMTIxYmNhMTU3
ZDdiYmZmOThhMmRkZTUwZjU5ZDNkLi5jZWU5NjlkMzJhMDk0NWYwYTUxNWU1ODEzMTI1YWEyZjAy
ZDhhMzFiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzOSBAQAor
MjAyMS0wOC0yMCAgVGltIE5ndXllbiAgPG50aW1AYXBwbGUuY29tPgorCisgICAgICAgIEltcGxl
bWVudCBpbmVydCBhdHRyaWJ1dGUgYmVoaW5kIGZlYXR1cmUgZmxhZworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY1Mjc5CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wb3J0IGluZXJ0LyBXUFQgZGlyZWN0
b3J5IHVzaW5nIGBpbXBvcnQtdzNjLXRlc3RzIC10IHdlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydGAu
CisgICAgICAgIFdQVCByZXZpc2lvbjogaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10
ZXN0cy93cHQvY29tbWl0L2YwMmUzOGQ3YTY3OTk5NjgzZDA1NTc5ZjYyYjMzOTQzMGM2MWU0ZWMK
KworICAgICAgICAqIHJlc291cmNlcy9pbXBvcnQtZXhwZWN0YXRpb25zLmpzb246CisgICAgICAg
ICogcmVzb3VyY2VzL3Jlc291cmNlLWZpbGVzLmpzb246CisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL2luZXJ0L2ZyYW1lL2J1dHRvbi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvaW5lcnQvZnJhbWUvdzNjLWltcG9ydC5sb2c6IEFkZGVkLgorICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1kb2VzLW5vdC1tYXRjaC1kaXNhYmxlZC1z
ZWxlY3Rvci50ZW50YXRpdmUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtZG9lcy1ub3QtbWF0Y2gtZGlzYWJsZWQtc2VsZWN0b3Iu
dGVudGF0aXZlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9pbmVy
dC9pbmVydC1pbi1zaGFkb3ctZG9tLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1pbi1zaGFkb3ctZG9tLnRlbnRh
dGl2ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5l
cnQtaW5saW5lcy50ZW50YXRpdmUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWIt
cGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtaW5saW5lcy50ZW50YXRpdmUuaHRtbDogQWRkZWQu
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LWxhYmVsLWZvY3VzLnRl
bnRhdGl2ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0
cy9pbmVydC9pbmVydC1sYWJlbC1mb2N1cy50ZW50YXRpdmUuaHRtbDogQWRkZWQuCisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LW5vZGUtaXMtdW5lZGl0YWJsZS50ZW50
YXRpdmUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
aW5lcnQvaW5lcnQtbm9kZS1pcy11bmVkaXRhYmxlLnRlbnRhdGl2ZS5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtbm9kZS1pcy11bmZvY3VzYWJs
ZS50ZW50YXRpdmUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvaW5lcnQvaW5lcnQtbm9kZS1pcy11bmZvY3VzYWJsZS50ZW50YXRpdmUuaHRtbDogQWRk
ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LW5vZGUtaXMtdW5z
ZWxlY3RhYmxlLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1ub2RlLWlzLXVuc2VsZWN0YWJsZS50ZW50YXRpdmUu
aHRtbDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LW9u
LXNsb3RzLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1vbi1zbG90cy50ZW50YXRpdmUuaHRtbDogQWRkZWQuCisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LXJldGFyZ2V0aW5nLWlmcmFt
ZS50ZW50YXRpdmUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvaW5lcnQvaW5lcnQtcmV0YXJnZXRpbmctaWZyYW1lLnRlbnRhdGl2ZS5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtcmV0YXJnZXRpbmcu
dGVudGF0aXZlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRl
c3RzL2luZXJ0L2luZXJ0LXJldGFyZ2V0aW5nLnRlbnRhdGl2ZS5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvdzNjLWltcG9ydC5sb2c6IEFkZGVkLgorCiAy
MDIxLTA4LTIyICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKICAg
ICAgICAgQ29udHJvbCBjaGFyYWN0ZXJzIChVbmljb2RlIGNhdGVnb3J5IENjKSBzaG91bGQgYmUg
cmVuZGVyZWQgdmlzaWJseQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3Jl
c291cmNlcy9pbXBvcnQtZXhwZWN0YXRpb25zLmpzb24gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvcmVzb3VyY2VzL2ltcG9ydC1leHBlY3RhdGlvbnMuanNvbgppbmRleCA1NzNhMDZjMGQ5Mjg4
MDAyNDkyYzdhYmI3NDM3NTEzMDgzNzdlYjQzLi5mODkyYjdjMmRjYTMyNTBlM2QyYTdiZDU3ZjI4
NmMyZWJjNGJjNjU2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvcmVzb3Vy
Y2VzL2ltcG9ydC1leHBlY3RhdGlvbnMuanNvbgorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvcmVzb3VyY2VzL2ltcG9ydC1leHBlY3RhdGlvbnMuanNvbgpAQCAtMzM0LDYgKzMzNCw3IEBA
CiAgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9pbWFnZS1kZWNvZGVzIjogInNraXAiLCAKICAgICAi
d2ViLXBsYXRmb3JtLXRlc3RzL2ltYWdlYml0bWFwLXJlbmRlcmluZ2NvbnRleHQiOiAiaW1wb3J0
IiwgCiAgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9pbWFnZXMiOiAiaW1wb3J0IiwgCisgICAgIndl
Yi1wbGF0Zm9ybS10ZXN0cy9pbmVydCI6ICJpbXBvcnQiLCAKICAgICAid2ViLXBsYXRmb3JtLXRl
c3RzL2luZnJhc3RydWN0dXJlIjogImltcG9ydCIsIAogICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMv
aW5uZXJUZXh0IjogImltcG9ydCIsIAogICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaW5wdXQtZXZl
bnRzIjogInNraXAiLCAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9yZXNv
dXJjZXMvcmVzb3VyY2UtZmlsZXMuanNvbiBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9yZXNv
dXJjZXMvcmVzb3VyY2UtZmlsZXMuanNvbgppbmRleCA4ZjY3NDA1M2IyNGE3OGIxOTU0OTkwY2U2
NmZkYWI0OTFhMTU4ZjliLi5iMTc4ZTBhZDIwODU0Zjc3Yzg1MjQzYjE4ODJkOWM0MDE2ZDRhMWQ5
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvcmVzb3VyY2VzL3Jlc291cmNl
LWZpbGVzLmpzb24KKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3Jlc291cmNlcy9yZXNv
dXJjZS1maWxlcy5qc29uCkBAIC0yNzcyLDYgKzI3NzIsNyBAQAogICAgICAgICAid2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvd2ViYXBwYXBpcy9zY3JpcHRpbmcvZXZlbnRzL29uZXJyb3JldmVudGhh
bmRsZXItZnJhbWUuaHRtbCIsCiAgICAgICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC93ZWJh
cHBhcGlzL3VzZXItcHJvbXB0cy9jYW5ub3Qtc2hvdy1zaW1wbGUtZGlhbG9ncy9zdXBwb3J0L2Nv
bmZpcm0uaHRtbCIsCiAgICAgICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC93ZWJhcHBhcGlz
L3VzZXItcHJvbXB0cy9jYW5ub3Qtc2hvdy1zaW1wbGUtZGlhbG9ncy9zdXBwb3J0L3Byb21wdC5o
dG1sIiwKKyAgICAgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9mcmFtZS9idXR0b24uaHRt
bCIsCiAgICAgICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaW5mcmFzdHJ1Y3R1cmUvYXNzdW1wdGlv
bnMvYWhlbS1ub3RyZWYuaHRtbCIsCiAgICAgICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaW5mcmFz
dHJ1Y3R1cmUvcmVmdGVzdC9yZWQuaHRtbCIsCiAgICAgICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMv
aW50ZXJzZWN0aW9uLW9ic2VydmVyL29ic2VydmVyLWluLWlmcmFtZS5odG1sIiwKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvZnJh
bWUvYnV0dG9uLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2luZXJ0L2ZyYW1lL2J1dHRvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU4NjdjNzU4MTQyYzY2NTIz
NjJhMjNmMTk1MzNhOGQ4NmZlMjk2NDgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2ZyYW1lL2J1dHRvbi5odG1sCkBA
IC0wLDAgKzEsMzYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4K
K2JvZHkgeworICBvdmVyZmxvdzogaGlkZGVuOworfQorCitidXR0b24jYmFja2dyb3VuZCB7Cisg
IHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgdG9wOiAwOworICBsZWZ0OiAwOworICB3aWR0aDogMTUw
cHg7CisgIGhlaWdodDogNDBweDsKKyAgbGluZS1oZWlnaHQ6IDUzcHg7Cit9CisKK2J1dHRvbi5j
bGlja2VkIHsKKyAgYmFja2dyb3VuZC1jb2xvcjogcmVkOworfQorCitidXR0b24uY2xpY2tlZDo6
YWZ0ZXIgeworICBjb250ZW50OiAiIChjbGlja2VkKSI7Cit9CisKKzwvc3R5bGU+Cis8L2hlYWQ+
Cis8Ym9keT4KKyAgPGJ1dHRvbiBpZD0iYmFja2dyb3VuZCI+YmFja2dyb3VuZDwvYnV0dG9uPgor
PHNjcmlwdD4KK2RvY3VtZW50LmJvZHkuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoZSkgPT4g
eworICBlLnRhcmdldC5jbGFzc0xpc3QuYWRkKCdjbGlja2VkJyk7Cit9KTsKKzwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9mcmFtZS93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvZnJhbWUvdzNjLWltcG9ydC5s
b2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYTQ1MWIwOGI3YjNiMmExMjYzY2YwYjAyZTc4OGUwNzQxYzAwMjBhNgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaW5lcnQvZnJhbWUvdzNjLWltcG9ydC5sb2cKQEAgLTAsMCArMSwxNyBAQAorVGhlIHRl
c3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRv
cnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3Rl
YWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dp
dGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAorCitUaGVuIHJ1biB0aGUgVG9vbHMvU2Ny
aXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAorCitEbyBOT1QgbW9k
aWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyBy
ZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmlu
ZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6
CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9mcmFt
ZS9idXR0b24uaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1kb2VzLW5vdC1tYXRjaC1kaXNhYmxlZC1zZWxlY3Rv
ci50ZW50YXRpdmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1kb2VzLW5vdC1tYXRjaC1kaXNhYmxlZC1zZWxlY3Rv
ci50ZW50YXRpdmUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE5ZDYzOWUxOGI3OGNkYzE1ZTM2
YzhhMzhiMTAwY2U0MTQxMjFiN2MKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LWRvZXMtbm90LW1hdGNoLWRp
c2FibGVkLXNlbGVjdG9yLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitU
aGUgdGVzdCBwYXNzZXMgaWYgdGhpcyBpcyBpbiBncmVlbi4KKworUEFTUyBUZXN0cyB0aGF0IGlu
ZXJ0IGVsZW1lbnRzIGRvIG5vdCBtYXRjaCB0aGUgOmRpc2FibGVkIHNlbGVjdG9yLgorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0
L2luZXJ0LWRvZXMtbm90LW1hdGNoLWRpc2FibGVkLXNlbGVjdG9yLnRlbnRhdGl2ZS5odG1sIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1k
b2VzLW5vdC1tYXRjaC1kaXNhYmxlZC1zZWxlY3Rvci50ZW50YXRpdmUuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li43NGI4YWMzZjdkZDVjMzQ0N2JmNDdmZDczMmZhZGU5MjIwNDk3YzkzCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9p
bmVydC1kb2VzLW5vdC1tYXRjaC1kaXNhYmxlZC1zZWxlY3Rvci50ZW50YXRpdmUuaHRtbApAQCAt
MCwwICsxLDI3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNy
Yz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jl
c291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+CitidXR0b24g
eworICAgIGNvbG9yOiBncmVlbjsKK30KKworYnV0dG9uOmRpc2FibGVkIHsKKyAgICBjb2xvcjog
cmVkOworfQorCis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHkgc3R5bGU9ImNvbG9yOiBncmVlbiI+
Cis8YnV0dG9uIGluZXJ0PlRoZSB0ZXN0IHBhc3NlcyBpZiB0aGlzIGlzIGluIGdyZWVuLjwvYnV0
dG9uPgorPHNjcmlwdD4KK3Rlc3QoZnVuY3Rpb24oKSB7CisgICAgYnV0dG9uID0gZG9jdW1lbnQu
cXVlcnlTZWxlY3RvcignYnV0dG9uJyk7CisgICAgY29sb3IgPSBkb2N1bWVudC5kZWZhdWx0Vmll
dy5nZXRDb21wdXRlZFN0eWxlKGJ1dHRvbikuZ2V0UHJvcGVydHlWYWx1ZSgnY29sb3InKTsKKyAg
ICBhc3NlcnRfZmFsc2UoYnV0dG9uLm1hdGNoZXMoJzpkaXNhYmxlZCcpKTsKK30sICdUZXN0cyB0
aGF0IGluZXJ0IGVsZW1lbnRzIGRvIG5vdCBtYXRjaCB0aGUgOmRpc2FibGVkIHNlbGVjdG9yLicp
OworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LWluLXNoYWRvdy1kb20u
dGVudGF0aXZlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtaW4tc2hhZG93LWRvbS50ZW50YXRpdmUtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjNhMjViNzUxZDBjODE2ZTExOGZhZTE0ZGIxODc5MmExNWIyOTVlODMK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2luZXJ0L2luZXJ0LWluLXNoYWRvdy1kb20udGVudGF0aXZlLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDUgQEAKK0J1dHRvbnMgMSBhbmQgMiBzaG91bGQgYmUgaW5lcnQuCitCdXR0b24g
MSAoaW5lcnQpCisKK0ZBSUwgaW5lcnQgb24gU2hhZG93IGhvc3QgYWZmZWN0cyBjb250ZW50IGlu
IHNoYWRvdyBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCBmYWxzZSBidXQgZ290IHRydWUKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVy
dC9pbmVydC1pbi1zaGFkb3ctZG9tLnRlbnRhdGl2ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1pbi1zaGFkb3ctZG9tLnRlbnRh
dGl2ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVjODI1ZGJmZGM5ODU0NThjYzczOTNkNThiMmVmYzJjZTA3
OTYzNjQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LWluLXNoYWRvdy1kb20udGVudGF0aXZlLmh0bWwKQEAg
LTAsMCArMSw1NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxtZXRh
IGNoYXJzZXQ9InV0Zi04IiAvPgorICAgIDx0aXRsZT5pbmVydCBvbiBTaGFkb3cgaG9zdCBhZmZl
Y3RzIGNvbnRlbnQgaW4gc2hhZG93PC90aXRsZT4KKyAgICA8bGluayByZWw9ImF1dGhvciIgdGl0
bGU9IkFsaWNlIEJveGhhbGwiIGhyZWY9ImFib3hoYWxsQGNocm9taXVtLm9yZyI+CisgICAgPHNj
cmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgIDxzY3Jp
cHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorICA8ZGl2PkJ1dHRvbnMgMSBhbmQgMiBzaG91bGQgYmUgaW5lcnQuPC9kaXY+
CisgIDxkaXYgaWQ9InNoYWRvdy1ob3N0IiBpbmVydD4KKyAgICA8YnV0dG9uIGlkPSJidXR0b24t
MSI+QnV0dG9uIDEgKGluZXJ0KTwvYnV0dG9uPgorICA8L2Rpdj4KKyAgPHNjcmlwdD4KKyAgICAv
KgorICAgIEV2ZW50dWFsIGZsYXR0ZW5lZCB0cmVlIHN0cnVjdHVyZToKKworICAgIDxkaXYgaWQ9
InNoYWRvdy1ob3N0IiBpbmVydD4KKyAgICAgICNzaGFkb3ctcm9vdCAob3BlbikKKyAgICAgIHwg
PHNsb3Q+CisgICAgICA6ICAgPGJ1dHRvbiBpZD0iYnV0dG9uLTEiPkJ1dHRvbiAxIChpbmVydCk8
L2J1dHRvbj4gPCEtLSBzbG90dGVkIC0tPgorICAgICAgfCA8L3Nsb3Q+CisgICAgICB8IDxidXR0
b24gaWQ9ImJ1dHRvbi0yIj5CdXR0b24gMiAoaW5lcnQpPC9idXR0b24+ICAgPCEtLSBpbiBzaGFk
b3cgLS0+CisgICAgPC9kaXY+CisgICAgKi8KKworICAgIGNvbnN0IHNoYWRvd0hvc3QgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgic2hhZG93LWhvc3QiKTsKKyAgICBjb25zdCBzaGFkb3dSb290
ID0gc2hhZG93SG9zdC5hdHRhY2hTaGFkb3coeyBtb2RlOiAib3BlbiIgfSk7CisKKyAgICAvLyBC
dXR0b24gMSB3aWxsIGJlIHNsb3R0ZWQKKyAgICBjb25zdCBzbG90ID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgic2xvdCIpOworICAgIHNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQoc2xvdCk7CisKKyAg
ICBjb25zdCBidXR0b24yID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYnV0dG9uIik7CisgICAg
YnV0dG9uMi5pZCA9ICJidXR0b24tMiI7CisgICAgYnV0dG9uMi50ZXh0Q29udGVudCA9ICJCdXR0
b24gMiAoaW5lcnQpIjsKKyAgICBzaGFkb3dSb290LmFwcGVuZENoaWxkKGJ1dHRvbjIpOworCisg
ICAgZnVuY3Rpb24gdGVzdENhbkZvY3VzKHNlbGVjdG9yLCBjYW5Gb2N1cywgb3B0X2NvbnRleHQp
IHsKKyAgICAgIGxldCBjb250ZXh0ID0gb3B0X2NvbnRleHQgfHwgZG9jdW1lbnQ7CisgICAgICBj
b25zdCBlbGVtZW50ID0gY29udGV4dC5xdWVyeVNlbGVjdG9yKHNlbGVjdG9yKTsKKyAgICAgIGxl
dCBmb2N1c2VkRWxlbWVudCA9IG51bGw7CisgICAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIo
ImZvY3VzIiwgZnVuY3Rpb24oKSB7IGZvY3VzZWRFbGVtZW50ID0gZWxlbWVudDsgfSwgZmFsc2Up
OworICAgICAgZWxlbWVudC5mb2N1cygpOworICAgICAgYXNzZXJ0X2VxdWFscygoZm9jdXNlZEVs
ZW1lbnQgPT09IGVsZW1lbnQpLCBjYW5Gb2N1cyk7CisgICAgfQorCisgICAgdGVzdCgoKSA9PiB7
CisgICAgICB0ZXN0Q2FuRm9jdXMoIiNidXR0b24tMSIsIGZhbHNlKTsKKyAgICAgIHRlc3RDYW5G
b2N1cygiI2J1dHRvbi0yIiwgZmFsc2UsIHNoYWRvd1Jvb3QpOworICAgIH0sICJpbmVydCBvbiBT
aGFkb3cgaG9zdCBhZmZlY3RzIGNvbnRlbnQgaW4gc2hhZG93Iik7CisgIDwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1pbmxpbmVzLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0
LWlubGluZXMudGVudGF0aXZlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zY2Q3MDZjOTIwNmNi
YzVhNjA2MThhYTM3MjM4NmMxMDNkYzE4MTQ1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1pbmxpbmVzLnRl
bnRhdGl2ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACitDbGljayBtZSBDbGljayBtZQor
Q2xpY2sgbWUKK0NsaWNrIG1lCisKK0ZBSUwgVGVzdHMgdGhhdCBpbmVydCBpbmxpbmVzIGRvIG5v
dCByZWNlaXZlIG1vdXNlIGV2ZW50cy4gVG8gdGVzdCBtYW51YWxseSwgY2xpY2sgb24gYWxsIHRo
ZSAiQ2xpY2sgbWUicy4gVGhlIHRlc3QgZmFpbHMgaWYgeW91IHNlZSByZWQuIGFzc2VydF9mYWxz
ZTogbm8gZXZlbnQgc2hvdWxkIGJlIGZpcmVkIG9uIGEgZXhwZWN0ZWQgZmFsc2UgZ290IHRydWUK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9pbmVydC9pbmVydC1pbmxpbmVzLnRlbnRhdGl2ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1pbmxpbmVzLnRlbnRhdGl2ZS5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmIwNTZjNjQ5NWQyYzU0NzMzYmVlNmFiNzk2MzMyYmE4OWYwMWIzNzkK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2luZXJ0L2luZXJ0LWlubGluZXMudGVudGF0aXZlLmh0bWwKQEAgLTAsMCArMSw1NSBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAgPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0i
dXRmLTgiIC8+CisgICAgPHRpdGxlPmluZXJ0IGlubGluZXM8L3RpdGxlPgorICAgIDxsaW5rIHJl
bD0iYXV0aG9yIiB0aXRsZT0iQWxpY2UgQm94aGFsbCIgaHJlZj0iYWJveGhhbGxAY2hyb21pdW0u
b3JnIj4KKyAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3Jp
cHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwv
c2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Rkcml2ZXIuanMiPjwvc2Ny
aXB0PgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Rkcml2ZXItdmVuZG9yLmpzIj48
L3NjcmlwdD4KKyAgPC9oZWFkPgorPGJvZHk+Cis8YSBpbmVydCBpZD0iYSIgaHJlZj0iamF2YXNj
cmlwdDp2b2lkKDApIj5DbGljayBtZTwvYT4KKzxidXR0b24gaW5lcnQgaWQ9ImJ1dHRvbiI+Q2xp
Y2sgbWU8L2J1dHRvbj4KKzxkaXYgaW5lcnQgaWQ9ImRpdiIgc3R5bGU9ImJhY2tncm91bmQtY29s
b3I6IGJsdWU7IHdpZHRoOiA1MHB4OyBoZWlnaHQ6IDUwcHgiPkNsaWNrIG1lPC9kaXY+Cis8c3Bh
biBpbmVydCBpZD0ic3BhbiI+Q2xpY2sgbWU8L3NwYW4+Cis8c2NyaXB0PgorZnVuY3Rpb24gZXZl
bnRGaXJlZE9uSW5lcnRFbGVtZW50KGUpIHsKKyAgICBlLnRhcmdldC5zdHlsZS5iYWNrZ3JvdW5k
ID0gJ3JlZCc7CisgICAgaW5lcnRFbGVtZW50RmlyZWRPbiA9IHRydWU7Cit9CisKK2luZXJ0RWxl
bWVudHMgPSBbJ2EnLCAnYnV0dG9uJywgJ2RpdicsICdzcGFuJ10KK2luZXJ0RWxlbWVudHMuZm9y
RWFjaChmdW5jdGlvbihpZCkgeworICAgIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZChpZCk7CisgICAgZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGV2ZW50RmlyZWRP
bkluZXJ0RWxlbWVudCk7CisgICAgZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUn
LCBldmVudEZpcmVkT25JbmVydEVsZW1lbnQpOworfSk7CisKK2RvY3VtZW50LmFkZEV2ZW50TGlz
dGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oZSkgeworICAgIGRvY3VtZW50LmZpcmVkT24gPSB0cnVl
OworfSk7CisKK3Byb21pc2VfdGVzdChhc3luYyAoKSA9PiB7CisgICAgZm9yIChsZXQgaWQgb2Yg
aW5lcnRFbGVtZW50cykgeworICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKGlkKTsKKyAgICAgICAgaW5lcnRFbGVtZW50RmlyZWRPbiA9IGZhbHNlOworICAgICAg
ICBkb2N1bWVudC5maXJlZE9uID0gZmFsc2U7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgYXdh
aXQgdGVzdF9kcml2ZXIuY2xpY2soZWxlbWVudCk7CisgICAgICAgICAgYXNzZXJ0X2ZhbHNlKGlu
ZXJ0RWxlbWVudEZpcmVkT24sICdubyBldmVudCBzaG91bGQgYmUgZmlyZWQgb24gJyArIGlkKTsK
KyAgICAgICAgICBhc3NlcnRfdHJ1ZShkb2N1bWVudC5maXJlZE9uLCAnZXZlbnQgc2hvdWxkIGJl
IGZpcmVkIG9uIGRvY3VtZW50IGluc3RlYWQgb2YgJyArIGlkKTsKKyAgICAgICAgfSBjYXRjaCAo
ZSkgeworICAgICAgICAgIC8vIHRlc3QgZHJpdmVyIGRldGVjdHMgaW5lcnQgZWxlbWVudHMgYXMg
dW5jbGlja2FibGUKKyAgICAgICAgICAvLyBhbmQgdGhyb3dzIGFuIGVycm9yCisgICAgICAgICAg
YXNzZXJ0X2ZhbHNlKGluZXJ0RWxlbWVudEZpcmVkT24sICdubyBldmVudCBzaG91bGQgYmUgZmly
ZWQgb24gJyArIGlkKTsKKyAgICAgICAgfQorICAgIH0KK30sICdUZXN0cyB0aGF0IGluZXJ0IGlu
bGluZXMgZG8gbm90IHJlY2VpdmUgbW91c2UgZXZlbnRzLiAnICsKKyAgICdUbyB0ZXN0IG1hbnVh
bGx5LCBjbGljayBvbiBhbGwgdGhlICJDbGljayBtZSJzLiBUaGUgdGVzdCAnICsKKyAgICdmYWls
cyBpZiB5b3Ugc2VlIHJlZC4nKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0
L2luZXJ0LWxhYmVsLWZvY3VzLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LWxhYmVsLWZvY3VzLnRl
bnRhdGl2ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWQ1YWIwZWE0ZmE0NDc1NDUyNDk3YTBh
NmU5ZTNhZWYyOTNhMzE4YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtbGFiZWwtZm9jdXMudGVudGF0aXZl
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDcgQEAKK0xhYmVsIGZvciBTdWJtaXQgICAgIExhYmVs
IGZvciBpbnB1dCBpbiBpbmVydCBzdWJ0cmVlCisKKworUEFTUyBDYWxsaW5nIGZvY3VzKCkgb24g
YW4gaW5lcnQgbGFiZWwgc2hvdWxkIHN0aWxsIHNlbmQgZm9jdXMgdG8gaXRzIHRhcmdldC4KK1BB
U1MgQ2xpY2tpbmcgb24gYW4gaW5lcnQgbGFiZWwgc2hvdWxkIHNlbmQgZm9jdXMgdG8gZG9jdW1l
bnQuYm9keS4KK1BBU1MgQ2FsbGluZyBmb2N1cygpIG9uIGEgbGFiZWwgZm9yIGEgY29udHJvbCB3
aGljaCBpcyBpbiBhbiBpbmVydCBzdWJ0cmVlIHNob3VsZCBoYXZlIG5vIGVmZmVjdC4KKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVy
dC9pbmVydC1sYWJlbC1mb2N1cy50ZW50YXRpdmUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtbGFiZWwtZm9jdXMudGVudGF0aXZl
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uOGJiZTFlY2ExNWM3ZDhmMmY5ZmQ1ZWE0OGMzM2NkMGE1ZDUwOThl
MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaW5lcnQvaW5lcnQtbGFiZWwtZm9jdXMudGVudGF0aXZlLmh0bWwKQEAgLTAsMCAr
MSw1MyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAgPGhlYWQ+CisgICAgPG1ldGEgY2hh
cnNldD0idXRmLTgiIC8+CisgICAgPHRpdGxlPmluZXJ0IHdpdGggbGFiZWwvZm9yPC90aXRsZT4K
KyAgICA8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkFsaWNlIEJveGhhbGwiIGhyZWY9ImFib3ho
YWxsQGNocm9taXVtLm9yZyI+CisgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5l
c3MuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
cmVwb3J0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0ZHJp
dmVyLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0ZHJpdmVy
LXZlbmRvci5qcyI+PC9zY3JpcHQ+CisgIDwvaGVhZD4KKyAgPGJvZHk+CisgICAgPGxhYmVsIGlu
ZXJ0IGlkPSJmb3Itc3VibWl0IiBmb3I9InN1Ym1pdCI+TGFiZWwgZm9yIFN1Ym1pdDwvbGFiZWw+
CisgICAgPGlucHV0IGlkPSJ0ZXh0IiB0eXBlPSJ0ZXh0Ij4KKyAgICA8aW5wdXQgaWQ9InN1Ym1p
dCIgdHlwZT0ic3VibWl0Ij4KKworICAgIDxsYWJlbCBpZD0iZm9yLWlucHV0LWluLWluZXJ0LXN1
YnRyZWUiCisgICAgICAgICAgIGZvcj0iaW5wdXQtaW4taW5lcnQtc3VidHJlZSI+TGFiZWwgZm9y
IGlucHV0IGluIGluZXJ0IHN1YnRyZWU8L2xhYmVsPgorICAgIDxkaXYgaW5lcnQ+CisgICAgICA8
aW5wdXQgaWQ9ImlucHV0LWluLWluZXJ0LXN1YnRyZWUiPjwvaW5wdXQ+CisgICAgPC9kaXY+CisK
KyAgICA8c2NyaXB0PgorICAgICAgdGVzdCgoKSA9PiB7CisgICAgICAgIGxhYmVsID0gZG9jdW1l
bnQucXVlcnlTZWxlY3RvcignI2Zvci1zdWJtaXQnKTsKKyAgICAgICAgbGFiZWwuZm9jdXMoKTsK
KyAgICAgICAgYXNzZXJ0X2VxdWFscyhkb2N1bWVudC5hY3RpdmVFbGVtZW50LCBkb2N1bWVudC5x
dWVyeVNlbGVjdG9yKCcjc3VibWl0JykpOworICAgICAgfSwgJ0NhbGxpbmcgZm9jdXMoKSBvbiBh
biBpbmVydCBsYWJlbCBzaG91bGQgc3RpbGwgc2VuZCBmb2N1cyB0byBpdHMgdGFyZ2V0LicpOwor
CisgICAgICBwcm9taXNlX3Rlc3QoYXN5bmMgKCkgPT4geworICAgICAgICB0ZXh0ID0gZG9jdW1l
bnQucXVlcnlTZWxlY3RvcignI3RleHQnKTsKKyAgICAgICAgdGV4dC5mb2N1cygpOworICAgICAg
ICBsYWJlbCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNmb3Itc3VibWl0Jyk7CisgICAgICAg
IHRyeSB7CisgICAgICAgICAgYXdhaXQgdGVzdF9kcml2ZXIuY2xpY2sobGFiZWwpOworICAgICAg
ICAgIGFzc2VydF9lcXVhbHMoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCwgZG9jdW1lbnQuYm9keSk7
CisgICAgICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgICAvLyB0ZXN0IGRyaXZlciBkZXRlY3Rz
IGluZXJ0IGVsZW1lbnRzIGFzIHVuY2xpY2thYmxlCisgICAgICAgICAgLy8gYW5kIHRocm93cyBh
biBlcnJvcgorICAgICAgICB9CisgICAgICB9LCAnQ2xpY2tpbmcgb24gYW4gaW5lcnQgbGFiZWwg
c2hvdWxkIHNlbmQgZm9jdXMgdG8gZG9jdW1lbnQuYm9keS4nKTsKKworICAgICAgdGVzdCgoKSA9
PiB7CisgICAgICAgIHRleHQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjdGV4dCcpOworICAg
ICAgICB0ZXh0LmZvY3VzKCk7CisKKyAgICAgICAgbGFiZWwgPSBkb2N1bWVudC5xdWVyeVNlbGVj
dG9yKCcjZm9yLWlucHV0LWluLWluZXJ0LXN1YnRyZWUnKTsKKyAgICAgICAgbGFiZWwuZm9jdXMo
KTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhkb2N1bWVudC5hY3RpdmVFbGVtZW50LCB0ZXh0KTsK
KyAgICAgIH0sICdDYWxsaW5nIGZvY3VzKCkgb24gYSBsYWJlbCBmb3IgYSBjb250cm9sIHdoaWNo
IGlzIGluIGFuIGluZXJ0IHN1YnRyZWUgJyArCisgICAgICAgICAnc2hvdWxkIGhhdmUgbm8gZWZm
ZWN0LicpOworPC9zY3JpcHQ+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LW5vZGUtaXMtdW5lZGl0YWJs
ZS50ZW50YXRpdmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1ub2RlLWlzLXVuZWRpdGFibGUudGVudGF0aXZlLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNDBhNTlkNjUxYjUyODFiZDUxMTA4ZjVkZjMxYWQ0ODcw
N2IyZjk4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1ub2RlLWlzLXVuZWRpdGFibGUudGVudGF0aXZlLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK0knbSBub3QgZWRpdGFibGUuIGFJJ20gZWRpdGFi
bGUuCisKK1BBU1MgQ2FuJ3QgZWRpdCBpbmVydCBjb250ZW50ZWRpdGFibGUKK1BBU1MgQ2FuIGVk
aXQgbm9uLWluZXJ0IGNvbnRlbnRlZGl0YWJsZQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LW5vZGUtaXMtdW5lZGl0
YWJsZS50ZW50YXRpdmUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaW5lcnQvaW5lcnQtbm9kZS1pcy11bmVkaXRhYmxlLnRlbnRhdGl2ZS5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjZkYTIzNzlmYWQ0Mjk3MmQ0ODM5MTI5YzhkYjBiZWQ3YmJkMmFkZWMKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2luZXJ0L2luZXJ0LW5vZGUtaXMtdW5lZGl0YWJsZS50ZW50YXRpdmUuaHRtbApAQCAtMCwwICsx
LDM3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorICA8aGVhZD4KKyAgICA8bWV0YSBjaGFy
c2V0PSJ1dGYtOCIgLz4KKyAgICA8dGl0bGU+aW5lcnQgbm9kZXMgYXJlIHVuZWRpdGFibGU8L3Rp
dGxlPgorICAgIDxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iQWxpY2UgQm94aGFsbCIgaHJlZj0i
YWJveGhhbGxAY2hyb21pdW0ub3JnIj4KKyAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0
aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhh
cm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rl
c3Rkcml2ZXIuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Rk
cml2ZXItdmVuZG9yLmpzIj48L3NjcmlwdD4KKyAgPC9oZWFkPgorPGJvZHk+Cis8c3BhbiBpbmVy
dCBpZD0ibm90LWVkaXRhYmxlIiBjb250ZW50ZWRpdGFibGU+SSdtIG5vdCBlZGl0YWJsZS48L3Nw
YW4+Cis8c3BhbiBpZD0iZWRpdGFibGUiIGNvbnRlbnRlZGl0YWJsZT5JJ20gZWRpdGFibGUuPC9z
cGFuPgorPHNjcmlwdD4KK3ZhciBub3RFZGl0YWJsZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3Io
JyNub3QtZWRpdGFibGUnKTsKK3ZhciBlZGl0YWJsZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3Io
JyNlZGl0YWJsZScpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgKCkgPT4geworICAgIG5vdEVkaXRh
YmxlLmZvY3VzKCk7CisgICAgdmFyIG9sZFZhbHVlID0gbm90RWRpdGFibGUudGV4dENvbnRlbnQ7
CisgICAgYXNzZXJ0X2VxdWFscyhvbGRWYWx1ZSwgIkknbSBub3QgZWRpdGFibGUuIik7CisgICAg
YXdhaXQgdGVzdF9kcml2ZXIuc2VuZF9rZXlzKGRvY3VtZW50LmJvZHksICdhJyk7CisgICAgYXNz
ZXJ0X2VxdWFscyhub3RFZGl0YWJsZS50ZXh0Q29udGVudCwgb2xkVmFsdWUpOworfSwgIkNhbid0
IGVkaXQgaW5lcnQgY29udGVudGVkaXRhYmxlIik7CisKK3Byb21pc2VfdGVzdChhc3luYyAoKSA9
PiB7CisgICAgZWRpdGFibGUuZm9jdXMoKTsKKyAgICB2YXIgb2xkVmFsdWUgPSBlZGl0YWJsZS50
ZXh0Q29udGVudDsKKyAgICBhc3NlcnRfZXF1YWxzKG9sZFZhbHVlLCAiSSdtIGVkaXRhYmxlLiIp
OworICAgIGF3YWl0IHRlc3RfZHJpdmVyLnNlbmRfa2V5cyhkb2N1bWVudC5ib2R5LCAnYScpOwor
ICAgIGFzc2VydF9ub3RfZXF1YWxzKGVkaXRhYmxlLnRleHRDb250ZW50LCBvbGRWYWx1ZSk7Cit9
LCAiQ2FuIGVkaXQgbm9uLWluZXJ0IGNvbnRlbnRlZGl0YWJsZSIpOworCis8L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtbm9kZS1pcy11bmZvY3VzYWJsZS50ZW50YXRpdmUt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9pbmVydC9pbmVydC1ub2RlLWlzLXVuZm9jdXNhYmxlLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uOTZhZWE4YmI1NTU3ZDc2OGNhNWVlMGNjYWM3ZDkyZGY4YmY1Nzc5ZgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvaW5lcnQvaW5lcnQtbm9kZS1pcy11bmZvY3VzYWJsZS50ZW50YXRpdmUtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMTMgQEAKK091dHNpZGUgb2YgaW5lcnQgY29udGFpbmVyICBJbmVydCBidXR0
b24KKworSSdtIGVkaXRhYmxlCitJJ20gdGFiaW5kZXhlZC4KKyBMaW5rCisKK1BBU1MgQnV0dG9u
IG91dHNpZGUgb2YgaW5lcnQgY29udGFpbmVyIGlzIGZvY3VzYWJsZS4KK1BBU1MgQnV0dG9uIHdp
dGggaW5lcnQgYXRyaWJ1dGUgaXMgdW5mb2N1c2FibGUuCitQQVNTIEFsbCBmb2N1c2FibGUgZWxl
bWVudHMgaW5zaWRlIGluZXJ0IHN1YnRyZWUgYXJlIHVuZm9jdXNhYmxlCitQQVNTIENhbiBnZXQg
aW5lcnQgdmlhIHByb3BlcnR5CitQQVNTIEVsZW1lbnRzIGluc2lkZSBvZiBpbmVydCBzdWJ0cmVl
cyByZXR1cm4gZmFsc2Ugd2hlbiBnZXR0aW5nICdpbmVydCcKK1BBU1MgU2V0dGluZyBpbmVydCB2
aWEgcHJvcGVydHkgY29ycmVjdGx5IG1vZGlmaWVzIGluZXJ0IHN0YXRlCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQt
bm9kZS1pcy11bmZvY3VzYWJsZS50ZW50YXRpdmUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtbm9kZS1pcy11bmZvY3VzYWJsZS50
ZW50YXRpdmUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YjVkZTM3ZmRjYWRlZGI5ZDk4ZWM0NGM5YzNjMjBh
ZWE1MmEwNDAwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1ub2RlLWlzLXVuZm9jdXNhYmxlLnRlbnRhdGl2
ZS5odG1sCkBAIC0wLDAgKzEsNzkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+CisgIDxoZWFk
PgorICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04IiAvPgorICAgIDx0aXRsZT5pbmVydCBub2RlcyBh
cmUgdW5mb2N1c2FibGU8L3RpdGxlPgorICAgIDxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iQWxp
Y2UgQm94aGFsbCIgaHJlZj0iYWJveGhhbGxAY2hyb21pdW0ub3JnIj4KKyAgICA8c2NyaXB0IHNy
Yz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9
Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICA8L2hlYWQ+Cis8
Ym9keSBpZD0iYm9keSIgdGFiaW5kZXg9IjEiPgorICA8YnV0dG9uIGlkPSJmb2N1c2FibGUiPk91
dHNpZGUgb2YgaW5lcnQgY29udGFpbmVyPC9idXR0b24+CisgIDxidXR0b24gaW5lcnQgaWQ9Imlu
ZXJ0Ij5JbmVydCBidXR0b248L2J1dHRvbj4KKyAgPGRpdiBpbmVydCBpZD0iY29udGFpbmVyIj4K
KyAgICA8aW5wdXQgaWQ9InRleHQiIHR5cGU9InRleHQiPgorICAgIDxpbnB1dCBpZD0iZGF0ZXRp
bWUiIHR5cGU9ImRhdGV0aW1lIj4KKyAgICA8aW5wdXQgaWQ9ImNvbG9yIiB0eXBlPSJjb2xvciI+
CisgICAgPHNlbGVjdCBpZD0ic2VsZWN0Ij4KKyAgICAgICAgPG9wdGdyb3VwIGlkPSJvcHRncm91
cCI+CisgICAgICAgICAgICA8b3B0aW9uIGlkPSJvcHRpb24iPk9wdGlvbjwvb3B0aW9uPgorICAg
ICAgICA8L29wdGdyb3VwPgorICAgIDwvc2VsZWN0PgorICAgIDxkaXYgaWQ9ImNvbnRlbnRlZGl0
YWJsZS1kaXYiIGNvbnRlbnRlZGl0YWJsZT5JJ20gZWRpdGFibGU8L2Rpdj4KKyAgICA8c3BhbiBp
ZD0idGFiaW5kZXgtc3BhbiIgdGFiaW5kZXg9IjAiPkknbSB0YWJpbmRleGVkLjwvZGl2PgorICAg
IDxlbWJlZCBpZD0iZW1iZWQiIHR5cGU9ImFwcGxpY2F0aW9uL3gtYmxpbmstdGVzdC1wbHVnaW4i
IHdpZHRoPTEwMCBoZWlnaHQ9MTAwPjwvZW1iZWQ+CisgICAgPGEgaWQ9ImFuY2hvciIgaHJlZj0i
Ij5MaW5rPC9hPgorICA8L2Rpdj4KKzxzY3JpcHQ+CitmdW5jdGlvbiB0ZXN0Rm9jdXMoZWxlbWVu
dCwgZXhwZWN0Rm9jdXMpIHsKKyAgICBmb2N1c2VkRWxlbWVudCA9IG51bGw7CisgICAgZWxlbWVu
dC5hZGRFdmVudExpc3RlbmVyKCdmb2N1cycsIGZ1bmN0aW9uKCkgeyBmb2N1c2VkRWxlbWVudCA9
IGVsZW1lbnQ7IH0sIGZhbHNlKTsKKyAgICBlbGVtZW50LmZvY3VzKCk7CisgICAgdGhlRWxlbWVu
dCA9IGVsZW1lbnQ7CisgICAgYXNzZXJ0X2VxdWFscyhmb2N1c2VkRWxlbWVudCA9PT0gdGhlRWxl
bWVudCwgZXhwZWN0Rm9jdXMpOworfQorCitmdW5jdGlvbiB0ZXN0VHJlZShlbGVtZW50LCBleHBl
Y3RGb2N1cywgZXhjbHVkZUN1cnJlbnQpIHsKKyAgICBpZiAoZWxlbWVudC5ub2RlVHlwZSA9PSBO
b2RlLkVMRU1FTlRfTk9ERSAmJiAhZXhjbHVkZUN1cnJlbnQpCisgICAgICAgIHRlc3RGb2N1cyhl
bGVtZW50LCBleHBlY3RGb2N1cyk7CisgICAgaWYgKGVsZW1lbnQudGFnTmFtZSA9PT0gIlNFTEVD
VCIpCisgICAgICAgIHJldHVybjsKKyAgICB2YXIgY2hpbGROb2RlcyA9IGVsZW1lbnQuY2hpbGRO
b2RlczsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNoaWxkTm9kZXMubGVuZ3RoOyBpKyspCisg
ICAgICAgIHRlc3RUcmVlKGNoaWxkTm9kZXNbaV0sIGV4cGVjdEZvY3VzKTsKK30KKworCit0ZXN0
KGZ1bmN0aW9uKCkgeworICAgIHRlc3RGb2N1cyhkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZm9j
dXNhYmxlJyksIHRydWUpOworfSwgIkJ1dHRvbiBvdXRzaWRlIG9mIGluZXJ0IGNvbnRhaW5lciBp
cyBmb2N1c2FibGUuIik7CisKK3Rlc3QoZnVuY3Rpb24oKSB7CisgICAgdGVzdEZvY3VzKGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdpbmVydCcpLCBmYWxzZSk7Cit9LCAiQnV0dG9uIHdpdGggaW5l
cnQgYXRyaWJ1dGUgaXMgdW5mb2N1c2FibGUuIik7CisKK3Rlc3QoZnVuY3Rpb24oKSB7CisgICAg
dGVzdFRyZWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnRhaW5lcicpLCBmYWxzZSk7Cit9
LCAiQWxsIGZvY3VzYWJsZSBlbGVtZW50cyBpbnNpZGUgaW5lcnQgc3VidHJlZSBhcmUgdW5mb2N1
c2FibGUiKTsKKwordGVzdChmdW5jdGlvbigpIHsKKyAgICBhc3NlcnRfZmFsc2UoZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoImZvY3VzYWJsZSIpLmluZXJ0LCAiSW5lcnQgbm90IHNldCBleHBsaWNp
dGx5IGlzIGZhbHNlIikKKyAgICBhc3NlcnRfdHJ1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
aW5lcnQiKS5pbmVydCwgIkluZXJ0IHNldCBleHBsaWNpdGx5IGlzIHRydWUiKTsKKyAgICBhc3Nl
cnRfdHJ1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGFpbmVyIikuaW5lcnQsICJJbmVy
dCBzZXQgb24gY29udGFpbmVyIGlzIHRydWUiKTsKK30sICJDYW4gZ2V0IGluZXJ0IHZpYSBwcm9w
ZXJ0eSIpOworCit0ZXN0KGZ1bmN0aW9uKCkgeworICAgIGFzc2VydF9mYWxzZShkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgidGV4dCIpLmluZXJ0LCAiRWxlbWVudHMgaW5zaWRlIG9mIGluZXJ0IHN1
YnRyZWVzIHJldHVybiBmYWxzZSB3aGVuIGdldHRpbmcgaW5lcnQiKTsKK30sICJFbGVtZW50cyBp
bnNpZGUgb2YgaW5lcnQgc3VidHJlZXMgcmV0dXJuIGZhbHNlIHdoZW4gZ2V0dGluZyAnaW5lcnQn
Iik7CisKK3Rlc3QoZnVuY3Rpb24oKSB7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Zv
Y3VzYWJsZScpLmluZXJ0ID0gdHJ1ZTsKKyAgICB0ZXN0Rm9jdXMoZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ2ZvY3VzYWJsZScpLCBmYWxzZSk7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J2luZXJ0JykuaW5lcnQgPSBmYWxzZTsKKyAgICB0ZXN0Rm9jdXMoZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ2luZXJ0JyksIHRydWUpOworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb250
YWluZXInKS5pbmVydCA9IGZhbHNlOworICAgIHRlc3RUcmVlKGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdjb250YWluZXInKSwgdHJ1ZSwgdHJ1ZSk7Cit9LCAiU2V0dGluZyBpbmVydCB2aWEgcHJv
cGVydHkgY29ycmVjdGx5IG1vZGlmaWVzIGluZXJ0IHN0YXRlIik7Cis8L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtbm9kZS1pcy11bnNlbGVjdGFibGUudGVudGF0aXZlLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aW5lcnQvaW5lcnQtbm9kZS1pcy11bnNlbGVjdGFibGUudGVudGF0aXZlLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi41ZmNhMjM4YWY4ZjE0YTE1Yjc5ZjlmYzBhMzFiMzkzNzhmODQxZDY0Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9pbmVydC9pbmVydC1ub2RlLWlzLXVuc2VsZWN0YWJsZS50ZW50YXRpdmUtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsNSBAQAorSGVyZSBpcyBhIHRleHQgbm9kZSB5b3UgY2FuJ3Qgc2VsZWN0Lgor
SSdtIHNlbGVjdGFibGUuCisKK0ZBSUwgSW5lcnQgbm9kZXMgY2Fubm90IGJlIHNlbGVjdGVkLiBh
c3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiSSdtIHNlbGVjdGFibGUuIiBidXQgZ290ICJIZXJlIGlz
IGEgdGV4dCBub2RlIHlvdSBjYW4ndCBzZWxlY3QuXG5JJ20gc2VsZWN0YWJsZS4iCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQv
aW5lcnQtbm9kZS1pcy11bnNlbGVjdGFibGUudGVudGF0aXZlLmh0bWwgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LW5vZGUtaXMtdW5zZWxl
Y3RhYmxlLnRlbnRhdGl2ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI5OWFmMGQ0Y2QxNDJkY2IwNTFhZjUx
ZjQyZDE3NTkxNDJhMDBjNWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LW5vZGUtaXMtdW5zZWxlY3RhYmxl
LnRlbnRhdGl2ZS5odG1sCkBAIC0wLDAgKzEsMjAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
CisgIDxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04IiAvPgorICAgIDx0aXRsZT5pbmVy
dCBub2RlcyBhcmUgdW5zZWxlY3RhYmxlPC90aXRsZT4KKyAgICA8bGluayByZWw9ImF1dGhvciIg
dGl0bGU9IkFsaWNlIEJveGhhbGwiIGhyZWY9ImFib3hoYWxsQGNocm9taXVtLm9yZyI+CisgICAg
PHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgIDxz
Y3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAg
PC9oZWFkPgorPGJvZHk+CisgIDxkaXYgaW5lcnQ+SGVyZSBpcyBhIHRleHQgbm9kZSB5b3UgY2Fu
J3Qgc2VsZWN0LjwvZGl2PgorICA8ZGl2PkknbSBzZWxlY3RhYmxlLjwvZGl2PgorPHNjcmlwdD4K
K3Rlc3QoZnVuY3Rpb24oKSB7CisgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ1NlbGVjdEFsbCcp
OworICAgIGFzc2VydF9lcXVhbHMod2luZG93LmdldFNlbGVjdGlvbigpLnRvU3RyaW5nKCkudHJp
bSgpLCAiSSdtIHNlbGVjdGFibGUuIik7Cit9LCAiSW5lcnQgbm9kZXMgY2Fubm90IGJlIHNlbGVj
dGVkLiIpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LW9uLXNsb3Rz
LnRlbnRhdGl2ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LW9uLXNsb3RzLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uOGYyYjEyNThkMzUyY2RmODkzNDBjN2NjMzA5N2JiOTQ0ZTdkYzc0ZgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvaW5lcnQvaW5lcnQtb24tc2xvdHMudGVudGF0aXZlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDUgQEAKK0J1dHRvbiAxIHNob3VsZCBiZSBpbmVydCwgYW5kIEJ1dHRvbiAyIHNob3VsZCBub3Qg
YmUgaW5lcnQuCitCdXR0b24gMSAoaW5lcnQpQnV0dG9uIDIgKG5vdCBpbmVydCkKKworRkFJTCBp
bmVydCBpbnNpZGUgU2hhZG93Um9vdCBhZmZlY3RzIHNsb3R0ZWQgY29udGVudCBhc3NlcnRfZXF1
YWxzOiBleHBlY3RlZCBmYWxzZSBidXQgZ290IHRydWUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1vbi1zbG90cy50
ZW50YXRpdmUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvaW5lcnQvaW5lcnQtb24tc2xvdHMudGVudGF0aXZlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGQwZDdl
YzZkNDZkMWVmMzQ0MTdkY2YwOTljZTUxNTZiYjE0OWJlYQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtb24t
c2xvdHMudGVudGF0aXZlLmh0bWwKQEAgLTAsMCArMSw1NyBAQAorPCFET0NUWVBFIGh0bWw+Cis8
aHRtbD4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04IiAvPgorICAgIDx0aXRsZT5p
bmVydCBpbnNpZGUgU2hhZG93Um9vdCBhZmZlY3RzIHNsb3R0ZWQgY29udGVudDwvdGl0bGU+Cisg
ICAgPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJBbGljZSBCb3hoYWxsIiBocmVmPSJhYm94aGFs
bEBjaHJvbWl1bS5vcmciPgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3Jl
cG9ydC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgPGRpdj5CdXR0b24gMSBzaG91
bGQgYmUgaW5lcnQsIGFuZCBCdXR0b24gMiBzaG91bGQgbm90IGJlIGluZXJ0LjwvZGl2PgorICA8
ZGl2IGlkPSJzaGFkb3ctaG9zdCI+CisgICAgPGJ1dHRvbiBzbG90PSJzbG90LTEiIGlkPSJidXR0
b24tMSI+QnV0dG9uIDEgKGluZXJ0KTwvYnV0dG9uPgorICAgIDxidXR0b24gc2xvdD0ic2xvdC0y
IiBpZD0iYnV0dG9uLTIiPkJ1dHRvbiAyIChub3QgaW5lcnQpPC9idXR0b24+CisgIDwvZGl2Pgor
ICA8c2NyaXB0PgorICAgIC8qCisgICAgRXZlbnR1YWwgZmxhdHRlbmVkIHRyZWUgc3RydWN0dXJl
OgorCisgICAgPGRpdiBpZD0ic2hhZG93LWhvc3QiPgorICAgICAgI3NoYWRvdy1yb290IChvcGVu
KQorICAgICAgfCA8c2xvdCBpZD0ic2xvdC0xIiBpbmVydD4KKyAgICAgIDogICA8YnV0dG9uIGlk
PSJidXR0b24tMSI+QnV0dG9uIDE8L2J1dHRvbj4gPCEtLSBzbG90dGVkIC0tPgorICAgICAgfCA8
L3Nsb3Q+CisgICAgICB8IDxzbG90IGlkPSJzbG90LTIiPgorICAgICAgOiAgIDxidXR0b24gaWQ9
ImJ1dHRvbi0yIj5CdXR0b24gMjwvYnV0dG9uPiA8IS0tIHNsb3R0ZWQgLS0+CisgICAgICB8IDwv
c2xvdD4KKyAgICA8L2Rpdj4KKyAgICAqLworCisgICAgY29uc3Qgc2hhZG93SG9zdCA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJzaGFkb3ctaG9zdCIpOworICAgIGNvbnN0IHNoYWRvd1Jvb3Qg
PSBzaGFkb3dIb3N0LmF0dGFjaFNoYWRvdyh7IG1vZGU6ICJvcGVuIiB9KTsKKworICAgIGNvbnN0
IHNsb3QxID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2xvdCIpOworICAgIHNsb3QxLm5hbWUg
PSAic2xvdC0xIjsKKyAgICBzbG90MS5pbmVydCA9IHRydWU7CisgICAgc2hhZG93Um9vdC5hcHBl
bmRDaGlsZChzbG90MSk7CisKKyAgICBjb25zdCBzbG90MiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoInNsb3QiKTsKKyAgICBzbG90Mi5uYW1lID0gInNsb3QtMiI7CisgICAgc2hhZG93Um9vdC5h
cHBlbmRDaGlsZChzbG90Mik7CisKKyAgICBmdW5jdGlvbiB0ZXN0Q2FuRm9jdXMoc2VsZWN0b3Is
IGNhbkZvY3VzKSB7CisgICAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rv
cihzZWxlY3Rvcik7CisgICAgICBsZXQgZm9jdXNlZEVsZW1lbnQgPSBudWxsOworICAgICAgZWxl
bWVudC5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsIGZ1bmN0aW9uKCkgeyBmb2N1c2VkRWxlbWVu
dCA9IGVsZW1lbnQ7IH0sIGZhbHNlKTsKKyAgICAgIGVsZW1lbnQuZm9jdXMoKTsKKyAgICAgIGFz
c2VydF9lcXVhbHMoKGZvY3VzZWRFbGVtZW50ID09PSBlbGVtZW50KSwgY2FuRm9jdXMpOworICAg
IH0KKworICAgIHRlc3QoKCkgPT4geworICAgICAgdGVzdENhbkZvY3VzKCIjYnV0dG9uLTEiLCBm
YWxzZSk7CisgICAgICB0ZXN0Q2FuRm9jdXMoIiNidXR0b24tMiIsIHRydWUpOworICAgIH0sICJp
bmVydCBpbnNpZGUgU2hhZG93Um9vdCBhZmZlY3RzIHNsb3R0ZWQgY29udGVudCIpOworICA8L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtcmV0YXJnZXRpbmctaWZyYW1lLnRl
bnRhdGl2ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2luZXJ0L2luZXJ0LXJldGFyZ2V0aW5nLWlmcmFtZS50ZW50YXRpdmUtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjI1OTliZTcxYTgzZWYwOGVkNTYxOWI5NGNjYjQ2NGZjMWJjOTc3
MDkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2luZXJ0L2luZXJ0LXJldGFyZ2V0aW5nLWlmcmFtZS50ZW50YXRpdmUtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsNDcgQEAKK0NPTlNPTEUgTUVTU0FHRTogRXJyb3I6IGFzc2VydF9l
cXVhbHM6IGV4cGVjdGVkIEVsZW1lbnQgbm9kZSA8ZmllbGRzZXQgaWQ9ImFuY2VzdG9yQ29udGFp
bmVyIj4KKyAgICA8bGVnZW5kPk5vbi1pbmVydCBhLi4uIGJ1dCBnb3QgRWxlbWVudCBub2RlIDxi
dXR0b24gaWQ9ImZvcmVncm91bmQiIGNsYXNzPSJjbGlja2VkIj5mb3JlZ3JvdW5kPC9idXR0b24+
CitDT05TT0xFIE1FU1NBR0U6IEVycm9yOiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCBFbGVtZW50
IG5vZGUgPGZpZWxkc2V0IGlkPSJhbmNlc3RvckNvbnRhaW5lciI+CisgICAgPGxlZ2VuZD5Ob24t
aW5lcnQgYS4uLiBidXQgZ290IEVsZW1lbnQgbm9kZSA8YnV0dG9uIGlkPSJmb3JlZ3JvdW5kIiBj
bGFzcz0iY2xpY2tlZCI+Zm9yZWdyb3VuZDwvYnV0dG9uPgorQ09OU09MRSBNRVNTQUdFOiBFcnJv
cjogYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgRWxlbWVudCBub2RlIDxmaWVsZHNldCBpZD0iYW5j
ZXN0b3JDb250YWluZXIiPgorICAgIDxsZWdlbmQ+Tm9uLWluZXJ0IGEuLi4gYnV0IGdvdCBFbGVt
ZW50IG5vZGUgPGJ1dHRvbiBpZD0iZm9yZWdyb3VuZCIgY2xhc3M9ImNsaWNrZWQiPmZvcmVncm91
bmQ8L2J1dHRvbj4KK0NPTlNPTEUgTUVTU0FHRTogRXJyb3I6IGFzc2VydF9lcXVhbHM6IGV4cGVj
dGVkIEVsZW1lbnQgbm9kZSA8ZmllbGRzZXQgaWQ9ImFuY2VzdG9yQ29udGFpbmVyIj4KKyAgICA8
bGVnZW5kPk5vbi1pbmVydCBhLi4uIGJ1dCBnb3QgRWxlbWVudCBub2RlIDxidXR0b24gaWQ9ImZv
cmVncm91bmQiIGNsYXNzPSJjbGlja2VkIj5mb3JlZ3JvdW5kPC9idXR0b24+CitDT05TT0xFIE1F
U1NBR0U6IEVycm9yOiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCBFbGVtZW50IG5vZGUgPGZpZWxk
c2V0IGlkPSJhbmNlc3RvckNvbnRhaW5lciI+CisgICAgPGxlZ2VuZD5Ob24taW5lcnQgYS4uLiBi
dXQgZ290IEVsZW1lbnQgbm9kZSA8YnV0dG9uIGlkPSJmb3JlZ3JvdW5kIiBjbGFzcz0iY2xpY2tl
ZCI+Zm9yZWdyb3VuZDwvYnV0dG9uPgorQ09OU09MRSBNRVNTQUdFOiBFcnJvcjogYXNzZXJ0X2Vx
dWFsczogZXhwZWN0ZWQgRWxlbWVudCBub2RlIDxmaWVsZHNldCBpZD0iYW5jZXN0b3JDb250YWlu
ZXIiPgorICAgIDxsZWdlbmQ+Tm9uLWluZXJ0IGEuLi4gYnV0IGdvdCBFbGVtZW50IG5vZGUgPGJ1
dHRvbiBpZD0iZm9yZWdyb3VuZCIgY2xhc3M9ImNsaWNrZWQiPmZvcmVncm91bmQ8L2J1dHRvbj4K
K0NPTlNPTEUgTUVTU0FHRTogRXJyb3I6IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIEVsZW1lbnQg
bm9kZSA8ZmllbGRzZXQgaWQ9ImFuY2VzdG9yQ29udGFpbmVyIj4KKyAgICA8bGVnZW5kPk5vbi1p
bmVydCBhLi4uIGJ1dCBnb3QgRWxlbWVudCBub2RlIDxidXR0b24gaWQ9ImZvcmVncm91bmQiIGNs
YXNzPSJjbGlja2VkIj5mb3JlZ3JvdW5kPC9idXR0b24+CitDT05TT0xFIE1FU1NBR0U6IEVycm9y
OiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCBFbGVtZW50IG5vZGUgPGZpZWxkc2V0IGlkPSJhbmNl
c3RvckNvbnRhaW5lciI+CisgICAgPGxlZ2VuZD5Ob24taW5lcnQgYS4uLiBidXQgZ290IEVsZW1l
bnQgbm9kZSA8YnV0dG9uIGlkPSJmb3JlZ3JvdW5kIiBjbGFzcz0iY2xpY2tlZCI+Zm9yZWdyb3Vu
ZDwvYnV0dG9uPgorQ09OU09MRSBNRVNTQUdFOiBFcnJvcjogYXNzZXJ0X2VxdWFsczogZXhwZWN0
ZWQgRWxlbWVudCBub2RlIDxmaWVsZHNldCBpZD0iYW5jZXN0b3JDb250YWluZXIiPgorICAgIDxs
ZWdlbmQ+Tm9uLWluZXJ0IGEuLi4gYnV0IGdvdCBFbGVtZW50IG5vZGUgPGJ1dHRvbiBpZD0iZm9y
ZWdyb3VuZCIgY2xhc3M9ImNsaWNrZWQiPmZvcmVncm91bmQ8L2J1dHRvbj4KK0NPTlNPTEUgTUVT
U0FHRTogRXJyb3I6IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIEVsZW1lbnQgbm9kZSA8ZmllbGRz
ZXQgaWQ9ImFuY2VzdG9yQ29udGFpbmVyIj4KKyAgICA8bGVnZW5kPk5vbi1pbmVydCBhLi4uIGJ1
dCBnb3QgRWxlbWVudCBub2RlIDxidXR0b24gaWQ9ImZvcmVncm91bmQiIGNsYXNzPSJjbGlja2Vk
Ij5mb3JlZ3JvdW5kPC9idXR0b24+CitDT05TT0xFIE1FU1NBR0U6IEVycm9yOiBhc3NlcnRfZXF1
YWxzOiBleHBlY3RlZCBFbGVtZW50IG5vZGUgPGZpZWxkc2V0IGlkPSJhbmNlc3RvckNvbnRhaW5l
ciI+CisgICAgPGxlZ2VuZD5Ob24taW5lcnQgYS4uLiBidXQgZ290IEVsZW1lbnQgbm9kZSA8YnV0
dG9uIGlkPSJmb3JlZ3JvdW5kIiBjbGFzcz0iY2xpY2tlZCI+Zm9yZWdyb3VuZDwvYnV0dG9uPgor
Q09OU09MRSBNRVNTQUdFOiBFcnJvcjogYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgRWxlbWVudCBu
b2RlIDxmaWVsZHNldCBpZD0iYW5jZXN0b3JDb250YWluZXIiPgorICAgIDxsZWdlbmQ+Tm9uLWlu
ZXJ0IGEuLi4gYnV0IGdvdCBFbGVtZW50IG5vZGUgPGJ1dHRvbiBpZD0iZm9yZWdyb3VuZCIgY2xh
c3M9ImNsaWNrZWQiPmZvcmVncm91bmQ8L2J1dHRvbj4KK0NPTlNPTEUgTUVTU0FHRTogRXJyb3I6
IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIEVsZW1lbnQgbm9kZSA8ZmllbGRzZXQgaWQ9ImFuY2Vz
dG9yQ29udGFpbmVyIj4KKyAgICA8bGVnZW5kPk5vbi1pbmVydCBhLi4uIGJ1dCBnb3QgRWxlbWVu
dCBub2RlIDxidXR0b24gaWQ9ImZvcmVncm91bmQiIGNsYXNzPSJjbGlja2VkIj5mb3JlZ3JvdW5k
PC9idXR0b24+CitDbGljayBvbiAiSW5lcnQgYnV0dG9uIi4KKworVGhlIGJsdWUgc3F1YXJlICgi
Tm9uLWluZXJ0IGFuY2VzdG9yIGNvbnRhaW5lciIpIHNob3VsZCB0dXJuIGdyZWVuLgorVGhlIHll
bGxvdywgc2VtaS10cmFuc3BhcmVudCBzcXVhcmUgKCJOb24taW5lcnQsIGRpc3BsYWNlZCBjb250
YWluZXIiKSBzaG91bGQgbm90IHR1cm4gcmVkLgorIk5vbi1pbmVydCBidXR0b24iIHNob3VsZCBu
b3QgdHVybiByZWQuCisoVGhlIGZ1bGwgdGVzdCBzdWl0ZSBjaGVja3MgYSByYW5nZSBvZiBldmVu
dHMuKQorCitOb24taW5lcnQgYW5jZXN0b3IgY29udGFpbmVyCisgTm9uLWluZXJ0LCBkaXNwbGFj
ZWQgYW5jZXN0b3IKK0luZXJ0IGNvbnRhaW5lcgorZm9yZWdyb3VuZAorCitIYXJuZXNzIEVycm9y
IChGQUlMKSwgbWVzc2FnZSA9IEVycm9yOiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCBFbGVtZW50
IG5vZGUgPGZpZWxkc2V0IGlkPSJhbmNlc3RvckNvbnRhaW5lciI+CisgICAgPGxlZ2VuZD5Ob24t
aW5lcnQgYS4uLiBidXQgZ290IEVsZW1lbnQgbm9kZSA8YnV0dG9uIGlkPSJmb3JlZ3JvdW5kIiBj
bGFzcz0iY2xpY2tlZCI+Zm9yZWdyb3VuZDwvYnV0dG9uPgorCitQQVNTIGVsZW1lbnRzRnJvbVBv
aW50IHJldHVybnMgaW5lcnQgZWxlbWVudAorRkFJTCBUZXN0cyB0aGF0IGFueSBtb3VzZSBldmVu
dCBvbiBhIG5vbi1pbmVydCBlbGVtZW50IGlzIGNvcnJlY3RseSB0YXJnZXRlZCB0byB0aGF0IGVs
ZW1lbnQgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6ICJkaWQg
bm90IGdldCBhdXhjbGljayBvbiBmb3JlZ3JvdW5kIgorRkFJTCBUZXN0cyB0aGF0IGFueSBtb3Vz
ZSBldmVudCBvbiBhbiBpbmVydCBlbGVtZW50IGlzIHRhcmdldGVkIHRvIHRoZSBuZWFyZXN0IG5v
bi1pbmVydCBhbmNlc3RvciBhdCB0aGUgc2FtZSBjb29yZGluYXRlcyBwcm9taXNlX3Rlc3Q6IFVu
aGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogImRpZCBub3QgZ2V0IG1vdXNlb3ZlciBvbiBh
bmNlc3RvckNvbnRhaW5lciIKK1BBU1MgVGVzdHMgdGhhdCBhbnkgcG9pbnRlciBldmVudCBvbiBh
IG5vbi1pbmVydCBlbGVtZW50IGlzIGNvcnJlY3RseSB0YXJnZXRlZCB0byB0aGF0IGVsZW1lbnQK
K0ZBSUwgVGVzdHMgdGhhdCBhbnkgcG9pbnRlciBldmVudCBvbiBhbiBpbmVydCBlbGVtZW50IGlz
IHRhcmdldGVkIHRvIHRoZSBuZWFyZXN0IG5vbi1pbmVydCBhbmNlc3RvciBhdCB0aGUgc2FtZSBj
b29yZGluYXRlcyBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTog
ImRpZCBub3QgZ2V0IHBvaW50ZXJvdmVyIG9uIGFuY2VzdG9yQ29udGFpbmVyIgorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2lu
ZXJ0LXJldGFyZ2V0aW5nLWlmcmFtZS50ZW50YXRpdmUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtcmV0YXJnZXRpbmctaWZyYW1l
LnRlbnRhdGl2ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU3OWZjNTdiZTI1OGE3MDlhOWQyMmNiMjYzYTY0
MjJkOWJkYjc5NTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LXJldGFyZ2V0aW5nLWlmcmFtZS50ZW50YXRp
dmUuaHRtbApAQCAtMCwwICsxLDI3OSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFk
PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGRyaXZlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iL3Jlc291cmNlcy90ZXN0ZHJpdmVyLWFjdGlvbnMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii9yZXNvdXJjZXMvdGVzdGRyaXZlci12ZW5kb3IuanMiPjwvc2NyaXB0PgorPHN0eWxlPgor
YnV0dG9uI2ZvcmVncm91bmQsCitidXR0b24jYmFja2dyb3VuZCB7CisgIHBvc2l0aW9uOiBhYnNv
bHV0ZTsKKyAgdG9wOiA3NXB4OworICBsZWZ0OiA1MHB4OworICB3aWR0aDogMTAwcHg7CisgIGhl
aWdodDogMjBweDsKK30KKworYnV0dG9uI2JhY2tncm91bmQgeworICBsZWZ0OiA3NXB4OworICB3
aWR0aDogMTUwcHg7CisgIGhlaWdodDogNDBweDsKKyAgdG9wOiAxMjVweDsKKyAgbGluZS1oZWln
aHQ6IDUzcHg7Cit9CisKKy5jbGlja2VkIHsKKyAgYmFja2dyb3VuZC1jb2xvcjogcmVkOworfQor
CisjYW5jZXN0b3JDb250YWluZXIuY2xpY2tlZCB7CisgIGJhY2tncm91bmQtY29sb3I6IGdyZWVu
OworfQorCisjYW5jZXN0b3JDb250YWluZXIgeworICBwb3NpdGlvbjogYWJzb2x1dGU7CisgIHRv
cDogMjAwcHg7CisgIGxlZnQ6IDEwcHg7CisgIHdpZHRoOiAzMDBweDsKKyAgaGVpZ2h0OiAzMDBw
eDsKKyAgYmFja2dyb3VuZC1jb2xvcjogYmx1ZTsKK30KKworI2Rpc3BsYWNlZEFuY2VzdG9yIHsK
KyAgcG9zaXRpb246IGFic29sdXRlOworICB0b3A6IDEzcHg7CisgIGxlZnQ6IDI0MHB4OworICB3
aWR0aDogMzAwcHg7CisgIGhlaWdodDogMjUwcHg7CisgIGJhY2tncm91bmQtY29sb3I6ICNmZjg5
OworfQorCisjZGlzcGxhY2VkQW5jZXN0b3IuY2xpY2tlZCB7CisgIGJhY2tncm91bmQtY29sb3I6
ICNmMDA5OworfQorCisjaW5lcnRDb250YWluZXIgeworICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZm
OTsKKyAgcG9zaXRpb246IGFic29sdXRlOworICB0b3A6IDM1cHg7CisgIGxlZnQ6IC0xOTJweDsK
KyAgd2lkdGg6IDIwMHB4OworICBoZWlnaHQ6IDIwMHB4OworfQorCitmaWVsZHNldCB7CisgIG1h
cmdpbjogMDsKKyAgcGFkZGluZzogMDsKKyAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7Cit9CisK
K2xlZ2VuZCB7CisgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOworICBib3JkZXI6IDFweCBzb2xp
ZCBibGFjazsKKyAgbWFyZ2luLWxlZnQ6IDVweDsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9k
eT4KKyAgPHA+Q2xpY2sgb24gIkluZXJ0IGJ1dHRvbiIuPC9wPgorICA8dWw+CisgICAgPGxpPlRo
ZSBibHVlIHNxdWFyZSAoIk5vbi1pbmVydCBhbmNlc3RvciBjb250YWluZXIiKSBzaG91bGQgdHVy
biBncmVlbi48L2xpPgorICAgIDxsaT5UaGUgeWVsbG93LCBzZW1pLXRyYW5zcGFyZW50IHNxdWFy
ZSAoIk5vbi1pbmVydCwgZGlzcGxhY2VkIGNvbnRhaW5lciIpIHNob3VsZCBub3QgdHVybiByZWQu
PC9saT4KKyAgICA8bGk+Ik5vbi1pbmVydCBidXR0b24iIHNob3VsZCBub3QgdHVybiByZWQuPC9s
aT4KKyAgPC91bD4KKyAgPHAgc3R5bGU9Im1hcmdpbi1ib3R0b206MjUwcHgiPihUaGUgZnVsbCB0
ZXN0IHN1aXRlIGNoZWNrcyBhIHJhbmdlIG9mIGV2ZW50cy4pPC9wPgorICA8ZmllbGRzZXQgaWQ9
ImFuY2VzdG9yQ29udGFpbmVyIj4KKyAgICA8bGVnZW5kPk5vbi1pbmVydCBhbmNlc3RvciBjb250
YWluZXI8L2xlZ2VuZD4KKyAgICA8aWZyYW1lIGlkPSJiYWNrZ3JvdW5kIiBzcmM9ImZyYW1lL2J1
dHRvbi5odG1sIj48L2lmcmFtZT4KKyAgICA8ZmllbGRzZXQgaWQ9ImRpc3BsYWNlZEFuY2VzdG9y
Ij4KKyAgICAgIDxsZWdlbmQ+Tm9uLWluZXJ0LCBkaXNwbGFjZWQgYW5jZXN0b3I8L2xlZ2VuZD4K
KyAgICAgIDxmaWVsZHNldCBpZD0iaW5lcnRDb250YWluZXIiIGluZXJ0PgorICAgICAgICA8bGVn
ZW5kPkluZXJ0IGNvbnRhaW5lcjwvbGVnZW5kPgorICAgICAgICA8YnV0dG9uIGlkPSJmb3JlZ3Jv
dW5kIj5mb3JlZ3JvdW5kPC9idXR0b24+CisgICAgICA8L2ZpZWxkc2V0PgorICAgIDwvZmllbGRz
ZXQ+CisgIDwvZmllbGRzZXQ+CisKKyAgPHNjcmlwdD4KK2RvY3VtZW50LmJvZHkuYWRkRXZlbnRM
aXN0ZW5lcignY2xpY2snLCAoZSkgPT4geworICBlLnRhcmdldC5jbGFzc0xpc3QuYWRkKCdjbGlj
a2VkJyk7Cit9KTsKKworZnVuY3Rpb24gY2xpY2tPbihlbGVtZW50KSB7CisgIHJldHVybiBuZXcg
dGVzdF9kcml2ZXIuQWN0aW9ucygpCisgICAgICAucG9pbnRlck1vdmUoMCwgMCwge29yaWdpbjog
ZWxlbWVudH0pCisgICAgICAucG9pbnRlckRvd24oe2J1dHRvbjogdGVzdF9kcml2ZXIuQWN0aW9u
cy5wcm90b3R5cGUuQnV0dG9uVHlwZS5MRUZUfSkKKyAgICAgIC5wb2ludGVyVXAoe2J1dHRvbjog
dGVzdF9kcml2ZXIuQWN0aW9ucy5wcm90b3R5cGUuQnV0dG9uVHlwZS5MRUZUfSkKKyAgICAgIC5z
ZW5kKCk7Cit9CisKK2Z1bmN0aW9uIGF1eENsaWNrT24oZWxlbWVudCkgeworICByZXR1cm4gbmV3
IHRlc3RfZHJpdmVyLkFjdGlvbnMoKQorICAgICAgLnBvaW50ZXJNb3ZlKDAsIDAsIHtvcmlnaW46
IGVsZW1lbnR9KQorICAgICAgLnBvaW50ZXJEb3duKHtidXR0b246IHRlc3RfZHJpdmVyLkFjdGlv
bnMucHJvdG90eXBlLkJ1dHRvblR5cGUuUklHSFR9KQorICAgICAgLnBvaW50ZXJVcCh7YnV0dG9u
OiB0ZXN0X2RyaXZlci5BY3Rpb25zLnByb3RvdHlwZS5CdXR0b25UeXBlLlJJR0hUfSkKKyAgICAg
IC5zZW5kKCk7Cit9CisKK2Z1bmN0aW9uIGRibENsaWNrT24oZWxlbWVudCkgeworICByZXR1cm4g
bmV3IHRlc3RfZHJpdmVyLkFjdGlvbnMoKQorICAgICAgLnBvaW50ZXJNb3ZlKDAsIDAsIHtvcmln
aW46IGVsZW1lbnR9KQorICAgICAgLnBvaW50ZXJEb3duKHtidXR0b246IHRlc3RfZHJpdmVyLkFj
dGlvbnMucHJvdG90eXBlLkJ1dHRvblR5cGUuTEVGVH0pCisgICAgICAucG9pbnRlclVwKHtidXR0
b246IHRlc3RfZHJpdmVyLkFjdGlvbnMucHJvdG90eXBlLkJ1dHRvblR5cGUuTEVGVH0pCisgICAg
ICAucG9pbnRlckRvd24oe2J1dHRvbjogdGVzdF9kcml2ZXIuQWN0aW9ucy5wcm90b3R5cGUuQnV0
dG9uVHlwZS5MRUZUfSkKKyAgICAgIC5wb2ludGVyVXAoe2J1dHRvbjogdGVzdF9kcml2ZXIuQWN0
aW9ucy5wcm90b3R5cGUuQnV0dG9uVHlwZS5MRUZUfSkKKyAgICAgIC5zZW5kKCk7Cit9CisKK2Z1
bmN0aW9uIG1vdmVQb2ludGVyT3ZlcihlbGVtZW50KSB7CisgIGxldCByZWN0ID0gZWxlbWVudC5n
ZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgcmV0dXJuIG5ldyB0ZXN0X2RyaXZlci5BY3Rpb25z
KCkKKyAgICAgIC5wb2ludGVyTW92ZSgwLCAwLCB7IG9yaWdpbjogZWxlbWVudCB9KQorICAgICAg
LnNlbmQoKTsKK30KKworZnVuY3Rpb24gbW92ZVBvaW50ZXJUbyh4LCB5KSB7CisgIHJldHVybiBu
ZXcgdGVzdF9kcml2ZXIuQWN0aW9ucygpCisgICAgICAucG9pbnRlck1vdmUoTWF0aC5jZWlsKHgp
LCBNYXRoLmNlaWwoeSksIHsgb3JpZ2luOiAidmlld3BvcnQiIH0pCisgICAgICAuc2VuZCgpOwor
fQorCitmdW5jdGlvbiBleHBlY3RFdmVudHNPbihldmVudHMsIGVsZW1lbnQpIHsKKyAgbGV0IHBy
b21pc2VzID0gW107CisgIGZvciAoZXZlbnQgb2YgZXZlbnRzKSB7CisgICAgKChldmVudCwgZWxl
bWVudCkgPT4geworICAgICAgdmFyIHByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVq
ZWN0KSA9PiB7CisgICAgICAgIGxldCBmID0gKGUpID0+IHsKKyAgICAgICAgICBhc3NlcnRfZXF1
YWxzKGUudHlwZSwgZXZlbnQpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQsIGVs
ZW1lbnQpOworICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgICAgfQorICAgICAgICBlbGVtZW50
LmFkZEV2ZW50TGlzdGVuZXIoZXZlbnQsIGYsIHsgY2FwdHVyZTogdHJ1ZSwgb25jZTogdHJ1ZSB9
KTsKKworICAgICAgICBzdGVwX3RpbWVvdXQoKCkgPT4geworICAgICAgICAgIGVsZW1lbnQucmVt
b3ZlRXZlbnRMaXN0ZW5lcihldmVudCwgZiwgeyBjYXB0dXJlOiB0cnVlIH0pOworICAgICAgICAg
IHJlamVjdCgiZGlkIG5vdCBnZXQgIiArIGV2ZW50ICsgIiBvbiAiICsgZWxlbWVudC5pZCk7Cisg
ICAgICAgIH0sIDUwMDApOworICAgICAgfSk7CisgICAgICBwcm9taXNlcy5wdXNoKHByb21pc2Up
OworICAgIH0pKGV2ZW50LCBlbGVtZW50KTsKKyAgfQorICByZXR1cm4gcHJvbWlzZXM7Cit9CisK
K2Z1bmN0aW9uIHVuZXhwZWN0RXZlbnRzT24oZXZlbnRzLCBlbGVtZW50KSB7CisgIGxldCBwcm9t
aXNlcyA9IFtdOworICBmb3IgKGV2ZW50IG9mIGV2ZW50cykgeworICAgICgoZXZlbnQsIGVsZW1l
bnQpID0+IHsKKyAgICAgIHZhciBwcm9taXNlID0gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVj
dCkgPT4geworICAgICAgICBsZXQgZiA9IChlKSA9PiB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFs
cyhlLnR5cGUsIGV2ZW50KTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LCBlbGVt
ZW50KTsKKyAgICAgICAgICByZWplY3QoImdvdCAiICsgZS50eXBlICsgIiBvbiAiICsgZS50YXJn
ZXQuaWQpOworICAgICAgICB9CisgICAgICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihldmVu
dCwgZiwgeyBjYXB0dXJlOiB0cnVlLCBvbmNlOiB0cnVlIH0pOworCisgICAgICAgIHN0ZXBfdGlt
ZW91dCgoKSA9PiB7CisgICAgICAgICAgZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50
LCBmLCB7IGNhcHR1cmU6IHRydWUgfSk7CisgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgICB9
LCAxMDAwKTsKKyAgICAgIH0pOworICAgICAgcHJvbWlzZXMucHVzaChwcm9taXNlKTsKKyAgICB9
KShldmVudCwgZWxlbWVudCk7CisgIH0KKyAgcmV0dXJuIHByb21pc2VzOworfQorCit0ZXN0KCgp
ID0+IHsKKyAgbGV0IHJlY3QgPSBmb3JlZ3JvdW5kLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwor
ICBsZXQgY2VudGVyX3ggPSByZWN0LmxlZnQgKyAocmVjdC53aWR0aCAvIDIpOworICBsZXQgY2Vu
dGVyX3kgPSByZWN0LnRvcCArIChyZWN0LmhlaWdodCAvIDIpOworICBhc3NlcnRfZXF1YWxzKGRv
Y3VtZW50LmVsZW1lbnRzRnJvbVBvaW50KGNlbnRlcl94LCBjZW50ZXJfeSlbMF0sIGZvcmVncm91
bmQpOworfSwgImVsZW1lbnRzRnJvbVBvaW50IHJldHVybnMgaW5lcnQgZWxlbWVudCIpOworCitw
cm9taXNlX3Rlc3QoYXN5bmMgKCkgPT4geworICAvLyBUZXN0IG1vdXNlIGV2ZW50cyBvbiBub24t
aW5lcnQgZWxlbWVudCAtIGV2ZW50cyBzaG91bGQgZ28gdG8gImZvcmVncm91bmQiCisgIGluZXJ0
Q29udGFpbmVyLmluZXJ0ID0gZmFsc2U7CisgIGF3YWl0IG1vdmVQb2ludGVyVG8oMCwgMCk7Cisg
IGxldCBwcm9taXNlcyA9IGV4cGVjdEV2ZW50c09uKFsibW91c2VvdmVyIiwgIm1vdXNlZW50ZXIi
LCAibW91c2Vtb3ZlIiwgIm1vdXNlZG93biIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAibW91c2V1cCIsICJjbGljayIsICJhdXhjbGljayIsICJtb3VzZW91dCIsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAibW91c2VsZWF2ZSJdLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBmb3JlZ3JvdW5kKTsKKyAgYXdhaXQgY2xpY2tPbihmb3JlZ3JvdW5k
KTsKKyAgYXdhaXQgYXV4Q2xpY2tPbihmb3JlZ3JvdW5kKTsKKyAgYXdhaXQgZGJsQ2xpY2tPbihm
b3JlZ3JvdW5kKTsKKyAgbGV0IGFuY2VzdG9yQm94ID0gYW5jZXN0b3JDb250YWluZXIuZ2V0Qm91
bmRpbmdDbGllbnRSZWN0KCk7CisgIGxldCBpbmVydEJveCA9IGluZXJ0Q29udGFpbmVyLmdldEJv
dW5kaW5nQ2xpZW50UmVjdCgpOworICBsZXQgeCA9IGFuY2VzdG9yQm94LmxlZnQgKyAoYW5jZXN0
b3JCb3gud2lkdGggLyAyKTsKKyAgbGV0IHkgPSBpbmVydEJveC5ib3R0b20gKyAoKGFuY2VzdG9y
Qm94LmJvdHRvbSAtIGluZXJ0Qm94LmJvdHRvbSkgLyAyKTsKKyAgYXdhaXQgbW92ZVBvaW50ZXJU
byh4LCB5KTsKKyAgYXdhaXQgUHJvbWlzZS5hbGwocHJvbWlzZXMpOworfSwgIlRlc3RzIHRoYXQg
YW55IG1vdXNlIGV2ZW50IG9uIGEgbm9uLWluZXJ0IGVsZW1lbnQgaXMgY29ycmVjdGx5IHRhcmdl
dGVkIHRvIHRoYXQgZWxlbWVudCIpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgKCkgPT4geworICAv
LyBNYWtlIHRoZSBjb250YWluaW5nIGVsZW1lbnQgaW5lcnQgLSBub3cgZXZlbnRzIHNob3VsZCBn
byB0byAiY29udGFpbmVyIgorICAvLyB3aGljaCBpcyB0aGUgbm9uLWluZXJ0IGFuY2VzdG9yIGF0
IHRoZSBzYW1lIHBvc2l0aW9uCisgIGluZXJ0Q29udGFpbmVyLmluZXJ0ID0gdHJ1ZTsKKyAgYXdh
aXQgbW92ZVBvaW50ZXJUbygwLCAwKTsKKworICBsZXQgcHJvbWlzZXMgPSBleHBlY3RFdmVudHNP
bihbIm1vdXNlb3ZlciIsICJtb3VzZWVudGVyIiwgIm1vdXNlbW92ZSIsICJtb3VzZWRvd24iLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm1vdXNldXAiLCAiY2xpY2siLCAiYXV4
Y2xpY2siXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5jZXN0b3JDb250YWlu
ZXIpOworCisgIHByb21pc2VzID0gcHJvbWlzZXMuY29uY2F0KHVuZXhwZWN0RXZlbnRzT24oWyJt
b3VzZW91dCIsICJtb3VzZWxlYXZlIl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYW5jZXN0b3JDb250YWluZXIpKTsKKworICBhd2FpdCBjbGlja09uKGZv
cmVncm91bmQpOworICBhd2FpdCBhdXhDbGlja09uKGZvcmVncm91bmQpOworICBhd2FpdCBkYmxD
bGlja09uKGZvcmVncm91bmQpOworICBsZXQgYW5jZXN0b3JCb3ggPSBhbmNlc3RvckNvbnRhaW5l
ci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgbGV0IGluZXJ0Qm94ID0gaW5lcnRDb250YWlu
ZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CisgIGxldCB4ID0gYW5jZXN0b3JCb3gubGVmdCAr
IChhbmNlc3RvckJveC53aWR0aCAvIDIpOworICBsZXQgeSA9IGluZXJ0Qm94LmJvdHRvbSArICgo
YW5jZXN0b3JCb3guYm90dG9tIC0gaW5lcnRCb3guYm90dG9tKSAvIDIpOworICBhd2FpdCBtb3Zl
UG9pbnRlclRvKHgsIHkpOworICBhd2FpdCBQcm9taXNlLmFsbChwcm9taXNlcyk7Cit9LCAnVGVz
dHMgdGhhdCBhbnkgbW91c2UgZXZlbnQgb24gYW4gaW5lcnQgZWxlbWVudCBpcyB0YXJnZXRlZCB0
byB0aGUgbmVhcmVzdCBub24taW5lcnQgYW5jZXN0b3IgYXQgdGhlIHNhbWUgY29vcmRpbmF0ZXMn
KTsKKworcHJvbWlzZV90ZXN0KGFzeW5jICgpID0+IHsKKyAgLy8gVGVzdCBwb2ludGVyIGV2ZW50
cyBvbiBub24taW5lcnQgZWxlbWVudCAtIGV2ZW50cyBzaG91bGQgZ28gdG8gImZvcmVncm91bmQi
CisgIGluZXJ0Q29udGFpbmVyLmluZXJ0ID0gZmFsc2U7CisgIGF3YWl0IG1vdmVQb2ludGVyVG8o
MCwgMCk7CisKKyAgbGV0IHByb21pc2VzID0gZXhwZWN0RXZlbnRzT24oWyJwb2ludGVyb3ZlciIs
ICJwb2ludGVyZW50ZXIiLCAicG9pbnRlcm1vdmUiLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgInBvaW50ZXJkb3duIiwgInBvaW50ZXJ1cCIsICJwb2ludGVyb3V0IiwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwb2ludGVybGVhdmUiXSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZm9yZWdyb3VuZCk7CisgIGF3YWl0IGNsaWNrT24oZm9yZWdy
b3VuZCk7CisgIGxldCBhbmNlc3RvckJveCA9IGFuY2VzdG9yQ29udGFpbmVyLmdldEJvdW5kaW5n
Q2xpZW50UmVjdCgpOworICBsZXQgaW5lcnRCb3ggPSBpbmVydENvbnRhaW5lci5nZXRCb3VuZGlu
Z0NsaWVudFJlY3QoKTsKKyAgbGV0IHggPSBhbmNlc3RvckJveC5sZWZ0ICsgKGFuY2VzdG9yQm94
LndpZHRoIC8gMik7CisgIGxldCB5ID0gaW5lcnRCb3guYm90dG9tICsgKChhbmNlc3RvckJveC5i
b3R0b20gLSBpbmVydEJveC5ib3R0b20pIC8gMik7CisgIGF3YWl0IG1vdmVQb2ludGVyVG8oeCwg
eSk7CisgIGF3YWl0IFByb21pc2UuYWxsKHByb21pc2VzKTsKK30sICJUZXN0cyB0aGF0IGFueSBw
b2ludGVyIGV2ZW50IG9uIGEgbm9uLWluZXJ0IGVsZW1lbnQgaXMgY29ycmVjdGx5IHRhcmdldGVk
IHRvIHRoYXQgZWxlbWVudCIpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgKCkgPT4geworICAvLyBN
YWtlIHRoZSBjb250YWluaW5nIGVsZW1lbnQgaW5lcnQgLSBub3cgZXZlbnRzIHNob3VsZCBnbyB0
byAiY29udGFpbmVyIgorICAvLyB3aGljaCBpcyB0aGUgbm9uLWluZXJ0IGFuY2VzdG9yIGF0IHRo
ZSBzYW1lIHBvc2l0aW9uCisgIGluZXJ0Q29udGFpbmVyLmluZXJ0ID0gdHJ1ZTsKKyAgYXdhaXQg
bW92ZVBvaW50ZXJUbygwLCAwKTsKKworICBsZXQgcHJvbWlzZXMgPSBleHBlY3RFdmVudHNPbihb
InBvaW50ZXJvdmVyIiwgInBvaW50ZXJlbnRlciIsICJwb2ludGVybW92ZSIsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAicG9pbnRlcmRvd24iLCAicG9pbnRlcnVwIiBdLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmNlc3RvckNvbnRhaW5lcik7CisKKyAgcHJv
bWlzZXMgPSBwcm9taXNlcy5jb25jYXQodW5leHBlY3RFdmVudHNPbihbInBvaW50ZXJvdXQiLCAi
cG9pbnRlcmxlYXZlIl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgYW5jZXN0b3JDb250YWluZXIpKTsKKyAgYXdhaXQgY2xpY2tPbihmb3JlZ3JvdW5kKTsK
KyAgbGV0IGFuY2VzdG9yQm94ID0gYW5jZXN0b3JDb250YWluZXIuZ2V0Qm91bmRpbmdDbGllbnRS
ZWN0KCk7CisgIGxldCBpbmVydEJveCA9IGluZXJ0Q29udGFpbmVyLmdldEJvdW5kaW5nQ2xpZW50
UmVjdCgpOworICBsZXQgeCA9IGFuY2VzdG9yQm94LmxlZnQgKyAoYW5jZXN0b3JCb3gud2lkdGgg
LyAyKTsKKyAgbGV0IHkgPSBpbmVydEJveC5ib3R0b20gKyAoKGFuY2VzdG9yQm94LmJvdHRvbSAt
IGluZXJ0Qm94LmJvdHRvbSkgLyAyKTsKKyAgYXdhaXQgbW92ZVBvaW50ZXJUbyh4LCB5KTsKKyAg
YXdhaXQgUHJvbWlzZS5hbGwocHJvbWlzZXMpOworfSwgJ1Rlc3RzIHRoYXQgYW55IHBvaW50ZXIg
ZXZlbnQgb24gYW4gaW5lcnQgZWxlbWVudCBpcyB0YXJnZXRlZCB0byB0aGUgbmVhcmVzdCBub24t
aW5lcnQgYW5jZXN0b3IgYXQgdGhlIHNhbWUgY29vcmRpbmF0ZXMnKTsKKyAgPC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LXJldGFyZ2V0aW5nLnRlbnRhdGl2ZS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0
L2luZXJ0LXJldGFyZ2V0aW5nLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmI3
NDVmYTIxOGRiY2I1YTRlYzZlNmZiYjZhZDJiNWI0ZGE5ZWExNQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQt
cmV0YXJnZXRpbmcudGVudGF0aXZlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQ3IEBACitDT05T
T0xFIE1FU1NBR0U6IEVycm9yOiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCBFbGVtZW50IG5vZGUg
PGZpZWxkc2V0IGlkPSJhbmNlc3RvckNvbnRhaW5lciI+CisgICAgPGxlZ2VuZD5Ob24taW5lcnQg
YS4uLiBidXQgZ290IEVsZW1lbnQgbm9kZSA8YnV0dG9uIGlkPSJmb3JlZ3JvdW5kIiBjbGFzcz0i
Y2xpY2tlZCI+Zm9yZWdyb3VuZDwvYnV0dG9uPgorQ09OU09MRSBNRVNTQUdFOiBFcnJvcjogYXNz
ZXJ0X2VxdWFsczogZXhwZWN0ZWQgRWxlbWVudCBub2RlIDxmaWVsZHNldCBpZD0iYW5jZXN0b3JD
b250YWluZXIiPgorICAgIDxsZWdlbmQ+Tm9uLWluZXJ0IGEuLi4gYnV0IGdvdCBFbGVtZW50IG5v
ZGUgPGJ1dHRvbiBpZD0iZm9yZWdyb3VuZCIgY2xhc3M9ImNsaWNrZWQiPmZvcmVncm91bmQ8L2J1
dHRvbj4KK0NPTlNPTEUgTUVTU0FHRTogRXJyb3I6IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIEVs
ZW1lbnQgbm9kZSA8ZmllbGRzZXQgaWQ9ImFuY2VzdG9yQ29udGFpbmVyIj4KKyAgICA8bGVnZW5k
Pk5vbi1pbmVydCBhLi4uIGJ1dCBnb3QgRWxlbWVudCBub2RlIDxidXR0b24gaWQ9ImZvcmVncm91
bmQiIGNsYXNzPSJjbGlja2VkIj5mb3JlZ3JvdW5kPC9idXR0b24+CitDT05TT0xFIE1FU1NBR0U6
IEVycm9yOiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCBFbGVtZW50IG5vZGUgPGZpZWxkc2V0IGlk
PSJhbmNlc3RvckNvbnRhaW5lciI+CisgICAgPGxlZ2VuZD5Ob24taW5lcnQgYS4uLiBidXQgZ290
IEVsZW1lbnQgbm9kZSA8YnV0dG9uIGlkPSJmb3JlZ3JvdW5kIiBjbGFzcz0iY2xpY2tlZCI+Zm9y
ZWdyb3VuZDwvYnV0dG9uPgorQ09OU09MRSBNRVNTQUdFOiBFcnJvcjogYXNzZXJ0X2VxdWFsczog
ZXhwZWN0ZWQgRWxlbWVudCBub2RlIDxmaWVsZHNldCBpZD0iYW5jZXN0b3JDb250YWluZXIiPgor
ICAgIDxsZWdlbmQ+Tm9uLWluZXJ0IGEuLi4gYnV0IGdvdCBFbGVtZW50IG5vZGUgPGJ1dHRvbiBp
ZD0iZm9yZWdyb3VuZCIgY2xhc3M9ImNsaWNrZWQiPmZvcmVncm91bmQ8L2J1dHRvbj4KK0NPTlNP
TEUgTUVTU0FHRTogRXJyb3I6IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIEVsZW1lbnQgbm9kZSA8
ZmllbGRzZXQgaWQ9ImFuY2VzdG9yQ29udGFpbmVyIj4KKyAgICA8bGVnZW5kPk5vbi1pbmVydCBh
Li4uIGJ1dCBnb3QgRWxlbWVudCBub2RlIDxidXR0b24gaWQ9ImZvcmVncm91bmQiIGNsYXNzPSJj
bGlja2VkIj5mb3JlZ3JvdW5kPC9idXR0b24+CitDT05TT0xFIE1FU1NBR0U6IEVycm9yOiBhc3Nl
cnRfZXF1YWxzOiBleHBlY3RlZCBFbGVtZW50IG5vZGUgPGZpZWxkc2V0IGlkPSJhbmNlc3RvckNv
bnRhaW5lciI+CisgICAgPGxlZ2VuZD5Ob24taW5lcnQgYS4uLiBidXQgZ290IEVsZW1lbnQgbm9k
ZSA8YnV0dG9uIGlkPSJmb3JlZ3JvdW5kIiBjbGFzcz0iY2xpY2tlZCI+Zm9yZWdyb3VuZDwvYnV0
dG9uPgorQ09OU09MRSBNRVNTQUdFOiBFcnJvcjogYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgRWxl
bWVudCBub2RlIDxmaWVsZHNldCBpZD0iYW5jZXN0b3JDb250YWluZXIiPgorICAgIDxsZWdlbmQ+
Tm9uLWluZXJ0IGEuLi4gYnV0IGdvdCBFbGVtZW50IG5vZGUgPGJ1dHRvbiBpZD0iZm9yZWdyb3Vu
ZCIgY2xhc3M9ImNsaWNrZWQiPmZvcmVncm91bmQ8L2J1dHRvbj4KK0NPTlNPTEUgTUVTU0FHRTog
RXJyb3I6IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIEVsZW1lbnQgbm9kZSA8ZmllbGRzZXQgaWQ9
ImFuY2VzdG9yQ29udGFpbmVyIj4KKyAgICA8bGVnZW5kPk5vbi1pbmVydCBhLi4uIGJ1dCBnb3Qg
RWxlbWVudCBub2RlIDxidXR0b24gaWQ9ImZvcmVncm91bmQiIGNsYXNzPSJjbGlja2VkIj5mb3Jl
Z3JvdW5kPC9idXR0b24+CitDT05TT0xFIE1FU1NBR0U6IEVycm9yOiBhc3NlcnRfZXF1YWxzOiBl
eHBlY3RlZCBFbGVtZW50IG5vZGUgPGZpZWxkc2V0IGlkPSJhbmNlc3RvckNvbnRhaW5lciI+Cisg
ICAgPGxlZ2VuZD5Ob24taW5lcnQgYS4uLiBidXQgZ290IEVsZW1lbnQgbm9kZSA8YnV0dG9uIGlk
PSJmb3JlZ3JvdW5kIiBjbGFzcz0iY2xpY2tlZCI+Zm9yZWdyb3VuZDwvYnV0dG9uPgorQ09OU09M
RSBNRVNTQUdFOiBFcnJvcjogYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgRWxlbWVudCBub2RlIDxm
aWVsZHNldCBpZD0iYW5jZXN0b3JDb250YWluZXIiPgorICAgIDxsZWdlbmQ+Tm9uLWluZXJ0IGEu
Li4gYnV0IGdvdCBFbGVtZW50IG5vZGUgPGJ1dHRvbiBpZD0iZm9yZWdyb3VuZCIgY2xhc3M9ImNs
aWNrZWQiPmZvcmVncm91bmQ8L2J1dHRvbj4KK0NPTlNPTEUgTUVTU0FHRTogRXJyb3I6IGFzc2Vy
dF9lcXVhbHM6IGV4cGVjdGVkIEVsZW1lbnQgbm9kZSA8ZmllbGRzZXQgaWQ9ImFuY2VzdG9yQ29u
dGFpbmVyIj4KKyAgICA8bGVnZW5kPk5vbi1pbmVydCBhLi4uIGJ1dCBnb3QgRWxlbWVudCBub2Rl
IDxidXR0b24gaWQ9ImZvcmVncm91bmQiIGNsYXNzPSJjbGlja2VkIj5mb3JlZ3JvdW5kPC9idXR0
b24+CitDT05TT0xFIE1FU1NBR0U6IEVycm9yOiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCBFbGVt
ZW50IG5vZGUgPGZpZWxkc2V0IGlkPSJhbmNlc3RvckNvbnRhaW5lciI+CisgICAgPGxlZ2VuZD5O
b24taW5lcnQgYS4uLiBidXQgZ290IEVsZW1lbnQgbm9kZSA8YnV0dG9uIGlkPSJmb3JlZ3JvdW5k
IiBjbGFzcz0iY2xpY2tlZCI+Zm9yZWdyb3VuZDwvYnV0dG9uPgorQ2xpY2sgb24gImZvcmVncm91
bmQiLgorCitUaGUgYmx1ZSBzcXVhcmUgKCJOb24taW5lcnQgYW5jZXN0b3IgY29udGFpbmVyIikg
c2hvdWxkIHR1cm4gZ3JlZW4uCitUaGUgeWVsbG93LCBzZW1pLXRyYW5zcGFyZW50IHNxdWFyZSAo
Ik5vbi1pbmVydCwgZGlzcGxhY2VkIGNvbnRhaW5lciIpIHNob3VsZCBub3QgdHVybiByZWQuCisi
Tm9uLWluZXJ0IGJ1dHRvbiIgc2hvdWxkIG5vdCB0dXJuIHJlZC4KKyhUaGUgZnVsbCB0ZXN0IHN1
aXRlIGNoZWNrcyBhIHJhbmdlIG9mIGV2ZW50cy4pCisKK05vbi1pbmVydCBhbmNlc3RvciBjb250
YWluZXIKK2JhY2tncm91bmROb24taW5lcnQsIGRpc3BsYWNlZCBhbmNlc3RvcgorSW5lcnQgY29u
dGFpbmVyCitmb3JlZ3JvdW5kCisKK0hhcm5lc3MgRXJyb3IgKEZBSUwpLCBtZXNzYWdlID0gRXJy
b3I6IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIEVsZW1lbnQgbm9kZSA8ZmllbGRzZXQgaWQ9ImFu
Y2VzdG9yQ29udGFpbmVyIj4KKyAgICA8bGVnZW5kPk5vbi1pbmVydCBhLi4uIGJ1dCBnb3QgRWxl
bWVudCBub2RlIDxidXR0b24gaWQ9ImZvcmVncm91bmQiIGNsYXNzPSJjbGlja2VkIj5mb3JlZ3Jv
dW5kPC9idXR0b24+CisKK1BBU1MgZWxlbWVudHNGcm9tUG9pbnQgcmV0dXJucyBpbmVydCBlbGVt
ZW50CitGQUlMIFRlc3RzIHRoYXQgYW55IG1vdXNlIGV2ZW50IG9uIGEgbm9uLWluZXJ0IGVsZW1l
bnQgaXMgY29ycmVjdGx5IHRhcmdldGVkIHRvIHRoYXQgZWxlbWVudCBwcm9taXNlX3Rlc3Q6IFVu
aGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogImRpZCBub3QgZ2V0IGF1eGNsaWNrIG9uIGZv
cmVncm91bmQiCitGQUlMIFRlc3RzIHRoYXQgYW55IG1vdXNlIGV2ZW50IG9uIGFuIGluZXJ0IGVs
ZW1lbnQgaXMgdGFyZ2V0ZWQgdG8gdGhlIG5lYXJlc3Qgbm9uLWluZXJ0IGFuY2VzdG9yIGF0IHRo
ZSBzYW1lIGNvb3JkaW5hdGVzIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRo
IHZhbHVlOiAiZGlkIG5vdCBnZXQgbW91c2VvdmVyIG9uIGFuY2VzdG9yQ29udGFpbmVyIgorUEFT
UyBUZXN0cyB0aGF0IGFueSBwb2ludGVyIGV2ZW50IG9uIGEgbm9uLWluZXJ0IGVsZW1lbnQgaXMg
Y29ycmVjdGx5IHRhcmdldGVkIHRvIHRoYXQgZWxlbWVudAorRkFJTCBUZXN0cyB0aGF0IGFueSBw
b2ludGVyIGV2ZW50IG9uIGFuIGluZXJ0IGVsZW1lbnQgaXMgdGFyZ2V0ZWQgdG8gdGhlIG5lYXJl
c3Qgbm9uLWluZXJ0IGFuY2VzdG9yIGF0IHRoZSBzYW1lIGNvb3JkaW5hdGVzIHByb21pc2VfdGVz
dDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiAiZGlkIG5vdCBnZXQgcG9pbnRlcm92
ZXIgb24gYW5jZXN0b3JDb250YWluZXIiCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtcmV0YXJnZXRpbmcudGVudGF0
aXZlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2lu
ZXJ0L2luZXJ0LXJldGFyZ2V0aW5nLnRlbnRhdGl2ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIyODBjZjVh
NWQxZmIxNmVmMTkyMzEwZTRmYjRmN2QyMmIzNzAyYjMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LXJldGFy
Z2V0aW5nLnRlbnRhdGl2ZS5odG1sCkBAIC0wLDAgKzEsMjkwIEBACis8IURPQ1RZUEUgaHRtbD4K
KzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0ZHJpdmVyLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Rkcml2ZXItYWN0aW9ucy5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0ZHJpdmVyLXZlbmRvci5qcyI+PC9zY3Jp
cHQ+Cis8c3R5bGU+CitidXR0b24jZm9yZWdyb3VuZCwKK2J1dHRvbiNiYWNrZ3JvdW5kIHsKKyAg
cG9zaXRpb246IGFic29sdXRlOworICB0b3A6IDc1cHg7CisgIGxlZnQ6IDUwcHg7CisgIHdpZHRo
OiAxMDBweDsKKyAgaGVpZ2h0OiAyMHB4OworfQorCitidXR0b24jYmFja2dyb3VuZCB7CisgIGxl
ZnQ6IDc1cHg7CisgIHdpZHRoOiAxNTBweDsKKyAgaGVpZ2h0OiA0MHB4OworICB0b3A6IDEyNXB4
OworICBsaW5lLWhlaWdodDogNTNweDsKK30KKworLmNsaWNrZWQgeworICBiYWNrZ3JvdW5kLWNv
bG9yOiByZWQ7Cit9CisKKyNhbmNlc3RvckNvbnRhaW5lci5jbGlja2VkIHsKKyAgYmFja2dyb3Vu
ZC1jb2xvcjogZ3JlZW47Cit9CisKKyNhbmNlc3RvckNvbnRhaW5lciB7CisgIHBvc2l0aW9uOiBy
ZWxhdGl2ZTsKKyAgd2lkdGg6IDMwMHB4OworICBoZWlnaHQ6IDMwMHB4OworICBiYWNrZ3JvdW5k
LWNvbG9yOiBibHVlOworfQorCisjZGlzcGxhY2VkQW5jZXN0b3IgeworICBwb3NpdGlvbjogYWJz
b2x1dGU7CisgIHRvcDogMTNweDsKKyAgbGVmdDogMjQwcHg7CisgIHdpZHRoOiAzMDBweDsKKyAg
aGVpZ2h0OiAyNTBweDsKKyAgYmFja2dyb3VuZC1jb2xvcjogI2ZmODk7Cit9CisKKyNkaXNwbGFj
ZWRBbmNlc3Rvci5jbGlja2VkIHsKKyAgYmFja2dyb3VuZC1jb2xvcjogI2YwMDk7Cit9CisKKyNp
bmVydENvbnRhaW5lciB7CisgIGJhY2tncm91bmQtY29sb3I6ICNmZmY5OworICBwb3NpdGlvbjog
YWJzb2x1dGU7CisgIHRvcDogMzVweDsKKyAgbGVmdDogLTE5MnB4OworICB3aWR0aDogMjAwcHg7
CisgIGhlaWdodDogMjAwcHg7Cit9CisKK2ZpZWxkc2V0IHsKKyAgbWFyZ2luOiAwOworICBwYWRk
aW5nOiAwOworICBib3JkZXI6IDFweCBzb2xpZCBibGFjazsKK30KKworbGVnZW5kIHsKKyAgYmFj
a2dyb3VuZC1jb2xvcjogd2hpdGU7CisgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOworICBtYXJn
aW4tbGVmdDogNXB4OworfQorCitidXR0b24uY2xpY2tlZDo6YWZ0ZXIgeworICBjb250ZW50OiAi
IChjbGlja2VkKSI7Cit9CisKKy5jbGlja2VkID4gbGVnZW5kOjphZnRlciB7CisgIGNvbnRlbnQ6
ICIgKGNsaWNrZWQpIjsKK30KKworPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorICA8cD5DbGlj
ayBvbiAiZm9yZWdyb3VuZCIuPC9wPgorICA8dWw+CisgICAgPGxpPlRoZSBibHVlIHNxdWFyZSAo
Ik5vbi1pbmVydCBhbmNlc3RvciBjb250YWluZXIiKSBzaG91bGQgdHVybiBncmVlbi48L2xpPgor
ICAgIDxsaT5UaGUgeWVsbG93LCBzZW1pLXRyYW5zcGFyZW50IHNxdWFyZSAoIk5vbi1pbmVydCwg
ZGlzcGxhY2VkIGNvbnRhaW5lciIpIHNob3VsZCBub3QgdHVybiByZWQuPC9saT4KKyAgICA8bGk+
Ik5vbi1pbmVydCBidXR0b24iIHNob3VsZCBub3QgdHVybiByZWQuPC9saT4KKyAgPC91bD4KKyAg
PHA+KFRoZSBmdWxsIHRlc3Qgc3VpdGUgY2hlY2tzIGEgcmFuZ2Ugb2YgZXZlbnRzLik8L3A+Cisg
IDxmaWVsZHNldCBpZD0iYW5jZXN0b3JDb250YWluZXIiPgorICAgIDxsZWdlbmQ+Tm9uLWluZXJ0
IGFuY2VzdG9yIGNvbnRhaW5lcjwvbGVnZW5kPgorICAgIDxidXR0b24gaWQ9ImJhY2tncm91bmQi
PmJhY2tncm91bmQ8L2J1dHRvbj4KKyAgICA8ZmllbGRzZXQgaWQ9ImRpc3BsYWNlZEFuY2VzdG9y
Ij4KKyAgICAgIDxsZWdlbmQ+Tm9uLWluZXJ0LCBkaXNwbGFjZWQgYW5jZXN0b3I8L2xlZ2VuZD4K
KyAgICAgIDxmaWVsZHNldCBpZD0iaW5lcnRDb250YWluZXIiIGluZXJ0PgorICAgICAgICA8bGVn
ZW5kPkluZXJ0IGNvbnRhaW5lcjwvbGVnZW5kPgorICAgICAgICA8YnV0dG9uIGlkPSJmb3JlZ3Jv
dW5kIj5mb3JlZ3JvdW5kPC9idXR0b24+CisgICAgICA8L2ZpZWxkc2V0PgorICAgIDwvZmllbGRz
ZXQ+CisgIDwvZmllbGRzZXQ+CisKKyAgPHNjcmlwdD4KK2RvY3VtZW50LmJvZHkuYWRkRXZlbnRM
aXN0ZW5lcignY2xpY2snLCAoZSkgPT4geworICBlLnRhcmdldC5jbGFzc0xpc3QuYWRkKCdjbGlj
a2VkJyk7Cit9KTsKKworZnVuY3Rpb24gY2xpY2tPbihlbGVtZW50KSB7CisgIHJldHVybiBuZXcg
dGVzdF9kcml2ZXIuQWN0aW9ucygpCisgICAgICAucG9pbnRlck1vdmUoMCwgMCwge29yaWdpbjog
ZWxlbWVudH0pCisgICAgICAucG9pbnRlckRvd24oe2J1dHRvbjogdGVzdF9kcml2ZXIuQWN0aW9u
cy5wcm90b3R5cGUuQnV0dG9uVHlwZS5MRUZUfSkKKyAgICAgIC5wb2ludGVyVXAoe2J1dHRvbjog
dGVzdF9kcml2ZXIuQWN0aW9ucy5wcm90b3R5cGUuQnV0dG9uVHlwZS5MRUZUfSkKKyAgICAgIC5z
ZW5kKCk7Cit9CisKK2Z1bmN0aW9uIGF1eENsaWNrT24oZWxlbWVudCkgeworICByZXR1cm4gbmV3
IHRlc3RfZHJpdmVyLkFjdGlvbnMoKQorICAgICAgLnBvaW50ZXJNb3ZlKDAsIDAsIHtvcmlnaW46
IGVsZW1lbnR9KQorICAgICAgLnBvaW50ZXJEb3duKHtidXR0b246IHRlc3RfZHJpdmVyLkFjdGlv
bnMucHJvdG90eXBlLkJ1dHRvblR5cGUuUklHSFR9KQorICAgICAgLnBvaW50ZXJVcCh7YnV0dG9u
OiB0ZXN0X2RyaXZlci5BY3Rpb25zLnByb3RvdHlwZS5CdXR0b25UeXBlLlJJR0hUfSkKKyAgICAg
IC5zZW5kKCk7Cit9CisKK2Z1bmN0aW9uIGRibENsaWNrT24oZWxlbWVudCkgeworICByZXR1cm4g
bmV3IHRlc3RfZHJpdmVyLkFjdGlvbnMoKQorICAgICAgLnBvaW50ZXJNb3ZlKDAsIDAsIHtvcmln
aW46IGVsZW1lbnR9KQorICAgICAgLnBvaW50ZXJEb3duKHtidXR0b246IHRlc3RfZHJpdmVyLkFj
dGlvbnMucHJvdG90eXBlLkJ1dHRvblR5cGUuTEVGVH0pCisgICAgICAucG9pbnRlclVwKHtidXR0
b246IHRlc3RfZHJpdmVyLkFjdGlvbnMucHJvdG90eXBlLkJ1dHRvblR5cGUuTEVGVH0pCisgICAg
ICAucG9pbnRlckRvd24oe2J1dHRvbjogdGVzdF9kcml2ZXIuQWN0aW9ucy5wcm90b3R5cGUuQnV0
dG9uVHlwZS5MRUZUfSkKKyAgICAgIC5wb2ludGVyVXAoe2J1dHRvbjogdGVzdF9kcml2ZXIuQWN0
aW9ucy5wcm90b3R5cGUuQnV0dG9uVHlwZS5MRUZUfSkKKyAgICAgIC5zZW5kKCk7Cit9CisKK2Z1
bmN0aW9uIG1vdmVQb2ludGVyT3ZlcihlbGVtZW50KSB7CisgIGxldCByZWN0ID0gZWxlbWVudC5n
ZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgcmV0dXJuIG5ldyB0ZXN0X2RyaXZlci5BY3Rpb25z
KCkKKyAgICAgIC5wb2ludGVyTW92ZSgwLCAwLCB7IG9yaWdpbjogZWxlbWVudCB9KQorICAgICAg
LnNlbmQoKTsKK30KKworZnVuY3Rpb24gbW92ZVBvaW50ZXJUbyh4LCB5KSB7CisgIHJldHVybiBu
ZXcgdGVzdF9kcml2ZXIuQWN0aW9ucygpCisgICAgICAucG9pbnRlck1vdmUoeCwgeSwgeyBvcmln
aW46ICJ2aWV3cG9ydCIgfSkKKyAgICAgIC5zZW5kKCk7Cit9CisKK2Z1bmN0aW9uIGV4cGVjdEV2
ZW50c09uKGV2ZW50cywgZWxlbWVudCkgeworICBsZXQgcHJvbWlzZXMgPSBbXTsKKyAgZm9yIChl
dmVudCBvZiBldmVudHMpIHsKKyAgICAoKGV2ZW50LCBlbGVtZW50KSA9PiB7CisgICAgICB2YXIg
cHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsKKyAgICAgICAgbGV0
IGYgPSAoZSkgPT4geworICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50eXBlLCBldmVudCk7Cisg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldCwgZWxlbWVudCk7CisgICAgICAgICAgcmVz
b2x2ZSgpOworICAgICAgICB9CisgICAgICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihldmVu
dCwgZiwgeyBjYXB0dXJlOiB0cnVlLCBvbmNlOiB0cnVlIH0pOworCisgICAgICAgIHN0ZXBfdGlt
ZW91dCgoKSA9PiB7CisgICAgICAgICAgZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50
LCBmLCB7IGNhcHR1cmU6IHRydWUgfSk7CisgICAgICAgICAgcmVqZWN0KCJkaWQgbm90IGdldCAi
ICsgZXZlbnQgKyAiIG9uICIgKyBlbGVtZW50LmlkKTsKKyAgICAgICAgfSwgMTAwMCk7CisgICAg
ICB9KTsKKyAgICAgIHByb21pc2VzLnB1c2gocHJvbWlzZSk7CisgICAgfSkoZXZlbnQsIGVsZW1l
bnQpOworICB9CisgIHJldHVybiBwcm9taXNlczsKK30KKworZnVuY3Rpb24gdW5leHBlY3RFdmVu
dHNPbihldmVudHMsIGVsZW1lbnQpIHsKKyAgbGV0IHByb21pc2VzID0gW107CisgIGZvciAoZXZl
bnQgb2YgZXZlbnRzKSB7CisgICAgKChldmVudCwgZWxlbWVudCkgPT4geworICAgICAgdmFyIHBy
b21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7CisgICAgICAgIGxldCBm
ID0gKGUpID0+IHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUudHlwZSwgZXZlbnQpOworICAg
ICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQsIGVsZW1lbnQpOworICAgICAgICAgIHJlamVj
dCgiZ290ICIgKyBlLnR5cGUgKyAiIG9uICIgKyBlLnRhcmdldC5pZCk7CisgICAgICAgIH0KKyAg
ICAgICAgZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKGV2ZW50LCBmLCB7IGNhcHR1cmU6IHRydWUs
IG9uY2U6IHRydWUgfSk7CisKKyAgICAgICAgc3RlcF90aW1lb3V0KCgpID0+IHsKKyAgICAgICAg
ICBlbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnQsIGYsIHsgY2FwdHVyZTogdHJ1ZSB9
KTsKKyAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgIH0sIDEwMDApOworICAgICAgfSk7Cisg
ICAgICBwcm9taXNlcy5wdXNoKHByb21pc2UpOworICAgIH0pKGV2ZW50LCBlbGVtZW50KTsKKyAg
fQorICByZXR1cm4gcHJvbWlzZXM7Cit9CisKK3Rlc3QoKCkgPT4geworICBsZXQgcmVjdCA9IGZv
cmVncm91bmQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CisgIGxldCBjZW50ZXJfeCA9IHJlY3Qu
bGVmdCArIChyZWN0LndpZHRoIC8gMik7CisgIGxldCBjZW50ZXJfeSA9IHJlY3QudG9wICsgKHJl
Y3QuaGVpZ2h0IC8gMik7CisgIGFzc2VydF9lcXVhbHMoZG9jdW1lbnQuZWxlbWVudHNGcm9tUG9p
bnQoY2VudGVyX3gsIGNlbnRlcl95KVswXSwgZm9yZWdyb3VuZCk7Cit9LCAiZWxlbWVudHNGcm9t
UG9pbnQgcmV0dXJucyBpbmVydCBlbGVtZW50Iik7CisKK3Byb21pc2VfdGVzdChhc3luYyAoKSA9
PiB7CisgIC8vIFRlc3QgbW91c2UgZXZlbnRzIG9uIG5vbi1pbmVydCBlbGVtZW50IC0gZXZlbnRz
IHNob3VsZCBnbyB0byAiZm9yZWdyb3VuZCIKKyAgaW5lcnRDb250YWluZXIuaW5lcnQgPSBmYWxz
ZTsKKyAgYXdhaXQgbW92ZVBvaW50ZXJUbygwLCAwKTsKKyAgbGV0IHByb21pc2VzID0gZXhwZWN0
RXZlbnRzT24oWyJtb3VzZW92ZXIiLCAibW91c2VlbnRlciIsICJtb3VzZW1vdmUiLCAibW91c2Vk
b3duIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJtb3VzZXVwIiwgImNsaWNr
IiwgImF1eGNsaWNrIiwgIm1vdXNlb3V0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJtb3VzZWxlYXZlIl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcmVn
cm91bmQpOworICBhd2FpdCBjbGlja09uKGZvcmVncm91bmQpOworICBhd2FpdCBhdXhDbGlja09u
KGZvcmVncm91bmQpOworICBhd2FpdCBkYmxDbGlja09uKGZvcmVncm91bmQpOworICBsZXQgYW5j
ZXN0b3JCb3ggPSBhbmNlc3RvckNvbnRhaW5lci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAg
bGV0IGluZXJ0Qm94ID0gaW5lcnRDb250YWluZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7Cisg
IGxldCB4ID0gYW5jZXN0b3JCb3gubGVmdCArIChhbmNlc3RvckJveC53aWR0aCAvIDIpOworICBs
ZXQgeSA9IGluZXJ0Qm94LmJvdHRvbSArICgoYW5jZXN0b3JCb3guYm90dG9tIC0gaW5lcnRCb3gu
Ym90dG9tKSAvIDIpOworICBhd2FpdCBtb3ZlUG9pbnRlclRvKHgsIHkpOworICBhd2FpdCBQcm9t
aXNlLmFsbChwcm9taXNlcyk7Cit9LCAiVGVzdHMgdGhhdCBhbnkgbW91c2UgZXZlbnQgb24gYSBu
b24taW5lcnQgZWxlbWVudCBpcyBjb3JyZWN0bHkgdGFyZ2V0ZWQgdG8gdGhhdCBlbGVtZW50Iik7
CisKK3Byb21pc2VfdGVzdChhc3luYyAoKSA9PiB7CisgIC8vIE1ha2UgdGhlIGNvbnRhaW5pbmcg
ZWxlbWVudCBpbmVydCAtIG5vdyBldmVudHMgc2hvdWxkIGdvIHRvICJjb250YWluZXIiCisgIC8v
IHdoaWNoIGlzIHRoZSBub24taW5lcnQgYW5jZXN0b3IgYXQgdGhlIHNhbWUgcG9zaXRpb24KKyAg
aW5lcnRDb250YWluZXIuaW5lcnQgPSB0cnVlOworICBhd2FpdCBtb3ZlUG9pbnRlclRvKDAsIDAp
OworCisgIGxldCBwcm9taXNlcyA9IGV4cGVjdEV2ZW50c09uKFsibW91c2VvdmVyIiwgIm1vdXNl
ZW50ZXIiLCAibW91c2Vtb3ZlIiwgIm1vdXNlZG93biIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAibW91c2V1cCIsICJjbGljayIsICJhdXhjbGljayJdLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBhbmNlc3RvckNvbnRhaW5lcik7CisKKyAgLy8gVE9ETyhhYm94
aGFsbCk6IFdlIGFyZSBnZXR0aW5nIHRoZXNlIHVuZXhwZWN0ZWQgZXZlbnRzLiBXaHk/CisgIHBy
b21pc2VzID0gcHJvbWlzZXMuY29uY2F0KHVuZXhwZWN0RXZlbnRzT24oWyJtb3VzZW91dCIsICJt
b3VzZWxlYXZlIl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgYW5jZXN0b3JDb250YWluZXIpKTsKKworICBhd2FpdCBjbGlja09uKGZvcmVncm91bmQpOwor
ICBhd2FpdCBhdXhDbGlja09uKGZvcmVncm91bmQpOworICBhd2FpdCBkYmxDbGlja09uKGZvcmVn
cm91bmQpOworICBsZXQgYW5jZXN0b3JCb3ggPSBhbmNlc3RvckNvbnRhaW5lci5nZXRCb3VuZGlu
Z0NsaWVudFJlY3QoKTsKKyAgbGV0IGluZXJ0Qm94ID0gaW5lcnRDb250YWluZXIuZ2V0Qm91bmRp
bmdDbGllbnRSZWN0KCk7CisgIGxldCB4ID0gYW5jZXN0b3JCb3gubGVmdCArIChhbmNlc3RvckJv
eC53aWR0aCAvIDIpOworICBsZXQgeSA9IGluZXJ0Qm94LmJvdHRvbSArICgoYW5jZXN0b3JCb3gu
Ym90dG9tIC0gaW5lcnRCb3guYm90dG9tKSAvIDIpOworICBhd2FpdCBtb3ZlUG9pbnRlclRvKHgs
IHkpOworICBhd2FpdCBQcm9taXNlLmFsbChwcm9taXNlcyk7Cit9LCAnVGVzdHMgdGhhdCBhbnkg
bW91c2UgZXZlbnQgb24gYW4gaW5lcnQgZWxlbWVudCBpcyB0YXJnZXRlZCB0byB0aGUgbmVhcmVz
dCBub24taW5lcnQgYW5jZXN0b3IgYXQgdGhlIHNhbWUgY29vcmRpbmF0ZXMnKTsKKworcHJvbWlz
ZV90ZXN0KGFzeW5jICgpID0+IHsKKyAgLy8gVGVzdCBwb2ludGVyIGV2ZW50cyBvbiBub24taW5l
cnQgZWxlbWVudCAtIGV2ZW50cyBzaG91bGQgZ28gdG8gImZvcmVncm91bmQiCisgIGluZXJ0Q29u
dGFpbmVyLmluZXJ0ID0gZmFsc2U7CisgIGF3YWl0IG1vdmVQb2ludGVyVG8oMCwgMCk7CisKKyAg
bGV0IHByb21pc2VzID0gZXhwZWN0RXZlbnRzT24oWyJwb2ludGVyb3ZlciIsICJwb2ludGVyZW50
ZXIiLCAicG9pbnRlcm1vdmUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInBv
aW50ZXJkb3duIiwgInBvaW50ZXJ1cCIsICJwb2ludGVyb3V0IiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJwb2ludGVybGVhdmUiXSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZm9yZWdyb3VuZCk7CisgIGF3YWl0IGNsaWNrT24oZm9yZWdyb3VuZCk7CisgIGxl
dCBhbmNlc3RvckJveCA9IGFuY2VzdG9yQ29udGFpbmVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgp
OworICBsZXQgaW5lcnRCb3ggPSBpbmVydENvbnRhaW5lci5nZXRCb3VuZGluZ0NsaWVudFJlY3Qo
KTsKKyAgbGV0IHggPSBhbmNlc3RvckJveC5sZWZ0ICsgKGFuY2VzdG9yQm94LndpZHRoIC8gMik7
CisgIGxldCB5ID0gaW5lcnRCb3guYm90dG9tICsgKChhbmNlc3RvckJveC5ib3R0b20gLSBpbmVy
dEJveC5ib3R0b20pIC8gMik7CisgIGF3YWl0IG1vdmVQb2ludGVyVG8oeCwgeSk7CisgIGF3YWl0
IFByb21pc2UuYWxsKHByb21pc2VzKTsKK30sICJUZXN0cyB0aGF0IGFueSBwb2ludGVyIGV2ZW50
IG9uIGEgbm9uLWluZXJ0IGVsZW1lbnQgaXMgY29ycmVjdGx5IHRhcmdldGVkIHRvIHRoYXQgZWxl
bWVudCIpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgKCkgPT4geworICAvLyBNYWtlIHRoZSBjb250
YWluaW5nIGVsZW1lbnQgaW5lcnQgLSBub3cgZXZlbnRzIHNob3VsZCBnbyB0byAiY29udGFpbmVy
IgorICAvLyB3aGljaCBpcyB0aGUgbm9uLWluZXJ0IGFuY2VzdG9yIGF0IHRoZSBzYW1lIHBvc2l0
aW9uCisgIGluZXJ0Q29udGFpbmVyLmluZXJ0ID0gdHJ1ZTsKKyAgYXdhaXQgbW92ZVBvaW50ZXJU
bygwLCAwKTsKKworICBsZXQgcHJvbWlzZXMgPSBleHBlY3RFdmVudHNPbihbInBvaW50ZXJvdmVy
IiwgInBvaW50ZXJlbnRlciIsICJwb2ludGVybW92ZSIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAicG9pbnRlcmRvd24iLCAicG9pbnRlcnVwIiBdLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBhbmNlc3RvckNvbnRhaW5lcik7CisKKyAgLy8gVE9ETyhhYm94aGFs
bCk6IFdlIGFyZSBnZXR0aW5nIHRoZXNlIHVuZXhwZWN0ZWQgZXZlbnRzLiBXaHk/CisgIHByb21p
c2VzID0gcHJvbWlzZXMuY29uY2F0KHVuZXhwZWN0RXZlbnRzT24oWyJwb2ludGVyb3V0IiwgInBv
aW50ZXJsZWF2ZSJdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGFuY2VzdG9yQ29udGFpbmVyKSk7CisKKyAgYXdhaXQgY2xpY2tPbihmb3JlZ3JvdW5kKTsK
KyAgbGV0IGFuY2VzdG9yQm94ID0gYW5jZXN0b3JDb250YWluZXIuZ2V0Qm91bmRpbmdDbGllbnRS
ZWN0KCk7CisgIGxldCBpbmVydEJveCA9IGluZXJ0Q29udGFpbmVyLmdldEJvdW5kaW5nQ2xpZW50
UmVjdCgpOworICBsZXQgeCA9IGFuY2VzdG9yQm94LmxlZnQgKyAoYW5jZXN0b3JCb3gud2lkdGgg
LyAyKTsKKyAgbGV0IHkgPSBpbmVydEJveC5ib3R0b20gKyAoKGFuY2VzdG9yQm94LmJvdHRvbSAt
IGluZXJ0Qm94LmJvdHRvbSkgLyAyKTsKKyAgYXdhaXQgbW92ZVBvaW50ZXJUbyh4LCB5KTsKKyAg
YXdhaXQgUHJvbWlzZS5hbGwocHJvbWlzZXMpOworfSwgJ1Rlc3RzIHRoYXQgYW55IHBvaW50ZXIg
ZXZlbnQgb24gYW4gaW5lcnQgZWxlbWVudCBpcyB0YXJnZXRlZCB0byB0aGUgbmVhcmVzdCBub24t
aW5lcnQgYW5jZXN0b3IgYXQgdGhlIHNhbWUgY29vcmRpbmF0ZXMnKTsKKworPC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2luZXJ0L3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5lZmYxYTcxNTBjYjYwYjIyNzNiMzgwOTFkMzJhOTM2NDE0MjgxOWFjCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC93
M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsxLDI2IEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rv
cnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkg
dGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCBy
ZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZv
cm0tdGVzdHMvd3B0CisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVz
dHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMg
ZmlsZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJl
Zml4ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoK
K05vbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LWRvZXMtbm90LW1hdGNoLWRp
c2FibGVkLXNlbGVjdG9yLnRlbnRhdGl2ZS5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1pbi1zaGFkb3ctZG9tLnRlbnRhdGl2ZS5o
dG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9p
bmVydC1pbmxpbmVzLnRlbnRhdGl2ZS5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1sYWJlbC1mb2N1cy50ZW50YXRpdmUuaHRtbAor
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQt
bm9kZS1pcy11bmVkaXRhYmxlLnRlbnRhdGl2ZS5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1ub2RlLWlzLXVuZm9jdXNhYmxlLnRl
bnRhdGl2ZS5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9pbmVydC9pbmVydC1ub2RlLWlzLXVuc2VsZWN0YWJsZS50ZW50YXRpdmUuaHRtbAorL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtb24tc2xv
dHMudGVudGF0aXZlLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2luZXJ0L2luZXJ0LXJldGFyZ2V0aW5nLWlmcmFtZS50ZW50YXRpdmUuaHRtbAorL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtcmV0
YXJnZXRpbmcudGVudGF0aXZlLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2lvcy13azIvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1ub2Rl
LWlzLXVuZWRpdGFibGUudGVudGF0aXZlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2lvcy13azIvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1u
b2RlLWlzLXVuZWRpdGFibGUudGVudGF0aXZlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMTE0
Y2MxOGRlYzkwNGExNDZiZjAwOGEwOGI4MDY3ZmY1NDFhZTA2Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2luZXJ0L2luZXJ0LW5vZGUtaXMtdW5lZGl0YWJsZS50ZW50YXRpdmUtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsNSBAQAorSSdtIG5vdCBlZGl0YWJsZS4gSSdtIGVkaXRhYmxlLgorCitQQVNT
IENhbid0IGVkaXQgaW5lcnQgY29udGVudGVkaXRhYmxlCitGQUlMIENhbiBlZGl0IG5vbi1pbmVy
dCBjb250ZW50ZWRpdGFibGUgYXNzZXJ0X25vdF9lcXVhbHM6IGdvdCBkaXNhbGxvd2VkIHZhbHVl
ICJJJ20gZWRpdGFibGUuIgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mt
d2syL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtcmV0YXJnZXRp
bmctaWZyYW1lLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9p
b3Mtd2syL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtcmV0YXJn
ZXRpbmctaWZyYW1lLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTFmOWVhNDBj
ZjIxM2VkNDUwNWE5OWRmNDk3MzhmYWFlZTcyNDhjOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9p
bmVydC9pbmVydC1yZXRhcmdldGluZy1pZnJhbWUudGVudGF0aXZlLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDE4IEBACitDbGljayBvbiAiSW5lcnQgYnV0dG9uIi4KKworVGhlIGJsdWUgc3F1YXJl
ICgiTm9uLWluZXJ0IGFuY2VzdG9yIGNvbnRhaW5lciIpIHNob3VsZCB0dXJuIGdyZWVuLgorVGhl
IHllbGxvdywgc2VtaS10cmFuc3BhcmVudCBzcXVhcmUgKCJOb24taW5lcnQsIGRpc3BsYWNlZCBj
b250YWluZXIiKSBzaG91bGQgbm90IHR1cm4gcmVkLgorIk5vbi1pbmVydCBidXR0b24iIHNob3Vs
ZCBub3QgdHVybiByZWQuCisoVGhlIGZ1bGwgdGVzdCBzdWl0ZSBjaGVja3MgYSByYW5nZSBvZiBl
dmVudHMuKQorCitOb24taW5lcnQgYW5jZXN0b3IgY29udGFpbmVyCisgTm9uLWluZXJ0LCBkaXNw
bGFjZWQgYW5jZXN0b3IKK0luZXJ0IGNvbnRhaW5lcgorZm9yZWdyb3VuZAorCitQQVNTIGVsZW1l
bnRzRnJvbVBvaW50IHJldHVybnMgaW5lcnQgZWxlbWVudAorRkFJTCBUZXN0cyB0aGF0IGFueSBt
b3VzZSBldmVudCBvbiBhIG5vbi1pbmVydCBlbGVtZW50IGlzIGNvcnJlY3RseSB0YXJnZXRlZCB0
byB0aGF0IGVsZW1lbnQgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFs
dWU6ICJkaWQgbm90IGdldCBtb3VzZW92ZXIgb24gZm9yZWdyb3VuZCIKK0ZBSUwgVGVzdHMgdGhh
dCBhbnkgbW91c2UgZXZlbnQgb24gYW4gaW5lcnQgZWxlbWVudCBpcyB0YXJnZXRlZCB0byB0aGUg
bmVhcmVzdCBub24taW5lcnQgYW5jZXN0b3IgYXQgdGhlIHNhbWUgY29vcmRpbmF0ZXMgcHJvbWlz
ZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6ICJkaWQgbm90IGdldCBtb3Vz
ZW92ZXIgb24gYW5jZXN0b3JDb250YWluZXIiCitGQUlMIFRlc3RzIHRoYXQgYW55IHBvaW50ZXIg
ZXZlbnQgb24gYSBub24taW5lcnQgZWxlbWVudCBpcyBjb3JyZWN0bHkgdGFyZ2V0ZWQgdG8gdGhh
dCBlbGVtZW50IHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiAi
ZGlkIG5vdCBnZXQgcG9pbnRlcm92ZXIgb24gZm9yZWdyb3VuZCIKK0ZBSUwgVGVzdHMgdGhhdCBh
bnkgcG9pbnRlciBldmVudCBvbiBhbiBpbmVydCBlbGVtZW50IGlzIHRhcmdldGVkIHRvIHRoZSBu
ZWFyZXN0IG5vbi1pbmVydCBhbmNlc3RvciBhdCB0aGUgc2FtZSBjb29yZGluYXRlcyBwcm9taXNl
X3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogImRpZCBub3QgZ2V0IHBvaW50
ZXJvdmVyIG9uIGFuY2VzdG9yQ29udGFpbmVyIgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9pb3Mtd2syL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5l
cnQtcmV0YXJnZXRpbmcudGVudGF0aXZlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2lvcy13azIvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1y
ZXRhcmdldGluZy50ZW50YXRpdmUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFhNWZiYTNiZjcx
Mjg1N2Q3ODVjOGQwMGM4Yjg3MTJmZGVmNGNhZWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5l
cnQvaW5lcnQtcmV0YXJnZXRpbmcudGVudGF0aXZlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE4
IEBACitDbGljayBvbiAiZm9yZWdyb3VuZCIuCisKK1RoZSBibHVlIHNxdWFyZSAoIk5vbi1pbmVy
dCBhbmNlc3RvciBjb250YWluZXIiKSBzaG91bGQgdHVybiBncmVlbi4KK1RoZSB5ZWxsb3csIHNl
bWktdHJhbnNwYXJlbnQgc3F1YXJlICgiTm9uLWluZXJ0LCBkaXNwbGFjZWQgY29udGFpbmVyIikg
c2hvdWxkIG5vdCB0dXJuIHJlZC4KKyJOb24taW5lcnQgYnV0dG9uIiBzaG91bGQgbm90IHR1cm4g
cmVkLgorKFRoZSBmdWxsIHRlc3Qgc3VpdGUgY2hlY2tzIGEgcmFuZ2Ugb2YgZXZlbnRzLikKKwor
Tm9uLWluZXJ0IGFuY2VzdG9yIGNvbnRhaW5lcgorYmFja2dyb3VuZE5vbi1pbmVydCwgZGlzcGxh
Y2VkIGFuY2VzdG9yCitJbmVydCBjb250YWluZXIKK2ZvcmVncm91bmQKKworUEFTUyBlbGVtZW50
c0Zyb21Qb2ludCByZXR1cm5zIGluZXJ0IGVsZW1lbnQKK0ZBSUwgVGVzdHMgdGhhdCBhbnkgbW91
c2UgZXZlbnQgb24gYSBub24taW5lcnQgZWxlbWVudCBpcyBjb3JyZWN0bHkgdGFyZ2V0ZWQgdG8g
dGhhdCBlbGVtZW50IHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVl
OiAiZGlkIG5vdCBnZXQgbW91c2VvdmVyIG9uIGZvcmVncm91bmQiCitGQUlMIFRlc3RzIHRoYXQg
YW55IG1vdXNlIGV2ZW50IG9uIGFuIGluZXJ0IGVsZW1lbnQgaXMgdGFyZ2V0ZWQgdG8gdGhlIG5l
YXJlc3Qgbm9uLWluZXJ0IGFuY2VzdG9yIGF0IHRoZSBzYW1lIGNvb3JkaW5hdGVzIHByb21pc2Vf
dGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiAiZGlkIG5vdCBnZXQgbW91c2Vv
dmVyIG9uIGFuY2VzdG9yQ29udGFpbmVyIgorRkFJTCBUZXN0cyB0aGF0IGFueSBwb2ludGVyIGV2
ZW50IG9uIGEgbm9uLWluZXJ0IGVsZW1lbnQgaXMgY29ycmVjdGx5IHRhcmdldGVkIHRvIHRoYXQg
ZWxlbWVudCBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogImRp
ZCBub3QgZ2V0IHBvaW50ZXJvdmVyIG9uIGZvcmVncm91bmQiCitGQUlMIFRlc3RzIHRoYXQgYW55
IHBvaW50ZXIgZXZlbnQgb24gYW4gaW5lcnQgZWxlbWVudCBpcyB0YXJnZXRlZCB0byB0aGUgbmVh
cmVzdCBub24taW5lcnQgYW5jZXN0b3IgYXQgdGhlIHNhbWUgY29vcmRpbmF0ZXMgcHJvbWlzZV90
ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6ICJkaWQgbm90IGdldCBwb2ludGVy
b3ZlciBvbiBhbmNlc3RvckNvbnRhaW5lciIKKwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>436200</attachid>
            <date>2021-08-23 09:04:08 -0700</date>
            <delta_ts>2021-08-23 09:28:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-165279-20210823180407.patch</filename>
            <type>text/plain</type>
            <size>69649</size>
            <attacher name="Tim Nguyen (:ntim)">ntim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxNDM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDY0NmExZjc0Y2M5ODAxZTkxZmQwY2Y3
ZGY1NWNmNDViOTNiYzEzYWUuLjE4YzYyZDMyNTMwN2MxODU4ZGQ2YWFlN2Q2ZTkwYTFkM2U1ZTk2
M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMDgtMjAgIFRpbSBOZ3V5ZW4gIDxudGltQGFw
cGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgaW5lcnQgYXR0cmlidXRlIGJlaGluZCBmZWF0
dXJlIGZsYWcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE2NTI3OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFkZCBydW50aW1lIEluZXJ0QXR0cmlidXRlRW5hYmxlZCBmZWF0dXJlIGZsYWcgZGlzYWJsZWQg
YnkgZGVmYXVsdC4KKworICAgICAgICAqIFNjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5j
ZXNFeHBlcmltZW50YWwueWFtbDoKKwogMjAyMS0wOC0yMSAgTXlsZXMgQy4gTWF4ZmllbGQgIDxt
bWF4ZmllbGRAYXBwbGUuY29tPgogCiAgICAgICAgIG92ZXJ3cml0ZUNvZGVQb2ludCgpIGluIGNy
ZWF0ZUFuZEZpbGxHbHlwaFBhZ2UoKSBpcyB3cm9uZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDVjNzE4ZTNiNmE5
YWRmZDgwNWUzMWM5YjZkZmMwMDMxMDc1NDUyYTUuLmE5MDcwMzliNzY5OWI5YTE2OGU2YTljMGE3
Nzk4OTI1MTg1ODUzZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAyMS0wOC0yMCAg
VGltIE5ndXllbiAgPG50aW1AYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBpbmVydCBh
dHRyaWJ1dGUgYmVoaW5kIGZlYXR1cmUgZmxhZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY1Mjc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVGVzdHM6IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvaW5lcnQvZnJhbWUvYnV0dG9uLmh0bWwKKyAgICAgICAgICAgICAgIGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtZG9lcy1ub3QtbWF0Y2gtZGlzYWJsZWQtc2Vs
ZWN0b3IudGVudGF0aXZlLmh0bWwKKyAgICAgICAgICAgICAgIGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtaW4tc2hhZG93LWRvbS50ZW50YXRpdmUuaHRtbAorICAg
ICAgICAgICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1p
bmxpbmVzLnRlbnRhdGl2ZS5odG1sCisgICAgICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LWxhYmVsLWZvY3VzLnRlbnRhdGl2ZS5odG1sCisgICAg
ICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LW5v
ZGUtaXMtdW5lZGl0YWJsZS50ZW50YXRpdmUuaHRtbAorICAgICAgICAgICAgICAgaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1ub2RlLWlzLXVuZm9jdXNhYmxlLnRl
bnRhdGl2ZS5odG1sCisgICAgICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2luZXJ0L2luZXJ0LW5vZGUtaXMtdW5zZWxlY3RhYmxlLnRlbnRhdGl2ZS5odG1sCisgICAg
ICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LW9u
LXNsb3RzLnRlbnRhdGl2ZS5odG1sCisgICAgICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LXJldGFyZ2V0aW5nLWlmcmFtZS50ZW50YXRpdmUuaHRt
bAorICAgICAgICAgICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9p
bmVydC1yZXRhcmdldGluZy50ZW50YXRpdmUuaHRtbAorCisgICAgICAgICogZG9tL05vZGUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6aXNJbmVydCBjb25zdCk6CisgICAgICAgICogaHRt
bC9IVE1MQXR0cmlidXRlTmFtZXMuaW46CisgICAgICAgICogaHRtbC9IVE1MRWxlbWVudC5pZGw6
CisKIDIwMjEtMDgtMjIgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgogCiAgICAgICAgIFtGcmVldHlwZV0gU2V0IG1heGltdW0gYWxsb3dlZCBmb250IHNpemUgZm9y
IEZyZWV0eXBlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2Vi
UHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbCBiL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJl
bmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sCmluZGV4IDVmZGIyNDU0Yzk5NDQ0
MGY3ZThkZjc1MjdmZmNlMTg3MDMzYjM5N2EuLjE4NWE1YWMwZjQ1NGM3NmMwMzQ3OTJhZDE4NTc2
MWZjY2E2OTQ5OTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9X
ZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sCisrKyBiL1NvdXJjZS9XVEYvU2NyaXB0cy9Q
cmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sCkBAIC01MzQsNiArNTM0
LDE4IEBAIEluY3JlbWVudGFsUERGTG9hZGluZ0VuYWJsZWQ6CiAgICAgV2ViS2l0OgogICAgICAg
ZGVmYXVsdDogV2ViS2l0OjpkZWZhdWx0SW5jcmVtZW50YWxQREZFbmFibGVkKCkKIAorSW5lcnRB
dHRyaWJ1dGVFbmFibGVkOgorICB0eXBlOiBib29sCisgIGh1bWFuUmVhZGFibGVOYW1lOiAiaW5l
cnQgYXR0cmlidXRlIgorICBodW1hblJlYWRhYmxlRGVzY3JpcHRpb246ICJFbmFibGUgaW5lcnQg
YXR0cmlidXRlIHN1cHBvcnQiCisgIGRlZmF1bHRWYWx1ZToKKyAgICBXZWJLaXRMZWdhY3k6Cisg
ICAgICBkZWZhdWx0OiBmYWxzZQorICAgIFdlYktpdDoKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCisg
ICAgV2ViQ29yZToKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCisKICMgRklYTUU6IFRoaXMgaXMgb24g
YnkgZGVmYXVsdCBpbiBXZWJLaXQyLiBQZXJoYXBzIHdlIHNob3VsZCBjb25zaWRlciB0dXJuaW5n
IGl0IG9uIGZvciBXZWJLaXRMZWdhY3kgYXMgd2VsbC4KIEludGVyc2VjdGlvbk9ic2VydmVyRW5h
YmxlZDoKICAgdHlwZTogYm9vbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCmluZGV4IDdlZTExMjY0Yzc3MjZmNDQ0
ODI0Y2Y0YWQ3NDljODEzODYzY2Q5NGEuLjY0OGMzY2M0MmJiNTg1MTJiNTlhYzYzMzI3NjY1NzMy
MWIyNDY2YjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKQEAgLTI2MzIsNiArMjYzMiwxNCBAQCBib29sIE5v
ZGU6OmlzSW5lcnQoKSBjb25zdAogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCisg
ICAgaWYgKGRvY3VtZW50KCkuc2V0dGluZ3MoKS5pbmVydEF0dHJpYnV0ZUVuYWJsZWQoKSkgewor
ICAgICAgICBhdXRvKiBlbGVtZW50ID0gaXM8RWxlbWVudD4odGhpcykgPyBkb3duY2FzdDxFbGVt
ZW50Pih0aGlzKSA6IHBhcmVudEVsZW1lbnQoKTsKKyAgICAgICAgZm9yIChhdXRvJiBlbGVtZW50
IDogbGluZWFnZU9mVHlwZTxIVE1MRWxlbWVudD4oKmVsZW1lbnQpKSB7CisgICAgICAgICAgICBp
ZiAoZWxlbWVudC5oYXNBdHRyaWJ1dGUoSFRNTE5hbWVzOjppbmVydEF0dHIpKQorICAgICAgICAg
ICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgfQorCiAgICAgaWYgKCFkb2N1bWVu
dCgpLmZyYW1lKCkgfHwgIWRvY3VtZW50KCkuZnJhbWUoKS0+b3duZXJFbGVtZW50KCkpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
QXR0cmlidXRlTmFtZXMuaW4gYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBdHRyaWJ1dGVOYW1l
cy5pbgppbmRleCA0ZmRjYjlkMzIxOGU3MmI4MWMzNDVkYjU3MWZlYmIxYmRkOWRjNjE0Li42MjZm
ZTQ5ZGYyZmZkNDc4YzJmZTA0ZjQyMDdkYmQ0ZGZkN2M2OWJjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5pbgpAQCAtMTU3LDYgKzE1Nyw3IEBAIGltYWdlc2l6ZXMK
IGltYWdlc3Jjc2V0CiBpbmNyZW1lbnRhbAogaW5kZXRlcm1pbmF0ZQoraW5lcnQKIGlucHV0bW9k
ZQogaW50ZWdyaXR5CiBpcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcAppbmRleCAwNmFi
NWNlN2IyMWM5Nzk4MDMwMjliZTMyZmNkNzliY2JiZGYzZThiLi5lMjgwNTA2NzcxYWVkYTkyNzc4
ZjI1ZjY4M2QyMWIzMTM4NzEyOTk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcApA
QCAtNDgxLDcgKzQ4MSw3IEBAIHZvaWQgSFRNTEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhCiAgICAgICAgICAgICBz
ZXRUYWJJbmRleEV4cGxpY2l0bHkoc3RkOjpudWxsb3B0KTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KLSAgICAKKwogICAgIGlmIChuYW1lID09IGlucHV0bW9kZUF0dHIpIHsKICAgICAgICAgYXV0
byYgZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVudCgpOwogICAgICAgICBpZiAodGhpcyA9PSBkb2N1
bWVudC5mb2N1c2VkRWxlbWVudCgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxFbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaWRsCmlu
ZGV4IDM0ZTM5YzI3ZTJhYWU4MmQ0MzI1OTlhMWVjMjI1ODVhZGJhYTQyNzEuLmZhY2FjOWYxNjdm
ZmUwZWIzNDY4ZWZiOTY4M2IwMTcwNTVmNTFhMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEVsZW1lbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1l
bnQuaWRsCkBAIC00Nyw2ICs0Nyw5IEBACiAgICAgLy8gRklYTUU6IEltcGxlbWVudCAnYXR0YWNo
SW50ZXJuYWxzJy4KICAgICAvLyBFbGVtZW50SW50ZXJuYWxzIGF0dGFjaEludGVybmFscygpOwog
CisgICAgLy8gRXhwZXJpbWVudGFsOiBodHRwczovL2dpdGh1Yi5jb20vV0lDRy9pbmVydC9ibG9i
L21hc3Rlci9SRUFETUUubWQKKyAgICBbQ0VSZWFjdGlvbnMsIFJlZmxlY3QsIEVuYWJsZWRCeVNl
dHRpbmc9SW5lcnRBdHRyaWJ1dGVdIGF0dHJpYnV0ZSBib29sZWFuIGluZXJ0OworCiAgICAgLy8g
Tm9uLXN0YW5kYXJkOiBJRSBleHRlbnNpb24uIE1heSBnZXQgYWRkZWQgdG8gdGhlIHNwZWNpZmlj
YXRpb24gKGh0dHBzOi8vZ2l0aHViLmNvbS93aGF0d2cvaHRtbC9pc3N1ZXMvNjY4KS4KICAgICBb
Q0VSZWFjdGlvbnNdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIERPTVN0cmlu
ZyBvdXRlclRleHQ7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwppbmRleCBkN2M1OGE2MTUzODRhOGIyNjdiZWQyODMyYTBkM2IyZThk
YzQ2ZTY5Li4xNWFkZmFiNzg2N2I2ZWFiNTRjZmY4MDg5MTkwYmEwMDQyYjBlMGQ2IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTYgQEAKKzIwMjEtMDgtMjAgIFRpbSBOZ3V5ZW4gIDxudGltQGFwcGxlLmNvbT4K
KworICAgICAgICBJbXBsZW1lbnQgaW5lcnQgYXR0cmlidXRlIGJlaGluZCBmZWF0dXJlIGZsYWcK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NTI3OQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENyZWF0ZSBp
T1MgYmFzZWxpbmVzLgorCisgICAgICAgICogcGxhdGZvcm0vaW9zLXdrMi9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LW5vZGUtaXMtdW5lZGl0YWJsZS50ZW50YXRp
dmUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9pb3Mtd2syL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtcmV0YXJnZXRpbmctaWZyYW1l
LnRlbnRhdGl2ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2lvcy13
azIvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1yZXRhcmdldGlu
Zy50ZW50YXRpdmUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKwogMjAyMS0wOC0yMiAgWXVzdWtlIFN1
enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFtKU0NdIFJlbW92ZSBhbHJlYWR5
LXNoaXBwZWQgd2FzbSBvcHRpb24gZmxhZ3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmlu
ZGV4IDViNjcxOTY5YWQxMjFiY2ExNTdkN2JiZmY5OGEyZGRlNTBmNTlkM2QuLmNlZTk2OWQzMmEw
OTQ1ZjBhNTE1ZTU4MTMxMjVhYTJmMDJkOGEzMWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDIxLTA4LTIwICBUaW0gTmd1eWVuICA8bnRpbUBhcHBs
ZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IGluZXJ0IGF0dHJpYnV0ZSBiZWhpbmQgZmVhdHVy
ZSBmbGFnCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NjUyNzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJ
bXBvcnQgaW5lcnQvIFdQVCBkaXJlY3RvcnkgdXNpbmcgYGltcG9ydC13M2MtdGVzdHMgLXQgd2Vi
LXBsYXRmb3JtLXRlc3RzL2luZXJ0YC4KKyAgICAgICAgV1BUIHJldmlzaW9uOiBodHRwczovL2dp
dGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9jb21taXQvZjAyZTM4ZDdhNjc5OTk2ODNk
MDU1NzlmNjJiMzM5NDMwYzYxZTRlYworCisgICAgICAgICogcmVzb3VyY2VzL2ltcG9ydC1leHBl
Y3RhdGlvbnMuanNvbjoKKyAgICAgICAgKiByZXNvdXJjZXMvcmVzb3VyY2UtZmlsZXMuanNvbjoK
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvZnJhbWUvYnV0dG9uLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9mcmFtZS93M2MtaW1wb3J0
LmxvZzogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LWRv
ZXMtbm90LW1hdGNoLWRpc2FibGVkLXNlbGVjdG9yLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1kb2VzLW5vdC1t
YXRjaC1kaXNhYmxlZC1zZWxlY3Rvci50ZW50YXRpdmUuaHRtbDogQWRkZWQuCisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LWluLXNoYWRvdy1kb20udGVudGF0aXZlLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2lu
ZXJ0LWluLXNoYWRvdy1kb20udGVudGF0aXZlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1pbmxpbmVzLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1pbmxpbmVz
LnRlbnRhdGl2ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaW5l
cnQvaW5lcnQtbGFiZWwtZm9jdXMudGVudGF0aXZlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LWxhYmVsLWZvY3VzLnRlbnRhdGl2
ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQt
bm9kZS1pcy11bmVkaXRhYmxlLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1ub2RlLWlzLXVuZWRpdGFibGUudGVu
dGF0aXZlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9p
bmVydC1ub2RlLWlzLXVuZm9jdXNhYmxlLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1ub2RlLWlzLXVuZm9jdXNh
YmxlLnRlbnRhdGl2ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
aW5lcnQvaW5lcnQtbm9kZS1pcy11bnNlbGVjdGFibGUudGVudGF0aXZlLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LW5vZGUtaXMt
dW5zZWxlY3RhYmxlLnRlbnRhdGl2ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvaW5lcnQvaW5lcnQtb24tc2xvdHMudGVudGF0aXZlLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LW9uLXNsb3RzLnRl
bnRhdGl2ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQv
aW5lcnQtcmV0YXJnZXRpbmctaWZyYW1lLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1yZXRhcmdldGluZy1pZnJh
bWUudGVudGF0aXZlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9p
bmVydC9pbmVydC1yZXRhcmdldGluZy50ZW50YXRpdmUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtcmV0YXJnZXRpbmcudGVudGF0
aXZlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC93M2Mt
aW1wb3J0LmxvZzogQWRkZWQuCisKIDIwMjEtMDgtMjIgIE15bGVzIEMuIE1heGZpZWxkICA8bW1h
eGZpZWxkQGFwcGxlLmNvbT4KIAogICAgICAgICBDb250cm9sIGNoYXJhY3RlcnMgKFVuaWNvZGUg
Y2F0ZWdvcnkgQ2MpIHNob3VsZCBiZSByZW5kZXJlZCB2aXNpYmx5CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvcmVzb3VyY2VzL2ltcG9ydC1leHBlY3RhdGlvbnMuanNvbiBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9yZXNvdXJjZXMvaW1wb3J0LWV4cGVjdGF0aW9ucy5q
c29uCmluZGV4IDU3M2EwNmMwZDkyODgwMDI0OTJjN2FiYjc0Mzc1MTMwODM3N2ViNDMuLmY4OTJi
N2MyZGNhMzI1MGUzZDJhN2JkNTdmMjg2YzJlYmM0YmM2NTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9yZXNvdXJjZXMvaW1wb3J0LWV4cGVjdGF0aW9ucy5qc29uCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9yZXNvdXJjZXMvaW1wb3J0LWV4cGVjdGF0aW9ucy5q
c29uCkBAIC0zMzQsNiArMzM0LDcgQEAKICAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2ltYWdlLWRl
Y29kZXMiOiAic2tpcCIsIAogICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaW1hZ2ViaXRtYXAtcmVu
ZGVyaW5nY29udGV4dCI6ICJpbXBvcnQiLCAKICAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2ltYWdl
cyI6ICJpbXBvcnQiLCAKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0IjogImltcG9ydCIs
IAogICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaW5mcmFzdHJ1Y3R1cmUiOiAiaW1wb3J0IiwgCiAg
ICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9pbm5lclRleHQiOiAiaW1wb3J0IiwgCiAgICAgIndlYi1w
bGF0Zm9ybS10ZXN0cy9pbnB1dC1ldmVudHMiOiAic2tpcCIsIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3Jlc291cmNlcy9yZXNvdXJjZS1maWxlcy5qc29uIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3Jlc291cmNlcy9yZXNvdXJjZS1maWxlcy5qc29uCmluZGV4IDhm
Njc0MDUzYjI0YTc4YjE5NTQ5OTBjZTY2ZmRhYjQ5MWExNThmOWIuLmIxNzhlMGFkMjA4NTRmNzdj
ODUyNDNiMTg4MmQ5YzQwMTZkNGExZDkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9yZXNvdXJjZXMvcmVzb3VyY2UtZmlsZXMuanNvbgorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvcmVzb3VyY2VzL3Jlc291cmNlLWZpbGVzLmpzb24KQEAgLTI3NzIsNiArMjc3Miw3
IEBACiAgICAgICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC93ZWJhcHBhcGlzL3NjcmlwdGlu
Zy9ldmVudHMvb25lcnJvcmV2ZW50aGFuZGxlci1mcmFtZS5odG1sIiwKICAgICAgICAgIndlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL3dlYmFwcGFwaXMvdXNlci1wcm9tcHRzL2Nhbm5vdC1zaG93LXNp
bXBsZS1kaWFsb2dzL3N1cHBvcnQvY29uZmlybS5odG1sIiwKICAgICAgICAgIndlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL3dlYmFwcGFwaXMvdXNlci1wcm9tcHRzL2Nhbm5vdC1zaG93LXNpbXBsZS1k
aWFsb2dzL3N1cHBvcnQvcHJvbXB0Lmh0bWwiLAorICAgICAgICAid2ViLXBsYXRmb3JtLXRlc3Rz
L2luZXJ0L2ZyYW1lL2J1dHRvbi5odG1sIiwKICAgICAgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9p
bmZyYXN0cnVjdHVyZS9hc3N1bXB0aW9ucy9haGVtLW5vdHJlZi5odG1sIiwKICAgICAgICAgIndl
Yi1wbGF0Zm9ybS10ZXN0cy9pbmZyYXN0cnVjdHVyZS9yZWZ0ZXN0L3JlZC5odG1sIiwKICAgICAg
ICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9pbnRlcnNlY3Rpb24tb2JzZXJ2ZXIvb2JzZXJ2ZXItaW4t
aWZyYW1lLmh0bWwiLApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9pbmVydC9mcmFtZS9idXR0b24uaHRtbCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvZnJhbWUvYnV0dG9uLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNTg2N2M3NTgxNDJjNjY1MjM2MmEyM2YxOTUzM2E4ZDg2ZmUyOTY0OAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5l
cnQvZnJhbWUvYnV0dG9uLmh0bWwKQEAgLTAsMCArMSwzNiBAQAorPCFET0NUWVBFIGh0bWw+Cis8
aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorYm9keSB7CisgIG92ZXJmbG93OiBoaWRkZW47Cit9CisK
K2J1dHRvbiNiYWNrZ3JvdW5kIHsKKyAgcG9zaXRpb246IGFic29sdXRlOworICB0b3A6IDA7Cisg
IGxlZnQ6IDA7CisgIHdpZHRoOiAxNTBweDsKKyAgaGVpZ2h0OiA0MHB4OworICBsaW5lLWhlaWdo
dDogNTNweDsKK30KKworYnV0dG9uLmNsaWNrZWQgeworICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7
Cit9CisKK2J1dHRvbi5jbGlja2VkOjphZnRlciB7CisgIGNvbnRlbnQ6ICIgKGNsaWNrZWQpIjsK
K30KKworPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorICA8YnV0dG9uIGlkPSJiYWNrZ3JvdW5k
Ij5iYWNrZ3JvdW5kPC9idXR0b24+Cis8c2NyaXB0PgorZG9jdW1lbnQuYm9keS5hZGRFdmVudExp
c3RlbmVyKCdjbGljaycsIChlKSA9PiB7CisgIGUudGFyZ2V0LmNsYXNzTGlzdC5hZGQoJ2NsaWNr
ZWQnKTsKK30pOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2ZyYW1lL3czYy1p
bXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9p
bmVydC9mcmFtZS93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNDUxYjA4YjdiM2IyYTEyNjNj
ZjBiMDJlNzg4ZTA3NDFjMDAyMGE2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9mcmFtZS93M2MtaW1wb3J0LmxvZwpA
QCAtMCwwICsxLDE3IEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRl
ZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGly
ZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBX
UFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0CisK
K1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRv
IHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KKworLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCitQ
cm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKKy0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2luZXJ0L2ZyYW1lL2J1dHRvbi5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LWRvZXMtbm90
LW1hdGNoLWRpc2FibGVkLXNlbGVjdG9yLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LWRvZXMtbm90
LW1hdGNoLWRpc2FibGVkLXNlbGVjdG9yLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYTlkNjM5ZTE4Yjc4Y2RjMTVlMzZjOGEzOGIxMDBjZTQxNDEyMWI3YwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQv
aW5lcnQtZG9lcy1ub3QtbWF0Y2gtZGlzYWJsZWQtc2VsZWN0b3IudGVudGF0aXZlLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDQgQEAKK1RoZSB0ZXN0IHBhc3NlcyBpZiB0aGlzIGlzIGluIGdyZWVu
LgorCitQQVNTIFRlc3RzIHRoYXQgaW5lcnQgZWxlbWVudHMgZG8gbm90IG1hdGNoIHRoZSA6ZGlz
YWJsZWQgc2VsZWN0b3IuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtZG9lcy1ub3QtbWF0Y2gtZGlzYWJsZWQtc2Vs
ZWN0b3IudGVudGF0aXZlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2luZXJ0L2luZXJ0LWRvZXMtbm90LW1hdGNoLWRpc2FibGVkLXNlbGVjdG9yLnRl
bnRhdGl2ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc0YjhhYzNmN2RkNWMzNDQ3YmY0N2ZkNzMyZmFkZTky
MjA0OTdjOTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LWRvZXMtbm90LW1hdGNoLWRpc2FibGVkLXNlbGVj
dG9yLnRlbnRhdGl2ZS5odG1sCkBAIC0wLDAgKzEsMjcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0
bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Nj
cmlwdD4KKzxzdHlsZT4KK2J1dHRvbiB7CisgICAgY29sb3I6IGdyZWVuOworfQorCitidXR0b246
ZGlzYWJsZWQgeworICAgIGNvbG9yOiByZWQ7Cit9CisKKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9k
eSBzdHlsZT0iY29sb3I6IGdyZWVuIj4KKzxidXR0b24gaW5lcnQ+VGhlIHRlc3QgcGFzc2VzIGlm
IHRoaXMgaXMgaW4gZ3JlZW4uPC9idXR0b24+Cis8c2NyaXB0PgordGVzdChmdW5jdGlvbigpIHsK
KyAgICBidXR0b24gPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdidXR0b24nKTsKKyAgICBjb2xv
ciA9IGRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUoYnV0dG9uKS5nZXRQcm9w
ZXJ0eVZhbHVlKCdjb2xvcicpOworICAgIGFzc2VydF9mYWxzZShidXR0b24ubWF0Y2hlcygnOmRp
c2FibGVkJykpOworfSwgJ1Rlc3RzIHRoYXQgaW5lcnQgZWxlbWVudHMgZG8gbm90IG1hdGNoIHRo
ZSA6ZGlzYWJsZWQgc2VsZWN0b3IuJyk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5l
cnQvaW5lcnQtaW4tc2hhZG93LWRvbS50ZW50YXRpdmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1pbi1zaGFkb3ct
ZG9tLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2EyNWI3NTFkMGM4MTZlMTE4
ZmFlMTRkYjE4NzkyYTE1YjI5NWU4MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtaW4tc2hhZG93LWRvbS50
ZW50YXRpdmUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorQnV0dG9ucyAxIGFuZCAyIHNo
b3VsZCBiZSBpbmVydC4KK0J1dHRvbiAxIChpbmVydCkKKworRkFJTCBpbmVydCBvbiBTaGFkb3cg
aG9zdCBhZmZlY3RzIGNvbnRlbnQgaW4gc2hhZG93IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIGZh
bHNlIGJ1dCBnb3QgdHJ1ZQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LWluLXNoYWRvdy1kb20udGVudGF0aXZlLmh0
bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2lu
ZXJ0LWluLXNoYWRvdy1kb20udGVudGF0aXZlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWM4MjVkYmZkYzk4
NTQ1OGNjNzM5M2Q1OGIyZWZjMmNlMDc5NjM2NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtaW4tc2hhZG93
LWRvbS50ZW50YXRpdmUuaHRtbApAQCAtMCwwICsxLDU1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0idXRmLTgiIC8+CisgICAgPHRpdGxlPmlu
ZXJ0IG9uIFNoYWRvdyBob3N0IGFmZmVjdHMgY29udGVudCBpbiBzaGFkb3c8L3RpdGxlPgorICAg
IDxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iQWxpY2UgQm94aGFsbCIgaHJlZj0iYWJveGhhbGxA
Y2hyb21pdW0ub3JnIj4KKyAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5q
cyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBv
cnQuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgIDxkaXY+QnV0dG9ucyAxIGFuZCAy
IHNob3VsZCBiZSBpbmVydC48L2Rpdj4KKyAgPGRpdiBpZD0ic2hhZG93LWhvc3QiIGluZXJ0Pgor
ICAgIDxidXR0b24gaWQ9ImJ1dHRvbi0xIj5CdXR0b24gMSAoaW5lcnQpPC9idXR0b24+CisgIDwv
ZGl2PgorICA8c2NyaXB0PgorICAgIC8qCisgICAgRXZlbnR1YWwgZmxhdHRlbmVkIHRyZWUgc3Ry
dWN0dXJlOgorCisgICAgPGRpdiBpZD0ic2hhZG93LWhvc3QiIGluZXJ0PgorICAgICAgI3NoYWRv
dy1yb290IChvcGVuKQorICAgICAgfCA8c2xvdD4KKyAgICAgIDogICA8YnV0dG9uIGlkPSJidXR0
b24tMSI+QnV0dG9uIDEgKGluZXJ0KTwvYnV0dG9uPiA8IS0tIHNsb3R0ZWQgLS0+CisgICAgICB8
IDwvc2xvdD4KKyAgICAgIHwgPGJ1dHRvbiBpZD0iYnV0dG9uLTIiPkJ1dHRvbiAyIChpbmVydCk8
L2J1dHRvbj4gICA8IS0tIGluIHNoYWRvdyAtLT4KKyAgICA8L2Rpdj4KKyAgICAqLworCisgICAg
Y29uc3Qgc2hhZG93SG9zdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzaGFkb3ctaG9zdCIp
OworICAgIGNvbnN0IHNoYWRvd1Jvb3QgPSBzaGFkb3dIb3N0LmF0dGFjaFNoYWRvdyh7IG1vZGU6
ICJvcGVuIiB9KTsKKworICAgIC8vIEJ1dHRvbiAxIHdpbGwgYmUgc2xvdHRlZAorICAgIGNvbnN0
IHNsb3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzbG90Iik7CisgICAgc2hhZG93Um9vdC5h
cHBlbmRDaGlsZChzbG90KTsKKworICAgIGNvbnN0IGJ1dHRvbjIgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJidXR0b24iKTsKKyAgICBidXR0b24yLmlkID0gImJ1dHRvbi0yIjsKKyAgICBidXR0
b24yLnRleHRDb250ZW50ID0gIkJ1dHRvbiAyIChpbmVydCkiOworICAgIHNoYWRvd1Jvb3QuYXBw
ZW5kQ2hpbGQoYnV0dG9uMik7CisKKyAgICBmdW5jdGlvbiB0ZXN0Q2FuRm9jdXMoc2VsZWN0b3Is
IGNhbkZvY3VzLCBvcHRfY29udGV4dCkgeworICAgICAgbGV0IGNvbnRleHQgPSBvcHRfY29udGV4
dCB8fCBkb2N1bWVudDsKKyAgICAgIGNvbnN0IGVsZW1lbnQgPSBjb250ZXh0LnF1ZXJ5U2VsZWN0
b3Ioc2VsZWN0b3IpOworICAgICAgbGV0IGZvY3VzZWRFbGVtZW50ID0gbnVsbDsKKyAgICAgIGVs
ZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLCBmdW5jdGlvbigpIHsgZm9jdXNlZEVsZW1l
bnQgPSBlbGVtZW50OyB9LCBmYWxzZSk7CisgICAgICBlbGVtZW50LmZvY3VzKCk7CisgICAgICBh
c3NlcnRfZXF1YWxzKChmb2N1c2VkRWxlbWVudCA9PT0gZWxlbWVudCksIGNhbkZvY3VzKTsKKyAg
ICB9CisKKyAgICB0ZXN0KCgpID0+IHsKKyAgICAgIHRlc3RDYW5Gb2N1cygiI2J1dHRvbi0xIiwg
ZmFsc2UpOworICAgICAgdGVzdENhbkZvY3VzKCIjYnV0dG9uLTIiLCBmYWxzZSwgc2hhZG93Um9v
dCk7CisgICAgfSwgImluZXJ0IG9uIFNoYWRvdyBob3N0IGFmZmVjdHMgY29udGVudCBpbiBzaGFk
b3ciKTsKKyAgPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LWlubGluZXMu
dGVudGF0aXZlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtaW5saW5lcy50ZW50YXRpdmUtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjNjZDcwNmM5MjA2Y2JjNWE2MDYxOGFhMzcyMzg2YzEwM2RjMTgxNDUKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2luZXJ0L2luZXJ0LWlubGluZXMudGVudGF0aXZlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYg
QEAKK0NsaWNrIG1lIENsaWNrIG1lCitDbGljayBtZQorQ2xpY2sgbWUKKworRkFJTCBUZXN0cyB0
aGF0IGluZXJ0IGlubGluZXMgZG8gbm90IHJlY2VpdmUgbW91c2UgZXZlbnRzLiBUbyB0ZXN0IG1h
bnVhbGx5LCBjbGljayBvbiBhbGwgdGhlICJDbGljayBtZSJzLiBUaGUgdGVzdCBmYWlscyBpZiB5
b3Ugc2VlIHJlZC4gYXNzZXJ0X2ZhbHNlOiBubyBldmVudCBzaG91bGQgYmUgZmlyZWQgb24gYSBl
eHBlY3RlZCBmYWxzZSBnb3QgdHJ1ZQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LWlubGluZXMudGVudGF0aXZlLmh0
bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2lu
ZXJ0LWlubGluZXMudGVudGF0aXZlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjA1NmM2NDk1ZDJjNTQ3MzNi
ZWU2YWI3OTYzMzJiYTg5ZjAxYjM3OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtaW5saW5lcy50ZW50YXRp
dmUuaHRtbApAQCAtMCwwICsxLDU1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorICA8aGVh
ZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCIgLz4KKyAgICA8dGl0bGU+aW5lcnQgaW5saW5l
czwvdGl0bGU+CisgICAgPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJBbGljZSBCb3hoYWxsIiBo
cmVmPSJhYm94aGFsbEBjaHJvbWl1bS5vcmciPgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90
ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJj
ZXMvdGVzdGRyaXZlci5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMv
dGVzdGRyaXZlci12ZW5kb3IuanMiPjwvc2NyaXB0PgorICA8L2hlYWQ+Cis8Ym9keT4KKzxhIGlu
ZXJ0IGlkPSJhIiBocmVmPSJqYXZhc2NyaXB0OnZvaWQoMCkiPkNsaWNrIG1lPC9hPgorPGJ1dHRv
biBpbmVydCBpZD0iYnV0dG9uIj5DbGljayBtZTwvYnV0dG9uPgorPGRpdiBpbmVydCBpZD0iZGl2
IiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogYmx1ZTsgd2lkdGg6IDUwcHg7IGhlaWdodDogNTBw
eCI+Q2xpY2sgbWU8L2Rpdj4KKzxzcGFuIGluZXJ0IGlkPSJzcGFuIj5DbGljayBtZTwvc3Bhbj4K
KzxzY3JpcHQ+CitmdW5jdGlvbiBldmVudEZpcmVkT25JbmVydEVsZW1lbnQoZSkgeworICAgIGUu
dGFyZ2V0LnN0eWxlLmJhY2tncm91bmQgPSAncmVkJzsKKyAgICBpbmVydEVsZW1lbnRGaXJlZE9u
ID0gdHJ1ZTsKK30KKworaW5lcnRFbGVtZW50cyA9IFsnYScsICdidXR0b24nLCAnZGl2JywgJ3Nw
YW4nXQoraW5lcnRFbGVtZW50cy5mb3JFYWNoKGZ1bmN0aW9uKGlkKSB7CisgICAgZWxlbWVudCA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKTsKKyAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVu
ZXIoJ2NsaWNrJywgZXZlbnRGaXJlZE9uSW5lcnRFbGVtZW50KTsKKyAgICBlbGVtZW50LmFkZEV2
ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIGV2ZW50RmlyZWRPbkluZXJ0RWxlbWVudCk7Cit9KTsK
KworZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbihlKSB7CisgICAg
ZG9jdW1lbnQuZmlyZWRPbiA9IHRydWU7Cit9KTsKKworcHJvbWlzZV90ZXN0KGFzeW5jICgpID0+
IHsKKyAgICBmb3IgKGxldCBpZCBvZiBpbmVydEVsZW1lbnRzKSB7CisgICAgICAgIHZhciBlbGVt
ZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpOworICAgICAgICBpbmVydEVsZW1lbnRG
aXJlZE9uID0gZmFsc2U7CisgICAgICAgIGRvY3VtZW50LmZpcmVkT24gPSBmYWxzZTsKKyAgICAg
ICAgdHJ5IHsKKyAgICAgICAgICBhd2FpdCB0ZXN0X2RyaXZlci5jbGljayhlbGVtZW50KTsKKyAg
ICAgICAgICBhc3NlcnRfZmFsc2UoaW5lcnRFbGVtZW50RmlyZWRPbiwgJ25vIGV2ZW50IHNob3Vs
ZCBiZSBmaXJlZCBvbiAnICsgaWQpOworICAgICAgICAgIGFzc2VydF90cnVlKGRvY3VtZW50LmZp
cmVkT24sICdldmVudCBzaG91bGQgYmUgZmlyZWQgb24gZG9jdW1lbnQgaW5zdGVhZCBvZiAnICsg
aWQpOworICAgICAgICB9IGNhdGNoIChlKSB7CisgICAgICAgICAgLy8gdGVzdCBkcml2ZXIgZGV0
ZWN0cyBpbmVydCBlbGVtZW50cyBhcyB1bmNsaWNrYWJsZQorICAgICAgICAgIC8vIGFuZCB0aHJv
d3MgYW4gZXJyb3IKKyAgICAgICAgICBhc3NlcnRfZmFsc2UoaW5lcnRFbGVtZW50RmlyZWRPbiwg
J25vIGV2ZW50IHNob3VsZCBiZSBmaXJlZCBvbiAnICsgaWQpOworICAgICAgICB9CisgICAgfQor
fSwgJ1Rlc3RzIHRoYXQgaW5lcnQgaW5saW5lcyBkbyBub3QgcmVjZWl2ZSBtb3VzZSBldmVudHMu
ICcgKworICAgJ1RvIHRlc3QgbWFudWFsbHksIGNsaWNrIG9uIGFsbCB0aGUgIkNsaWNrIG1lInMu
IFRoZSB0ZXN0ICcgKworICAgJ2ZhaWxzIGlmIHlvdSBzZWUgcmVkLicpOworCis8L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtbGFiZWwtZm9jdXMudGVudGF0aXZlLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5l
cnQvaW5lcnQtbGFiZWwtZm9jdXMudGVudGF0aXZlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5h
ZDVhYjBlYTRmYTQ0NzU0NTI0OTdhMGE2ZTllM2FlZjI5M2EzMThhCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVy
dC1sYWJlbC1mb2N1cy50ZW50YXRpdmUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNyBAQAorTGFi
ZWwgZm9yIFN1Ym1pdCAgICAgTGFiZWwgZm9yIGlucHV0IGluIGluZXJ0IHN1YnRyZWUKKworCitQ
QVNTIENhbGxpbmcgZm9jdXMoKSBvbiBhbiBpbmVydCBsYWJlbCBzaG91bGQgc3RpbGwgc2VuZCBm
b2N1cyB0byBpdHMgdGFyZ2V0LgorUEFTUyBDbGlja2luZyBvbiBhbiBpbmVydCBsYWJlbCBzaG91
bGQgc2VuZCBmb2N1cyB0byBkb2N1bWVudC5ib2R5LgorUEFTUyBDYWxsaW5nIGZvY3VzKCkgb24g
YSBsYWJlbCBmb3IgYSBjb250cm9sIHdoaWNoIGlzIGluIGFuIGluZXJ0IHN1YnRyZWUgc2hvdWxk
IGhhdmUgbm8gZWZmZWN0LgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LWxhYmVsLWZvY3VzLnRlbnRhdGl2ZS5odG1s
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVy
dC1sYWJlbC1mb2N1cy50ZW50YXRpdmUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YmJlMWVjYTE1YzdkOGYy
ZjlmZDVlYTQ4YzMzY2QwYTVkNTA5OGUwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1sYWJlbC1mb2N1cy50
ZW50YXRpdmUuaHRtbApAQCAtMCwwICsxLDUzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
ICA8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCIgLz4KKyAgICA8dGl0bGU+aW5lcnQg
d2l0aCBsYWJlbC9mb3I8L3RpdGxlPgorICAgIDxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iQWxp
Y2UgQm94aGFsbCIgaHJlZj0iYWJveGhhbGxAY2hyb21pdW0ub3JnIj4KKyAgICA8c2NyaXB0IHNy
Yz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9
Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQg
c3JjPSIvcmVzb3VyY2VzL3Rlc3Rkcml2ZXIuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3Jj
PSIvcmVzb3VyY2VzL3Rlc3Rkcml2ZXItdmVuZG9yLmpzIj48L3NjcmlwdD4KKyAgPC9oZWFkPgor
ICA8Ym9keT4KKyAgICA8bGFiZWwgaW5lcnQgaWQ9ImZvci1zdWJtaXQiIGZvcj0ic3VibWl0Ij5M
YWJlbCBmb3IgU3VibWl0PC9sYWJlbD4KKyAgICA8aW5wdXQgaWQ9InRleHQiIHR5cGU9InRleHQi
PgorICAgIDxpbnB1dCBpZD0ic3VibWl0IiB0eXBlPSJzdWJtaXQiPgorCisgICAgPGxhYmVsIGlk
PSJmb3ItaW5wdXQtaW4taW5lcnQtc3VidHJlZSIKKyAgICAgICAgICAgZm9yPSJpbnB1dC1pbi1p
bmVydC1zdWJ0cmVlIj5MYWJlbCBmb3IgaW5wdXQgaW4gaW5lcnQgc3VidHJlZTwvbGFiZWw+Cisg
ICAgPGRpdiBpbmVydD4KKyAgICAgIDxpbnB1dCBpZD0iaW5wdXQtaW4taW5lcnQtc3VidHJlZSI+
PC9pbnB1dD4KKyAgICA8L2Rpdj4KKworICAgIDxzY3JpcHQ+CisgICAgICB0ZXN0KCgpID0+IHsK
KyAgICAgICAgbGFiZWwgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjZm9yLXN1Ym1pdCcpOwor
ICAgICAgICBsYWJlbC5mb2N1cygpOworICAgICAgICBhc3NlcnRfZXF1YWxzKGRvY3VtZW50LmFj
dGl2ZUVsZW1lbnQsIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNzdWJtaXQnKSk7CisgICAgICB9
LCAnQ2FsbGluZyBmb2N1cygpIG9uIGFuIGluZXJ0IGxhYmVsIHNob3VsZCBzdGlsbCBzZW5kIGZv
Y3VzIHRvIGl0cyB0YXJnZXQuJyk7CisKKyAgICAgIHByb21pc2VfdGVzdChhc3luYyAoKSA9PiB7
CisgICAgICAgIHRleHQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjdGV4dCcpOworICAgICAg
ICB0ZXh0LmZvY3VzKCk7CisgICAgICAgIGxhYmVsID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcign
I2Zvci1zdWJtaXQnKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICBhd2FpdCB0ZXN0X2RyaXZl
ci5jbGljayhsYWJlbCk7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhkb2N1bWVudC5hY3RpdmVF
bGVtZW50LCBkb2N1bWVudC5ib2R5KTsKKyAgICAgICAgfSBjYXRjaCAoZSkgeworICAgICAgICAg
IC8vIHRlc3QgZHJpdmVyIGRldGVjdHMgaW5lcnQgZWxlbWVudHMgYXMgdW5jbGlja2FibGUKKyAg
ICAgICAgICAvLyBhbmQgdGhyb3dzIGFuIGVycm9yCisgICAgICAgIH0KKyAgICAgIH0sICdDbGlj
a2luZyBvbiBhbiBpbmVydCBsYWJlbCBzaG91bGQgc2VuZCBmb2N1cyB0byBkb2N1bWVudC5ib2R5
LicpOworCisgICAgICB0ZXN0KCgpID0+IHsKKyAgICAgICAgdGV4dCA9IGRvY3VtZW50LnF1ZXJ5
U2VsZWN0b3IoJyN0ZXh0Jyk7CisgICAgICAgIHRleHQuZm9jdXMoKTsKKworICAgICAgICBsYWJl
bCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNmb3ItaW5wdXQtaW4taW5lcnQtc3VidHJlZScp
OworICAgICAgICBsYWJlbC5mb2N1cygpOworICAgICAgICBhc3NlcnRfZXF1YWxzKGRvY3VtZW50
LmFjdGl2ZUVsZW1lbnQsIHRleHQpOworICAgICAgfSwgJ0NhbGxpbmcgZm9jdXMoKSBvbiBhIGxh
YmVsIGZvciBhIGNvbnRyb2wgd2hpY2ggaXMgaW4gYW4gaW5lcnQgc3VidHJlZSAnICsKKyAgICAg
ICAgICdzaG91bGQgaGF2ZSBubyBlZmZlY3QuJyk7Cis8L3NjcmlwdD4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQv
aW5lcnQtbm9kZS1pcy11bmVkaXRhYmxlLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LW5vZGUtaXMt
dW5lZGl0YWJsZS50ZW50YXRpdmUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU0MGE1OWQ2NTFi
NTI4MWJkNTExMDhmNWRmMzFhZDQ4NzA3YjJmOTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LW5vZGUtaXMt
dW5lZGl0YWJsZS50ZW50YXRpdmUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorSSdtIG5v
dCBlZGl0YWJsZS4gYUknbSBlZGl0YWJsZS4KKworUEFTUyBDYW4ndCBlZGl0IGluZXJ0IGNvbnRl
bnRlZGl0YWJsZQorUEFTUyBDYW4gZWRpdCBub24taW5lcnQgY29udGVudGVkaXRhYmxlCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5l
cnQvaW5lcnQtbm9kZS1pcy11bmVkaXRhYmxlLnRlbnRhdGl2ZS5odG1sIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1ub2RlLWlzLXVuZWRp
dGFibGUudGVudGF0aXZlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmRhMjM3OWZhZDQyOTcyZDQ4MzkxMjlj
OGRiMGJlZDdiYmQyYWRlYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtbm9kZS1pcy11bmVkaXRhYmxlLnRl
bnRhdGl2ZS5odG1sCkBAIC0wLDAgKzEsMzcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cisg
IDxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04IiAvPgorICAgIDx0aXRsZT5pbmVydCBu
b2RlcyBhcmUgdW5lZGl0YWJsZTwvdGl0bGU+CisgICAgPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxl
PSJBbGljZSBCb3hoYWxsIiBocmVmPSJhYm94aGFsbEBjaHJvbWl1bS5vcmciPgorICAgIDxzY3Jp
cHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0
IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgICAgPHNj
cmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGRyaXZlci5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlw
dCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGRyaXZlci12ZW5kb3IuanMiPjwvc2NyaXB0PgorICA8L2hl
YWQ+Cis8Ym9keT4KKzxzcGFuIGluZXJ0IGlkPSJub3QtZWRpdGFibGUiIGNvbnRlbnRlZGl0YWJs
ZT5JJ20gbm90IGVkaXRhYmxlLjwvc3Bhbj4KKzxzcGFuIGlkPSJlZGl0YWJsZSIgY29udGVudGVk
aXRhYmxlPkknbSBlZGl0YWJsZS48L3NwYW4+Cis8c2NyaXB0PgordmFyIG5vdEVkaXRhYmxlID0g
ZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI25vdC1lZGl0YWJsZScpOwordmFyIGVkaXRhYmxlID0g
ZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI2VkaXRhYmxlJyk7CisKK3Byb21pc2VfdGVzdChhc3lu
YyAoKSA9PiB7CisgICAgbm90RWRpdGFibGUuZm9jdXMoKTsKKyAgICB2YXIgb2xkVmFsdWUgPSBu
b3RFZGl0YWJsZS50ZXh0Q29udGVudDsKKyAgICBhc3NlcnRfZXF1YWxzKG9sZFZhbHVlLCAiSSdt
IG5vdCBlZGl0YWJsZS4iKTsKKyAgICBhd2FpdCB0ZXN0X2RyaXZlci5zZW5kX2tleXMoZG9jdW1l
bnQuYm9keSwgJ2EnKTsKKyAgICBhc3NlcnRfZXF1YWxzKG5vdEVkaXRhYmxlLnRleHRDb250ZW50
LCBvbGRWYWx1ZSk7Cit9LCAiQ2FuJ3QgZWRpdCBpbmVydCBjb250ZW50ZWRpdGFibGUiKTsKKwor
cHJvbWlzZV90ZXN0KGFzeW5jICgpID0+IHsKKyAgICBlZGl0YWJsZS5mb2N1cygpOworICAgIHZh
ciBvbGRWYWx1ZSA9IGVkaXRhYmxlLnRleHRDb250ZW50OworICAgIGFzc2VydF9lcXVhbHMob2xk
VmFsdWUsICJJJ20gZWRpdGFibGUuIik7CisgICAgYXdhaXQgdGVzdF9kcml2ZXIuc2VuZF9rZXlz
KGRvY3VtZW50LmJvZHksICdhJyk7CisgICAgYXNzZXJ0X25vdF9lcXVhbHMoZWRpdGFibGUudGV4
dENvbnRlbnQsIG9sZFZhbHVlKTsKK30sICJDYW4gZWRpdCBub24taW5lcnQgY29udGVudGVkaXRh
YmxlIik7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1ub2RlLWlz
LXVuZm9jdXNhYmxlLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LW5vZGUtaXMtdW5mb2N1c2FibGUu
dGVudGF0aXZlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NmFlYThiYjU1NTdkNzY4Y2E1ZWUw
Y2NhYzdkOTJkZjhiZjU3NzlmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1ub2RlLWlzLXVuZm9jdXNhYmxl
LnRlbnRhdGl2ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMyBAQAorT3V0c2lkZSBvZiBpbmVy
dCBjb250YWluZXIgIEluZXJ0IGJ1dHRvbgorCitJJ20gZWRpdGFibGUKK0knbSB0YWJpbmRleGVk
LgorIExpbmsKKworUEFTUyBCdXR0b24gb3V0c2lkZSBvZiBpbmVydCBjb250YWluZXIgaXMgZm9j
dXNhYmxlLgorUEFTUyBCdXR0b24gd2l0aCBpbmVydCBhdHJpYnV0ZSBpcyB1bmZvY3VzYWJsZS4K
K1BBU1MgQWxsIGZvY3VzYWJsZSBlbGVtZW50cyBpbnNpZGUgaW5lcnQgc3VidHJlZSBhcmUgdW5m
b2N1c2FibGUKK1BBU1MgQ2FuIGdldCBpbmVydCB2aWEgcHJvcGVydHkKK1BBU1MgRWxlbWVudHMg
aW5zaWRlIG9mIGluZXJ0IHN1YnRyZWVzIHJldHVybiBmYWxzZSB3aGVuIGdldHRpbmcgJ2luZXJ0
JworUEFTUyBTZXR0aW5nIGluZXJ0IHZpYSBwcm9wZXJ0eSBjb3JyZWN0bHkgbW9kaWZpZXMgaW5l
cnQgc3RhdGUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1ub2RlLWlzLXVuZm9jdXNhYmxlLnRlbnRhdGl2ZS5odG1s
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVy
dC1ub2RlLWlzLXVuZm9jdXNhYmxlLnRlbnRhdGl2ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhiNWRlMzdm
ZGNhZGVkYjlkOThlYzQ0YzljM2MyMGFlYTUyYTA0MDAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LW5vZGUt
aXMtdW5mb2N1c2FibGUudGVudGF0aXZlLmh0bWwKQEAgLTAsMCArMSw3OSBAQAorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKyAgPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0idXRmLTgiIC8+Cisg
ICAgPHRpdGxlPmluZXJ0IG5vZGVzIGFyZSB1bmZvY3VzYWJsZTwvdGl0bGU+CisgICAgPGxpbmsg
cmVsPSJhdXRob3IiIHRpdGxlPSJBbGljZSBCb3hoYWxsIiBocmVmPSJhYm94aGFsbEBjaHJvbWl1
bS5vcmciPgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Nj
cmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+
PC9zY3JpcHQ+CisgIDwvaGVhZD4KKzxib2R5IGlkPSJib2R5IiB0YWJpbmRleD0iMSI+CisgIDxi
dXR0b24gaWQ9ImZvY3VzYWJsZSI+T3V0c2lkZSBvZiBpbmVydCBjb250YWluZXI8L2J1dHRvbj4K
KyAgPGJ1dHRvbiBpbmVydCBpZD0iaW5lcnQiPkluZXJ0IGJ1dHRvbjwvYnV0dG9uPgorICA8ZGl2
IGluZXJ0IGlkPSJjb250YWluZXIiPgorICAgIDxpbnB1dCBpZD0idGV4dCIgdHlwZT0idGV4dCI+
CisgICAgPGlucHV0IGlkPSJkYXRldGltZSIgdHlwZT0iZGF0ZXRpbWUiPgorICAgIDxpbnB1dCBp
ZD0iY29sb3IiIHR5cGU9ImNvbG9yIj4KKyAgICA8c2VsZWN0IGlkPSJzZWxlY3QiPgorICAgICAg
ICA8b3B0Z3JvdXAgaWQ9Im9wdGdyb3VwIj4KKyAgICAgICAgICAgIDxvcHRpb24gaWQ9Im9wdGlv
biI+T3B0aW9uPC9vcHRpb24+CisgICAgICAgIDwvb3B0Z3JvdXA+CisgICAgPC9zZWxlY3Q+Cisg
ICAgPGRpdiBpZD0iY29udGVudGVkaXRhYmxlLWRpdiIgY29udGVudGVkaXRhYmxlPkknbSBlZGl0
YWJsZTwvZGl2PgorICAgIDxzcGFuIGlkPSJ0YWJpbmRleC1zcGFuIiB0YWJpbmRleD0iMCI+SSdt
IHRhYmluZGV4ZWQuPC9kaXY+CisgICAgPGVtYmVkIGlkPSJlbWJlZCIgdHlwZT0iYXBwbGljYXRp
b24veC1ibGluay10ZXN0LXBsdWdpbiIgd2lkdGg9MTAwIGhlaWdodD0xMDA+PC9lbWJlZD4KKyAg
ICA8YSBpZD0iYW5jaG9yIiBocmVmPSIiPkxpbms8L2E+CisgIDwvZGl2PgorPHNjcmlwdD4KK2Z1
bmN0aW9uIHRlc3RGb2N1cyhlbGVtZW50LCBleHBlY3RGb2N1cykgeworICAgIGZvY3VzZWRFbGVt
ZW50ID0gbnVsbDsKKyAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2ZvY3VzJywgZnVuY3Rp
b24oKSB7IGZvY3VzZWRFbGVtZW50ID0gZWxlbWVudDsgfSwgZmFsc2UpOworICAgIGVsZW1lbnQu
Zm9jdXMoKTsKKyAgICB0aGVFbGVtZW50ID0gZWxlbWVudDsKKyAgICBhc3NlcnRfZXF1YWxzKGZv
Y3VzZWRFbGVtZW50ID09PSB0aGVFbGVtZW50LCBleHBlY3RGb2N1cyk7Cit9CisKK2Z1bmN0aW9u
IHRlc3RUcmVlKGVsZW1lbnQsIGV4cGVjdEZvY3VzLCBleGNsdWRlQ3VycmVudCkgeworICAgIGlm
IChlbGVtZW50Lm5vZGVUeXBlID09IE5vZGUuRUxFTUVOVF9OT0RFICYmICFleGNsdWRlQ3VycmVu
dCkKKyAgICAgICAgdGVzdEZvY3VzKGVsZW1lbnQsIGV4cGVjdEZvY3VzKTsKKyAgICBpZiAoZWxl
bWVudC50YWdOYW1lID09PSAiU0VMRUNUIikKKyAgICAgICAgcmV0dXJuOworICAgIHZhciBjaGls
ZE5vZGVzID0gZWxlbWVudC5jaGlsZE5vZGVzOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2hp
bGROb2Rlcy5sZW5ndGg7IGkrKykKKyAgICAgICAgdGVzdFRyZWUoY2hpbGROb2Rlc1tpXSwgZXhw
ZWN0Rm9jdXMpOworfQorCisKK3Rlc3QoZnVuY3Rpb24oKSB7CisgICAgdGVzdEZvY3VzKGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdmb2N1c2FibGUnKSwgdHJ1ZSk7Cit9LCAiQnV0dG9uIG91dHNp
ZGUgb2YgaW5lcnQgY29udGFpbmVyIGlzIGZvY3VzYWJsZS4iKTsKKwordGVzdChmdW5jdGlvbigp
IHsKKyAgICB0ZXN0Rm9jdXMoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2luZXJ0JyksIGZhbHNl
KTsKK30sICJCdXR0b24gd2l0aCBpbmVydCBhdHJpYnV0ZSBpcyB1bmZvY3VzYWJsZS4iKTsKKwor
dGVzdChmdW5jdGlvbigpIHsKKyAgICB0ZXN0VHJlZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
Y29udGFpbmVyJyksIGZhbHNlKTsKK30sICJBbGwgZm9jdXNhYmxlIGVsZW1lbnRzIGluc2lkZSBp
bmVydCBzdWJ0cmVlIGFyZSB1bmZvY3VzYWJsZSIpOworCit0ZXN0KGZ1bmN0aW9uKCkgeworICAg
IGFzc2VydF9mYWxzZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZm9jdXNhYmxlIikuaW5lcnQs
ICJJbmVydCBub3Qgc2V0IGV4cGxpY2l0bHkgaXMgZmFsc2UiKQorICAgIGFzc2VydF90cnVlKGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbmVydCIpLmluZXJ0LCAiSW5lcnQgc2V0IGV4cGxpY2l0
bHkgaXMgdHJ1ZSIpOworICAgIGFzc2VydF90cnVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJj
b250YWluZXIiKS5pbmVydCwgIkluZXJ0IHNldCBvbiBjb250YWluZXIgaXMgdHJ1ZSIpOworfSwg
IkNhbiBnZXQgaW5lcnQgdmlhIHByb3BlcnR5Iik7CisKK3Rlc3QoZnVuY3Rpb24oKSB7CisgICAg
YXNzZXJ0X2ZhbHNlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXh0IikuaW5lcnQsICJFbGVt
ZW50cyBpbnNpZGUgb2YgaW5lcnQgc3VidHJlZXMgcmV0dXJuIGZhbHNlIHdoZW4gZ2V0dGluZyBp
bmVydCIpOworfSwgIkVsZW1lbnRzIGluc2lkZSBvZiBpbmVydCBzdWJ0cmVlcyByZXR1cm4gZmFs
c2Ugd2hlbiBnZXR0aW5nICdpbmVydCciKTsKKwordGVzdChmdW5jdGlvbigpIHsKKyAgICBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnZm9jdXNhYmxlJykuaW5lcnQgPSB0cnVlOworICAgIHRlc3RG
b2N1cyhkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZm9jdXNhYmxlJyksIGZhbHNlKTsKKyAgICBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5lcnQnKS5pbmVydCA9IGZhbHNlOworICAgIHRlc3RG
b2N1cyhkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5lcnQnKSwgdHJ1ZSk7CisgICAgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnRhaW5lcicpLmluZXJ0ID0gZmFsc2U7CisgICAgdGVzdFRy
ZWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnRhaW5lcicpLCB0cnVlLCB0cnVlKTsKK30s
ICJTZXR0aW5nIGluZXJ0IHZpYSBwcm9wZXJ0eSBjb3JyZWN0bHkgbW9kaWZpZXMgaW5lcnQgc3Rh
dGUiKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1ub2RlLWlzLXVu
c2VsZWN0YWJsZS50ZW50YXRpdmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1ub2RlLWlzLXVuc2VsZWN0YWJsZS50
ZW50YXRpdmUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVmY2EyMzhhZjhmMTRhMTViNzlmOWZj
MGEzMWIzOTM3OGY4NDFkNjQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LW5vZGUtaXMtdW5zZWxlY3RhYmxl
LnRlbnRhdGl2ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitIZXJlIGlzIGEgdGV4dCBu
b2RlIHlvdSBjYW4ndCBzZWxlY3QuCitJJ20gc2VsZWN0YWJsZS4KKworRkFJTCBJbmVydCBub2Rl
cyBjYW5ub3QgYmUgc2VsZWN0ZWQuIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJJJ20gc2VsZWN0
YWJsZS4iIGJ1dCBnb3QgIkhlcmUgaXMgYSB0ZXh0IG5vZGUgeW91IGNhbid0IHNlbGVjdC5cbkkn
bSBzZWxlY3RhYmxlLiIKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1ub2RlLWlzLXVuc2VsZWN0YWJsZS50ZW50YXRp
dmUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5l
cnQvaW5lcnQtbm9kZS1pcy11bnNlbGVjdGFibGUudGVudGF0aXZlLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
Yjk5YWYwZDRjZDE0MmRjYjA1MWFmNTFmNDJkMTc1OTE0MmEwMGM1ZQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5l
cnQtbm9kZS1pcy11bnNlbGVjdGFibGUudGVudGF0aXZlLmh0bWwKQEAgLTAsMCArMSwyMCBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAgPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0idXRm
LTgiIC8+CisgICAgPHRpdGxlPmluZXJ0IG5vZGVzIGFyZSB1bnNlbGVjdGFibGU8L3RpdGxlPgor
ICAgIDxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iQWxpY2UgQm94aGFsbCIgaHJlZj0iYWJveGhh
bGxAY2hyb21pdW0ub3JnIj4KKyAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVz
cy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3Ny
ZXBvcnQuanMiPjwvc2NyaXB0PgorICA8L2hlYWQ+Cis8Ym9keT4KKyAgPGRpdiBpbmVydD5IZXJl
IGlzIGEgdGV4dCBub2RlIHlvdSBjYW4ndCBzZWxlY3QuPC9kaXY+CisgIDxkaXY+SSdtIHNlbGVj
dGFibGUuPC9kaXY+Cis8c2NyaXB0PgordGVzdChmdW5jdGlvbigpIHsKKyAgICBkb2N1bWVudC5l
eGVjQ29tbWFuZCgnU2VsZWN0QWxsJyk7CisgICAgYXNzZXJ0X2VxdWFscyh3aW5kb3cuZ2V0U2Vs
ZWN0aW9uKCkudG9TdHJpbmcoKS50cmltKCksICJJJ20gc2VsZWN0YWJsZS4iKTsKK30sICJJbmVy
dCBub2RlcyBjYW5ub3QgYmUgc2VsZWN0ZWQuIik7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvaW5lcnQvaW5lcnQtb24tc2xvdHMudGVudGF0aXZlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtb24tc2xvdHMu
dGVudGF0aXZlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ZjJiMTI1OGQzNTJjZGY4OTM0MGM3
Y2MzMDk3YmI5NDRlN2RjNzRmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1vbi1zbG90cy50ZW50YXRpdmUt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorQnV0dG9uIDEgc2hvdWxkIGJlIGluZXJ0LCBh
bmQgQnV0dG9uIDIgc2hvdWxkIG5vdCBiZSBpbmVydC4KK0J1dHRvbiAxIChpbmVydClCdXR0b24g
MiAobm90IGluZXJ0KQorCitGQUlMIGluZXJ0IGluc2lkZSBTaGFkb3dSb290IGFmZmVjdHMgc2xv
dHRlZCBjb250ZW50IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIGZhbHNlIGJ1dCBnb3QgdHJ1ZQor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2luZXJ0L2luZXJ0LW9uLXNsb3RzLnRlbnRhdGl2ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1vbi1zbG90cy50ZW50YXRpdmUu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5kZDBkN2VjNmQ0NmQxZWYzNDQxN2RjZjA5OWNlNTE1NmJiMTQ5YmVh
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9pbmVydC9pbmVydC1vbi1zbG90cy50ZW50YXRpdmUuaHRtbApAQCAtMCwwICsxLDU3
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0i
dXRmLTgiIC8+CisgICAgPHRpdGxlPmluZXJ0IGluc2lkZSBTaGFkb3dSb290IGFmZmVjdHMgc2xv
dHRlZCBjb250ZW50PC90aXRsZT4KKyAgICA8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkFsaWNl
IEJveGhhbGwiIGhyZWY9ImFib3hoYWxsQGNocm9taXVtLm9yZyI+CisgICAgPHNjcmlwdCBzcmM9
Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIv
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorICA8ZGl2PkJ1dHRvbiAxIHNob3VsZCBiZSBpbmVydCwgYW5kIEJ1dHRvbiAyIHNob3VsZCBu
b3QgYmUgaW5lcnQuPC9kaXY+CisgIDxkaXYgaWQ9InNoYWRvdy1ob3N0Ij4KKyAgICA8YnV0dG9u
IHNsb3Q9InNsb3QtMSIgaWQ9ImJ1dHRvbi0xIj5CdXR0b24gMSAoaW5lcnQpPC9idXR0b24+Cisg
ICAgPGJ1dHRvbiBzbG90PSJzbG90LTIiIGlkPSJidXR0b24tMiI+QnV0dG9uIDIgKG5vdCBpbmVy
dCk8L2J1dHRvbj4KKyAgPC9kaXY+CisgIDxzY3JpcHQ+CisgICAgLyoKKyAgICBFdmVudHVhbCBm
bGF0dGVuZWQgdHJlZSBzdHJ1Y3R1cmU6CisKKyAgICA8ZGl2IGlkPSJzaGFkb3ctaG9zdCI+Cisg
ICAgICAjc2hhZG93LXJvb3QgKG9wZW4pCisgICAgICB8IDxzbG90IGlkPSJzbG90LTEiIGluZXJ0
PgorICAgICAgOiAgIDxidXR0b24gaWQ9ImJ1dHRvbi0xIj5CdXR0b24gMTwvYnV0dG9uPiA8IS0t
IHNsb3R0ZWQgLS0+CisgICAgICB8IDwvc2xvdD4KKyAgICAgIHwgPHNsb3QgaWQ9InNsb3QtMiI+
CisgICAgICA6ICAgPGJ1dHRvbiBpZD0iYnV0dG9uLTIiPkJ1dHRvbiAyPC9idXR0b24+IDwhLS0g
c2xvdHRlZCAtLT4KKyAgICAgIHwgPC9zbG90PgorICAgIDwvZGl2PgorICAgICovCisKKyAgICBj
b25zdCBzaGFkb3dIb3N0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNoYWRvdy1ob3N0Iik7
CisgICAgY29uc3Qgc2hhZG93Um9vdCA9IHNoYWRvd0hvc3QuYXR0YWNoU2hhZG93KHsgbW9kZTog
Im9wZW4iIH0pOworCisgICAgY29uc3Qgc2xvdDEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJz
bG90Iik7CisgICAgc2xvdDEubmFtZSA9ICJzbG90LTEiOworICAgIHNsb3QxLmluZXJ0ID0gdHJ1
ZTsKKyAgICBzaGFkb3dSb290LmFwcGVuZENoaWxkKHNsb3QxKTsKKworICAgIGNvbnN0IHNsb3Qy
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2xvdCIpOworICAgIHNsb3QyLm5hbWUgPSAic2xv
dC0yIjsKKyAgICBzaGFkb3dSb290LmFwcGVuZENoaWxkKHNsb3QyKTsKKworICAgIGZ1bmN0aW9u
IHRlc3RDYW5Gb2N1cyhzZWxlY3RvciwgY2FuRm9jdXMpIHsKKyAgICAgIGNvbnN0IGVsZW1lbnQg
PSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKHNlbGVjdG9yKTsKKyAgICAgIGxldCBmb2N1c2VkRWxl
bWVudCA9IG51bGw7CisgICAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwgZnVu
Y3Rpb24oKSB7IGZvY3VzZWRFbGVtZW50ID0gZWxlbWVudDsgfSwgZmFsc2UpOworICAgICAgZWxl
bWVudC5mb2N1cygpOworICAgICAgYXNzZXJ0X2VxdWFscygoZm9jdXNlZEVsZW1lbnQgPT09IGVs
ZW1lbnQpLCBjYW5Gb2N1cyk7CisgICAgfQorCisgICAgdGVzdCgoKSA9PiB7CisgICAgICB0ZXN0
Q2FuRm9jdXMoIiNidXR0b24tMSIsIGZhbHNlKTsKKyAgICAgIHRlc3RDYW5Gb2N1cygiI2J1dHRv
bi0yIiwgdHJ1ZSk7CisgICAgfSwgImluZXJ0IGluc2lkZSBTaGFkb3dSb290IGFmZmVjdHMgc2xv
dHRlZCBjb250ZW50Iik7CisgIDwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVy
dC1yZXRhcmdldGluZy1pZnJhbWUudGVudGF0aXZlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtcmV0YXJnZXRpbmct
aWZyYW1lLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjU5OWJlNzFhODNlZjA4
ZWQ1NjE5Yjk0Y2NiNDY0ZmMxYmM5NzcwOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtcmV0YXJnZXRpbmct
aWZyYW1lLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0NyBAQAorQ09OU09MRSBN
RVNTQUdFOiBFcnJvcjogYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgRWxlbWVudCBub2RlIDxmaWVs
ZHNldCBpZD0iYW5jZXN0b3JDb250YWluZXIiPgorICAgIDxsZWdlbmQ+Tm9uLWluZXJ0IGEuLi4g
YnV0IGdvdCBFbGVtZW50IG5vZGUgPGJ1dHRvbiBpZD0iZm9yZWdyb3VuZCIgY2xhc3M9ImNsaWNr
ZWQiPmZvcmVncm91bmQ8L2J1dHRvbj4KK0NPTlNPTEUgTUVTU0FHRTogRXJyb3I6IGFzc2VydF9l
cXVhbHM6IGV4cGVjdGVkIEVsZW1lbnQgbm9kZSA8ZmllbGRzZXQgaWQ9ImFuY2VzdG9yQ29udGFp
bmVyIj4KKyAgICA8bGVnZW5kPk5vbi1pbmVydCBhLi4uIGJ1dCBnb3QgRWxlbWVudCBub2RlIDxi
dXR0b24gaWQ9ImZvcmVncm91bmQiIGNsYXNzPSJjbGlja2VkIj5mb3JlZ3JvdW5kPC9idXR0b24+
CitDT05TT0xFIE1FU1NBR0U6IEVycm9yOiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCBFbGVtZW50
IG5vZGUgPGZpZWxkc2V0IGlkPSJhbmNlc3RvckNvbnRhaW5lciI+CisgICAgPGxlZ2VuZD5Ob24t
aW5lcnQgYS4uLiBidXQgZ290IEVsZW1lbnQgbm9kZSA8YnV0dG9uIGlkPSJmb3JlZ3JvdW5kIiBj
bGFzcz0iY2xpY2tlZCI+Zm9yZWdyb3VuZDwvYnV0dG9uPgorQ09OU09MRSBNRVNTQUdFOiBFcnJv
cjogYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgRWxlbWVudCBub2RlIDxmaWVsZHNldCBpZD0iYW5j
ZXN0b3JDb250YWluZXIiPgorICAgIDxsZWdlbmQ+Tm9uLWluZXJ0IGEuLi4gYnV0IGdvdCBFbGVt
ZW50IG5vZGUgPGJ1dHRvbiBpZD0iZm9yZWdyb3VuZCIgY2xhc3M9ImNsaWNrZWQiPmZvcmVncm91
bmQ8L2J1dHRvbj4KK0NPTlNPTEUgTUVTU0FHRTogRXJyb3I6IGFzc2VydF9lcXVhbHM6IGV4cGVj
dGVkIEVsZW1lbnQgbm9kZSA8ZmllbGRzZXQgaWQ9ImFuY2VzdG9yQ29udGFpbmVyIj4KKyAgICA8
bGVnZW5kPk5vbi1pbmVydCBhLi4uIGJ1dCBnb3QgRWxlbWVudCBub2RlIDxidXR0b24gaWQ9ImZv
cmVncm91bmQiIGNsYXNzPSJjbGlja2VkIj5mb3JlZ3JvdW5kPC9idXR0b24+CitDT05TT0xFIE1F
U1NBR0U6IEVycm9yOiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCBFbGVtZW50IG5vZGUgPGZpZWxk
c2V0IGlkPSJhbmNlc3RvckNvbnRhaW5lciI+CisgICAgPGxlZ2VuZD5Ob24taW5lcnQgYS4uLiBi
dXQgZ290IEVsZW1lbnQgbm9kZSA8YnV0dG9uIGlkPSJmb3JlZ3JvdW5kIiBjbGFzcz0iY2xpY2tl
ZCI+Zm9yZWdyb3VuZDwvYnV0dG9uPgorQ09OU09MRSBNRVNTQUdFOiBFcnJvcjogYXNzZXJ0X2Vx
dWFsczogZXhwZWN0ZWQgRWxlbWVudCBub2RlIDxmaWVsZHNldCBpZD0iYW5jZXN0b3JDb250YWlu
ZXIiPgorICAgIDxsZWdlbmQ+Tm9uLWluZXJ0IGEuLi4gYnV0IGdvdCBFbGVtZW50IG5vZGUgPGJ1
dHRvbiBpZD0iZm9yZWdyb3VuZCIgY2xhc3M9ImNsaWNrZWQiPmZvcmVncm91bmQ8L2J1dHRvbj4K
K0NPTlNPTEUgTUVTU0FHRTogRXJyb3I6IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIEVsZW1lbnQg
bm9kZSA8ZmllbGRzZXQgaWQ9ImFuY2VzdG9yQ29udGFpbmVyIj4KKyAgICA8bGVnZW5kPk5vbi1p
bmVydCBhLi4uIGJ1dCBnb3QgRWxlbWVudCBub2RlIDxidXR0b24gaWQ9ImZvcmVncm91bmQiIGNs
YXNzPSJjbGlja2VkIj5mb3JlZ3JvdW5kPC9idXR0b24+CitDT05TT0xFIE1FU1NBR0U6IEVycm9y
OiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCBFbGVtZW50IG5vZGUgPGZpZWxkc2V0IGlkPSJhbmNl
c3RvckNvbnRhaW5lciI+CisgICAgPGxlZ2VuZD5Ob24taW5lcnQgYS4uLiBidXQgZ290IEVsZW1l
bnQgbm9kZSA8YnV0dG9uIGlkPSJmb3JlZ3JvdW5kIiBjbGFzcz0iY2xpY2tlZCI+Zm9yZWdyb3Vu
ZDwvYnV0dG9uPgorQ09OU09MRSBNRVNTQUdFOiBFcnJvcjogYXNzZXJ0X2VxdWFsczogZXhwZWN0
ZWQgRWxlbWVudCBub2RlIDxmaWVsZHNldCBpZD0iYW5jZXN0b3JDb250YWluZXIiPgorICAgIDxs
ZWdlbmQ+Tm9uLWluZXJ0IGEuLi4gYnV0IGdvdCBFbGVtZW50IG5vZGUgPGJ1dHRvbiBpZD0iZm9y
ZWdyb3VuZCIgY2xhc3M9ImNsaWNrZWQiPmZvcmVncm91bmQ8L2J1dHRvbj4KK0NPTlNPTEUgTUVT
U0FHRTogRXJyb3I6IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIEVsZW1lbnQgbm9kZSA8ZmllbGRz
ZXQgaWQ9ImFuY2VzdG9yQ29udGFpbmVyIj4KKyAgICA8bGVnZW5kPk5vbi1pbmVydCBhLi4uIGJ1
dCBnb3QgRWxlbWVudCBub2RlIDxidXR0b24gaWQ9ImZvcmVncm91bmQiIGNsYXNzPSJjbGlja2Vk
Ij5mb3JlZ3JvdW5kPC9idXR0b24+CitDT05TT0xFIE1FU1NBR0U6IEVycm9yOiBhc3NlcnRfZXF1
YWxzOiBleHBlY3RlZCBFbGVtZW50IG5vZGUgPGZpZWxkc2V0IGlkPSJhbmNlc3RvckNvbnRhaW5l
ciI+CisgICAgPGxlZ2VuZD5Ob24taW5lcnQgYS4uLiBidXQgZ290IEVsZW1lbnQgbm9kZSA8YnV0
dG9uIGlkPSJmb3JlZ3JvdW5kIiBjbGFzcz0iY2xpY2tlZCI+Zm9yZWdyb3VuZDwvYnV0dG9uPgor
Q09OU09MRSBNRVNTQUdFOiBFcnJvcjogYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgRWxlbWVudCBu
b2RlIDxmaWVsZHNldCBpZD0iYW5jZXN0b3JDb250YWluZXIiPgorICAgIDxsZWdlbmQ+Tm9uLWlu
ZXJ0IGEuLi4gYnV0IGdvdCBFbGVtZW50IG5vZGUgPGJ1dHRvbiBpZD0iZm9yZWdyb3VuZCIgY2xh
c3M9ImNsaWNrZWQiPmZvcmVncm91bmQ8L2J1dHRvbj4KK0NsaWNrIG9uICJJbmVydCBidXR0b24i
LgorCitUaGUgYmx1ZSBzcXVhcmUgKCJOb24taW5lcnQgYW5jZXN0b3IgY29udGFpbmVyIikgc2hv
dWxkIHR1cm4gZ3JlZW4uCitUaGUgeWVsbG93LCBzZW1pLXRyYW5zcGFyZW50IHNxdWFyZSAoIk5v
bi1pbmVydCwgZGlzcGxhY2VkIGNvbnRhaW5lciIpIHNob3VsZCBub3QgdHVybiByZWQuCisiTm9u
LWluZXJ0IGJ1dHRvbiIgc2hvdWxkIG5vdCB0dXJuIHJlZC4KKyhUaGUgZnVsbCB0ZXN0IHN1aXRl
IGNoZWNrcyBhIHJhbmdlIG9mIGV2ZW50cy4pCisKK05vbi1pbmVydCBhbmNlc3RvciBjb250YWlu
ZXIKKyBOb24taW5lcnQsIGRpc3BsYWNlZCBhbmNlc3RvcgorSW5lcnQgY29udGFpbmVyCitmb3Jl
Z3JvdW5kCisKK0hhcm5lc3MgRXJyb3IgKEZBSUwpLCBtZXNzYWdlID0gRXJyb3I6IGFzc2VydF9l
cXVhbHM6IGV4cGVjdGVkIEVsZW1lbnQgbm9kZSA8ZmllbGRzZXQgaWQ9ImFuY2VzdG9yQ29udGFp
bmVyIj4KKyAgICA8bGVnZW5kPk5vbi1pbmVydCBhLi4uIGJ1dCBnb3QgRWxlbWVudCBub2RlIDxi
dXR0b24gaWQ9ImZvcmVncm91bmQiIGNsYXNzPSJjbGlja2VkIj5mb3JlZ3JvdW5kPC9idXR0b24+
CisKK1BBU1MgZWxlbWVudHNGcm9tUG9pbnQgcmV0dXJucyBpbmVydCBlbGVtZW50CitGQUlMIFRl
c3RzIHRoYXQgYW55IG1vdXNlIGV2ZW50IG9uIGEgbm9uLWluZXJ0IGVsZW1lbnQgaXMgY29ycmVj
dGx5IHRhcmdldGVkIHRvIHRoYXQgZWxlbWVudCBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWpl
Y3Rpb24gd2l0aCB2YWx1ZTogImRpZCBub3QgZ2V0IGF1eGNsaWNrIG9uIGZvcmVncm91bmQiCitG
QUlMIFRlc3RzIHRoYXQgYW55IG1vdXNlIGV2ZW50IG9uIGFuIGluZXJ0IGVsZW1lbnQgaXMgdGFy
Z2V0ZWQgdG8gdGhlIG5lYXJlc3Qgbm9uLWluZXJ0IGFuY2VzdG9yIGF0IHRoZSBzYW1lIGNvb3Jk
aW5hdGVzIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiAiZGlk
IG5vdCBnZXQgbW91c2VvdmVyIG9uIGFuY2VzdG9yQ29udGFpbmVyIgorUEFTUyBUZXN0cyB0aGF0
IGFueSBwb2ludGVyIGV2ZW50IG9uIGEgbm9uLWluZXJ0IGVsZW1lbnQgaXMgY29ycmVjdGx5IHRh
cmdldGVkIHRvIHRoYXQgZWxlbWVudAorRkFJTCBUZXN0cyB0aGF0IGFueSBwb2ludGVyIGV2ZW50
IG9uIGFuIGluZXJ0IGVsZW1lbnQgaXMgdGFyZ2V0ZWQgdG8gdGhlIG5lYXJlc3Qgbm9uLWluZXJ0
IGFuY2VzdG9yIGF0IHRoZSBzYW1lIGNvb3JkaW5hdGVzIHByb21pc2VfdGVzdDogVW5oYW5kbGVk
IHJlamVjdGlvbiB3aXRoIHZhbHVlOiAiZGlkIG5vdCBnZXQgcG9pbnRlcm92ZXIgb24gYW5jZXN0
b3JDb250YWluZXIiCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtcmV0YXJnZXRpbmctaWZyYW1lLnRlbnRhdGl2ZS5o
dG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9p
bmVydC1yZXRhcmdldGluZy1pZnJhbWUudGVudGF0aXZlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTc5ZmM1
N2JlMjU4YTcwOWE5ZDIyY2IyNjNhNjQyMmQ5YmRiNzk1MwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtcmV0
YXJnZXRpbmctaWZyYW1lLnRlbnRhdGl2ZS5odG1sCkBAIC0wLDAgKzEsMjc5IEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFy
bmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3Jl
cG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0ZHJpdmVyLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Rkcml2ZXItYWN0aW9ucy5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0ZHJpdmVyLXZlbmRvci5q
cyI+PC9zY3JpcHQ+Cis8c3R5bGU+CitidXR0b24jZm9yZWdyb3VuZCwKK2J1dHRvbiNiYWNrZ3Jv
dW5kIHsKKyAgcG9zaXRpb246IGFic29sdXRlOworICB0b3A6IDc1cHg7CisgIGxlZnQ6IDUwcHg7
CisgIHdpZHRoOiAxMDBweDsKKyAgaGVpZ2h0OiAyMHB4OworfQorCitidXR0b24jYmFja2dyb3Vu
ZCB7CisgIGxlZnQ6IDc1cHg7CisgIHdpZHRoOiAxNTBweDsKKyAgaGVpZ2h0OiA0MHB4OworICB0
b3A6IDEyNXB4OworICBsaW5lLWhlaWdodDogNTNweDsKK30KKworLmNsaWNrZWQgeworICBiYWNr
Z3JvdW5kLWNvbG9yOiByZWQ7Cit9CisKKyNhbmNlc3RvckNvbnRhaW5lci5jbGlja2VkIHsKKyAg
YmFja2dyb3VuZC1jb2xvcjogZ3JlZW47Cit9CisKKyNhbmNlc3RvckNvbnRhaW5lciB7CisgIHBv
c2l0aW9uOiBhYnNvbHV0ZTsKKyAgdG9wOiAyMDBweDsKKyAgbGVmdDogMTBweDsKKyAgd2lkdGg6
IDMwMHB4OworICBoZWlnaHQ6IDMwMHB4OworICBiYWNrZ3JvdW5kLWNvbG9yOiBibHVlOworfQor
CisjZGlzcGxhY2VkQW5jZXN0b3IgeworICBwb3NpdGlvbjogYWJzb2x1dGU7CisgIHRvcDogMTNw
eDsKKyAgbGVmdDogMjQwcHg7CisgIHdpZHRoOiAzMDBweDsKKyAgaGVpZ2h0OiAyNTBweDsKKyAg
YmFja2dyb3VuZC1jb2xvcjogI2ZmODk7Cit9CisKKyNkaXNwbGFjZWRBbmNlc3Rvci5jbGlja2Vk
IHsKKyAgYmFja2dyb3VuZC1jb2xvcjogI2YwMDk7Cit9CisKKyNpbmVydENvbnRhaW5lciB7Cisg
IGJhY2tncm91bmQtY29sb3I6ICNmZmY5OworICBwb3NpdGlvbjogYWJzb2x1dGU7CisgIHRvcDog
MzVweDsKKyAgbGVmdDogLTE5MnB4OworICB3aWR0aDogMjAwcHg7CisgIGhlaWdodDogMjAwcHg7
Cit9CisKK2ZpZWxkc2V0IHsKKyAgbWFyZ2luOiAwOworICBwYWRkaW5nOiAwOworICBib3JkZXI6
IDFweCBzb2xpZCBibGFjazsKK30KKworbGVnZW5kIHsKKyAgYmFja2dyb3VuZC1jb2xvcjogd2hp
dGU7CisgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOworICBtYXJnaW4tbGVmdDogNXB4OworfQor
PC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorICA8cD5DbGljayBvbiAiSW5lcnQgYnV0dG9uIi48
L3A+CisgIDx1bD4KKyAgICA8bGk+VGhlIGJsdWUgc3F1YXJlICgiTm9uLWluZXJ0IGFuY2VzdG9y
IGNvbnRhaW5lciIpIHNob3VsZCB0dXJuIGdyZWVuLjwvbGk+CisgICAgPGxpPlRoZSB5ZWxsb3cs
IHNlbWktdHJhbnNwYXJlbnQgc3F1YXJlICgiTm9uLWluZXJ0LCBkaXNwbGFjZWQgY29udGFpbmVy
Iikgc2hvdWxkIG5vdCB0dXJuIHJlZC48L2xpPgorICAgIDxsaT4iTm9uLWluZXJ0IGJ1dHRvbiIg
c2hvdWxkIG5vdCB0dXJuIHJlZC48L2xpPgorICA8L3VsPgorICA8cCBzdHlsZT0ibWFyZ2luLWJv
dHRvbToyNTBweCI+KFRoZSBmdWxsIHRlc3Qgc3VpdGUgY2hlY2tzIGEgcmFuZ2Ugb2YgZXZlbnRz
Lik8L3A+CisgIDxmaWVsZHNldCBpZD0iYW5jZXN0b3JDb250YWluZXIiPgorICAgIDxsZWdlbmQ+
Tm9uLWluZXJ0IGFuY2VzdG9yIGNvbnRhaW5lcjwvbGVnZW5kPgorICAgIDxpZnJhbWUgaWQ9ImJh
Y2tncm91bmQiIHNyYz0iZnJhbWUvYnV0dG9uLmh0bWwiPjwvaWZyYW1lPgorICAgIDxmaWVsZHNl
dCBpZD0iZGlzcGxhY2VkQW5jZXN0b3IiPgorICAgICAgPGxlZ2VuZD5Ob24taW5lcnQsIGRpc3Bs
YWNlZCBhbmNlc3RvcjwvbGVnZW5kPgorICAgICAgPGZpZWxkc2V0IGlkPSJpbmVydENvbnRhaW5l
ciIgaW5lcnQ+CisgICAgICAgIDxsZWdlbmQ+SW5lcnQgY29udGFpbmVyPC9sZWdlbmQ+CisgICAg
ICAgIDxidXR0b24gaWQ9ImZvcmVncm91bmQiPmZvcmVncm91bmQ8L2J1dHRvbj4KKyAgICAgIDwv
ZmllbGRzZXQ+CisgICAgPC9maWVsZHNldD4KKyAgPC9maWVsZHNldD4KKworICA8c2NyaXB0Pgor
ZG9jdW1lbnQuYm9keS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIChlKSA9PiB7CisgIGUudGFy
Z2V0LmNsYXNzTGlzdC5hZGQoJ2NsaWNrZWQnKTsKK30pOworCitmdW5jdGlvbiBjbGlja09uKGVs
ZW1lbnQpIHsKKyAgcmV0dXJuIG5ldyB0ZXN0X2RyaXZlci5BY3Rpb25zKCkKKyAgICAgIC5wb2lu
dGVyTW92ZSgwLCAwLCB7b3JpZ2luOiBlbGVtZW50fSkKKyAgICAgIC5wb2ludGVyRG93bih7YnV0
dG9uOiB0ZXN0X2RyaXZlci5BY3Rpb25zLnByb3RvdHlwZS5CdXR0b25UeXBlLkxFRlR9KQorICAg
ICAgLnBvaW50ZXJVcCh7YnV0dG9uOiB0ZXN0X2RyaXZlci5BY3Rpb25zLnByb3RvdHlwZS5CdXR0
b25UeXBlLkxFRlR9KQorICAgICAgLnNlbmQoKTsKK30KKworZnVuY3Rpb24gYXV4Q2xpY2tPbihl
bGVtZW50KSB7CisgIHJldHVybiBuZXcgdGVzdF9kcml2ZXIuQWN0aW9ucygpCisgICAgICAucG9p
bnRlck1vdmUoMCwgMCwge29yaWdpbjogZWxlbWVudH0pCisgICAgICAucG9pbnRlckRvd24oe2J1
dHRvbjogdGVzdF9kcml2ZXIuQWN0aW9ucy5wcm90b3R5cGUuQnV0dG9uVHlwZS5SSUdIVH0pCisg
ICAgICAucG9pbnRlclVwKHtidXR0b246IHRlc3RfZHJpdmVyLkFjdGlvbnMucHJvdG90eXBlLkJ1
dHRvblR5cGUuUklHSFR9KQorICAgICAgLnNlbmQoKTsKK30KKworZnVuY3Rpb24gZGJsQ2xpY2tP
bihlbGVtZW50KSB7CisgIHJldHVybiBuZXcgdGVzdF9kcml2ZXIuQWN0aW9ucygpCisgICAgICAu
cG9pbnRlck1vdmUoMCwgMCwge29yaWdpbjogZWxlbWVudH0pCisgICAgICAucG9pbnRlckRvd24o
e2J1dHRvbjogdGVzdF9kcml2ZXIuQWN0aW9ucy5wcm90b3R5cGUuQnV0dG9uVHlwZS5MRUZUfSkK
KyAgICAgIC5wb2ludGVyVXAoe2J1dHRvbjogdGVzdF9kcml2ZXIuQWN0aW9ucy5wcm90b3R5cGUu
QnV0dG9uVHlwZS5MRUZUfSkKKyAgICAgIC5wb2ludGVyRG93bih7YnV0dG9uOiB0ZXN0X2RyaXZl
ci5BY3Rpb25zLnByb3RvdHlwZS5CdXR0b25UeXBlLkxFRlR9KQorICAgICAgLnBvaW50ZXJVcCh7
YnV0dG9uOiB0ZXN0X2RyaXZlci5BY3Rpb25zLnByb3RvdHlwZS5CdXR0b25UeXBlLkxFRlR9KQor
ICAgICAgLnNlbmQoKTsKK30KKworZnVuY3Rpb24gbW92ZVBvaW50ZXJPdmVyKGVsZW1lbnQpIHsK
KyAgbGV0IHJlY3QgPSBlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworICByZXR1cm4g
bmV3IHRlc3RfZHJpdmVyLkFjdGlvbnMoKQorICAgICAgLnBvaW50ZXJNb3ZlKDAsIDAsIHsgb3Jp
Z2luOiBlbGVtZW50IH0pCisgICAgICAuc2VuZCgpOworfQorCitmdW5jdGlvbiBtb3ZlUG9pbnRl
clRvKHgsIHkpIHsKKyAgcmV0dXJuIG5ldyB0ZXN0X2RyaXZlci5BY3Rpb25zKCkKKyAgICAgIC5w
b2ludGVyTW92ZShNYXRoLmNlaWwoeCksIE1hdGguY2VpbCh5KSwgeyBvcmlnaW46ICJ2aWV3cG9y
dCIgfSkKKyAgICAgIC5zZW5kKCk7Cit9CisKK2Z1bmN0aW9uIGV4cGVjdEV2ZW50c09uKGV2ZW50
cywgZWxlbWVudCkgeworICBsZXQgcHJvbWlzZXMgPSBbXTsKKyAgZm9yIChldmVudCBvZiBldmVu
dHMpIHsKKyAgICAoKGV2ZW50LCBlbGVtZW50KSA9PiB7CisgICAgICB2YXIgcHJvbWlzZSA9IG5l
dyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsKKyAgICAgICAgbGV0IGYgPSAoZSkgPT4g
eworICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50eXBlLCBldmVudCk7CisgICAgICAgICAgYXNz
ZXJ0X2VxdWFscyhlLnRhcmdldCwgZWxlbWVudCk7CisgICAgICAgICAgcmVzb2x2ZSgpOworICAg
ICAgICB9CisgICAgICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihldmVudCwgZiwgeyBjYXB0
dXJlOiB0cnVlLCBvbmNlOiB0cnVlIH0pOworCisgICAgICAgIHN0ZXBfdGltZW91dCgoKSA9PiB7
CisgICAgICAgICAgZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50LCBmLCB7IGNhcHR1
cmU6IHRydWUgfSk7CisgICAgICAgICAgcmVqZWN0KCJkaWQgbm90IGdldCAiICsgZXZlbnQgKyAi
IG9uICIgKyBlbGVtZW50LmlkKTsKKyAgICAgICAgfSwgNTAwMCk7CisgICAgICB9KTsKKyAgICAg
IHByb21pc2VzLnB1c2gocHJvbWlzZSk7CisgICAgfSkoZXZlbnQsIGVsZW1lbnQpOworICB9Cisg
IHJldHVybiBwcm9taXNlczsKK30KKworZnVuY3Rpb24gdW5leHBlY3RFdmVudHNPbihldmVudHMs
IGVsZW1lbnQpIHsKKyAgbGV0IHByb21pc2VzID0gW107CisgIGZvciAoZXZlbnQgb2YgZXZlbnRz
KSB7CisgICAgKChldmVudCwgZWxlbWVudCkgPT4geworICAgICAgdmFyIHByb21pc2UgPSBuZXcg
UHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7CisgICAgICAgIGxldCBmID0gKGUpID0+IHsK
KyAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUudHlwZSwgZXZlbnQpOworICAgICAgICAgIGFzc2Vy
dF9lcXVhbHMoZS50YXJnZXQsIGVsZW1lbnQpOworICAgICAgICAgIHJlamVjdCgiZ290ICIgKyBl
LnR5cGUgKyAiIG9uICIgKyBlLnRhcmdldC5pZCk7CisgICAgICAgIH0KKyAgICAgICAgZWxlbWVu
dC5hZGRFdmVudExpc3RlbmVyKGV2ZW50LCBmLCB7IGNhcHR1cmU6IHRydWUsIG9uY2U6IHRydWUg
fSk7CisKKyAgICAgICAgc3RlcF90aW1lb3V0KCgpID0+IHsKKyAgICAgICAgICBlbGVtZW50LnJl
bW92ZUV2ZW50TGlzdGVuZXIoZXZlbnQsIGYsIHsgY2FwdHVyZTogdHJ1ZSB9KTsKKyAgICAgICAg
ICByZXNvbHZlKCk7CisgICAgICAgIH0sIDEwMDApOworICAgICAgfSk7CisgICAgICBwcm9taXNl
cy5wdXNoKHByb21pc2UpOworICAgIH0pKGV2ZW50LCBlbGVtZW50KTsKKyAgfQorICByZXR1cm4g
cHJvbWlzZXM7Cit9CisKK3Rlc3QoKCkgPT4geworICBsZXQgcmVjdCA9IGZvcmVncm91bmQuZ2V0
Qm91bmRpbmdDbGllbnRSZWN0KCk7CisgIGxldCBjZW50ZXJfeCA9IHJlY3QubGVmdCArIChyZWN0
LndpZHRoIC8gMik7CisgIGxldCBjZW50ZXJfeSA9IHJlY3QudG9wICsgKHJlY3QuaGVpZ2h0IC8g
Mik7CisgIGFzc2VydF9lcXVhbHMoZG9jdW1lbnQuZWxlbWVudHNGcm9tUG9pbnQoY2VudGVyX3gs
IGNlbnRlcl95KVswXSwgZm9yZWdyb3VuZCk7Cit9LCAiZWxlbWVudHNGcm9tUG9pbnQgcmV0dXJu
cyBpbmVydCBlbGVtZW50Iik7CisKK3Byb21pc2VfdGVzdChhc3luYyAoKSA9PiB7CisgIC8vIFRl
c3QgbW91c2UgZXZlbnRzIG9uIG5vbi1pbmVydCBlbGVtZW50IC0gZXZlbnRzIHNob3VsZCBnbyB0
byAiZm9yZWdyb3VuZCIKKyAgaW5lcnRDb250YWluZXIuaW5lcnQgPSBmYWxzZTsKKyAgYXdhaXQg
bW92ZVBvaW50ZXJUbygwLCAwKTsKKyAgbGV0IHByb21pc2VzID0gZXhwZWN0RXZlbnRzT24oWyJt
b3VzZW92ZXIiLCAibW91c2VlbnRlciIsICJtb3VzZW1vdmUiLCAibW91c2Vkb3duIiwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJtb3VzZXVwIiwgImNsaWNrIiwgImF1eGNsaWNr
IiwgIm1vdXNlb3V0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJtb3VzZWxl
YXZlIl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcmVncm91bmQpOworICBh
d2FpdCBjbGlja09uKGZvcmVncm91bmQpOworICBhd2FpdCBhdXhDbGlja09uKGZvcmVncm91bmQp
OworICBhd2FpdCBkYmxDbGlja09uKGZvcmVncm91bmQpOworICBsZXQgYW5jZXN0b3JCb3ggPSBh
bmNlc3RvckNvbnRhaW5lci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgbGV0IGluZXJ0Qm94
ID0gaW5lcnRDb250YWluZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CisgIGxldCB4ID0gYW5j
ZXN0b3JCb3gubGVmdCArIChhbmNlc3RvckJveC53aWR0aCAvIDIpOworICBsZXQgeSA9IGluZXJ0
Qm94LmJvdHRvbSArICgoYW5jZXN0b3JCb3guYm90dG9tIC0gaW5lcnRCb3guYm90dG9tKSAvIDIp
OworICBhd2FpdCBtb3ZlUG9pbnRlclRvKHgsIHkpOworICBhd2FpdCBQcm9taXNlLmFsbChwcm9t
aXNlcyk7Cit9LCAiVGVzdHMgdGhhdCBhbnkgbW91c2UgZXZlbnQgb24gYSBub24taW5lcnQgZWxl
bWVudCBpcyBjb3JyZWN0bHkgdGFyZ2V0ZWQgdG8gdGhhdCBlbGVtZW50Iik7CisKK3Byb21pc2Vf
dGVzdChhc3luYyAoKSA9PiB7CisgIC8vIE1ha2UgdGhlIGNvbnRhaW5pbmcgZWxlbWVudCBpbmVy
dCAtIG5vdyBldmVudHMgc2hvdWxkIGdvIHRvICJjb250YWluZXIiCisgIC8vIHdoaWNoIGlzIHRo
ZSBub24taW5lcnQgYW5jZXN0b3IgYXQgdGhlIHNhbWUgcG9zaXRpb24KKyAgaW5lcnRDb250YWlu
ZXIuaW5lcnQgPSB0cnVlOworICBhd2FpdCBtb3ZlUG9pbnRlclRvKDAsIDApOworCisgIGxldCBw
cm9taXNlcyA9IGV4cGVjdEV2ZW50c09uKFsibW91c2VvdmVyIiwgIm1vdXNlZW50ZXIiLCAibW91
c2Vtb3ZlIiwgIm1vdXNlZG93biIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
bW91c2V1cCIsICJjbGljayIsICJhdXhjbGljayJdLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBhbmNlc3RvckNvbnRhaW5lcik7CisKKyAgcHJvbWlzZXMgPSBwcm9taXNlcy5jb25j
YXQodW5leHBlY3RFdmVudHNPbihbIm1vdXNlb3V0IiwgIm1vdXNlbGVhdmUiXSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmNlc3RvckNvbnRhaW5lcikp
OworCisgIGF3YWl0IGNsaWNrT24oZm9yZWdyb3VuZCk7CisgIGF3YWl0IGF1eENsaWNrT24oZm9y
ZWdyb3VuZCk7CisgIGF3YWl0IGRibENsaWNrT24oZm9yZWdyb3VuZCk7CisgIGxldCBhbmNlc3Rv
ckJveCA9IGFuY2VzdG9yQ29udGFpbmVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworICBsZXQg
aW5lcnRCb3ggPSBpbmVydENvbnRhaW5lci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgbGV0
IHggPSBhbmNlc3RvckJveC5sZWZ0ICsgKGFuY2VzdG9yQm94LndpZHRoIC8gMik7CisgIGxldCB5
ID0gaW5lcnRCb3guYm90dG9tICsgKChhbmNlc3RvckJveC5ib3R0b20gLSBpbmVydEJveC5ib3R0
b20pIC8gMik7CisgIGF3YWl0IG1vdmVQb2ludGVyVG8oeCwgeSk7CisgIGF3YWl0IFByb21pc2Uu
YWxsKHByb21pc2VzKTsKK30sICdUZXN0cyB0aGF0IGFueSBtb3VzZSBldmVudCBvbiBhbiBpbmVy
dCBlbGVtZW50IGlzIHRhcmdldGVkIHRvIHRoZSBuZWFyZXN0IG5vbi1pbmVydCBhbmNlc3RvciBh
dCB0aGUgc2FtZSBjb29yZGluYXRlcycpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgKCkgPT4gewor
ICAvLyBUZXN0IHBvaW50ZXIgZXZlbnRzIG9uIG5vbi1pbmVydCBlbGVtZW50IC0gZXZlbnRzIHNo
b3VsZCBnbyB0byAiZm9yZWdyb3VuZCIKKyAgaW5lcnRDb250YWluZXIuaW5lcnQgPSBmYWxzZTsK
KyAgYXdhaXQgbW92ZVBvaW50ZXJUbygwLCAwKTsKKworICBsZXQgcHJvbWlzZXMgPSBleHBlY3RF
dmVudHNPbihbInBvaW50ZXJvdmVyIiwgInBvaW50ZXJlbnRlciIsICJwb2ludGVybW92ZSIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicG9pbnRlcmRvd24iLCAicG9pbnRlcnVw
IiwgInBvaW50ZXJvdXQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInBvaW50
ZXJsZWF2ZSJdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JlZ3JvdW5kKTsK
KyAgYXdhaXQgY2xpY2tPbihmb3JlZ3JvdW5kKTsKKyAgbGV0IGFuY2VzdG9yQm94ID0gYW5jZXN0
b3JDb250YWluZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CisgIGxldCBpbmVydEJveCA9IGlu
ZXJ0Q29udGFpbmVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworICBsZXQgeCA9IGFuY2VzdG9y
Qm94LmxlZnQgKyAoYW5jZXN0b3JCb3gud2lkdGggLyAyKTsKKyAgbGV0IHkgPSBpbmVydEJveC5i
b3R0b20gKyAoKGFuY2VzdG9yQm94LmJvdHRvbSAtIGluZXJ0Qm94LmJvdHRvbSkgLyAyKTsKKyAg
YXdhaXQgbW92ZVBvaW50ZXJUbyh4LCB5KTsKKyAgYXdhaXQgUHJvbWlzZS5hbGwocHJvbWlzZXMp
OworfSwgIlRlc3RzIHRoYXQgYW55IHBvaW50ZXIgZXZlbnQgb24gYSBub24taW5lcnQgZWxlbWVu
dCBpcyBjb3JyZWN0bHkgdGFyZ2V0ZWQgdG8gdGhhdCBlbGVtZW50Iik7CisKK3Byb21pc2VfdGVz
dChhc3luYyAoKSA9PiB7CisgIC8vIE1ha2UgdGhlIGNvbnRhaW5pbmcgZWxlbWVudCBpbmVydCAt
IG5vdyBldmVudHMgc2hvdWxkIGdvIHRvICJjb250YWluZXIiCisgIC8vIHdoaWNoIGlzIHRoZSBu
b24taW5lcnQgYW5jZXN0b3IgYXQgdGhlIHNhbWUgcG9zaXRpb24KKyAgaW5lcnRDb250YWluZXIu
aW5lcnQgPSB0cnVlOworICBhd2FpdCBtb3ZlUG9pbnRlclRvKDAsIDApOworCisgIGxldCBwcm9t
aXNlcyA9IGV4cGVjdEV2ZW50c09uKFsicG9pbnRlcm92ZXIiLCAicG9pbnRlcmVudGVyIiwgInBv
aW50ZXJtb3ZlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwb2ludGVyZG93
biIsICJwb2ludGVydXAiIF0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuY2Vz
dG9yQ29udGFpbmVyKTsKKworICBwcm9taXNlcyA9IHByb21pc2VzLmNvbmNhdCh1bmV4cGVjdEV2
ZW50c09uKFsicG9pbnRlcm91dCIsICJwb2ludGVybGVhdmUiXSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmNlc3RvckNvbnRhaW5lcikpOworICBhd2Fp
dCBjbGlja09uKGZvcmVncm91bmQpOworICBsZXQgYW5jZXN0b3JCb3ggPSBhbmNlc3RvckNvbnRh
aW5lci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgbGV0IGluZXJ0Qm94ID0gaW5lcnRDb250
YWluZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CisgIGxldCB4ID0gYW5jZXN0b3JCb3gubGVm
dCArIChhbmNlc3RvckJveC53aWR0aCAvIDIpOworICBsZXQgeSA9IGluZXJ0Qm94LmJvdHRvbSAr
ICgoYW5jZXN0b3JCb3guYm90dG9tIC0gaW5lcnRCb3guYm90dG9tKSAvIDIpOworICBhd2FpdCBt
b3ZlUG9pbnRlclRvKHgsIHkpOworICBhd2FpdCBQcm9taXNlLmFsbChwcm9taXNlcyk7Cit9LCAn
VGVzdHMgdGhhdCBhbnkgcG9pbnRlciBldmVudCBvbiBhbiBpbmVydCBlbGVtZW50IGlzIHRhcmdl
dGVkIHRvIHRoZSBuZWFyZXN0IG5vbi1pbmVydCBhbmNlc3RvciBhdCB0aGUgc2FtZSBjb29yZGlu
YXRlcycpOworICA8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtcmV0YXJn
ZXRpbmcudGVudGF0aXZlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtcmV0YXJnZXRpbmcudGVudGF0aXZlLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5iYjc0NWZhMjE4ZGJjYjVhNGVjNmU2ZmJiNmFkMmI1YjRkYTll
YTE1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1yZXRhcmdldGluZy50ZW50YXRpdmUtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsNDcgQEAKK0NPTlNPTEUgTUVTU0FHRTogRXJyb3I6IGFzc2VydF9lcXVhbHM6
IGV4cGVjdGVkIEVsZW1lbnQgbm9kZSA8ZmllbGRzZXQgaWQ9ImFuY2VzdG9yQ29udGFpbmVyIj4K
KyAgICA8bGVnZW5kPk5vbi1pbmVydCBhLi4uIGJ1dCBnb3QgRWxlbWVudCBub2RlIDxidXR0b24g
aWQ9ImZvcmVncm91bmQiIGNsYXNzPSJjbGlja2VkIj5mb3JlZ3JvdW5kPC9idXR0b24+CitDT05T
T0xFIE1FU1NBR0U6IEVycm9yOiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCBFbGVtZW50IG5vZGUg
PGZpZWxkc2V0IGlkPSJhbmNlc3RvckNvbnRhaW5lciI+CisgICAgPGxlZ2VuZD5Ob24taW5lcnQg
YS4uLiBidXQgZ290IEVsZW1lbnQgbm9kZSA8YnV0dG9uIGlkPSJmb3JlZ3JvdW5kIiBjbGFzcz0i
Y2xpY2tlZCI+Zm9yZWdyb3VuZDwvYnV0dG9uPgorQ09OU09MRSBNRVNTQUdFOiBFcnJvcjogYXNz
ZXJ0X2VxdWFsczogZXhwZWN0ZWQgRWxlbWVudCBub2RlIDxmaWVsZHNldCBpZD0iYW5jZXN0b3JD
b250YWluZXIiPgorICAgIDxsZWdlbmQ+Tm9uLWluZXJ0IGEuLi4gYnV0IGdvdCBFbGVtZW50IG5v
ZGUgPGJ1dHRvbiBpZD0iZm9yZWdyb3VuZCIgY2xhc3M9ImNsaWNrZWQiPmZvcmVncm91bmQ8L2J1
dHRvbj4KK0NPTlNPTEUgTUVTU0FHRTogRXJyb3I6IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIEVs
ZW1lbnQgbm9kZSA8ZmllbGRzZXQgaWQ9ImFuY2VzdG9yQ29udGFpbmVyIj4KKyAgICA8bGVnZW5k
Pk5vbi1pbmVydCBhLi4uIGJ1dCBnb3QgRWxlbWVudCBub2RlIDxidXR0b24gaWQ9ImZvcmVncm91
bmQiIGNsYXNzPSJjbGlja2VkIj5mb3JlZ3JvdW5kPC9idXR0b24+CitDT05TT0xFIE1FU1NBR0U6
IEVycm9yOiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCBFbGVtZW50IG5vZGUgPGZpZWxkc2V0IGlk
PSJhbmNlc3RvckNvbnRhaW5lciI+CisgICAgPGxlZ2VuZD5Ob24taW5lcnQgYS4uLiBidXQgZ290
IEVsZW1lbnQgbm9kZSA8YnV0dG9uIGlkPSJmb3JlZ3JvdW5kIiBjbGFzcz0iY2xpY2tlZCI+Zm9y
ZWdyb3VuZDwvYnV0dG9uPgorQ09OU09MRSBNRVNTQUdFOiBFcnJvcjogYXNzZXJ0X2VxdWFsczog
ZXhwZWN0ZWQgRWxlbWVudCBub2RlIDxmaWVsZHNldCBpZD0iYW5jZXN0b3JDb250YWluZXIiPgor
ICAgIDxsZWdlbmQ+Tm9uLWluZXJ0IGEuLi4gYnV0IGdvdCBFbGVtZW50IG5vZGUgPGJ1dHRvbiBp
ZD0iZm9yZWdyb3VuZCIgY2xhc3M9ImNsaWNrZWQiPmZvcmVncm91bmQ8L2J1dHRvbj4KK0NPTlNP
TEUgTUVTU0FHRTogRXJyb3I6IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIEVsZW1lbnQgbm9kZSA8
ZmllbGRzZXQgaWQ9ImFuY2VzdG9yQ29udGFpbmVyIj4KKyAgICA8bGVnZW5kPk5vbi1pbmVydCBh
Li4uIGJ1dCBnb3QgRWxlbWVudCBub2RlIDxidXR0b24gaWQ9ImZvcmVncm91bmQiIGNsYXNzPSJj
bGlja2VkIj5mb3JlZ3JvdW5kPC9idXR0b24+CitDT05TT0xFIE1FU1NBR0U6IEVycm9yOiBhc3Nl
cnRfZXF1YWxzOiBleHBlY3RlZCBFbGVtZW50IG5vZGUgPGZpZWxkc2V0IGlkPSJhbmNlc3RvckNv
bnRhaW5lciI+CisgICAgPGxlZ2VuZD5Ob24taW5lcnQgYS4uLiBidXQgZ290IEVsZW1lbnQgbm9k
ZSA8YnV0dG9uIGlkPSJmb3JlZ3JvdW5kIiBjbGFzcz0iY2xpY2tlZCI+Zm9yZWdyb3VuZDwvYnV0
dG9uPgorQ09OU09MRSBNRVNTQUdFOiBFcnJvcjogYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgRWxl
bWVudCBub2RlIDxmaWVsZHNldCBpZD0iYW5jZXN0b3JDb250YWluZXIiPgorICAgIDxsZWdlbmQ+
Tm9uLWluZXJ0IGEuLi4gYnV0IGdvdCBFbGVtZW50IG5vZGUgPGJ1dHRvbiBpZD0iZm9yZWdyb3Vu
ZCIgY2xhc3M9ImNsaWNrZWQiPmZvcmVncm91bmQ8L2J1dHRvbj4KK0NPTlNPTEUgTUVTU0FHRTog
RXJyb3I6IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIEVsZW1lbnQgbm9kZSA8ZmllbGRzZXQgaWQ9
ImFuY2VzdG9yQ29udGFpbmVyIj4KKyAgICA8bGVnZW5kPk5vbi1pbmVydCBhLi4uIGJ1dCBnb3Qg
RWxlbWVudCBub2RlIDxidXR0b24gaWQ9ImZvcmVncm91bmQiIGNsYXNzPSJjbGlja2VkIj5mb3Jl
Z3JvdW5kPC9idXR0b24+CitDT05TT0xFIE1FU1NBR0U6IEVycm9yOiBhc3NlcnRfZXF1YWxzOiBl
eHBlY3RlZCBFbGVtZW50IG5vZGUgPGZpZWxkc2V0IGlkPSJhbmNlc3RvckNvbnRhaW5lciI+Cisg
ICAgPGxlZ2VuZD5Ob24taW5lcnQgYS4uLiBidXQgZ290IEVsZW1lbnQgbm9kZSA8YnV0dG9uIGlk
PSJmb3JlZ3JvdW5kIiBjbGFzcz0iY2xpY2tlZCI+Zm9yZWdyb3VuZDwvYnV0dG9uPgorQ09OU09M
RSBNRVNTQUdFOiBFcnJvcjogYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgRWxlbWVudCBub2RlIDxm
aWVsZHNldCBpZD0iYW5jZXN0b3JDb250YWluZXIiPgorICAgIDxsZWdlbmQ+Tm9uLWluZXJ0IGEu
Li4gYnV0IGdvdCBFbGVtZW50IG5vZGUgPGJ1dHRvbiBpZD0iZm9yZWdyb3VuZCIgY2xhc3M9ImNs
aWNrZWQiPmZvcmVncm91bmQ8L2J1dHRvbj4KK0NPTlNPTEUgTUVTU0FHRTogRXJyb3I6IGFzc2Vy
dF9lcXVhbHM6IGV4cGVjdGVkIEVsZW1lbnQgbm9kZSA8ZmllbGRzZXQgaWQ9ImFuY2VzdG9yQ29u
dGFpbmVyIj4KKyAgICA8bGVnZW5kPk5vbi1pbmVydCBhLi4uIGJ1dCBnb3QgRWxlbWVudCBub2Rl
IDxidXR0b24gaWQ9ImZvcmVncm91bmQiIGNsYXNzPSJjbGlja2VkIj5mb3JlZ3JvdW5kPC9idXR0
b24+CitDbGljayBvbiAiZm9yZWdyb3VuZCIuCisKK1RoZSBibHVlIHNxdWFyZSAoIk5vbi1pbmVy
dCBhbmNlc3RvciBjb250YWluZXIiKSBzaG91bGQgdHVybiBncmVlbi4KK1RoZSB5ZWxsb3csIHNl
bWktdHJhbnNwYXJlbnQgc3F1YXJlICgiTm9uLWluZXJ0LCBkaXNwbGFjZWQgY29udGFpbmVyIikg
c2hvdWxkIG5vdCB0dXJuIHJlZC4KKyJOb24taW5lcnQgYnV0dG9uIiBzaG91bGQgbm90IHR1cm4g
cmVkLgorKFRoZSBmdWxsIHRlc3Qgc3VpdGUgY2hlY2tzIGEgcmFuZ2Ugb2YgZXZlbnRzLikKKwor
Tm9uLWluZXJ0IGFuY2VzdG9yIGNvbnRhaW5lcgorYmFja2dyb3VuZE5vbi1pbmVydCwgZGlzcGxh
Y2VkIGFuY2VzdG9yCitJbmVydCBjb250YWluZXIKK2ZvcmVncm91bmQKKworSGFybmVzcyBFcnJv
ciAoRkFJTCksIG1lc3NhZ2UgPSBFcnJvcjogYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgRWxlbWVu
dCBub2RlIDxmaWVsZHNldCBpZD0iYW5jZXN0b3JDb250YWluZXIiPgorICAgIDxsZWdlbmQ+Tm9u
LWluZXJ0IGEuLi4gYnV0IGdvdCBFbGVtZW50IG5vZGUgPGJ1dHRvbiBpZD0iZm9yZWdyb3VuZCIg
Y2xhc3M9ImNsaWNrZWQiPmZvcmVncm91bmQ8L2J1dHRvbj4KKworUEFTUyBlbGVtZW50c0Zyb21Q
b2ludCByZXR1cm5zIGluZXJ0IGVsZW1lbnQKK0ZBSUwgVGVzdHMgdGhhdCBhbnkgbW91c2UgZXZl
bnQgb24gYSBub24taW5lcnQgZWxlbWVudCBpcyBjb3JyZWN0bHkgdGFyZ2V0ZWQgdG8gdGhhdCBl
bGVtZW50IHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiAiZGlk
IG5vdCBnZXQgYXV4Y2xpY2sgb24gZm9yZWdyb3VuZCIKK0ZBSUwgVGVzdHMgdGhhdCBhbnkgbW91
c2UgZXZlbnQgb24gYW4gaW5lcnQgZWxlbWVudCBpcyB0YXJnZXRlZCB0byB0aGUgbmVhcmVzdCBu
b24taW5lcnQgYW5jZXN0b3IgYXQgdGhlIHNhbWUgY29vcmRpbmF0ZXMgcHJvbWlzZV90ZXN0OiBV
bmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6ICJkaWQgbm90IGdldCBtb3VzZW92ZXIgb24g
YW5jZXN0b3JDb250YWluZXIiCitQQVNTIFRlc3RzIHRoYXQgYW55IHBvaW50ZXIgZXZlbnQgb24g
YSBub24taW5lcnQgZWxlbWVudCBpcyBjb3JyZWN0bHkgdGFyZ2V0ZWQgdG8gdGhhdCBlbGVtZW50
CitGQUlMIFRlc3RzIHRoYXQgYW55IHBvaW50ZXIgZXZlbnQgb24gYW4gaW5lcnQgZWxlbWVudCBp
cyB0YXJnZXRlZCB0byB0aGUgbmVhcmVzdCBub24taW5lcnQgYW5jZXN0b3IgYXQgdGhlIHNhbWUg
Y29vcmRpbmF0ZXMgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6
ICJkaWQgbm90IGdldCBwb2ludGVyb3ZlciBvbiBhbmNlc3RvckNvbnRhaW5lciIKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9p
bmVydC1yZXRhcmdldGluZy50ZW50YXRpdmUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtcmV0YXJnZXRpbmcudGVudGF0aXZlLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMjI4MGNmNWE1ZDFmYjE2ZWYxOTIzMTBlNGZiNGY3ZDIyYjM3MDJiMwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaW5lcnQvaW5lcnQtcmV0YXJnZXRpbmcudGVudGF0aXZlLmh0bWwKQEAgLTAsMCArMSwy
OTAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIvcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2Vz
L3Rlc3Rkcml2ZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGRy
aXZlci1hY3Rpb25zLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Rk
cml2ZXItdmVuZG9yLmpzIj48L3NjcmlwdD4KKzxzdHlsZT4KK2J1dHRvbiNmb3JlZ3JvdW5kLAor
YnV0dG9uI2JhY2tncm91bmQgeworICBwb3NpdGlvbjogYWJzb2x1dGU7CisgIHRvcDogNzVweDsK
KyAgbGVmdDogNTBweDsKKyAgd2lkdGg6IDEwMHB4OworICBoZWlnaHQ6IDIwcHg7Cit9CisKK2J1
dHRvbiNiYWNrZ3JvdW5kIHsKKyAgbGVmdDogNzVweDsKKyAgd2lkdGg6IDE1MHB4OworICBoZWln
aHQ6IDQwcHg7CisgIHRvcDogMTI1cHg7CisgIGxpbmUtaGVpZ2h0OiA1M3B4OworfQorCisuY2xp
Y2tlZCB7CisgIGJhY2tncm91bmQtY29sb3I6IHJlZDsKK30KKworI2FuY2VzdG9yQ29udGFpbmVy
LmNsaWNrZWQgeworICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKK30KKworI2FuY2VzdG9yQ29u
dGFpbmVyIHsKKyAgcG9zaXRpb246IHJlbGF0aXZlOworICB3aWR0aDogMzAwcHg7CisgIGhlaWdo
dDogMzAwcHg7CisgIGJhY2tncm91bmQtY29sb3I6IGJsdWU7Cit9CisKKyNkaXNwbGFjZWRBbmNl
c3RvciB7CisgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgdG9wOiAxM3B4OworICBsZWZ0OiAyNDBw
eDsKKyAgd2lkdGg6IDMwMHB4OworICBoZWlnaHQ6IDI1MHB4OworICBiYWNrZ3JvdW5kLWNvbG9y
OiAjZmY4OTsKK30KKworI2Rpc3BsYWNlZEFuY2VzdG9yLmNsaWNrZWQgeworICBiYWNrZ3JvdW5k
LWNvbG9yOiAjZjAwOTsKK30KKworI2luZXJ0Q29udGFpbmVyIHsKKyAgYmFja2dyb3VuZC1jb2xv
cjogI2ZmZjk7CisgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgdG9wOiAzNXB4OworICBsZWZ0OiAt
MTkycHg7CisgIHdpZHRoOiAyMDBweDsKKyAgaGVpZ2h0OiAyMDBweDsKK30KKworZmllbGRzZXQg
eworICBtYXJnaW46IDA7CisgIHBhZGRpbmc6IDA7CisgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNr
OworfQorCitsZWdlbmQgeworICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsKKyAgYm9yZGVyOiAx
cHggc29saWQgYmxhY2s7CisgIG1hcmdpbi1sZWZ0OiA1cHg7Cit9CisKK2J1dHRvbi5jbGlja2Vk
OjphZnRlciB7CisgIGNvbnRlbnQ6ICIgKGNsaWNrZWQpIjsKK30KKworLmNsaWNrZWQgPiBsZWdl
bmQ6OmFmdGVyIHsKKyAgY29udGVudDogIiAoY2xpY2tlZCkiOworfQorCis8L3N0eWxlPgorPC9o
ZWFkPgorPGJvZHk+CisgIDxwPkNsaWNrIG9uICJmb3JlZ3JvdW5kIi48L3A+CisgIDx1bD4KKyAg
ICA8bGk+VGhlIGJsdWUgc3F1YXJlICgiTm9uLWluZXJ0IGFuY2VzdG9yIGNvbnRhaW5lciIpIHNo
b3VsZCB0dXJuIGdyZWVuLjwvbGk+CisgICAgPGxpPlRoZSB5ZWxsb3csIHNlbWktdHJhbnNwYXJl
bnQgc3F1YXJlICgiTm9uLWluZXJ0LCBkaXNwbGFjZWQgY29udGFpbmVyIikgc2hvdWxkIG5vdCB0
dXJuIHJlZC48L2xpPgorICAgIDxsaT4iTm9uLWluZXJ0IGJ1dHRvbiIgc2hvdWxkIG5vdCB0dXJu
IHJlZC48L2xpPgorICA8L3VsPgorICA8cD4oVGhlIGZ1bGwgdGVzdCBzdWl0ZSBjaGVja3MgYSBy
YW5nZSBvZiBldmVudHMuKTwvcD4KKyAgPGZpZWxkc2V0IGlkPSJhbmNlc3RvckNvbnRhaW5lciI+
CisgICAgPGxlZ2VuZD5Ob24taW5lcnQgYW5jZXN0b3IgY29udGFpbmVyPC9sZWdlbmQ+CisgICAg
PGJ1dHRvbiBpZD0iYmFja2dyb3VuZCI+YmFja2dyb3VuZDwvYnV0dG9uPgorICAgIDxmaWVsZHNl
dCBpZD0iZGlzcGxhY2VkQW5jZXN0b3IiPgorICAgICAgPGxlZ2VuZD5Ob24taW5lcnQsIGRpc3Bs
YWNlZCBhbmNlc3RvcjwvbGVnZW5kPgorICAgICAgPGZpZWxkc2V0IGlkPSJpbmVydENvbnRhaW5l
ciIgaW5lcnQ+CisgICAgICAgIDxsZWdlbmQ+SW5lcnQgY29udGFpbmVyPC9sZWdlbmQ+CisgICAg
ICAgIDxidXR0b24gaWQ9ImZvcmVncm91bmQiPmZvcmVncm91bmQ8L2J1dHRvbj4KKyAgICAgIDwv
ZmllbGRzZXQ+CisgICAgPC9maWVsZHNldD4KKyAgPC9maWVsZHNldD4KKworICA8c2NyaXB0Pgor
ZG9jdW1lbnQuYm9keS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIChlKSA9PiB7CisgIGUudGFy
Z2V0LmNsYXNzTGlzdC5hZGQoJ2NsaWNrZWQnKTsKK30pOworCitmdW5jdGlvbiBjbGlja09uKGVs
ZW1lbnQpIHsKKyAgcmV0dXJuIG5ldyB0ZXN0X2RyaXZlci5BY3Rpb25zKCkKKyAgICAgIC5wb2lu
dGVyTW92ZSgwLCAwLCB7b3JpZ2luOiBlbGVtZW50fSkKKyAgICAgIC5wb2ludGVyRG93bih7YnV0
dG9uOiB0ZXN0X2RyaXZlci5BY3Rpb25zLnByb3RvdHlwZS5CdXR0b25UeXBlLkxFRlR9KQorICAg
ICAgLnBvaW50ZXJVcCh7YnV0dG9uOiB0ZXN0X2RyaXZlci5BY3Rpb25zLnByb3RvdHlwZS5CdXR0
b25UeXBlLkxFRlR9KQorICAgICAgLnNlbmQoKTsKK30KKworZnVuY3Rpb24gYXV4Q2xpY2tPbihl
bGVtZW50KSB7CisgIHJldHVybiBuZXcgdGVzdF9kcml2ZXIuQWN0aW9ucygpCisgICAgICAucG9p
bnRlck1vdmUoMCwgMCwge29yaWdpbjogZWxlbWVudH0pCisgICAgICAucG9pbnRlckRvd24oe2J1
dHRvbjogdGVzdF9kcml2ZXIuQWN0aW9ucy5wcm90b3R5cGUuQnV0dG9uVHlwZS5SSUdIVH0pCisg
ICAgICAucG9pbnRlclVwKHtidXR0b246IHRlc3RfZHJpdmVyLkFjdGlvbnMucHJvdG90eXBlLkJ1
dHRvblR5cGUuUklHSFR9KQorICAgICAgLnNlbmQoKTsKK30KKworZnVuY3Rpb24gZGJsQ2xpY2tP
bihlbGVtZW50KSB7CisgIHJldHVybiBuZXcgdGVzdF9kcml2ZXIuQWN0aW9ucygpCisgICAgICAu
cG9pbnRlck1vdmUoMCwgMCwge29yaWdpbjogZWxlbWVudH0pCisgICAgICAucG9pbnRlckRvd24o
e2J1dHRvbjogdGVzdF9kcml2ZXIuQWN0aW9ucy5wcm90b3R5cGUuQnV0dG9uVHlwZS5MRUZUfSkK
KyAgICAgIC5wb2ludGVyVXAoe2J1dHRvbjogdGVzdF9kcml2ZXIuQWN0aW9ucy5wcm90b3R5cGUu
QnV0dG9uVHlwZS5MRUZUfSkKKyAgICAgIC5wb2ludGVyRG93bih7YnV0dG9uOiB0ZXN0X2RyaXZl
ci5BY3Rpb25zLnByb3RvdHlwZS5CdXR0b25UeXBlLkxFRlR9KQorICAgICAgLnBvaW50ZXJVcCh7
YnV0dG9uOiB0ZXN0X2RyaXZlci5BY3Rpb25zLnByb3RvdHlwZS5CdXR0b25UeXBlLkxFRlR9KQor
ICAgICAgLnNlbmQoKTsKK30KKworZnVuY3Rpb24gbW92ZVBvaW50ZXJPdmVyKGVsZW1lbnQpIHsK
KyAgbGV0IHJlY3QgPSBlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworICByZXR1cm4g
bmV3IHRlc3RfZHJpdmVyLkFjdGlvbnMoKQorICAgICAgLnBvaW50ZXJNb3ZlKDAsIDAsIHsgb3Jp
Z2luOiBlbGVtZW50IH0pCisgICAgICAuc2VuZCgpOworfQorCitmdW5jdGlvbiBtb3ZlUG9pbnRl
clRvKHgsIHkpIHsKKyAgcmV0dXJuIG5ldyB0ZXN0X2RyaXZlci5BY3Rpb25zKCkKKyAgICAgIC5w
b2ludGVyTW92ZSh4LCB5LCB7IG9yaWdpbjogInZpZXdwb3J0IiB9KQorICAgICAgLnNlbmQoKTsK
K30KKworZnVuY3Rpb24gZXhwZWN0RXZlbnRzT24oZXZlbnRzLCBlbGVtZW50KSB7CisgIGxldCBw
cm9taXNlcyA9IFtdOworICBmb3IgKGV2ZW50IG9mIGV2ZW50cykgeworICAgICgoZXZlbnQsIGVs
ZW1lbnQpID0+IHsKKyAgICAgIHZhciBwcm9taXNlID0gbmV3IFByb21pc2UoKHJlc29sdmUsIHJl
amVjdCkgPT4geworICAgICAgICBsZXQgZiA9IChlKSA9PiB7CisgICAgICAgICAgYXNzZXJ0X2Vx
dWFscyhlLnR5cGUsIGV2ZW50KTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LCBl
bGVtZW50KTsKKyAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgIH0KKyAgICAgICAgZWxlbWVu
dC5hZGRFdmVudExpc3RlbmVyKGV2ZW50LCBmLCB7IGNhcHR1cmU6IHRydWUsIG9uY2U6IHRydWUg
fSk7CisKKyAgICAgICAgc3RlcF90aW1lb3V0KCgpID0+IHsKKyAgICAgICAgICBlbGVtZW50LnJl
bW92ZUV2ZW50TGlzdGVuZXIoZXZlbnQsIGYsIHsgY2FwdHVyZTogdHJ1ZSB9KTsKKyAgICAgICAg
ICByZWplY3QoImRpZCBub3QgZ2V0ICIgKyBldmVudCArICIgb24gIiArIGVsZW1lbnQuaWQpOwor
ICAgICAgICB9LCAxMDAwKTsKKyAgICAgIH0pOworICAgICAgcHJvbWlzZXMucHVzaChwcm9taXNl
KTsKKyAgICB9KShldmVudCwgZWxlbWVudCk7CisgIH0KKyAgcmV0dXJuIHByb21pc2VzOworfQor
CitmdW5jdGlvbiB1bmV4cGVjdEV2ZW50c09uKGV2ZW50cywgZWxlbWVudCkgeworICBsZXQgcHJv
bWlzZXMgPSBbXTsKKyAgZm9yIChldmVudCBvZiBldmVudHMpIHsKKyAgICAoKGV2ZW50LCBlbGVt
ZW50KSA9PiB7CisgICAgICB2YXIgcHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWpl
Y3QpID0+IHsKKyAgICAgICAgbGV0IGYgPSAoZSkgPT4geworICAgICAgICAgIGFzc2VydF9lcXVh
bHMoZS50eXBlLCBldmVudCk7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldCwgZWxl
bWVudCk7CisgICAgICAgICAgcmVqZWN0KCJnb3QgIiArIGUudHlwZSArICIgb24gIiArIGUudGFy
Z2V0LmlkKTsKKyAgICAgICAgfQorICAgICAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoZXZl
bnQsIGYsIHsgY2FwdHVyZTogdHJ1ZSwgb25jZTogdHJ1ZSB9KTsKKworICAgICAgICBzdGVwX3Rp
bWVvdXQoKCkgPT4geworICAgICAgICAgIGVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihldmVu
dCwgZiwgeyBjYXB0dXJlOiB0cnVlIH0pOworICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgICAg
fSwgMTAwMCk7CisgICAgICB9KTsKKyAgICAgIHByb21pc2VzLnB1c2gocHJvbWlzZSk7CisgICAg
fSkoZXZlbnQsIGVsZW1lbnQpOworICB9CisgIHJldHVybiBwcm9taXNlczsKK30KKwordGVzdCgo
KSA9PiB7CisgIGxldCByZWN0ID0gZm9yZWdyb3VuZC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsK
KyAgbGV0IGNlbnRlcl94ID0gcmVjdC5sZWZ0ICsgKHJlY3Qud2lkdGggLyAyKTsKKyAgbGV0IGNl
bnRlcl95ID0gcmVjdC50b3AgKyAocmVjdC5oZWlnaHQgLyAyKTsKKyAgYXNzZXJ0X2VxdWFscyhk
b2N1bWVudC5lbGVtZW50c0Zyb21Qb2ludChjZW50ZXJfeCwgY2VudGVyX3kpWzBdLCBmb3JlZ3Jv
dW5kKTsKK30sICJlbGVtZW50c0Zyb21Qb2ludCByZXR1cm5zIGluZXJ0IGVsZW1lbnQiKTsKKwor
cHJvbWlzZV90ZXN0KGFzeW5jICgpID0+IHsKKyAgLy8gVGVzdCBtb3VzZSBldmVudHMgb24gbm9u
LWluZXJ0IGVsZW1lbnQgLSBldmVudHMgc2hvdWxkIGdvIHRvICJmb3JlZ3JvdW5kIgorICBpbmVy
dENvbnRhaW5lci5pbmVydCA9IGZhbHNlOworICBhd2FpdCBtb3ZlUG9pbnRlclRvKDAsIDApOwor
ICBsZXQgcHJvbWlzZXMgPSBleHBlY3RFdmVudHNPbihbIm1vdXNlb3ZlciIsICJtb3VzZWVudGVy
IiwgIm1vdXNlbW92ZSIsICJtb3VzZWRvd24iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIm1vdXNldXAiLCAiY2xpY2siLCAiYXV4Y2xpY2siLCAibW91c2VvdXQiLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIm1vdXNlbGVhdmUiXSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZm9yZWdyb3VuZCk7CisgIGF3YWl0IGNsaWNrT24oZm9yZWdyb3Vu
ZCk7CisgIGF3YWl0IGF1eENsaWNrT24oZm9yZWdyb3VuZCk7CisgIGF3YWl0IGRibENsaWNrT24o
Zm9yZWdyb3VuZCk7CisgIGxldCBhbmNlc3RvckJveCA9IGFuY2VzdG9yQ29udGFpbmVyLmdldEJv
dW5kaW5nQ2xpZW50UmVjdCgpOworICBsZXQgaW5lcnRCb3ggPSBpbmVydENvbnRhaW5lci5nZXRC
b3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgbGV0IHggPSBhbmNlc3RvckJveC5sZWZ0ICsgKGFuY2Vz
dG9yQm94LndpZHRoIC8gMik7CisgIGxldCB5ID0gaW5lcnRCb3guYm90dG9tICsgKChhbmNlc3Rv
ckJveC5ib3R0b20gLSBpbmVydEJveC5ib3R0b20pIC8gMik7CisgIGF3YWl0IG1vdmVQb2ludGVy
VG8oeCwgeSk7CisgIGF3YWl0IFByb21pc2UuYWxsKHByb21pc2VzKTsKK30sICJUZXN0cyB0aGF0
IGFueSBtb3VzZSBldmVudCBvbiBhIG5vbi1pbmVydCBlbGVtZW50IGlzIGNvcnJlY3RseSB0YXJn
ZXRlZCB0byB0aGF0IGVsZW1lbnQiKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jICgpID0+IHsKKyAg
Ly8gTWFrZSB0aGUgY29udGFpbmluZyBlbGVtZW50IGluZXJ0IC0gbm93IGV2ZW50cyBzaG91bGQg
Z28gdG8gImNvbnRhaW5lciIKKyAgLy8gd2hpY2ggaXMgdGhlIG5vbi1pbmVydCBhbmNlc3RvciBh
dCB0aGUgc2FtZSBwb3NpdGlvbgorICBpbmVydENvbnRhaW5lci5pbmVydCA9IHRydWU7CisgIGF3
YWl0IG1vdmVQb2ludGVyVG8oMCwgMCk7CisKKyAgbGV0IHByb21pc2VzID0gZXhwZWN0RXZlbnRz
T24oWyJtb3VzZW92ZXIiLCAibW91c2VlbnRlciIsICJtb3VzZW1vdmUiLCAibW91c2Vkb3duIiwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJtb3VzZXVwIiwgImNsaWNrIiwgImF1
eGNsaWNrIl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuY2VzdG9yQ29udGFp
bmVyKTsKKworICAvLyBUT0RPKGFib3hoYWxsKTogV2UgYXJlIGdldHRpbmcgdGhlc2UgdW5leHBl
Y3RlZCBldmVudHMuIFdoeT8KKyAgcHJvbWlzZXMgPSBwcm9taXNlcy5jb25jYXQodW5leHBlY3RF
dmVudHNPbihbIm1vdXNlb3V0IiwgIm1vdXNlbGVhdmUiXSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBhbmNlc3RvckNvbnRhaW5lcikpOworCisgIGF3YWl0
IGNsaWNrT24oZm9yZWdyb3VuZCk7CisgIGF3YWl0IGF1eENsaWNrT24oZm9yZWdyb3VuZCk7Cisg
IGF3YWl0IGRibENsaWNrT24oZm9yZWdyb3VuZCk7CisgIGxldCBhbmNlc3RvckJveCA9IGFuY2Vz
dG9yQ29udGFpbmVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworICBsZXQgaW5lcnRCb3ggPSBp
bmVydENvbnRhaW5lci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgbGV0IHggPSBhbmNlc3Rv
ckJveC5sZWZ0ICsgKGFuY2VzdG9yQm94LndpZHRoIC8gMik7CisgIGxldCB5ID0gaW5lcnRCb3gu
Ym90dG9tICsgKChhbmNlc3RvckJveC5ib3R0b20gLSBpbmVydEJveC5ib3R0b20pIC8gMik7Cisg
IGF3YWl0IG1vdmVQb2ludGVyVG8oeCwgeSk7CisgIGF3YWl0IFByb21pc2UuYWxsKHByb21pc2Vz
KTsKK30sICdUZXN0cyB0aGF0IGFueSBtb3VzZSBldmVudCBvbiBhbiBpbmVydCBlbGVtZW50IGlz
IHRhcmdldGVkIHRvIHRoZSBuZWFyZXN0IG5vbi1pbmVydCBhbmNlc3RvciBhdCB0aGUgc2FtZSBj
b29yZGluYXRlcycpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgKCkgPT4geworICAvLyBUZXN0IHBv
aW50ZXIgZXZlbnRzIG9uIG5vbi1pbmVydCBlbGVtZW50IC0gZXZlbnRzIHNob3VsZCBnbyB0byAi
Zm9yZWdyb3VuZCIKKyAgaW5lcnRDb250YWluZXIuaW5lcnQgPSBmYWxzZTsKKyAgYXdhaXQgbW92
ZVBvaW50ZXJUbygwLCAwKTsKKworICBsZXQgcHJvbWlzZXMgPSBleHBlY3RFdmVudHNPbihbInBv
aW50ZXJvdmVyIiwgInBvaW50ZXJlbnRlciIsICJwb2ludGVybW92ZSIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAicG9pbnRlcmRvd24iLCAicG9pbnRlcnVwIiwgInBvaW50ZXJv
dXQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInBvaW50ZXJsZWF2ZSJdLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JlZ3JvdW5kKTsKKyAgYXdhaXQgY2xp
Y2tPbihmb3JlZ3JvdW5kKTsKKyAgbGV0IGFuY2VzdG9yQm94ID0gYW5jZXN0b3JDb250YWluZXIu
Z2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CisgIGxldCBpbmVydEJveCA9IGluZXJ0Q29udGFpbmVy
LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworICBsZXQgeCA9IGFuY2VzdG9yQm94LmxlZnQgKyAo
YW5jZXN0b3JCb3gud2lkdGggLyAyKTsKKyAgbGV0IHkgPSBpbmVydEJveC5ib3R0b20gKyAoKGFu
Y2VzdG9yQm94LmJvdHRvbSAtIGluZXJ0Qm94LmJvdHRvbSkgLyAyKTsKKyAgYXdhaXQgbW92ZVBv
aW50ZXJUbyh4LCB5KTsKKyAgYXdhaXQgUHJvbWlzZS5hbGwocHJvbWlzZXMpOworfSwgIlRlc3Rz
IHRoYXQgYW55IHBvaW50ZXIgZXZlbnQgb24gYSBub24taW5lcnQgZWxlbWVudCBpcyBjb3JyZWN0
bHkgdGFyZ2V0ZWQgdG8gdGhhdCBlbGVtZW50Iik7CisKK3Byb21pc2VfdGVzdChhc3luYyAoKSA9
PiB7CisgIC8vIE1ha2UgdGhlIGNvbnRhaW5pbmcgZWxlbWVudCBpbmVydCAtIG5vdyBldmVudHMg
c2hvdWxkIGdvIHRvICJjb250YWluZXIiCisgIC8vIHdoaWNoIGlzIHRoZSBub24taW5lcnQgYW5j
ZXN0b3IgYXQgdGhlIHNhbWUgcG9zaXRpb24KKyAgaW5lcnRDb250YWluZXIuaW5lcnQgPSB0cnVl
OworICBhd2FpdCBtb3ZlUG9pbnRlclRvKDAsIDApOworCisgIGxldCBwcm9taXNlcyA9IGV4cGVj
dEV2ZW50c09uKFsicG9pbnRlcm92ZXIiLCAicG9pbnRlcmVudGVyIiwgInBvaW50ZXJtb3ZlIiwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwb2ludGVyZG93biIsICJwb2ludGVy
dXAiIF0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuY2VzdG9yQ29udGFpbmVy
KTsKKworICAvLyBUT0RPKGFib3hoYWxsKTogV2UgYXJlIGdldHRpbmcgdGhlc2UgdW5leHBlY3Rl
ZCBldmVudHMuIFdoeT8KKyAgcHJvbWlzZXMgPSBwcm9taXNlcy5jb25jYXQodW5leHBlY3RFdmVu
dHNPbihbInBvaW50ZXJvdXQiLCAicG9pbnRlcmxlYXZlIl0sCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5jZXN0b3JDb250YWluZXIpKTsKKworICBhd2Fp
dCBjbGlja09uKGZvcmVncm91bmQpOworICBsZXQgYW5jZXN0b3JCb3ggPSBhbmNlc3RvckNvbnRh
aW5lci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgbGV0IGluZXJ0Qm94ID0gaW5lcnRDb250
YWluZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CisgIGxldCB4ID0gYW5jZXN0b3JCb3gubGVm
dCArIChhbmNlc3RvckJveC53aWR0aCAvIDIpOworICBsZXQgeSA9IGluZXJ0Qm94LmJvdHRvbSAr
ICgoYW5jZXN0b3JCb3guYm90dG9tIC0gaW5lcnRCb3guYm90dG9tKSAvIDIpOworICBhd2FpdCBt
b3ZlUG9pbnRlclRvKHgsIHkpOworICBhd2FpdCBQcm9taXNlLmFsbChwcm9taXNlcyk7Cit9LCAn
VGVzdHMgdGhhdCBhbnkgcG9pbnRlciBldmVudCBvbiBhbiBpbmVydCBlbGVtZW50IGlzIHRhcmdl
dGVkIHRvIHRoZSBuZWFyZXN0IG5vbi1pbmVydCBhbmNlc3RvciBhdCB0aGUgc2FtZSBjb29yZGlu
YXRlcycpOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvdzNjLWltcG9ydC5s
b2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L3cz
Yy1pbXBvcnQubG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVmZjFhNzE1MGNiNjBiMjI3M2IzODA5MWQzMmE5MzY0
MTQyODE5YWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2luZXJ0L3czYy1pbXBvcnQubG9nCkBAIC0wLDAgKzEsMjYgQEAKK1Ro
ZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBv
c2l0b3J5LgorRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCitJ
bnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6CisJaHR0cHM6
Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKKworVGhlbiBydW4gdGhlIFRvb2xz
L1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKKworRG8gTk9U
IG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1Byb3BlcnRp
ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKK1Byb3BlcnR5IHZhbHVlcyByZXF1
aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitMaXN0IG9mIGZp
bGVzOgorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQv
aW5lcnQtZG9lcy1ub3QtbWF0Y2gtZGlzYWJsZWQtc2VsZWN0b3IudGVudGF0aXZlLmh0bWwKKy9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LWlu
LXNoYWRvdy1kb20udGVudGF0aXZlLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LWlubGluZXMudGVudGF0aXZlLmh0bWwKKy9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LWxhYmVs
LWZvY3VzLnRlbnRhdGl2ZS5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1ub2RlLWlzLXVuZWRpdGFibGUudGVudGF0aXZlLmh0bWwK
Ky9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0
LW5vZGUtaXMtdW5mb2N1c2FibGUudGVudGF0aXZlLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LW5vZGUtaXMtdW5zZWxlY3RhYmxl
LnRlbnRhdGl2ZS5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9pbmVydC9pbmVydC1vbi1zbG90cy50ZW50YXRpdmUuaHRtbAorL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtcmV0YXJnZXRpbmctaWZy
YW1lLnRlbnRhdGl2ZS5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9pbmVydC9pbmVydC1yZXRhcmdldGluZy50ZW50YXRpdmUuaHRtbApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2luZXJ0L2luZXJ0LW5vZGUtaXMtdW5lZGl0YWJsZS50ZW50YXRpdmUtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2luZXJ0L2luZXJ0LW5vZGUtaXMtdW5lZGl0YWJsZS50ZW50YXRpdmUtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjIxMTRjYzE4ZGVjOTA0YTE0NmJmMDA4YTA4YjgwNjdmZjU0MWFl
MDYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtbm9kZS1pcy11bmVkaXRhYmxl
LnRlbnRhdGl2ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitJJ20gbm90IGVkaXRhYmxl
LiBJJ20gZWRpdGFibGUuCisKK1BBU1MgQ2FuJ3QgZWRpdCBpbmVydCBjb250ZW50ZWRpdGFibGUK
K0ZBSUwgQ2FuIGVkaXQgbm9uLWluZXJ0IGNvbnRlbnRlZGl0YWJsZSBhc3NlcnRfbm90X2VxdWFs
czogZ290IGRpc2FsbG93ZWQgdmFsdWUgIkknbSBlZGl0YWJsZS4iCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9pbmVydC9pbmVydC1yZXRhcmdldGluZy1pZnJhbWUudGVudGF0aXZlLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9pbmVydC9pbmVydC1yZXRhcmdldGluZy1pZnJhbWUudGVudGF0aXZlLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5lMWY5ZWE0MGNmMjEzZWQ0NTA1YTk5ZGY0OTczOGZhYWVlNzI0OGM4Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LXJldGFyZ2V0aW5nLWlmcmFtZS50ZW50
YXRpdmUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTggQEAKK0NsaWNrIG9uICJJbmVydCBidXR0
b24iLgorCitUaGUgYmx1ZSBzcXVhcmUgKCJOb24taW5lcnQgYW5jZXN0b3IgY29udGFpbmVyIikg
c2hvdWxkIHR1cm4gZ3JlZW4uCitUaGUgeWVsbG93LCBzZW1pLXRyYW5zcGFyZW50IHNxdWFyZSAo
Ik5vbi1pbmVydCwgZGlzcGxhY2VkIGNvbnRhaW5lciIpIHNob3VsZCBub3QgdHVybiByZWQuCisi
Tm9uLWluZXJ0IGJ1dHRvbiIgc2hvdWxkIG5vdCB0dXJuIHJlZC4KKyhUaGUgZnVsbCB0ZXN0IHN1
aXRlIGNoZWNrcyBhIHJhbmdlIG9mIGV2ZW50cy4pCisKK05vbi1pbmVydCBhbmNlc3RvciBjb250
YWluZXIKKyBOb24taW5lcnQsIGRpc3BsYWNlZCBhbmNlc3RvcgorSW5lcnQgY29udGFpbmVyCitm
b3JlZ3JvdW5kCisKK1BBU1MgZWxlbWVudHNGcm9tUG9pbnQgcmV0dXJucyBpbmVydCBlbGVtZW50
CitGQUlMIFRlc3RzIHRoYXQgYW55IG1vdXNlIGV2ZW50IG9uIGEgbm9uLWluZXJ0IGVsZW1lbnQg
aXMgY29ycmVjdGx5IHRhcmdldGVkIHRvIHRoYXQgZWxlbWVudCBwcm9taXNlX3Rlc3Q6IFVuaGFu
ZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogImRpZCBub3QgZ2V0IG1vdXNlb3ZlciBvbiBmb3Jl
Z3JvdW5kIgorRkFJTCBUZXN0cyB0aGF0IGFueSBtb3VzZSBldmVudCBvbiBhbiBpbmVydCBlbGVt
ZW50IGlzIHRhcmdldGVkIHRvIHRoZSBuZWFyZXN0IG5vbi1pbmVydCBhbmNlc3RvciBhdCB0aGUg
c2FtZSBjb29yZGluYXRlcyBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2
YWx1ZTogImRpZCBub3QgZ2V0IG1vdXNlb3ZlciBvbiBhbmNlc3RvckNvbnRhaW5lciIKK0ZBSUwg
VGVzdHMgdGhhdCBhbnkgcG9pbnRlciBldmVudCBvbiBhIG5vbi1pbmVydCBlbGVtZW50IGlzIGNv
cnJlY3RseSB0YXJnZXRlZCB0byB0aGF0IGVsZW1lbnQgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQg
cmVqZWN0aW9uIHdpdGggdmFsdWU6ICJkaWQgbm90IGdldCBwb2ludGVyb3ZlciBvbiBmb3JlZ3Jv
dW5kIgorRkFJTCBUZXN0cyB0aGF0IGFueSBwb2ludGVyIGV2ZW50IG9uIGFuIGluZXJ0IGVsZW1l
bnQgaXMgdGFyZ2V0ZWQgdG8gdGhlIG5lYXJlc3Qgbm9uLWluZXJ0IGFuY2VzdG9yIGF0IHRoZSBz
YW1lIGNvb3JkaW5hdGVzIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZh
bHVlOiAiZGlkIG5vdCBnZXQgcG9pbnRlcm92ZXIgb24gYW5jZXN0b3JDb250YWluZXIiCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1yZXRhcmdldGluZy50ZW50YXRpdmUtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2luZXJ0L2luZXJ0LXJldGFyZ2V0aW5nLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMWE1ZmJhM2JmNzEyODU3ZDc4NWM4ZDAwYzhiODcxMmZkZWY0Y2FlYwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1yZXRhcmdldGluZy50ZW50YXRpdmUtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTggQEAKK0NsaWNrIG9uICJmb3JlZ3JvdW5kIi4KKworVGhl
IGJsdWUgc3F1YXJlICgiTm9uLWluZXJ0IGFuY2VzdG9yIGNvbnRhaW5lciIpIHNob3VsZCB0dXJu
IGdyZWVuLgorVGhlIHllbGxvdywgc2VtaS10cmFuc3BhcmVudCBzcXVhcmUgKCJOb24taW5lcnQs
IGRpc3BsYWNlZCBjb250YWluZXIiKSBzaG91bGQgbm90IHR1cm4gcmVkLgorIk5vbi1pbmVydCBi
dXR0b24iIHNob3VsZCBub3QgdHVybiByZWQuCisoVGhlIGZ1bGwgdGVzdCBzdWl0ZSBjaGVja3Mg
YSByYW5nZSBvZiBldmVudHMuKQorCitOb24taW5lcnQgYW5jZXN0b3IgY29udGFpbmVyCitiYWNr
Z3JvdW5kTm9uLWluZXJ0LCBkaXNwbGFjZWQgYW5jZXN0b3IKK0luZXJ0IGNvbnRhaW5lcgorZm9y
ZWdyb3VuZAorCitQQVNTIGVsZW1lbnRzRnJvbVBvaW50IHJldHVybnMgaW5lcnQgZWxlbWVudAor
RkFJTCBUZXN0cyB0aGF0IGFueSBtb3VzZSBldmVudCBvbiBhIG5vbi1pbmVydCBlbGVtZW50IGlz
IGNvcnJlY3RseSB0YXJnZXRlZCB0byB0aGF0IGVsZW1lbnQgcHJvbWlzZV90ZXN0OiBVbmhhbmRs
ZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6ICJkaWQgbm90IGdldCBtb3VzZW92ZXIgb24gZm9yZWdy
b3VuZCIKK0ZBSUwgVGVzdHMgdGhhdCBhbnkgbW91c2UgZXZlbnQgb24gYW4gaW5lcnQgZWxlbWVu
dCBpcyB0YXJnZXRlZCB0byB0aGUgbmVhcmVzdCBub24taW5lcnQgYW5jZXN0b3IgYXQgdGhlIHNh
bWUgY29vcmRpbmF0ZXMgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFs
dWU6ICJkaWQgbm90IGdldCBtb3VzZW92ZXIgb24gYW5jZXN0b3JDb250YWluZXIiCitGQUlMIFRl
c3RzIHRoYXQgYW55IHBvaW50ZXIgZXZlbnQgb24gYSBub24taW5lcnQgZWxlbWVudCBpcyBjb3Jy
ZWN0bHkgdGFyZ2V0ZWQgdG8gdGhhdCBlbGVtZW50IHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJl
amVjdGlvbiB3aXRoIHZhbHVlOiAiZGlkIG5vdCBnZXQgcG9pbnRlcm92ZXIgb24gZm9yZWdyb3Vu
ZCIKK0ZBSUwgVGVzdHMgdGhhdCBhbnkgcG9pbnRlciBldmVudCBvbiBhbiBpbmVydCBlbGVtZW50
IGlzIHRhcmdldGVkIHRvIHRoZSBuZWFyZXN0IG5vbi1pbmVydCBhbmNlc3RvciBhdCB0aGUgc2Ft
ZSBjb29yZGluYXRlcyBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1
ZTogImRpZCBub3QgZ2V0IHBvaW50ZXJvdmVyIG9uIGFuY2VzdG9yQ29udGFpbmVyIgorCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>436203</attachid>
            <date>2021-08-23 09:28:14 -0700</date>
            <delta_ts>2021-08-23 13:15:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-165279-20210823182812.patch</filename>
            <type>text/plain</type>
            <size>69638</size>
            <attacher name="Tim Nguyen (:ntim)">ntim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxNDM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDY0NmExZjc0Y2M5ODAxZTkxZmQwY2Y3
ZGY1NWNmNDViOTNiYzEzYWUuLjUzYTI1MGQxNDc0OTg5NmM1NmI3NTBkNDFlNGVhMTlhZjMzZDEz
YjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMDgtMjAgIFRpbSBOZ3V5ZW4gIDxudGltQGFw
cGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgaW5lcnQgYXR0cmlidXRlIGJlaGluZCBmZWF0
dXJlIGZsYWcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE2NTI3OQorCisgICAgICAgIFJldmlld2VkIGJ5IENocmlzIER1bWV6LgorCisgICAgICAgIEFk
ZCBydW50aW1lIEluZXJ0QXR0cmlidXRlRW5hYmxlZCBmZWF0dXJlIGZsYWcgZGlzYWJsZWQgYnkg
ZGVmYXVsdC4KKworICAgICAgICAqIFNjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNF
eHBlcmltZW50YWwueWFtbDoKKwogMjAyMS0wOC0yMSAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4
ZmllbGRAYXBwbGUuY29tPgogCiAgICAgICAgIG92ZXJ3cml0ZUNvZGVQb2ludCgpIGluIGNyZWF0
ZUFuZEZpbGxHbHlwaFBhZ2UoKSBpcyB3cm9uZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDVjNzE4ZTNiNmE5YWRm
ZDgwNWUzMWM5YjZkZmMwMDMxMDc1NDUyYTUuLjk1NjNjNDI1MGVkZGVkMjQ4NWRkMzczNGNiYmM2
YzI5Y2Q5OWIzNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAyMS0wOC0yMCAgVGlt
IE5ndXllbiAgPG50aW1AYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBpbmVydCBhdHRy
aWJ1dGUgYmVoaW5kIGZlYXR1cmUgZmxhZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTY1Mjc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMgRHVt
ZXouCisKKyAgICAgICAgVGVzdHM6IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5l
cnQvZnJhbWUvYnV0dG9uLmh0bWwKKyAgICAgICAgICAgICAgIGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtZG9lcy1ub3QtbWF0Y2gtZGlzYWJsZWQtc2VsZWN0b3Iu
dGVudGF0aXZlLmh0bWwKKyAgICAgICAgICAgICAgIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaW5lcnQvaW5lcnQtaW4tc2hhZG93LWRvbS50ZW50YXRpdmUuaHRtbAorICAgICAgICAg
ICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1pbmxpbmVz
LnRlbnRhdGl2ZS5odG1sCisgICAgICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2luZXJ0L2luZXJ0LWxhYmVsLWZvY3VzLnRlbnRhdGl2ZS5odG1sCisgICAgICAgICAg
ICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LW5vZGUtaXMt
dW5lZGl0YWJsZS50ZW50YXRpdmUuaHRtbAorICAgICAgICAgICAgICAgaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1ub2RlLWlzLXVuZm9jdXNhYmxlLnRlbnRhdGl2
ZS5odG1sCisgICAgICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2lu
ZXJ0L2luZXJ0LW5vZGUtaXMtdW5zZWxlY3RhYmxlLnRlbnRhdGl2ZS5odG1sCisgICAgICAgICAg
ICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LW9uLXNsb3Rz
LnRlbnRhdGl2ZS5odG1sCisgICAgICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2luZXJ0L2luZXJ0LXJldGFyZ2V0aW5nLWlmcmFtZS50ZW50YXRpdmUuaHRtbAorICAg
ICAgICAgICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1y
ZXRhcmdldGluZy50ZW50YXRpdmUuaHRtbAorCisgICAgICAgICogZG9tL05vZGUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Tm9kZTo6aXNJbmVydCBjb25zdCk6CisgICAgICAgICogaHRtbC9IVE1M
QXR0cmlidXRlTmFtZXMuaW46CisgICAgICAgICogaHRtbC9IVE1MRWxlbWVudC5pZGw6CisKIDIw
MjEtMDgtMjIgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAg
ICAgICAgIFtGcmVldHlwZV0gU2V0IG1heGltdW0gYWxsb3dlZCBmb250IHNpemUgZm9yIEZyZWV0
eXBlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVy
ZW5jZXNFeHBlcmltZW50YWwueWFtbCBiL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9X
ZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sCmluZGV4IDVmZGIyNDU0Yzk5NDQ0MGY3ZThk
Zjc1MjdmZmNlMTg3MDMzYjM5N2EuLjE4NWE1YWMwZjQ1NGM3NmMwMzQ3OTJhZDE4NTc2MWZjY2E2
OTQ5OTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVm
ZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sCisrKyBiL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJl
bmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sCkBAIC01MzQsNiArNTM0LDE4IEBA
IEluY3JlbWVudGFsUERGTG9hZGluZ0VuYWJsZWQ6CiAgICAgV2ViS2l0OgogICAgICAgZGVmYXVs
dDogV2ViS2l0OjpkZWZhdWx0SW5jcmVtZW50YWxQREZFbmFibGVkKCkKIAorSW5lcnRBdHRyaWJ1
dGVFbmFibGVkOgorICB0eXBlOiBib29sCisgIGh1bWFuUmVhZGFibGVOYW1lOiAiaW5lcnQgYXR0
cmlidXRlIgorICBodW1hblJlYWRhYmxlRGVzY3JpcHRpb246ICJFbmFibGUgaW5lcnQgYXR0cmli
dXRlIHN1cHBvcnQiCisgIGRlZmF1bHRWYWx1ZToKKyAgICBXZWJLaXRMZWdhY3k6CisgICAgICBk
ZWZhdWx0OiBmYWxzZQorICAgIFdlYktpdDoKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCisgICAgV2Vi
Q29yZToKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCisKICMgRklYTUU6IFRoaXMgaXMgb24gYnkgZGVm
YXVsdCBpbiBXZWJLaXQyLiBQZXJoYXBzIHdlIHNob3VsZCBjb25zaWRlciB0dXJuaW5nIGl0IG9u
IGZvciBXZWJLaXRMZWdhY3kgYXMgd2VsbC4KIEludGVyc2VjdGlvbk9ic2VydmVyRW5hYmxlZDoK
ICAgdHlwZTogYm9vbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCmluZGV4IDdlZTExMjY0Yzc3MjZmNDQ0ODI0Y2Y0
YWQ3NDljODEzODYzY2Q5NGEuLjc1Y2Q0NTUzNDQ5NjkzNDQzZmE5Njk4NzdmNDQzY2Y5NThkODky
ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vTm9kZS5jcHAKQEAgLTI2MzIsNiArMjYzMiwxNCBAQCBib29sIE5vZGU6Omlz
SW5lcnQoKSBjb25zdAogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCisgICAgaWYg
KGRvY3VtZW50KCkuc2V0dGluZ3MoKS5pbmVydEF0dHJpYnV0ZUVuYWJsZWQoKSkgeworICAgICAg
ICBhdXRvKiBlbGVtZW50ID0gaXM8RWxlbWVudD4oKnRoaXMpID8gZG93bmNhc3Q8RWxlbWVudD4o
dGhpcykgOiBwYXJlbnRFbGVtZW50KCk7CisgICAgICAgIGZvciAoYXV0byYgZWxlbWVudCA6IGxp
bmVhZ2VPZlR5cGU8SFRNTEVsZW1lbnQ+KCplbGVtZW50KSkgeworICAgICAgICAgICAgaWYgKGVs
ZW1lbnQuaGFzQXR0cmlidXRlKEhUTUxOYW1lczo6aW5lcnRBdHRyKSkKKyAgICAgICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgIH0KKwogICAgIGlmICghZG9jdW1lbnQoKS5m
cmFtZSgpIHx8ICFkb2N1bWVudCgpLmZyYW1lKCktPm93bmVyRWxlbWVudCgpKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEF0dHJp
YnV0ZU5hbWVzLmluIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4K
aW5kZXggNGZkY2I5ZDMyMThlNzJiODFjMzQ1ZGI1NzFmZWJiMWJkZDlkYzYxNC4uNjI2ZmU0OWRm
MmZmZDQ3OGMyZmUwNGY0MjA3ZGJkNGRmZDdjNjliYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MQXR0cmlidXRlTmFtZXMuaW4KQEAgLTE1Nyw2ICsxNTcsNyBAQCBpbWFnZXNpemVzCiBpbWFn
ZXNyY3NldAogaW5jcmVtZW50YWwKIGluZGV0ZXJtaW5hdGUKK2luZXJ0CiBpbnB1dG1vZGUKIGlu
dGVncml0eQogaXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAKaW5kZXggMDZhYjVjZTdi
MjFjOTc5ODAzMDI5YmUzMmZjZDc5YmNiYmRmM2U4Yi4uZTI4MDUwNjc3MWFlZGE5Mjc3OGYyNWY2
ODNkMjFiMzEzODcxMjk5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAKQEAgLTQ4
MSw3ICs0ODEsNyBAQCB2b2lkIEhUTUxFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YQogICAgICAgICAgICAgc2V0VGFi
SW5kZXhFeHBsaWNpdGx5KHN0ZDo6bnVsbG9wdCk7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0g
ICAgCisKICAgICBpZiAobmFtZSA9PSBpbnB1dG1vZGVBdHRyKSB7CiAgICAgICAgIGF1dG8mIGRv
Y3VtZW50ID0gdGhpcy0+ZG9jdW1lbnQoKTsKICAgICAgICAgaWYgKHRoaXMgPT0gZG9jdW1lbnQu
Zm9jdXNlZEVsZW1lbnQoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
RWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmlkbAppbmRleCAz
NGUzOWMyN2UyYWFlODJkNDMyNTk5YTFlYzIyNTg1YWRiYWE0MjcxLi5mYWNhYzlmMTY3ZmZlMGVi
MzQ2OGVmYjk2ODNiMDE3MDU1ZjUxYTMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxFbGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50Lmlk
bApAQCAtNDcsNiArNDcsOSBAQAogICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgJ2F0dGFjaEludGVy
bmFscycuCiAgICAgLy8gRWxlbWVudEludGVybmFscyBhdHRhY2hJbnRlcm5hbHMoKTsKIAorICAg
IC8vIEV4cGVyaW1lbnRhbDogaHR0cHM6Ly9naXRodWIuY29tL1dJQ0cvaW5lcnQvYmxvYi9tYXN0
ZXIvUkVBRE1FLm1kCisgICAgW0NFUmVhY3Rpb25zLCBSZWZsZWN0LCBFbmFibGVkQnlTZXR0aW5n
PUluZXJ0QXR0cmlidXRlXSBhdHRyaWJ1dGUgYm9vbGVhbiBpbmVydDsKKwogICAgIC8vIE5vbi1z
dGFuZGFyZDogSUUgZXh0ZW5zaW9uLiBNYXkgZ2V0IGFkZGVkIHRvIHRoZSBzcGVjaWZpY2F0aW9u
IChodHRwczovL2dpdGh1Yi5jb20vd2hhdHdnL2h0bWwvaXNzdWVzLzY2OCkuCiAgICAgW0NFUmVh
Y3Rpb25zXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBET01TdHJpbmcgb3V0
ZXJUZXh0OwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKaW5kZXggZDdjNThhNjE1Mzg0YThiMjY3YmVkMjgzMmEwZDNiMmU4ZGM0NmU2
OS4uMTc2MTIyMDNkODdhYjM3NGY0MzIxZjA4NjEyZGUyNDIyNGU2OWI5ZiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE2IEBACisyMDIxLTA4LTIwICBUaW0gTmd1eWVuICA8bnRpbUBhcHBsZS5jb20+CisKKyAg
ICAgICAgSW1wbGVtZW50IGluZXJ0IGF0dHJpYnV0ZSBiZWhpbmQgZmVhdHVyZSBmbGFnCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjUyNzkKKworICAg
ICAgICBSZXZpZXdlZCBieSBDaHJpcyBEdW1lei4KKworICAgICAgICBDcmVhdGUgaU9TIGJhc2Vs
aW5lcy4KKworICAgICAgICAqIHBsYXRmb3JtL2lvcy13azIvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1ub2RlLWlzLXVuZWRpdGFibGUudGVudGF0aXZlLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vaW9zLXdrMi9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LXJldGFyZ2V0aW5nLWlmcmFtZS50ZW50YXRp
dmUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9pb3Mtd2syL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtcmV0YXJnZXRpbmcudGVudGF0
aXZlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisKIDIwMjEtMDgtMjIgIFl1c3VrZSBTdXp1a2kgIDx5
c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBbSlNDXSBSZW1vdmUgYWxyZWFkeS1zaGlwcGVk
IHdhc20gb3B0aW9uIGZsYWdzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
Q2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCA1YjY3
MTk2OWFkMTIxYmNhMTU3ZDdiYmZmOThhMmRkZTUwZjU5ZDNkLi45Nzk1NTRmODYyOTRkZTMxM2E2
N2E3YzUxZWVlNTQ3NGI4NTRjOTM3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwzOSBAQAorMjAyMS0wOC0yMCAgVGltIE5ndXllbiAgPG50aW1AYXBwbGUuY29tPgor
CisgICAgICAgIEltcGxlbWVudCBpbmVydCBhdHRyaWJ1dGUgYmVoaW5kIGZlYXR1cmUgZmxhZwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY1Mjc5CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMgRHVtZXouCisKKyAgICAgICAgSW1wb3J0IGluZXJ0
LyBXUFQgZGlyZWN0b3J5IHVzaW5nIGBpbXBvcnQtdzNjLXRlc3RzIC10IHdlYi1wbGF0Zm9ybS10
ZXN0cy9pbmVydGAuCisgICAgICAgIFdQVCByZXZpc2lvbjogaHR0cHM6Ly9naXRodWIuY29tL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93cHQvY29tbWl0L2YwMmUzOGQ3YTY3OTk5NjgzZDA1NTc5ZjYyYjMz
OTQzMGM2MWU0ZWMKKworICAgICAgICAqIHJlc291cmNlcy9pbXBvcnQtZXhwZWN0YXRpb25zLmpz
b246CisgICAgICAgICogcmVzb3VyY2VzL3Jlc291cmNlLWZpbGVzLmpzb246CisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2ZyYW1lL2J1dHRvbi5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvZnJhbWUvdzNjLWltcG9ydC5sb2c6IEFkZGVk
LgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1kb2VzLW5vdC1tYXRj
aC1kaXNhYmxlZC1zZWxlY3Rvci50ZW50YXRpdmUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtZG9lcy1ub3QtbWF0Y2gtZGlzYWJs
ZWQtc2VsZWN0b3IudGVudGF0aXZlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9pbmVydC9pbmVydC1pbi1zaGFkb3ctZG9tLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1pbi1zaGFk
b3ctZG9tLnRlbnRhdGl2ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVz
dHMvaW5lcnQvaW5lcnQtaW5saW5lcy50ZW50YXRpdmUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtaW5saW5lcy50ZW50YXRpdmUu
aHRtbDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LWxh
YmVsLWZvY3VzLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1sYWJlbC1mb2N1cy50ZW50YXRpdmUuaHRtbDogQWRk
ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LW5vZGUtaXMtdW5l
ZGl0YWJsZS50ZW50YXRpdmUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtbm9kZS1pcy11bmVkaXRhYmxlLnRlbnRhdGl2ZS5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtbm9kZS1p
cy11bmZvY3VzYWJsZS50ZW50YXRpdmUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtbm9kZS1pcy11bmZvY3VzYWJsZS50ZW50YXRp
dmUuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0
LW5vZGUtaXMtdW5zZWxlY3RhYmxlLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1ub2RlLWlzLXVuc2VsZWN0YWJs
ZS50ZW50YXRpdmUuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2lu
ZXJ0L2luZXJ0LW9uLXNsb3RzLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1vbi1zbG90cy50ZW50YXRpdmUuaHRt
bDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LXJldGFy
Z2V0aW5nLWlmcmFtZS50ZW50YXRpdmUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtcmV0YXJnZXRpbmctaWZyYW1lLnRlbnRhdGl2
ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQt
cmV0YXJnZXRpbmcudGVudGF0aXZlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LXJldGFyZ2V0aW5nLnRlbnRhdGl2ZS5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvdzNjLWltcG9ydC5sb2c6
IEFkZGVkLgorCiAyMDIxLTA4LTIyICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBs
ZS5jb20+CiAKICAgICAgICAgQ29udHJvbCBjaGFyYWN0ZXJzIChVbmljb2RlIGNhdGVnb3J5IENj
KSBzaG91bGQgYmUgcmVuZGVyZWQgdmlzaWJseQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3Jlc291cmNlcy9pbXBvcnQtZXhwZWN0YXRpb25zLmpzb24gYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvcmVzb3VyY2VzL2ltcG9ydC1leHBlY3RhdGlvbnMuanNvbgppbmRleCA1
NzNhMDZjMGQ5Mjg4MDAyNDkyYzdhYmI3NDM3NTEzMDgzNzdlYjQzLi5mODkyYjdjMmRjYTMyNTBl
M2QyYTdiZDU3ZjI4NmMyZWJjNGJjNjU2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvcmVzb3VyY2VzL2ltcG9ydC1leHBlY3RhdGlvbnMuanNvbgorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvcmVzb3VyY2VzL2ltcG9ydC1leHBlY3RhdGlvbnMuanNvbgpAQCAtMzM0
LDYgKzMzNCw3IEBACiAgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9pbWFnZS1kZWNvZGVzIjogInNr
aXAiLCAKICAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2ltYWdlYml0bWFwLXJlbmRlcmluZ2NvbnRl
eHQiOiAiaW1wb3J0IiwgCiAgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9pbWFnZXMiOiAiaW1wb3J0
IiwgCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydCI6ICJpbXBvcnQiLCAKICAgICAid2Vi
LXBsYXRmb3JtLXRlc3RzL2luZnJhc3RydWN0dXJlIjogImltcG9ydCIsIAogICAgICJ3ZWItcGxh
dGZvcm0tdGVzdHMvaW5uZXJUZXh0IjogImltcG9ydCIsIAogICAgICJ3ZWItcGxhdGZvcm0tdGVz
dHMvaW5wdXQtZXZlbnRzIjogInNraXAiLCAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9yZXNvdXJjZXMvcmVzb3VyY2UtZmlsZXMuanNvbiBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9yZXNvdXJjZXMvcmVzb3VyY2UtZmlsZXMuanNvbgppbmRleCA4ZjY3NDA1M2IyNGE3
OGIxOTU0OTkwY2U2NmZkYWI0OTFhMTU4ZjliLi5iMTc4ZTBhZDIwODU0Zjc3Yzg1MjQzYjE4ODJk
OWM0MDE2ZDRhMWQ5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvcmVzb3Vy
Y2VzL3Jlc291cmNlLWZpbGVzLmpzb24KKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3Jl
c291cmNlcy9yZXNvdXJjZS1maWxlcy5qc29uCkBAIC0yNzcyLDYgKzI3NzIsNyBAQAogICAgICAg
ICAid2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvd2ViYXBwYXBpcy9zY3JpcHRpbmcvZXZlbnRzL29u
ZXJyb3JldmVudGhhbmRsZXItZnJhbWUuaHRtbCIsCiAgICAgICAgICJ3ZWItcGxhdGZvcm0tdGVz
dHMvaHRtbC93ZWJhcHBhcGlzL3VzZXItcHJvbXB0cy9jYW5ub3Qtc2hvdy1zaW1wbGUtZGlhbG9n
cy9zdXBwb3J0L2NvbmZpcm0uaHRtbCIsCiAgICAgICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC93ZWJhcHBhcGlzL3VzZXItcHJvbXB0cy9jYW5ub3Qtc2hvdy1zaW1wbGUtZGlhbG9ncy9zdXBw
b3J0L3Byb21wdC5odG1sIiwKKyAgICAgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9mcmFt
ZS9idXR0b24uaHRtbCIsCiAgICAgICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaW5mcmFzdHJ1Y3R1
cmUvYXNzdW1wdGlvbnMvYWhlbS1ub3RyZWYuaHRtbCIsCiAgICAgICAgICJ3ZWItcGxhdGZvcm0t
dGVzdHMvaW5mcmFzdHJ1Y3R1cmUvcmVmdGVzdC9yZWQuaHRtbCIsCiAgICAgICAgICJ3ZWItcGxh
dGZvcm0tdGVzdHMvaW50ZXJzZWN0aW9uLW9ic2VydmVyL29ic2VydmVyLWluLWlmcmFtZS5odG1s
IiwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvaW5lcnQvZnJhbWUvYnV0dG9uLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2luZXJ0L2ZyYW1lL2J1dHRvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU4Njdj
NzU4MTQyYzY2NTIzNjJhMjNmMTk1MzNhOGQ4NmZlMjk2NDgKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2ZyYW1lL2J1
dHRvbi5odG1sCkBAIC0wLDAgKzEsMzYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVh
ZD4KKzxzdHlsZT4KK2JvZHkgeworICBvdmVyZmxvdzogaGlkZGVuOworfQorCitidXR0b24jYmFj
a2dyb3VuZCB7CisgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgdG9wOiAwOworICBsZWZ0OiAwOwor
ICB3aWR0aDogMTUwcHg7CisgIGhlaWdodDogNDBweDsKKyAgbGluZS1oZWlnaHQ6IDUzcHg7Cit9
CisKK2J1dHRvbi5jbGlja2VkIHsKKyAgYmFja2dyb3VuZC1jb2xvcjogcmVkOworfQorCitidXR0
b24uY2xpY2tlZDo6YWZ0ZXIgeworICBjb250ZW50OiAiIChjbGlja2VkKSI7Cit9CisKKzwvc3R5
bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgPGJ1dHRvbiBpZD0iYmFja2dyb3VuZCI+YmFja2dyb3Vu
ZDwvYnV0dG9uPgorPHNjcmlwdD4KK2RvY3VtZW50LmJvZHkuYWRkRXZlbnRMaXN0ZW5lcignY2xp
Y2snLCAoZSkgPT4geworICBlLnRhcmdldC5jbGFzc0xpc3QuYWRkKCdjbGlja2VkJyk7Cit9KTsK
Kzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9mcmFtZS93M2MtaW1wb3J0LmxvZyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvZnJhbWUv
dzNjLWltcG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTQ1MWIwOGI3YjNiMmExMjYzY2YwYjAyZTc4OGUw
NzQxYzAwMjBhNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvZnJhbWUvdzNjLWltcG9ydC5sb2cKQEAgLTAsMCArMSwx
NyBAQAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUg
VzNDIHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdl
YktpdC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoK
KwlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAorCitUaGVuIHJ1biB0
aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAor
CitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor
UHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVydHkgdmFs
dWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xp
c3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9pbmVydC9mcmFtZS9idXR0b24uaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1kb2VzLW5vdC1tYXRjaC1kaXNh
YmxlZC1zZWxlY3Rvci50ZW50YXRpdmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1kb2VzLW5vdC1tYXRjaC1kaXNh
YmxlZC1zZWxlY3Rvci50ZW50YXRpdmUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE5ZDYzOWUx
OGI3OGNkYzE1ZTM2YzhhMzhiMTAwY2U0MTQxMjFiN2MKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LWRvZXMt
bm90LW1hdGNoLWRpc2FibGVkLXNlbGVjdG9yLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSw0IEBACitUaGUgdGVzdCBwYXNzZXMgaWYgdGhpcyBpcyBpbiBncmVlbi4KKworUEFTUyBU
ZXN0cyB0aGF0IGluZXJ0IGVsZW1lbnRzIGRvIG5vdCBtYXRjaCB0aGUgOmRpc2FibGVkIHNlbGVj
dG9yLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2luZXJ0L2luZXJ0LWRvZXMtbm90LW1hdGNoLWRpc2FibGVkLXNlbGVjdG9yLnRlbnRh
dGl2ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9p
bmVydC9pbmVydC1kb2VzLW5vdC1tYXRjaC1kaXNhYmxlZC1zZWxlY3Rvci50ZW50YXRpdmUuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi43NGI4YWMzZjdkZDVjMzQ0N2JmNDdmZDczMmZhZGU5MjIwNDk3YzkzCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9pbmVydC9pbmVydC1kb2VzLW5vdC1tYXRjaC1kaXNhYmxlZC1zZWxlY3Rvci50ZW50YXRp
dmUuaHRtbApAQCAtMCwwICsxLDI3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+
Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c3R5
bGU+CitidXR0b24geworICAgIGNvbG9yOiBncmVlbjsKK30KKworYnV0dG9uOmRpc2FibGVkIHsK
KyAgICBjb2xvcjogcmVkOworfQorCis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHkgc3R5bGU9ImNv
bG9yOiBncmVlbiI+Cis8YnV0dG9uIGluZXJ0PlRoZSB0ZXN0IHBhc3NlcyBpZiB0aGlzIGlzIGlu
IGdyZWVuLjwvYnV0dG9uPgorPHNjcmlwdD4KK3Rlc3QoZnVuY3Rpb24oKSB7CisgICAgYnV0dG9u
ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignYnV0dG9uJyk7CisgICAgY29sb3IgPSBkb2N1bWVu
dC5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlKGJ1dHRvbikuZ2V0UHJvcGVydHlWYWx1ZSgn
Y29sb3InKTsKKyAgICBhc3NlcnRfZmFsc2UoYnV0dG9uLm1hdGNoZXMoJzpkaXNhYmxlZCcpKTsK
K30sICdUZXN0cyB0aGF0IGluZXJ0IGVsZW1lbnRzIGRvIG5vdCBtYXRjaCB0aGUgOmRpc2FibGVk
IHNlbGVjdG9yLicpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LWlu
LXNoYWRvdy1kb20udGVudGF0aXZlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtaW4tc2hhZG93LWRvbS50ZW50YXRp
dmUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNhMjViNzUxZDBjODE2ZTExOGZhZTE0ZGIxODc5
MmExNWIyOTVlODMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LWluLXNoYWRvdy1kb20udGVudGF0aXZlLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK0J1dHRvbnMgMSBhbmQgMiBzaG91bGQgYmUgaW5l
cnQuCitCdXR0b24gMSAoaW5lcnQpCisKK0ZBSUwgaW5lcnQgb24gU2hhZG93IGhvc3QgYWZmZWN0
cyBjb250ZW50IGluIHNoYWRvdyBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCBmYWxzZSBidXQgZ290
IHRydWUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9pbmVydC9pbmVydC1pbi1zaGFkb3ctZG9tLnRlbnRhdGl2ZS5odG1sIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1pbi1zaGFk
b3ctZG9tLnRlbnRhdGl2ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVjODI1ZGJmZGM5ODU0NThjYzczOTNk
NThiMmVmYzJjZTA3OTYzNjQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LWluLXNoYWRvdy1kb20udGVudGF0
aXZlLmh0bWwKQEAgLTAsMCArMSw1NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFk
PgorICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04IiAvPgorICAgIDx0aXRsZT5pbmVydCBvbiBTaGFk
b3cgaG9zdCBhZmZlY3RzIGNvbnRlbnQgaW4gc2hhZG93PC90aXRsZT4KKyAgICA8bGluayByZWw9
ImF1dGhvciIgdGl0bGU9IkFsaWNlIEJveGhhbGwiIGhyZWY9ImFib3hoYWxsQGNocm9taXVtLm9y
ZyI+CisgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0
PgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5PgorICA8ZGl2PkJ1dHRvbnMgMSBhbmQgMiBzaG91bGQgYmUg
aW5lcnQuPC9kaXY+CisgIDxkaXYgaWQ9InNoYWRvdy1ob3N0IiBpbmVydD4KKyAgICA8YnV0dG9u
IGlkPSJidXR0b24tMSI+QnV0dG9uIDEgKGluZXJ0KTwvYnV0dG9uPgorICA8L2Rpdj4KKyAgPHNj
cmlwdD4KKyAgICAvKgorICAgIEV2ZW50dWFsIGZsYXR0ZW5lZCB0cmVlIHN0cnVjdHVyZToKKwor
ICAgIDxkaXYgaWQ9InNoYWRvdy1ob3N0IiBpbmVydD4KKyAgICAgICNzaGFkb3ctcm9vdCAob3Bl
bikKKyAgICAgIHwgPHNsb3Q+CisgICAgICA6ICAgPGJ1dHRvbiBpZD0iYnV0dG9uLTEiPkJ1dHRv
biAxIChpbmVydCk8L2J1dHRvbj4gPCEtLSBzbG90dGVkIC0tPgorICAgICAgfCA8L3Nsb3Q+Cisg
ICAgICB8IDxidXR0b24gaWQ9ImJ1dHRvbi0yIj5CdXR0b24gMiAoaW5lcnQpPC9idXR0b24+ICAg
PCEtLSBpbiBzaGFkb3cgLS0+CisgICAgPC9kaXY+CisgICAgKi8KKworICAgIGNvbnN0IHNoYWRv
d0hvc3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2hhZG93LWhvc3QiKTsKKyAgICBjb25z
dCBzaGFkb3dSb290ID0gc2hhZG93SG9zdC5hdHRhY2hTaGFkb3coeyBtb2RlOiAib3BlbiIgfSk7
CisKKyAgICAvLyBCdXR0b24gMSB3aWxsIGJlIHNsb3R0ZWQKKyAgICBjb25zdCBzbG90ID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgic2xvdCIpOworICAgIHNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQo
c2xvdCk7CisKKyAgICBjb25zdCBidXR0b24yID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYnV0
dG9uIik7CisgICAgYnV0dG9uMi5pZCA9ICJidXR0b24tMiI7CisgICAgYnV0dG9uMi50ZXh0Q29u
dGVudCA9ICJCdXR0b24gMiAoaW5lcnQpIjsKKyAgICBzaGFkb3dSb290LmFwcGVuZENoaWxkKGJ1
dHRvbjIpOworCisgICAgZnVuY3Rpb24gdGVzdENhbkZvY3VzKHNlbGVjdG9yLCBjYW5Gb2N1cywg
b3B0X2NvbnRleHQpIHsKKyAgICAgIGxldCBjb250ZXh0ID0gb3B0X2NvbnRleHQgfHwgZG9jdW1l
bnQ7CisgICAgICBjb25zdCBlbGVtZW50ID0gY29udGV4dC5xdWVyeVNlbGVjdG9yKHNlbGVjdG9y
KTsKKyAgICAgIGxldCBmb2N1c2VkRWxlbWVudCA9IG51bGw7CisgICAgICBlbGVtZW50LmFkZEV2
ZW50TGlzdGVuZXIoImZvY3VzIiwgZnVuY3Rpb24oKSB7IGZvY3VzZWRFbGVtZW50ID0gZWxlbWVu
dDsgfSwgZmFsc2UpOworICAgICAgZWxlbWVudC5mb2N1cygpOworICAgICAgYXNzZXJ0X2VxdWFs
cygoZm9jdXNlZEVsZW1lbnQgPT09IGVsZW1lbnQpLCBjYW5Gb2N1cyk7CisgICAgfQorCisgICAg
dGVzdCgoKSA9PiB7CisgICAgICB0ZXN0Q2FuRm9jdXMoIiNidXR0b24tMSIsIGZhbHNlKTsKKyAg
ICAgIHRlc3RDYW5Gb2N1cygiI2J1dHRvbi0yIiwgZmFsc2UsIHNoYWRvd1Jvb3QpOworICAgIH0s
ICJpbmVydCBvbiBTaGFkb3cgaG9zdCBhZmZlY3RzIGNvbnRlbnQgaW4gc2hhZG93Iik7CisgIDwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1pbmxpbmVzLnRlbnRhdGl2ZS1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2luZXJ0L2luZXJ0LWlubGluZXMudGVudGF0aXZlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4z
Y2Q3MDZjOTIwNmNiYzVhNjA2MThhYTM3MjM4NmMxMDNkYzE4MTQ1Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVy
dC1pbmxpbmVzLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACitDbGljayBt
ZSBDbGljayBtZQorQ2xpY2sgbWUKK0NsaWNrIG1lCisKK0ZBSUwgVGVzdHMgdGhhdCBpbmVydCBp
bmxpbmVzIGRvIG5vdCByZWNlaXZlIG1vdXNlIGV2ZW50cy4gVG8gdGVzdCBtYW51YWxseSwgY2xp
Y2sgb24gYWxsIHRoZSAiQ2xpY2sgbWUicy4gVGhlIHRlc3QgZmFpbHMgaWYgeW91IHNlZSByZWQu
IGFzc2VydF9mYWxzZTogbm8gZXZlbnQgc2hvdWxkIGJlIGZpcmVkIG9uIGEgZXhwZWN0ZWQgZmFs
c2UgZ290IHRydWUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1pbmxpbmVzLnRlbnRhdGl2ZS5odG1sIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1pbmxpbmVz
LnRlbnRhdGl2ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIwNTZjNjQ5NWQyYzU0NzMzYmVlNmFiNzk2MzMy
YmE4OWYwMWIzNzkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LWlubGluZXMudGVudGF0aXZlLmh0bWwKQEAg
LTAsMCArMSw1NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAgPGhlYWQ+CisgICAgPG1l
dGEgY2hhcnNldD0idXRmLTgiIC8+CisgICAgPHRpdGxlPmluZXJ0IGlubGluZXM8L3RpdGxlPgor
ICAgIDxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iQWxpY2UgQm94aGFsbCIgaHJlZj0iYWJveGhh
bGxAY2hyb21pdW0ub3JnIj4KKyAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVz
cy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3Ny
ZXBvcnQuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Rkcml2
ZXIuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Rkcml2ZXIt
dmVuZG9yLmpzIj48L3NjcmlwdD4KKyAgPC9oZWFkPgorPGJvZHk+Cis8YSBpbmVydCBpZD0iYSIg
aHJlZj0iamF2YXNjcmlwdDp2b2lkKDApIj5DbGljayBtZTwvYT4KKzxidXR0b24gaW5lcnQgaWQ9
ImJ1dHRvbiI+Q2xpY2sgbWU8L2J1dHRvbj4KKzxkaXYgaW5lcnQgaWQ9ImRpdiIgc3R5bGU9ImJh
Y2tncm91bmQtY29sb3I6IGJsdWU7IHdpZHRoOiA1MHB4OyBoZWlnaHQ6IDUwcHgiPkNsaWNrIG1l
PC9kaXY+Cis8c3BhbiBpbmVydCBpZD0ic3BhbiI+Q2xpY2sgbWU8L3NwYW4+Cis8c2NyaXB0Pgor
ZnVuY3Rpb24gZXZlbnRGaXJlZE9uSW5lcnRFbGVtZW50KGUpIHsKKyAgICBlLnRhcmdldC5zdHls
ZS5iYWNrZ3JvdW5kID0gJ3JlZCc7CisgICAgaW5lcnRFbGVtZW50RmlyZWRPbiA9IHRydWU7Cit9
CisKK2luZXJ0RWxlbWVudHMgPSBbJ2EnLCAnYnV0dG9uJywgJ2RpdicsICdzcGFuJ10KK2luZXJ0
RWxlbWVudHMuZm9yRWFjaChmdW5jdGlvbihpZCkgeworICAgIGVsZW1lbnQgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZChpZCk7CisgICAgZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycs
IGV2ZW50RmlyZWRPbkluZXJ0RWxlbWVudCk7CisgICAgZWxlbWVudC5hZGRFdmVudExpc3RlbmVy
KCdtb3VzZW1vdmUnLCBldmVudEZpcmVkT25JbmVydEVsZW1lbnQpOworfSk7CisKK2RvY3VtZW50
LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oZSkgeworICAgIGRvY3VtZW50LmZp
cmVkT24gPSB0cnVlOworfSk7CisKK3Byb21pc2VfdGVzdChhc3luYyAoKSA9PiB7CisgICAgZm9y
IChsZXQgaWQgb2YgaW5lcnRFbGVtZW50cykgeworICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKGlkKTsKKyAgICAgICAgaW5lcnRFbGVtZW50RmlyZWRPbiA9IGZh
bHNlOworICAgICAgICBkb2N1bWVudC5maXJlZE9uID0gZmFsc2U7CisgICAgICAgIHRyeSB7Cisg
ICAgICAgICAgYXdhaXQgdGVzdF9kcml2ZXIuY2xpY2soZWxlbWVudCk7CisgICAgICAgICAgYXNz
ZXJ0X2ZhbHNlKGluZXJ0RWxlbWVudEZpcmVkT24sICdubyBldmVudCBzaG91bGQgYmUgZmlyZWQg
b24gJyArIGlkKTsKKyAgICAgICAgICBhc3NlcnRfdHJ1ZShkb2N1bWVudC5maXJlZE9uLCAnZXZl
bnQgc2hvdWxkIGJlIGZpcmVkIG9uIGRvY3VtZW50IGluc3RlYWQgb2YgJyArIGlkKTsKKyAgICAg
ICAgfSBjYXRjaCAoZSkgeworICAgICAgICAgIC8vIHRlc3QgZHJpdmVyIGRldGVjdHMgaW5lcnQg
ZWxlbWVudHMgYXMgdW5jbGlja2FibGUKKyAgICAgICAgICAvLyBhbmQgdGhyb3dzIGFuIGVycm9y
CisgICAgICAgICAgYXNzZXJ0X2ZhbHNlKGluZXJ0RWxlbWVudEZpcmVkT24sICdubyBldmVudCBz
aG91bGQgYmUgZmlyZWQgb24gJyArIGlkKTsKKyAgICAgICAgfQorICAgIH0KK30sICdUZXN0cyB0
aGF0IGluZXJ0IGlubGluZXMgZG8gbm90IHJlY2VpdmUgbW91c2UgZXZlbnRzLiAnICsKKyAgICdU
byB0ZXN0IG1hbnVhbGx5LCBjbGljayBvbiBhbGwgdGhlICJDbGljayBtZSJzLiBUaGUgdGVzdCAn
ICsKKyAgICdmYWlscyBpZiB5b3Ugc2VlIHJlZC4nKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2luZXJ0L2luZXJ0LWxhYmVsLWZvY3VzLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LWxh
YmVsLWZvY3VzLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWQ1YWIwZWE0ZmE0
NDc1NDUyNDk3YTBhNmU5ZTNhZWYyOTNhMzE4YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtbGFiZWwtZm9j
dXMudGVudGF0aXZlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDcgQEAKK0xhYmVsIGZvciBTdWJt
aXQgICAgIExhYmVsIGZvciBpbnB1dCBpbiBpbmVydCBzdWJ0cmVlCisKKworUEFTUyBDYWxsaW5n
IGZvY3VzKCkgb24gYW4gaW5lcnQgbGFiZWwgc2hvdWxkIHN0aWxsIHNlbmQgZm9jdXMgdG8gaXRz
IHRhcmdldC4KK1BBU1MgQ2xpY2tpbmcgb24gYW4gaW5lcnQgbGFiZWwgc2hvdWxkIHNlbmQgZm9j
dXMgdG8gZG9jdW1lbnQuYm9keS4KK1BBU1MgQ2FsbGluZyBmb2N1cygpIG9uIGEgbGFiZWwgZm9y
IGEgY29udHJvbCB3aGljaCBpcyBpbiBhbiBpbmVydCBzdWJ0cmVlIHNob3VsZCBoYXZlIG5vIGVm
ZmVjdC4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9pbmVydC9pbmVydC1sYWJlbC1mb2N1cy50ZW50YXRpdmUuaHRtbCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtbGFiZWwtZm9j
dXMudGVudGF0aXZlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGJiZTFlY2ExNWM3ZDhmMmY5ZmQ1ZWE0OGMz
M2NkMGE1ZDUwOThlMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtbGFiZWwtZm9jdXMudGVudGF0aXZlLmh0
bWwKQEAgLTAsMCArMSw1MyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAgPGhlYWQ+Cisg
ICAgPG1ldGEgY2hhcnNldD0idXRmLTgiIC8+CisgICAgPHRpdGxlPmluZXJ0IHdpdGggbGFiZWwv
Zm9yPC90aXRsZT4KKyAgICA8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkFsaWNlIEJveGhhbGwi
IGhyZWY9ImFib3hoYWxsQGNocm9taXVtLm9yZyI+CisgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iL3Jlc291
cmNlcy90ZXN0ZHJpdmVyLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNl
cy90ZXN0ZHJpdmVyLXZlbmRvci5qcyI+PC9zY3JpcHQ+CisgIDwvaGVhZD4KKyAgPGJvZHk+Cisg
ICAgPGxhYmVsIGluZXJ0IGlkPSJmb3Itc3VibWl0IiBmb3I9InN1Ym1pdCI+TGFiZWwgZm9yIFN1
Ym1pdDwvbGFiZWw+CisgICAgPGlucHV0IGlkPSJ0ZXh0IiB0eXBlPSJ0ZXh0Ij4KKyAgICA8aW5w
dXQgaWQ9InN1Ym1pdCIgdHlwZT0ic3VibWl0Ij4KKworICAgIDxsYWJlbCBpZD0iZm9yLWlucHV0
LWluLWluZXJ0LXN1YnRyZWUiCisgICAgICAgICAgIGZvcj0iaW5wdXQtaW4taW5lcnQtc3VidHJl
ZSI+TGFiZWwgZm9yIGlucHV0IGluIGluZXJ0IHN1YnRyZWU8L2xhYmVsPgorICAgIDxkaXYgaW5l
cnQ+CisgICAgICA8aW5wdXQgaWQ9ImlucHV0LWluLWluZXJ0LXN1YnRyZWUiPjwvaW5wdXQ+Cisg
ICAgPC9kaXY+CisKKyAgICA8c2NyaXB0PgorICAgICAgdGVzdCgoKSA9PiB7CisgICAgICAgIGxh
YmVsID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI2Zvci1zdWJtaXQnKTsKKyAgICAgICAgbGFi
ZWwuZm9jdXMoKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhkb2N1bWVudC5hY3RpdmVFbGVtZW50
LCBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjc3VibWl0JykpOworICAgICAgfSwgJ0NhbGxpbmcg
Zm9jdXMoKSBvbiBhbiBpbmVydCBsYWJlbCBzaG91bGQgc3RpbGwgc2VuZCBmb2N1cyB0byBpdHMg
dGFyZ2V0LicpOworCisgICAgICBwcm9taXNlX3Rlc3QoYXN5bmMgKCkgPT4geworICAgICAgICB0
ZXh0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3RleHQnKTsKKyAgICAgICAgdGV4dC5mb2N1
cygpOworICAgICAgICBsYWJlbCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNmb3Itc3VibWl0
Jyk7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgYXdhaXQgdGVzdF9kcml2ZXIuY2xpY2sobGFi
ZWwpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCwgZG9j
dW1lbnQuYm9keSk7CisgICAgICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgICAvLyB0ZXN0IGRy
aXZlciBkZXRlY3RzIGluZXJ0IGVsZW1lbnRzIGFzIHVuY2xpY2thYmxlCisgICAgICAgICAgLy8g
YW5kIHRocm93cyBhbiBlcnJvcgorICAgICAgICB9CisgICAgICB9LCAnQ2xpY2tpbmcgb24gYW4g
aW5lcnQgbGFiZWwgc2hvdWxkIHNlbmQgZm9jdXMgdG8gZG9jdW1lbnQuYm9keS4nKTsKKworICAg
ICAgdGVzdCgoKSA9PiB7CisgICAgICAgIHRleHQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcj
dGV4dCcpOworICAgICAgICB0ZXh0LmZvY3VzKCk7CisKKyAgICAgICAgbGFiZWwgPSBkb2N1bWVu
dC5xdWVyeVNlbGVjdG9yKCcjZm9yLWlucHV0LWluLWluZXJ0LXN1YnRyZWUnKTsKKyAgICAgICAg
bGFiZWwuZm9jdXMoKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhkb2N1bWVudC5hY3RpdmVFbGVt
ZW50LCB0ZXh0KTsKKyAgICAgIH0sICdDYWxsaW5nIGZvY3VzKCkgb24gYSBsYWJlbCBmb3IgYSBj
b250cm9sIHdoaWNoIGlzIGluIGFuIGluZXJ0IHN1YnRyZWUgJyArCisgICAgICAgICAnc2hvdWxk
IGhhdmUgbm8gZWZmZWN0LicpOworPC9zY3JpcHQ+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LW5vZGUt
aXMtdW5lZGl0YWJsZS50ZW50YXRpdmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1ub2RlLWlzLXVuZWRpdGFibGUu
dGVudGF0aXZlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNDBhNTlkNjUxYjUyODFiZDUxMTA4
ZjVkZjMxYWQ0ODcwN2IyZjk4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1ub2RlLWlzLXVuZWRpdGFibGUu
dGVudGF0aXZlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK0knbSBub3QgZWRpdGFibGUu
IGFJJ20gZWRpdGFibGUuCisKK1BBU1MgQ2FuJ3QgZWRpdCBpbmVydCBjb250ZW50ZWRpdGFibGUK
K1BBU1MgQ2FuIGVkaXQgbm9uLWluZXJ0IGNvbnRlbnRlZGl0YWJsZQorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LW5v
ZGUtaXMtdW5lZGl0YWJsZS50ZW50YXRpdmUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtbm9kZS1pcy11bmVkaXRhYmxlLnRlbnRh
dGl2ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZkYTIzNzlmYWQ0Mjk3MmQ0ODM5MTI5YzhkYjBiZWQ3YmJk
MmFkZWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LW5vZGUtaXMtdW5lZGl0YWJsZS50ZW50YXRpdmUuaHRt
bApAQCAtMCwwICsxLDM3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorICA8aGVhZD4KKyAg
ICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCIgLz4KKyAgICA8dGl0bGU+aW5lcnQgbm9kZXMgYXJlIHVu
ZWRpdGFibGU8L3RpdGxlPgorICAgIDxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iQWxpY2UgQm94
aGFsbCIgaHJlZj0iYWJveGhhbGxAY2hyb21pdW0ub3JnIj4KKyAgICA8c2NyaXB0IHNyYz0iL3Jl
c291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9yZXNv
dXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIv
cmVzb3VyY2VzL3Rlc3Rkcml2ZXIuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvcmVz
b3VyY2VzL3Rlc3Rkcml2ZXItdmVuZG9yLmpzIj48L3NjcmlwdD4KKyAgPC9oZWFkPgorPGJvZHk+
Cis8c3BhbiBpbmVydCBpZD0ibm90LWVkaXRhYmxlIiBjb250ZW50ZWRpdGFibGU+SSdtIG5vdCBl
ZGl0YWJsZS48L3NwYW4+Cis8c3BhbiBpZD0iZWRpdGFibGUiIGNvbnRlbnRlZGl0YWJsZT5JJ20g
ZWRpdGFibGUuPC9zcGFuPgorPHNjcmlwdD4KK3ZhciBub3RFZGl0YWJsZSA9IGRvY3VtZW50LnF1
ZXJ5U2VsZWN0b3IoJyNub3QtZWRpdGFibGUnKTsKK3ZhciBlZGl0YWJsZSA9IGRvY3VtZW50LnF1
ZXJ5U2VsZWN0b3IoJyNlZGl0YWJsZScpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgKCkgPT4gewor
ICAgIG5vdEVkaXRhYmxlLmZvY3VzKCk7CisgICAgdmFyIG9sZFZhbHVlID0gbm90RWRpdGFibGUu
dGV4dENvbnRlbnQ7CisgICAgYXNzZXJ0X2VxdWFscyhvbGRWYWx1ZSwgIkknbSBub3QgZWRpdGFi
bGUuIik7CisgICAgYXdhaXQgdGVzdF9kcml2ZXIuc2VuZF9rZXlzKGRvY3VtZW50LmJvZHksICdh
Jyk7CisgICAgYXNzZXJ0X2VxdWFscyhub3RFZGl0YWJsZS50ZXh0Q29udGVudCwgb2xkVmFsdWUp
OworfSwgIkNhbid0IGVkaXQgaW5lcnQgY29udGVudGVkaXRhYmxlIik7CisKK3Byb21pc2VfdGVz
dChhc3luYyAoKSA9PiB7CisgICAgZWRpdGFibGUuZm9jdXMoKTsKKyAgICB2YXIgb2xkVmFsdWUg
PSBlZGl0YWJsZS50ZXh0Q29udGVudDsKKyAgICBhc3NlcnRfZXF1YWxzKG9sZFZhbHVlLCAiSSdt
IGVkaXRhYmxlLiIpOworICAgIGF3YWl0IHRlc3RfZHJpdmVyLnNlbmRfa2V5cyhkb2N1bWVudC5i
b2R5LCAnYScpOworICAgIGFzc2VydF9ub3RfZXF1YWxzKGVkaXRhYmxlLnRleHRDb250ZW50LCBv
bGRWYWx1ZSk7Cit9LCAiQ2FuIGVkaXQgbm9uLWluZXJ0IGNvbnRlbnRlZGl0YWJsZSIpOworCis8
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtbm9kZS1pcy11bmZvY3VzYWJs
ZS50ZW50YXRpdmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1ub2RlLWlzLXVuZm9jdXNhYmxlLnRlbnRhdGl2ZS1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTZhZWE4YmI1NTU3ZDc2OGNhNWVlMGNjYWM3ZDkyZGY4
YmY1Nzc5ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtbm9kZS1pcy11bmZvY3VzYWJsZS50ZW50YXRpdmUt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTMgQEAKK091dHNpZGUgb2YgaW5lcnQgY29udGFpbmVy
ICBJbmVydCBidXR0b24KKworSSdtIGVkaXRhYmxlCitJJ20gdGFiaW5kZXhlZC4KKyBMaW5rCisK
K1BBU1MgQnV0dG9uIG91dHNpZGUgb2YgaW5lcnQgY29udGFpbmVyIGlzIGZvY3VzYWJsZS4KK1BB
U1MgQnV0dG9uIHdpdGggaW5lcnQgYXRyaWJ1dGUgaXMgdW5mb2N1c2FibGUuCitQQVNTIEFsbCBm
b2N1c2FibGUgZWxlbWVudHMgaW5zaWRlIGluZXJ0IHN1YnRyZWUgYXJlIHVuZm9jdXNhYmxlCitQ
QVNTIENhbiBnZXQgaW5lcnQgdmlhIHByb3BlcnR5CitQQVNTIEVsZW1lbnRzIGluc2lkZSBvZiBp
bmVydCBzdWJ0cmVlcyByZXR1cm4gZmFsc2Ugd2hlbiBnZXR0aW5nICdpbmVydCcKK1BBU1MgU2V0
dGluZyBpbmVydCB2aWEgcHJvcGVydHkgY29ycmVjdGx5IG1vZGlmaWVzIGluZXJ0IHN0YXRlCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aW5lcnQvaW5lcnQtbm9kZS1pcy11bmZvY3VzYWJsZS50ZW50YXRpdmUuaHRtbCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtbm9kZS1pcy11
bmZvY3VzYWJsZS50ZW50YXRpdmUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YjVkZTM3ZmRjYWRlZGI5ZDk4
ZWM0NGM5YzNjMjBhZWE1MmEwNDAwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1ub2RlLWlzLXVuZm9jdXNh
YmxlLnRlbnRhdGl2ZS5odG1sCkBAIC0wLDAgKzEsNzkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0
bWw+CisgIDxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04IiAvPgorICAgIDx0aXRsZT5p
bmVydCBub2RlcyBhcmUgdW5mb2N1c2FibGU8L3RpdGxlPgorICAgIDxsaW5rIHJlbD0iYXV0aG9y
IiB0aXRsZT0iQWxpY2UgQm94aGFsbCIgaHJlZj0iYWJveGhhbGxAY2hyb21pdW0ub3JnIj4KKyAg
ICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAg
PHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0Pgor
ICA8L2hlYWQ+Cis8Ym9keSBpZD0iYm9keSIgdGFiaW5kZXg9IjEiPgorICA8YnV0dG9uIGlkPSJm
b2N1c2FibGUiPk91dHNpZGUgb2YgaW5lcnQgY29udGFpbmVyPC9idXR0b24+CisgIDxidXR0b24g
aW5lcnQgaWQ9ImluZXJ0Ij5JbmVydCBidXR0b248L2J1dHRvbj4KKyAgPGRpdiBpbmVydCBpZD0i
Y29udGFpbmVyIj4KKyAgICA8aW5wdXQgaWQ9InRleHQiIHR5cGU9InRleHQiPgorICAgIDxpbnB1
dCBpZD0iZGF0ZXRpbWUiIHR5cGU9ImRhdGV0aW1lIj4KKyAgICA8aW5wdXQgaWQ9ImNvbG9yIiB0
eXBlPSJjb2xvciI+CisgICAgPHNlbGVjdCBpZD0ic2VsZWN0Ij4KKyAgICAgICAgPG9wdGdyb3Vw
IGlkPSJvcHRncm91cCI+CisgICAgICAgICAgICA8b3B0aW9uIGlkPSJvcHRpb24iPk9wdGlvbjwv
b3B0aW9uPgorICAgICAgICA8L29wdGdyb3VwPgorICAgIDwvc2VsZWN0PgorICAgIDxkaXYgaWQ9
ImNvbnRlbnRlZGl0YWJsZS1kaXYiIGNvbnRlbnRlZGl0YWJsZT5JJ20gZWRpdGFibGU8L2Rpdj4K
KyAgICA8c3BhbiBpZD0idGFiaW5kZXgtc3BhbiIgdGFiaW5kZXg9IjAiPkknbSB0YWJpbmRleGVk
LjwvZGl2PgorICAgIDxlbWJlZCBpZD0iZW1iZWQiIHR5cGU9ImFwcGxpY2F0aW9uL3gtYmxpbmst
dGVzdC1wbHVnaW4iIHdpZHRoPTEwMCBoZWlnaHQ9MTAwPjwvZW1iZWQ+CisgICAgPGEgaWQ9ImFu
Y2hvciIgaHJlZj0iIj5MaW5rPC9hPgorICA8L2Rpdj4KKzxzY3JpcHQ+CitmdW5jdGlvbiB0ZXN0
Rm9jdXMoZWxlbWVudCwgZXhwZWN0Rm9jdXMpIHsKKyAgICBmb2N1c2VkRWxlbWVudCA9IG51bGw7
CisgICAgZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdmb2N1cycsIGZ1bmN0aW9uKCkgeyBmb2N1
c2VkRWxlbWVudCA9IGVsZW1lbnQ7IH0sIGZhbHNlKTsKKyAgICBlbGVtZW50LmZvY3VzKCk7Cisg
ICAgdGhlRWxlbWVudCA9IGVsZW1lbnQ7CisgICAgYXNzZXJ0X2VxdWFscyhmb2N1c2VkRWxlbWVu
dCA9PT0gdGhlRWxlbWVudCwgZXhwZWN0Rm9jdXMpOworfQorCitmdW5jdGlvbiB0ZXN0VHJlZShl
bGVtZW50LCBleHBlY3RGb2N1cywgZXhjbHVkZUN1cnJlbnQpIHsKKyAgICBpZiAoZWxlbWVudC5u
b2RlVHlwZSA9PSBOb2RlLkVMRU1FTlRfTk9ERSAmJiAhZXhjbHVkZUN1cnJlbnQpCisgICAgICAg
IHRlc3RGb2N1cyhlbGVtZW50LCBleHBlY3RGb2N1cyk7CisgICAgaWYgKGVsZW1lbnQudGFnTmFt
ZSA9PT0gIlNFTEVDVCIpCisgICAgICAgIHJldHVybjsKKyAgICB2YXIgY2hpbGROb2RlcyA9IGVs
ZW1lbnQuY2hpbGROb2RlczsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNoaWxkTm9kZXMubGVu
Z3RoOyBpKyspCisgICAgICAgIHRlc3RUcmVlKGNoaWxkTm9kZXNbaV0sIGV4cGVjdEZvY3VzKTsK
K30KKworCit0ZXN0KGZ1bmN0aW9uKCkgeworICAgIHRlc3RGb2N1cyhkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnZm9jdXNhYmxlJyksIHRydWUpOworfSwgIkJ1dHRvbiBvdXRzaWRlIG9mIGluZXJ0
IGNvbnRhaW5lciBpcyBmb2N1c2FibGUuIik7CisKK3Rlc3QoZnVuY3Rpb24oKSB7CisgICAgdGVz
dEZvY3VzKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbmVydCcpLCBmYWxzZSk7Cit9LCAiQnV0
dG9uIHdpdGggaW5lcnQgYXRyaWJ1dGUgaXMgdW5mb2N1c2FibGUuIik7CisKK3Rlc3QoZnVuY3Rp
b24oKSB7CisgICAgdGVzdFRyZWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnRhaW5lcicp
LCBmYWxzZSk7Cit9LCAiQWxsIGZvY3VzYWJsZSBlbGVtZW50cyBpbnNpZGUgaW5lcnQgc3VidHJl
ZSBhcmUgdW5mb2N1c2FibGUiKTsKKwordGVzdChmdW5jdGlvbigpIHsKKyAgICBhc3NlcnRfZmFs
c2UoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZvY3VzYWJsZSIpLmluZXJ0LCAiSW5lcnQgbm90
IHNldCBleHBsaWNpdGx5IGlzIGZhbHNlIikKKyAgICBhc3NlcnRfdHJ1ZShkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgiaW5lcnQiKS5pbmVydCwgIkluZXJ0IHNldCBleHBsaWNpdGx5IGlzIHRydWUi
KTsKKyAgICBhc3NlcnRfdHJ1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGFpbmVyIiku
aW5lcnQsICJJbmVydCBzZXQgb24gY29udGFpbmVyIGlzIHRydWUiKTsKK30sICJDYW4gZ2V0IGlu
ZXJ0IHZpYSBwcm9wZXJ0eSIpOworCit0ZXN0KGZ1bmN0aW9uKCkgeworICAgIGFzc2VydF9mYWxz
ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGV4dCIpLmluZXJ0LCAiRWxlbWVudHMgaW5zaWRl
IG9mIGluZXJ0IHN1YnRyZWVzIHJldHVybiBmYWxzZSB3aGVuIGdldHRpbmcgaW5lcnQiKTsKK30s
ICJFbGVtZW50cyBpbnNpZGUgb2YgaW5lcnQgc3VidHJlZXMgcmV0dXJuIGZhbHNlIHdoZW4gZ2V0
dGluZyAnaW5lcnQnIik7CisKK3Rlc3QoZnVuY3Rpb24oKSB7CisgICAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ2ZvY3VzYWJsZScpLmluZXJ0ID0gdHJ1ZTsKKyAgICB0ZXN0Rm9jdXMoZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ2ZvY3VzYWJsZScpLCBmYWxzZSk7CisgICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ2luZXJ0JykuaW5lcnQgPSBmYWxzZTsKKyAgICB0ZXN0Rm9jdXMoZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ2luZXJ0JyksIHRydWUpOworICAgIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdjb250YWluZXInKS5pbmVydCA9IGZhbHNlOworICAgIHRlc3RUcmVlKGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdjb250YWluZXInKSwgdHJ1ZSwgdHJ1ZSk7Cit9LCAiU2V0dGluZyBp
bmVydCB2aWEgcHJvcGVydHkgY29ycmVjdGx5IG1vZGlmaWVzIGluZXJ0IHN0YXRlIik7Cis8L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtbm9kZS1pcy11bnNlbGVjdGFibGUu
dGVudGF0aXZlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtbm9kZS1pcy11bnNlbGVjdGFibGUudGVudGF0aXZlLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZmNhMjM4YWY4ZjE0YTE1Yjc5ZjlmYzBhMzFiMzkzNzhm
ODQxZDY0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1ub2RlLWlzLXVuc2VsZWN0YWJsZS50ZW50YXRpdmUt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorSGVyZSBpcyBhIHRleHQgbm9kZSB5b3UgY2Fu
J3Qgc2VsZWN0LgorSSdtIHNlbGVjdGFibGUuCisKK0ZBSUwgSW5lcnQgbm9kZXMgY2Fubm90IGJl
IHNlbGVjdGVkLiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiSSdtIHNlbGVjdGFibGUuIiBidXQg
Z290ICJIZXJlIGlzIGEgdGV4dCBub2RlIHlvdSBjYW4ndCBzZWxlY3QuXG5JJ20gc2VsZWN0YWJs
ZS4iCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaW5lcnQvaW5lcnQtbm9kZS1pcy11bnNlbGVjdGFibGUudGVudGF0aXZlLmh0bWwgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LW5v
ZGUtaXMtdW5zZWxlY3RhYmxlLnRlbnRhdGl2ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI5OWFmMGQ0Y2Qx
NDJkY2IwNTFhZjUxZjQyZDE3NTkxNDJhMDBjNWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LW5vZGUtaXMt
dW5zZWxlY3RhYmxlLnRlbnRhdGl2ZS5odG1sCkBAIC0wLDAgKzEsMjAgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+CisgIDxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04IiAvPgorICAg
IDx0aXRsZT5pbmVydCBub2RlcyBhcmUgdW5zZWxlY3RhYmxlPC90aXRsZT4KKyAgICA8bGluayBy
ZWw9ImF1dGhvciIgdGl0bGU9IkFsaWNlIEJveGhhbGwiIGhyZWY9ImFib3hoYWxsQGNocm9taXVt
Lm9yZyI+CisgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2Ny
aXB0PgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48
L3NjcmlwdD4KKyAgPC9oZWFkPgorPGJvZHk+CisgIDxkaXYgaW5lcnQ+SGVyZSBpcyBhIHRleHQg
bm9kZSB5b3UgY2FuJ3Qgc2VsZWN0LjwvZGl2PgorICA8ZGl2PkknbSBzZWxlY3RhYmxlLjwvZGl2
PgorPHNjcmlwdD4KK3Rlc3QoZnVuY3Rpb24oKSB7CisgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQo
J1NlbGVjdEFsbCcpOworICAgIGFzc2VydF9lcXVhbHMod2luZG93LmdldFNlbGVjdGlvbigpLnRv
U3RyaW5nKCkudHJpbSgpLCAiSSdtIHNlbGVjdGFibGUuIik7Cit9LCAiSW5lcnQgbm9kZXMgY2Fu
bm90IGJlIHNlbGVjdGVkLiIpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2lu
ZXJ0LW9uLXNsb3RzLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LW9uLXNsb3RzLnRlbnRhdGl2ZS1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGYyYjEyNThkMzUyY2RmODkzNDBjN2NjMzA5N2JiOTQ0
ZTdkYzc0ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtb24tc2xvdHMudGVudGF0aXZlLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDUgQEAKK0J1dHRvbiAxIHNob3VsZCBiZSBpbmVydCwgYW5kIEJ1dHRvbiAy
IHNob3VsZCBub3QgYmUgaW5lcnQuCitCdXR0b24gMSAoaW5lcnQpQnV0dG9uIDIgKG5vdCBpbmVy
dCkKKworRkFJTCBpbmVydCBpbnNpZGUgU2hhZG93Um9vdCBhZmZlY3RzIHNsb3R0ZWQgY29udGVu
dCBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCBmYWxzZSBidXQgZ290IHRydWUKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVy
dC1vbi1zbG90cy50ZW50YXRpdmUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtb24tc2xvdHMudGVudGF0aXZlLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZGQwZDdlYzZkNDZkMWVmMzQ0MTdkY2YwOTljZTUxNTZiYjE0OWJlYQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5l
cnQvaW5lcnQtb24tc2xvdHMudGVudGF0aXZlLmh0bWwKQEAgLTAsMCArMSw1NyBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04IiAvPgor
ICAgIDx0aXRsZT5pbmVydCBpbnNpZGUgU2hhZG93Um9vdCBhZmZlY3RzIHNsb3R0ZWQgY29udGVu
dDwvdGl0bGU+CisgICAgPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJBbGljZSBCb3hoYWxsIiBo
cmVmPSJhYm94aGFsbEBjaHJvbWl1bS5vcmciPgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90
ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgPGRpdj5C
dXR0b24gMSBzaG91bGQgYmUgaW5lcnQsIGFuZCBCdXR0b24gMiBzaG91bGQgbm90IGJlIGluZXJ0
LjwvZGl2PgorICA8ZGl2IGlkPSJzaGFkb3ctaG9zdCI+CisgICAgPGJ1dHRvbiBzbG90PSJzbG90
LTEiIGlkPSJidXR0b24tMSI+QnV0dG9uIDEgKGluZXJ0KTwvYnV0dG9uPgorICAgIDxidXR0b24g
c2xvdD0ic2xvdC0yIiBpZD0iYnV0dG9uLTIiPkJ1dHRvbiAyIChub3QgaW5lcnQpPC9idXR0b24+
CisgIDwvZGl2PgorICA8c2NyaXB0PgorICAgIC8qCisgICAgRXZlbnR1YWwgZmxhdHRlbmVkIHRy
ZWUgc3RydWN0dXJlOgorCisgICAgPGRpdiBpZD0ic2hhZG93LWhvc3QiPgorICAgICAgI3NoYWRv
dy1yb290IChvcGVuKQorICAgICAgfCA8c2xvdCBpZD0ic2xvdC0xIiBpbmVydD4KKyAgICAgIDog
ICA8YnV0dG9uIGlkPSJidXR0b24tMSI+QnV0dG9uIDE8L2J1dHRvbj4gPCEtLSBzbG90dGVkIC0t
PgorICAgICAgfCA8L3Nsb3Q+CisgICAgICB8IDxzbG90IGlkPSJzbG90LTIiPgorICAgICAgOiAg
IDxidXR0b24gaWQ9ImJ1dHRvbi0yIj5CdXR0b24gMjwvYnV0dG9uPiA8IS0tIHNsb3R0ZWQgLS0+
CisgICAgICB8IDwvc2xvdD4KKyAgICA8L2Rpdj4KKyAgICAqLworCisgICAgY29uc3Qgc2hhZG93
SG9zdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzaGFkb3ctaG9zdCIpOworICAgIGNvbnN0
IHNoYWRvd1Jvb3QgPSBzaGFkb3dIb3N0LmF0dGFjaFNoYWRvdyh7IG1vZGU6ICJvcGVuIiB9KTsK
KworICAgIGNvbnN0IHNsb3QxID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2xvdCIpOworICAg
IHNsb3QxLm5hbWUgPSAic2xvdC0xIjsKKyAgICBzbG90MS5pbmVydCA9IHRydWU7CisgICAgc2hh
ZG93Um9vdC5hcHBlbmRDaGlsZChzbG90MSk7CisKKyAgICBjb25zdCBzbG90MiA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoInNsb3QiKTsKKyAgICBzbG90Mi5uYW1lID0gInNsb3QtMiI7CisgICAg
c2hhZG93Um9vdC5hcHBlbmRDaGlsZChzbG90Mik7CisKKyAgICBmdW5jdGlvbiB0ZXN0Q2FuRm9j
dXMoc2VsZWN0b3IsIGNhbkZvY3VzKSB7CisgICAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQu
cXVlcnlTZWxlY3RvcihzZWxlY3Rvcik7CisgICAgICBsZXQgZm9jdXNlZEVsZW1lbnQgPSBudWxs
OworICAgICAgZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsIGZ1bmN0aW9uKCkgeyBm
b2N1c2VkRWxlbWVudCA9IGVsZW1lbnQ7IH0sIGZhbHNlKTsKKyAgICAgIGVsZW1lbnQuZm9jdXMo
KTsKKyAgICAgIGFzc2VydF9lcXVhbHMoKGZvY3VzZWRFbGVtZW50ID09PSBlbGVtZW50KSwgY2Fu
Rm9jdXMpOworICAgIH0KKworICAgIHRlc3QoKCkgPT4geworICAgICAgdGVzdENhbkZvY3VzKCIj
YnV0dG9uLTEiLCBmYWxzZSk7CisgICAgICB0ZXN0Q2FuRm9jdXMoIiNidXR0b24tMiIsIHRydWUp
OworICAgIH0sICJpbmVydCBpbnNpZGUgU2hhZG93Um9vdCBhZmZlY3RzIHNsb3R0ZWQgY29udGVu
dCIpOworICA8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtcmV0YXJnZXRp
bmctaWZyYW1lLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LXJldGFyZ2V0aW5nLWlmcmFtZS50ZW50
YXRpdmUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI1OTliZTcxYTgzZWYwOGVkNTYxOWI5NGNj
YjQ2NGZjMWJjOTc3MDkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LXJldGFyZ2V0aW5nLWlmcmFtZS50ZW50
YXRpdmUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNDcgQEAKK0NPTlNPTEUgTUVTU0FHRTogRXJy
b3I6IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIEVsZW1lbnQgbm9kZSA8ZmllbGRzZXQgaWQ9ImFu
Y2VzdG9yQ29udGFpbmVyIj4KKyAgICA8bGVnZW5kPk5vbi1pbmVydCBhLi4uIGJ1dCBnb3QgRWxl
bWVudCBub2RlIDxidXR0b24gaWQ9ImZvcmVncm91bmQiIGNsYXNzPSJjbGlja2VkIj5mb3JlZ3Jv
dW5kPC9idXR0b24+CitDT05TT0xFIE1FU1NBR0U6IEVycm9yOiBhc3NlcnRfZXF1YWxzOiBleHBl
Y3RlZCBFbGVtZW50IG5vZGUgPGZpZWxkc2V0IGlkPSJhbmNlc3RvckNvbnRhaW5lciI+CisgICAg
PGxlZ2VuZD5Ob24taW5lcnQgYS4uLiBidXQgZ290IEVsZW1lbnQgbm9kZSA8YnV0dG9uIGlkPSJm
b3JlZ3JvdW5kIiBjbGFzcz0iY2xpY2tlZCI+Zm9yZWdyb3VuZDwvYnV0dG9uPgorQ09OU09MRSBN
RVNTQUdFOiBFcnJvcjogYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgRWxlbWVudCBub2RlIDxmaWVs
ZHNldCBpZD0iYW5jZXN0b3JDb250YWluZXIiPgorICAgIDxsZWdlbmQ+Tm9uLWluZXJ0IGEuLi4g
YnV0IGdvdCBFbGVtZW50IG5vZGUgPGJ1dHRvbiBpZD0iZm9yZWdyb3VuZCIgY2xhc3M9ImNsaWNr
ZWQiPmZvcmVncm91bmQ8L2J1dHRvbj4KK0NPTlNPTEUgTUVTU0FHRTogRXJyb3I6IGFzc2VydF9l
cXVhbHM6IGV4cGVjdGVkIEVsZW1lbnQgbm9kZSA8ZmllbGRzZXQgaWQ9ImFuY2VzdG9yQ29udGFp
bmVyIj4KKyAgICA8bGVnZW5kPk5vbi1pbmVydCBhLi4uIGJ1dCBnb3QgRWxlbWVudCBub2RlIDxi
dXR0b24gaWQ9ImZvcmVncm91bmQiIGNsYXNzPSJjbGlja2VkIj5mb3JlZ3JvdW5kPC9idXR0b24+
CitDT05TT0xFIE1FU1NBR0U6IEVycm9yOiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCBFbGVtZW50
IG5vZGUgPGZpZWxkc2V0IGlkPSJhbmNlc3RvckNvbnRhaW5lciI+CisgICAgPGxlZ2VuZD5Ob24t
aW5lcnQgYS4uLiBidXQgZ290IEVsZW1lbnQgbm9kZSA8YnV0dG9uIGlkPSJmb3JlZ3JvdW5kIiBj
bGFzcz0iY2xpY2tlZCI+Zm9yZWdyb3VuZDwvYnV0dG9uPgorQ09OU09MRSBNRVNTQUdFOiBFcnJv
cjogYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgRWxlbWVudCBub2RlIDxmaWVsZHNldCBpZD0iYW5j
ZXN0b3JDb250YWluZXIiPgorICAgIDxsZWdlbmQ+Tm9uLWluZXJ0IGEuLi4gYnV0IGdvdCBFbGVt
ZW50IG5vZGUgPGJ1dHRvbiBpZD0iZm9yZWdyb3VuZCIgY2xhc3M9ImNsaWNrZWQiPmZvcmVncm91
bmQ8L2J1dHRvbj4KK0NPTlNPTEUgTUVTU0FHRTogRXJyb3I6IGFzc2VydF9lcXVhbHM6IGV4cGVj
dGVkIEVsZW1lbnQgbm9kZSA8ZmllbGRzZXQgaWQ9ImFuY2VzdG9yQ29udGFpbmVyIj4KKyAgICA8
bGVnZW5kPk5vbi1pbmVydCBhLi4uIGJ1dCBnb3QgRWxlbWVudCBub2RlIDxidXR0b24gaWQ9ImZv
cmVncm91bmQiIGNsYXNzPSJjbGlja2VkIj5mb3JlZ3JvdW5kPC9idXR0b24+CitDT05TT0xFIE1F
U1NBR0U6IEVycm9yOiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCBFbGVtZW50IG5vZGUgPGZpZWxk
c2V0IGlkPSJhbmNlc3RvckNvbnRhaW5lciI+CisgICAgPGxlZ2VuZD5Ob24taW5lcnQgYS4uLiBi
dXQgZ290IEVsZW1lbnQgbm9kZSA8YnV0dG9uIGlkPSJmb3JlZ3JvdW5kIiBjbGFzcz0iY2xpY2tl
ZCI+Zm9yZWdyb3VuZDwvYnV0dG9uPgorQ09OU09MRSBNRVNTQUdFOiBFcnJvcjogYXNzZXJ0X2Vx
dWFsczogZXhwZWN0ZWQgRWxlbWVudCBub2RlIDxmaWVsZHNldCBpZD0iYW5jZXN0b3JDb250YWlu
ZXIiPgorICAgIDxsZWdlbmQ+Tm9uLWluZXJ0IGEuLi4gYnV0IGdvdCBFbGVtZW50IG5vZGUgPGJ1
dHRvbiBpZD0iZm9yZWdyb3VuZCIgY2xhc3M9ImNsaWNrZWQiPmZvcmVncm91bmQ8L2J1dHRvbj4K
K0NPTlNPTEUgTUVTU0FHRTogRXJyb3I6IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIEVsZW1lbnQg
bm9kZSA8ZmllbGRzZXQgaWQ9ImFuY2VzdG9yQ29udGFpbmVyIj4KKyAgICA8bGVnZW5kPk5vbi1p
bmVydCBhLi4uIGJ1dCBnb3QgRWxlbWVudCBub2RlIDxidXR0b24gaWQ9ImZvcmVncm91bmQiIGNs
YXNzPSJjbGlja2VkIj5mb3JlZ3JvdW5kPC9idXR0b24+CitDT05TT0xFIE1FU1NBR0U6IEVycm9y
OiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCBFbGVtZW50IG5vZGUgPGZpZWxkc2V0IGlkPSJhbmNl
c3RvckNvbnRhaW5lciI+CisgICAgPGxlZ2VuZD5Ob24taW5lcnQgYS4uLiBidXQgZ290IEVsZW1l
bnQgbm9kZSA8YnV0dG9uIGlkPSJmb3JlZ3JvdW5kIiBjbGFzcz0iY2xpY2tlZCI+Zm9yZWdyb3Vu
ZDwvYnV0dG9uPgorQ09OU09MRSBNRVNTQUdFOiBFcnJvcjogYXNzZXJ0X2VxdWFsczogZXhwZWN0
ZWQgRWxlbWVudCBub2RlIDxmaWVsZHNldCBpZD0iYW5jZXN0b3JDb250YWluZXIiPgorICAgIDxs
ZWdlbmQ+Tm9uLWluZXJ0IGEuLi4gYnV0IGdvdCBFbGVtZW50IG5vZGUgPGJ1dHRvbiBpZD0iZm9y
ZWdyb3VuZCIgY2xhc3M9ImNsaWNrZWQiPmZvcmVncm91bmQ8L2J1dHRvbj4KK0NPTlNPTEUgTUVT
U0FHRTogRXJyb3I6IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIEVsZW1lbnQgbm9kZSA8ZmllbGRz
ZXQgaWQ9ImFuY2VzdG9yQ29udGFpbmVyIj4KKyAgICA8bGVnZW5kPk5vbi1pbmVydCBhLi4uIGJ1
dCBnb3QgRWxlbWVudCBub2RlIDxidXR0b24gaWQ9ImZvcmVncm91bmQiIGNsYXNzPSJjbGlja2Vk
Ij5mb3JlZ3JvdW5kPC9idXR0b24+CitDbGljayBvbiAiSW5lcnQgYnV0dG9uIi4KKworVGhlIGJs
dWUgc3F1YXJlICgiTm9uLWluZXJ0IGFuY2VzdG9yIGNvbnRhaW5lciIpIHNob3VsZCB0dXJuIGdy
ZWVuLgorVGhlIHllbGxvdywgc2VtaS10cmFuc3BhcmVudCBzcXVhcmUgKCJOb24taW5lcnQsIGRp
c3BsYWNlZCBjb250YWluZXIiKSBzaG91bGQgbm90IHR1cm4gcmVkLgorIk5vbi1pbmVydCBidXR0
b24iIHNob3VsZCBub3QgdHVybiByZWQuCisoVGhlIGZ1bGwgdGVzdCBzdWl0ZSBjaGVja3MgYSBy
YW5nZSBvZiBldmVudHMuKQorCitOb24taW5lcnQgYW5jZXN0b3IgY29udGFpbmVyCisgTm9uLWlu
ZXJ0LCBkaXNwbGFjZWQgYW5jZXN0b3IKK0luZXJ0IGNvbnRhaW5lcgorZm9yZWdyb3VuZAorCitI
YXJuZXNzIEVycm9yIChGQUlMKSwgbWVzc2FnZSA9IEVycm9yOiBhc3NlcnRfZXF1YWxzOiBleHBl
Y3RlZCBFbGVtZW50IG5vZGUgPGZpZWxkc2V0IGlkPSJhbmNlc3RvckNvbnRhaW5lciI+CisgICAg
PGxlZ2VuZD5Ob24taW5lcnQgYS4uLiBidXQgZ290IEVsZW1lbnQgbm9kZSA8YnV0dG9uIGlkPSJm
b3JlZ3JvdW5kIiBjbGFzcz0iY2xpY2tlZCI+Zm9yZWdyb3VuZDwvYnV0dG9uPgorCitQQVNTIGVs
ZW1lbnRzRnJvbVBvaW50IHJldHVybnMgaW5lcnQgZWxlbWVudAorRkFJTCBUZXN0cyB0aGF0IGFu
eSBtb3VzZSBldmVudCBvbiBhIG5vbi1pbmVydCBlbGVtZW50IGlzIGNvcnJlY3RseSB0YXJnZXRl
ZCB0byB0aGF0IGVsZW1lbnQgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGgg
dmFsdWU6ICJkaWQgbm90IGdldCBhdXhjbGljayBvbiBmb3JlZ3JvdW5kIgorRkFJTCBUZXN0cyB0
aGF0IGFueSBtb3VzZSBldmVudCBvbiBhbiBpbmVydCBlbGVtZW50IGlzIHRhcmdldGVkIHRvIHRo
ZSBuZWFyZXN0IG5vbi1pbmVydCBhbmNlc3RvciBhdCB0aGUgc2FtZSBjb29yZGluYXRlcyBwcm9t
aXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogImRpZCBub3QgZ2V0IG1v
dXNlb3ZlciBvbiBhbmNlc3RvckNvbnRhaW5lciIKK1BBU1MgVGVzdHMgdGhhdCBhbnkgcG9pbnRl
ciBldmVudCBvbiBhIG5vbi1pbmVydCBlbGVtZW50IGlzIGNvcnJlY3RseSB0YXJnZXRlZCB0byB0
aGF0IGVsZW1lbnQKK0ZBSUwgVGVzdHMgdGhhdCBhbnkgcG9pbnRlciBldmVudCBvbiBhbiBpbmVy
dCBlbGVtZW50IGlzIHRhcmdldGVkIHRvIHRoZSBuZWFyZXN0IG5vbi1pbmVydCBhbmNlc3RvciBh
dCB0aGUgc2FtZSBjb29yZGluYXRlcyBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24g
d2l0aCB2YWx1ZTogImRpZCBub3QgZ2V0IHBvaW50ZXJvdmVyIG9uIGFuY2VzdG9yQ29udGFpbmVy
IgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2luZXJ0L2luZXJ0LXJldGFyZ2V0aW5nLWlmcmFtZS50ZW50YXRpdmUuaHRtbCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtcmV0YXJn
ZXRpbmctaWZyYW1lLnRlbnRhdGl2ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU3OWZjNTdiZTI1OGE3MDlh
OWQyMmNiMjYzYTY0MjJkOWJkYjc5NTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LXJldGFyZ2V0aW5nLWlm
cmFtZS50ZW50YXRpdmUuaHRtbApAQCAtMCwwICsxLDI3OSBAQAorPCFET0NUWVBFIGh0bWw+Cis8
aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGRyaXZlci5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0ZHJpdmVyLWFjdGlvbnMuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGRyaXZlci12ZW5kb3IuanMiPjwvc2NyaXB0
PgorPHN0eWxlPgorYnV0dG9uI2ZvcmVncm91bmQsCitidXR0b24jYmFja2dyb3VuZCB7CisgIHBv
c2l0aW9uOiBhYnNvbHV0ZTsKKyAgdG9wOiA3NXB4OworICBsZWZ0OiA1MHB4OworICB3aWR0aDog
MTAwcHg7CisgIGhlaWdodDogMjBweDsKK30KKworYnV0dG9uI2JhY2tncm91bmQgeworICBsZWZ0
OiA3NXB4OworICB3aWR0aDogMTUwcHg7CisgIGhlaWdodDogNDBweDsKKyAgdG9wOiAxMjVweDsK
KyAgbGluZS1oZWlnaHQ6IDUzcHg7Cit9CisKKy5jbGlja2VkIHsKKyAgYmFja2dyb3VuZC1jb2xv
cjogcmVkOworfQorCisjYW5jZXN0b3JDb250YWluZXIuY2xpY2tlZCB7CisgIGJhY2tncm91bmQt
Y29sb3I6IGdyZWVuOworfQorCisjYW5jZXN0b3JDb250YWluZXIgeworICBwb3NpdGlvbjogYWJz
b2x1dGU7CisgIHRvcDogMjAwcHg7CisgIGxlZnQ6IDEwcHg7CisgIHdpZHRoOiAzMDBweDsKKyAg
aGVpZ2h0OiAzMDBweDsKKyAgYmFja2dyb3VuZC1jb2xvcjogYmx1ZTsKK30KKworI2Rpc3BsYWNl
ZEFuY2VzdG9yIHsKKyAgcG9zaXRpb246IGFic29sdXRlOworICB0b3A6IDEzcHg7CisgIGxlZnQ6
IDI0MHB4OworICB3aWR0aDogMzAwcHg7CisgIGhlaWdodDogMjUwcHg7CisgIGJhY2tncm91bmQt
Y29sb3I6ICNmZjg5OworfQorCisjZGlzcGxhY2VkQW5jZXN0b3IuY2xpY2tlZCB7CisgIGJhY2tn
cm91bmQtY29sb3I6ICNmMDA5OworfQorCisjaW5lcnRDb250YWluZXIgeworICBiYWNrZ3JvdW5k
LWNvbG9yOiAjZmZmOTsKKyAgcG9zaXRpb246IGFic29sdXRlOworICB0b3A6IDM1cHg7CisgIGxl
ZnQ6IC0xOTJweDsKKyAgd2lkdGg6IDIwMHB4OworICBoZWlnaHQ6IDIwMHB4OworfQorCitmaWVs
ZHNldCB7CisgIG1hcmdpbjogMDsKKyAgcGFkZGluZzogMDsKKyAgYm9yZGVyOiAxcHggc29saWQg
YmxhY2s7Cit9CisKK2xlZ2VuZCB7CisgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOworICBib3Jk
ZXI6IDFweCBzb2xpZCBibGFjazsKKyAgbWFyZ2luLWxlZnQ6IDVweDsKK30KKzwvc3R5bGU+Cis8
L2hlYWQ+Cis8Ym9keT4KKyAgPHA+Q2xpY2sgb24gIkluZXJ0IGJ1dHRvbiIuPC9wPgorICA8dWw+
CisgICAgPGxpPlRoZSBibHVlIHNxdWFyZSAoIk5vbi1pbmVydCBhbmNlc3RvciBjb250YWluZXIi
KSBzaG91bGQgdHVybiBncmVlbi48L2xpPgorICAgIDxsaT5UaGUgeWVsbG93LCBzZW1pLXRyYW5z
cGFyZW50IHNxdWFyZSAoIk5vbi1pbmVydCwgZGlzcGxhY2VkIGNvbnRhaW5lciIpIHNob3VsZCBu
b3QgdHVybiByZWQuPC9saT4KKyAgICA8bGk+Ik5vbi1pbmVydCBidXR0b24iIHNob3VsZCBub3Qg
dHVybiByZWQuPC9saT4KKyAgPC91bD4KKyAgPHAgc3R5bGU9Im1hcmdpbi1ib3R0b206MjUwcHgi
PihUaGUgZnVsbCB0ZXN0IHN1aXRlIGNoZWNrcyBhIHJhbmdlIG9mIGV2ZW50cy4pPC9wPgorICA8
ZmllbGRzZXQgaWQ9ImFuY2VzdG9yQ29udGFpbmVyIj4KKyAgICA8bGVnZW5kPk5vbi1pbmVydCBh
bmNlc3RvciBjb250YWluZXI8L2xlZ2VuZD4KKyAgICA8aWZyYW1lIGlkPSJiYWNrZ3JvdW5kIiBz
cmM9ImZyYW1lL2J1dHRvbi5odG1sIj48L2lmcmFtZT4KKyAgICA8ZmllbGRzZXQgaWQ9ImRpc3Bs
YWNlZEFuY2VzdG9yIj4KKyAgICAgIDxsZWdlbmQ+Tm9uLWluZXJ0LCBkaXNwbGFjZWQgYW5jZXN0
b3I8L2xlZ2VuZD4KKyAgICAgIDxmaWVsZHNldCBpZD0iaW5lcnRDb250YWluZXIiIGluZXJ0Pgor
ICAgICAgICA8bGVnZW5kPkluZXJ0IGNvbnRhaW5lcjwvbGVnZW5kPgorICAgICAgICA8YnV0dG9u
IGlkPSJmb3JlZ3JvdW5kIj5mb3JlZ3JvdW5kPC9idXR0b24+CisgICAgICA8L2ZpZWxkc2V0Pgor
ICAgIDwvZmllbGRzZXQ+CisgIDwvZmllbGRzZXQ+CisKKyAgPHNjcmlwdD4KK2RvY3VtZW50LmJv
ZHkuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoZSkgPT4geworICBlLnRhcmdldC5jbGFzc0xp
c3QuYWRkKCdjbGlja2VkJyk7Cit9KTsKKworZnVuY3Rpb24gY2xpY2tPbihlbGVtZW50KSB7Cisg
IHJldHVybiBuZXcgdGVzdF9kcml2ZXIuQWN0aW9ucygpCisgICAgICAucG9pbnRlck1vdmUoMCwg
MCwge29yaWdpbjogZWxlbWVudH0pCisgICAgICAucG9pbnRlckRvd24oe2J1dHRvbjogdGVzdF9k
cml2ZXIuQWN0aW9ucy5wcm90b3R5cGUuQnV0dG9uVHlwZS5MRUZUfSkKKyAgICAgIC5wb2ludGVy
VXAoe2J1dHRvbjogdGVzdF9kcml2ZXIuQWN0aW9ucy5wcm90b3R5cGUuQnV0dG9uVHlwZS5MRUZU
fSkKKyAgICAgIC5zZW5kKCk7Cit9CisKK2Z1bmN0aW9uIGF1eENsaWNrT24oZWxlbWVudCkgewor
ICByZXR1cm4gbmV3IHRlc3RfZHJpdmVyLkFjdGlvbnMoKQorICAgICAgLnBvaW50ZXJNb3ZlKDAs
IDAsIHtvcmlnaW46IGVsZW1lbnR9KQorICAgICAgLnBvaW50ZXJEb3duKHtidXR0b246IHRlc3Rf
ZHJpdmVyLkFjdGlvbnMucHJvdG90eXBlLkJ1dHRvblR5cGUuUklHSFR9KQorICAgICAgLnBvaW50
ZXJVcCh7YnV0dG9uOiB0ZXN0X2RyaXZlci5BY3Rpb25zLnByb3RvdHlwZS5CdXR0b25UeXBlLlJJ
R0hUfSkKKyAgICAgIC5zZW5kKCk7Cit9CisKK2Z1bmN0aW9uIGRibENsaWNrT24oZWxlbWVudCkg
eworICByZXR1cm4gbmV3IHRlc3RfZHJpdmVyLkFjdGlvbnMoKQorICAgICAgLnBvaW50ZXJNb3Zl
KDAsIDAsIHtvcmlnaW46IGVsZW1lbnR9KQorICAgICAgLnBvaW50ZXJEb3duKHtidXR0b246IHRl
c3RfZHJpdmVyLkFjdGlvbnMucHJvdG90eXBlLkJ1dHRvblR5cGUuTEVGVH0pCisgICAgICAucG9p
bnRlclVwKHtidXR0b246IHRlc3RfZHJpdmVyLkFjdGlvbnMucHJvdG90eXBlLkJ1dHRvblR5cGUu
TEVGVH0pCisgICAgICAucG9pbnRlckRvd24oe2J1dHRvbjogdGVzdF9kcml2ZXIuQWN0aW9ucy5w
cm90b3R5cGUuQnV0dG9uVHlwZS5MRUZUfSkKKyAgICAgIC5wb2ludGVyVXAoe2J1dHRvbjogdGVz
dF9kcml2ZXIuQWN0aW9ucy5wcm90b3R5cGUuQnV0dG9uVHlwZS5MRUZUfSkKKyAgICAgIC5zZW5k
KCk7Cit9CisKK2Z1bmN0aW9uIG1vdmVQb2ludGVyT3ZlcihlbGVtZW50KSB7CisgIGxldCByZWN0
ID0gZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgcmV0dXJuIG5ldyB0ZXN0X2Ry
aXZlci5BY3Rpb25zKCkKKyAgICAgIC5wb2ludGVyTW92ZSgwLCAwLCB7IG9yaWdpbjogZWxlbWVu
dCB9KQorICAgICAgLnNlbmQoKTsKK30KKworZnVuY3Rpb24gbW92ZVBvaW50ZXJUbyh4LCB5KSB7
CisgIHJldHVybiBuZXcgdGVzdF9kcml2ZXIuQWN0aW9ucygpCisgICAgICAucG9pbnRlck1vdmUo
TWF0aC5jZWlsKHgpLCBNYXRoLmNlaWwoeSksIHsgb3JpZ2luOiAidmlld3BvcnQiIH0pCisgICAg
ICAuc2VuZCgpOworfQorCitmdW5jdGlvbiBleHBlY3RFdmVudHNPbihldmVudHMsIGVsZW1lbnQp
IHsKKyAgbGV0IHByb21pc2VzID0gW107CisgIGZvciAoZXZlbnQgb2YgZXZlbnRzKSB7CisgICAg
KChldmVudCwgZWxlbWVudCkgPT4geworICAgICAgdmFyIHByb21pc2UgPSBuZXcgUHJvbWlzZSgo
cmVzb2x2ZSwgcmVqZWN0KSA9PiB7CisgICAgICAgIGxldCBmID0gKGUpID0+IHsKKyAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKGUudHlwZSwgZXZlbnQpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMo
ZS50YXJnZXQsIGVsZW1lbnQpOworICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgICAgfQorICAg
ICAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoZXZlbnQsIGYsIHsgY2FwdHVyZTogdHJ1ZSwg
b25jZTogdHJ1ZSB9KTsKKworICAgICAgICBzdGVwX3RpbWVvdXQoKCkgPT4geworICAgICAgICAg
IGVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihldmVudCwgZiwgeyBjYXB0dXJlOiB0cnVlIH0p
OworICAgICAgICAgIHJlamVjdCgiZGlkIG5vdCBnZXQgIiArIGV2ZW50ICsgIiBvbiAiICsgZWxl
bWVudC5pZCk7CisgICAgICAgIH0sIDUwMDApOworICAgICAgfSk7CisgICAgICBwcm9taXNlcy5w
dXNoKHByb21pc2UpOworICAgIH0pKGV2ZW50LCBlbGVtZW50KTsKKyAgfQorICByZXR1cm4gcHJv
bWlzZXM7Cit9CisKK2Z1bmN0aW9uIHVuZXhwZWN0RXZlbnRzT24oZXZlbnRzLCBlbGVtZW50KSB7
CisgIGxldCBwcm9taXNlcyA9IFtdOworICBmb3IgKGV2ZW50IG9mIGV2ZW50cykgeworICAgICgo
ZXZlbnQsIGVsZW1lbnQpID0+IHsKKyAgICAgIHZhciBwcm9taXNlID0gbmV3IFByb21pc2UoKHJl
c29sdmUsIHJlamVjdCkgPT4geworICAgICAgICBsZXQgZiA9IChlKSA9PiB7CisgICAgICAgICAg
YXNzZXJ0X2VxdWFscyhlLnR5cGUsIGV2ZW50KTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUu
dGFyZ2V0LCBlbGVtZW50KTsKKyAgICAgICAgICByZWplY3QoImdvdCAiICsgZS50eXBlICsgIiBv
biAiICsgZS50YXJnZXQuaWQpOworICAgICAgICB9CisgICAgICAgIGVsZW1lbnQuYWRkRXZlbnRM
aXN0ZW5lcihldmVudCwgZiwgeyBjYXB0dXJlOiB0cnVlLCBvbmNlOiB0cnVlIH0pOworCisgICAg
ICAgIHN0ZXBfdGltZW91dCgoKSA9PiB7CisgICAgICAgICAgZWxlbWVudC5yZW1vdmVFdmVudExp
c3RlbmVyKGV2ZW50LCBmLCB7IGNhcHR1cmU6IHRydWUgfSk7CisgICAgICAgICAgcmVzb2x2ZSgp
OworICAgICAgICB9LCAxMDAwKTsKKyAgICAgIH0pOworICAgICAgcHJvbWlzZXMucHVzaChwcm9t
aXNlKTsKKyAgICB9KShldmVudCwgZWxlbWVudCk7CisgIH0KKyAgcmV0dXJuIHByb21pc2VzOwor
fQorCit0ZXN0KCgpID0+IHsKKyAgbGV0IHJlY3QgPSBmb3JlZ3JvdW5kLmdldEJvdW5kaW5nQ2xp
ZW50UmVjdCgpOworICBsZXQgY2VudGVyX3ggPSByZWN0LmxlZnQgKyAocmVjdC53aWR0aCAvIDIp
OworICBsZXQgY2VudGVyX3kgPSByZWN0LnRvcCArIChyZWN0LmhlaWdodCAvIDIpOworICBhc3Nl
cnRfZXF1YWxzKGRvY3VtZW50LmVsZW1lbnRzRnJvbVBvaW50KGNlbnRlcl94LCBjZW50ZXJfeSlb
MF0sIGZvcmVncm91bmQpOworfSwgImVsZW1lbnRzRnJvbVBvaW50IHJldHVybnMgaW5lcnQgZWxl
bWVudCIpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgKCkgPT4geworICAvLyBUZXN0IG1vdXNlIGV2
ZW50cyBvbiBub24taW5lcnQgZWxlbWVudCAtIGV2ZW50cyBzaG91bGQgZ28gdG8gImZvcmVncm91
bmQiCisgIGluZXJ0Q29udGFpbmVyLmluZXJ0ID0gZmFsc2U7CisgIGF3YWl0IG1vdmVQb2ludGVy
VG8oMCwgMCk7CisgIGxldCBwcm9taXNlcyA9IGV4cGVjdEV2ZW50c09uKFsibW91c2VvdmVyIiwg
Im1vdXNlZW50ZXIiLCAibW91c2Vtb3ZlIiwgIm1vdXNlZG93biIsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAibW91c2V1cCIsICJjbGljayIsICJhdXhjbGljayIsICJtb3VzZW91
dCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibW91c2VsZWF2ZSJdLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JlZ3JvdW5kKTsKKyAgYXdhaXQgY2xpY2tP
bihmb3JlZ3JvdW5kKTsKKyAgYXdhaXQgYXV4Q2xpY2tPbihmb3JlZ3JvdW5kKTsKKyAgYXdhaXQg
ZGJsQ2xpY2tPbihmb3JlZ3JvdW5kKTsKKyAgbGV0IGFuY2VzdG9yQm94ID0gYW5jZXN0b3JDb250
YWluZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CisgIGxldCBpbmVydEJveCA9IGluZXJ0Q29u
dGFpbmVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworICBsZXQgeCA9IGFuY2VzdG9yQm94Lmxl
ZnQgKyAoYW5jZXN0b3JCb3gud2lkdGggLyAyKTsKKyAgbGV0IHkgPSBpbmVydEJveC5ib3R0b20g
KyAoKGFuY2VzdG9yQm94LmJvdHRvbSAtIGluZXJ0Qm94LmJvdHRvbSkgLyAyKTsKKyAgYXdhaXQg
bW92ZVBvaW50ZXJUbyh4LCB5KTsKKyAgYXdhaXQgUHJvbWlzZS5hbGwocHJvbWlzZXMpOworfSwg
IlRlc3RzIHRoYXQgYW55IG1vdXNlIGV2ZW50IG9uIGEgbm9uLWluZXJ0IGVsZW1lbnQgaXMgY29y
cmVjdGx5IHRhcmdldGVkIHRvIHRoYXQgZWxlbWVudCIpOworCitwcm9taXNlX3Rlc3QoYXN5bmMg
KCkgPT4geworICAvLyBNYWtlIHRoZSBjb250YWluaW5nIGVsZW1lbnQgaW5lcnQgLSBub3cgZXZl
bnRzIHNob3VsZCBnbyB0byAiY29udGFpbmVyIgorICAvLyB3aGljaCBpcyB0aGUgbm9uLWluZXJ0
IGFuY2VzdG9yIGF0IHRoZSBzYW1lIHBvc2l0aW9uCisgIGluZXJ0Q29udGFpbmVyLmluZXJ0ID0g
dHJ1ZTsKKyAgYXdhaXQgbW92ZVBvaW50ZXJUbygwLCAwKTsKKworICBsZXQgcHJvbWlzZXMgPSBl
eHBlY3RFdmVudHNPbihbIm1vdXNlb3ZlciIsICJtb3VzZWVudGVyIiwgIm1vdXNlbW92ZSIsICJt
b3VzZWRvd24iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm1vdXNldXAiLCAi
Y2xpY2siLCAiYXV4Y2xpY2siXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5j
ZXN0b3JDb250YWluZXIpOworCisgIHByb21pc2VzID0gcHJvbWlzZXMuY29uY2F0KHVuZXhwZWN0
RXZlbnRzT24oWyJtb3VzZW91dCIsICJtb3VzZWxlYXZlIl0sCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5jZXN0b3JDb250YWluZXIpKTsKKworICBhd2Fp
dCBjbGlja09uKGZvcmVncm91bmQpOworICBhd2FpdCBhdXhDbGlja09uKGZvcmVncm91bmQpOwor
ICBhd2FpdCBkYmxDbGlja09uKGZvcmVncm91bmQpOworICBsZXQgYW5jZXN0b3JCb3ggPSBhbmNl
c3RvckNvbnRhaW5lci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgbGV0IGluZXJ0Qm94ID0g
aW5lcnRDb250YWluZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CisgIGxldCB4ID0gYW5jZXN0
b3JCb3gubGVmdCArIChhbmNlc3RvckJveC53aWR0aCAvIDIpOworICBsZXQgeSA9IGluZXJ0Qm94
LmJvdHRvbSArICgoYW5jZXN0b3JCb3guYm90dG9tIC0gaW5lcnRCb3guYm90dG9tKSAvIDIpOwor
ICBhd2FpdCBtb3ZlUG9pbnRlclRvKHgsIHkpOworICBhd2FpdCBQcm9taXNlLmFsbChwcm9taXNl
cyk7Cit9LCAnVGVzdHMgdGhhdCBhbnkgbW91c2UgZXZlbnQgb24gYW4gaW5lcnQgZWxlbWVudCBp
cyB0YXJnZXRlZCB0byB0aGUgbmVhcmVzdCBub24taW5lcnQgYW5jZXN0b3IgYXQgdGhlIHNhbWUg
Y29vcmRpbmF0ZXMnKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jICgpID0+IHsKKyAgLy8gVGVzdCBw
b2ludGVyIGV2ZW50cyBvbiBub24taW5lcnQgZWxlbWVudCAtIGV2ZW50cyBzaG91bGQgZ28gdG8g
ImZvcmVncm91bmQiCisgIGluZXJ0Q29udGFpbmVyLmluZXJ0ID0gZmFsc2U7CisgIGF3YWl0IG1v
dmVQb2ludGVyVG8oMCwgMCk7CisKKyAgbGV0IHByb21pc2VzID0gZXhwZWN0RXZlbnRzT24oWyJw
b2ludGVyb3ZlciIsICJwb2ludGVyZW50ZXIiLCAicG9pbnRlcm1vdmUiLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgInBvaW50ZXJkb3duIiwgInBvaW50ZXJ1cCIsICJwb2ludGVy
b3V0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwb2ludGVybGVhdmUiXSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yZWdyb3VuZCk7CisgIGF3YWl0IGNs
aWNrT24oZm9yZWdyb3VuZCk7CisgIGxldCBhbmNlc3RvckJveCA9IGFuY2VzdG9yQ29udGFpbmVy
LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworICBsZXQgaW5lcnRCb3ggPSBpbmVydENvbnRhaW5l
ci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgbGV0IHggPSBhbmNlc3RvckJveC5sZWZ0ICsg
KGFuY2VzdG9yQm94LndpZHRoIC8gMik7CisgIGxldCB5ID0gaW5lcnRCb3guYm90dG9tICsgKChh
bmNlc3RvckJveC5ib3R0b20gLSBpbmVydEJveC5ib3R0b20pIC8gMik7CisgIGF3YWl0IG1vdmVQ
b2ludGVyVG8oeCwgeSk7CisgIGF3YWl0IFByb21pc2UuYWxsKHByb21pc2VzKTsKK30sICJUZXN0
cyB0aGF0IGFueSBwb2ludGVyIGV2ZW50IG9uIGEgbm9uLWluZXJ0IGVsZW1lbnQgaXMgY29ycmVj
dGx5IHRhcmdldGVkIHRvIHRoYXQgZWxlbWVudCIpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgKCkg
PT4geworICAvLyBNYWtlIHRoZSBjb250YWluaW5nIGVsZW1lbnQgaW5lcnQgLSBub3cgZXZlbnRz
IHNob3VsZCBnbyB0byAiY29udGFpbmVyIgorICAvLyB3aGljaCBpcyB0aGUgbm9uLWluZXJ0IGFu
Y2VzdG9yIGF0IHRoZSBzYW1lIHBvc2l0aW9uCisgIGluZXJ0Q29udGFpbmVyLmluZXJ0ID0gdHJ1
ZTsKKyAgYXdhaXQgbW92ZVBvaW50ZXJUbygwLCAwKTsKKworICBsZXQgcHJvbWlzZXMgPSBleHBl
Y3RFdmVudHNPbihbInBvaW50ZXJvdmVyIiwgInBvaW50ZXJlbnRlciIsICJwb2ludGVybW92ZSIs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicG9pbnRlcmRvd24iLCAicG9pbnRl
cnVwIiBdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmNlc3RvckNvbnRhaW5l
cik7CisKKyAgcHJvbWlzZXMgPSBwcm9taXNlcy5jb25jYXQodW5leHBlY3RFdmVudHNPbihbInBv
aW50ZXJvdXQiLCAicG9pbnRlcmxlYXZlIl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgYW5jZXN0b3JDb250YWluZXIpKTsKKyAgYXdhaXQgY2xpY2tPbihm
b3JlZ3JvdW5kKTsKKyAgbGV0IGFuY2VzdG9yQm94ID0gYW5jZXN0b3JDb250YWluZXIuZ2V0Qm91
bmRpbmdDbGllbnRSZWN0KCk7CisgIGxldCBpbmVydEJveCA9IGluZXJ0Q29udGFpbmVyLmdldEJv
dW5kaW5nQ2xpZW50UmVjdCgpOworICBsZXQgeCA9IGFuY2VzdG9yQm94LmxlZnQgKyAoYW5jZXN0
b3JCb3gud2lkdGggLyAyKTsKKyAgbGV0IHkgPSBpbmVydEJveC5ib3R0b20gKyAoKGFuY2VzdG9y
Qm94LmJvdHRvbSAtIGluZXJ0Qm94LmJvdHRvbSkgLyAyKTsKKyAgYXdhaXQgbW92ZVBvaW50ZXJU
byh4LCB5KTsKKyAgYXdhaXQgUHJvbWlzZS5hbGwocHJvbWlzZXMpOworfSwgJ1Rlc3RzIHRoYXQg
YW55IHBvaW50ZXIgZXZlbnQgb24gYW4gaW5lcnQgZWxlbWVudCBpcyB0YXJnZXRlZCB0byB0aGUg
bmVhcmVzdCBub24taW5lcnQgYW5jZXN0b3IgYXQgdGhlIHNhbWUgY29vcmRpbmF0ZXMnKTsKKyAg
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LXJldGFyZ2V0aW5nLnRlbnRh
dGl2ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2luZXJ0L2luZXJ0LXJldGFyZ2V0aW5nLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYmI3NDVmYTIxOGRiY2I1YTRlYzZlNmZiYjZhZDJiNWI0ZGE5ZWExNQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aW5lcnQvaW5lcnQtcmV0YXJnZXRpbmcudGVudGF0aXZlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDQ3IEBACitDT05TT0xFIE1FU1NBR0U6IEVycm9yOiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCBF
bGVtZW50IG5vZGUgPGZpZWxkc2V0IGlkPSJhbmNlc3RvckNvbnRhaW5lciI+CisgICAgPGxlZ2Vu
ZD5Ob24taW5lcnQgYS4uLiBidXQgZ290IEVsZW1lbnQgbm9kZSA8YnV0dG9uIGlkPSJmb3JlZ3Jv
dW5kIiBjbGFzcz0iY2xpY2tlZCI+Zm9yZWdyb3VuZDwvYnV0dG9uPgorQ09OU09MRSBNRVNTQUdF
OiBFcnJvcjogYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgRWxlbWVudCBub2RlIDxmaWVsZHNldCBp
ZD0iYW5jZXN0b3JDb250YWluZXIiPgorICAgIDxsZWdlbmQ+Tm9uLWluZXJ0IGEuLi4gYnV0IGdv
dCBFbGVtZW50IG5vZGUgPGJ1dHRvbiBpZD0iZm9yZWdyb3VuZCIgY2xhc3M9ImNsaWNrZWQiPmZv
cmVncm91bmQ8L2J1dHRvbj4KK0NPTlNPTEUgTUVTU0FHRTogRXJyb3I6IGFzc2VydF9lcXVhbHM6
IGV4cGVjdGVkIEVsZW1lbnQgbm9kZSA8ZmllbGRzZXQgaWQ9ImFuY2VzdG9yQ29udGFpbmVyIj4K
KyAgICA8bGVnZW5kPk5vbi1pbmVydCBhLi4uIGJ1dCBnb3QgRWxlbWVudCBub2RlIDxidXR0b24g
aWQ9ImZvcmVncm91bmQiIGNsYXNzPSJjbGlja2VkIj5mb3JlZ3JvdW5kPC9idXR0b24+CitDT05T
T0xFIE1FU1NBR0U6IEVycm9yOiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCBFbGVtZW50IG5vZGUg
PGZpZWxkc2V0IGlkPSJhbmNlc3RvckNvbnRhaW5lciI+CisgICAgPGxlZ2VuZD5Ob24taW5lcnQg
YS4uLiBidXQgZ290IEVsZW1lbnQgbm9kZSA8YnV0dG9uIGlkPSJmb3JlZ3JvdW5kIiBjbGFzcz0i
Y2xpY2tlZCI+Zm9yZWdyb3VuZDwvYnV0dG9uPgorQ09OU09MRSBNRVNTQUdFOiBFcnJvcjogYXNz
ZXJ0X2VxdWFsczogZXhwZWN0ZWQgRWxlbWVudCBub2RlIDxmaWVsZHNldCBpZD0iYW5jZXN0b3JD
b250YWluZXIiPgorICAgIDxsZWdlbmQ+Tm9uLWluZXJ0IGEuLi4gYnV0IGdvdCBFbGVtZW50IG5v
ZGUgPGJ1dHRvbiBpZD0iZm9yZWdyb3VuZCIgY2xhc3M9ImNsaWNrZWQiPmZvcmVncm91bmQ8L2J1
dHRvbj4KK0NPTlNPTEUgTUVTU0FHRTogRXJyb3I6IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIEVs
ZW1lbnQgbm9kZSA8ZmllbGRzZXQgaWQ9ImFuY2VzdG9yQ29udGFpbmVyIj4KKyAgICA8bGVnZW5k
Pk5vbi1pbmVydCBhLi4uIGJ1dCBnb3QgRWxlbWVudCBub2RlIDxidXR0b24gaWQ9ImZvcmVncm91
bmQiIGNsYXNzPSJjbGlja2VkIj5mb3JlZ3JvdW5kPC9idXR0b24+CitDT05TT0xFIE1FU1NBR0U6
IEVycm9yOiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCBFbGVtZW50IG5vZGUgPGZpZWxkc2V0IGlk
PSJhbmNlc3RvckNvbnRhaW5lciI+CisgICAgPGxlZ2VuZD5Ob24taW5lcnQgYS4uLiBidXQgZ290
IEVsZW1lbnQgbm9kZSA8YnV0dG9uIGlkPSJmb3JlZ3JvdW5kIiBjbGFzcz0iY2xpY2tlZCI+Zm9y
ZWdyb3VuZDwvYnV0dG9uPgorQ09OU09MRSBNRVNTQUdFOiBFcnJvcjogYXNzZXJ0X2VxdWFsczog
ZXhwZWN0ZWQgRWxlbWVudCBub2RlIDxmaWVsZHNldCBpZD0iYW5jZXN0b3JDb250YWluZXIiPgor
ICAgIDxsZWdlbmQ+Tm9uLWluZXJ0IGEuLi4gYnV0IGdvdCBFbGVtZW50IG5vZGUgPGJ1dHRvbiBp
ZD0iZm9yZWdyb3VuZCIgY2xhc3M9ImNsaWNrZWQiPmZvcmVncm91bmQ8L2J1dHRvbj4KK0NPTlNP
TEUgTUVTU0FHRTogRXJyb3I6IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIEVsZW1lbnQgbm9kZSA8
ZmllbGRzZXQgaWQ9ImFuY2VzdG9yQ29udGFpbmVyIj4KKyAgICA8bGVnZW5kPk5vbi1pbmVydCBh
Li4uIGJ1dCBnb3QgRWxlbWVudCBub2RlIDxidXR0b24gaWQ9ImZvcmVncm91bmQiIGNsYXNzPSJj
bGlja2VkIj5mb3JlZ3JvdW5kPC9idXR0b24+CitDT05TT0xFIE1FU1NBR0U6IEVycm9yOiBhc3Nl
cnRfZXF1YWxzOiBleHBlY3RlZCBFbGVtZW50IG5vZGUgPGZpZWxkc2V0IGlkPSJhbmNlc3RvckNv
bnRhaW5lciI+CisgICAgPGxlZ2VuZD5Ob24taW5lcnQgYS4uLiBidXQgZ290IEVsZW1lbnQgbm9k
ZSA8YnV0dG9uIGlkPSJmb3JlZ3JvdW5kIiBjbGFzcz0iY2xpY2tlZCI+Zm9yZWdyb3VuZDwvYnV0
dG9uPgorQ09OU09MRSBNRVNTQUdFOiBFcnJvcjogYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgRWxl
bWVudCBub2RlIDxmaWVsZHNldCBpZD0iYW5jZXN0b3JDb250YWluZXIiPgorICAgIDxsZWdlbmQ+
Tm9uLWluZXJ0IGEuLi4gYnV0IGdvdCBFbGVtZW50IG5vZGUgPGJ1dHRvbiBpZD0iZm9yZWdyb3Vu
ZCIgY2xhc3M9ImNsaWNrZWQiPmZvcmVncm91bmQ8L2J1dHRvbj4KK0NPTlNPTEUgTUVTU0FHRTog
RXJyb3I6IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIEVsZW1lbnQgbm9kZSA8ZmllbGRzZXQgaWQ9
ImFuY2VzdG9yQ29udGFpbmVyIj4KKyAgICA8bGVnZW5kPk5vbi1pbmVydCBhLi4uIGJ1dCBnb3Qg
RWxlbWVudCBub2RlIDxidXR0b24gaWQ9ImZvcmVncm91bmQiIGNsYXNzPSJjbGlja2VkIj5mb3Jl
Z3JvdW5kPC9idXR0b24+CitDT05TT0xFIE1FU1NBR0U6IEVycm9yOiBhc3NlcnRfZXF1YWxzOiBl
eHBlY3RlZCBFbGVtZW50IG5vZGUgPGZpZWxkc2V0IGlkPSJhbmNlc3RvckNvbnRhaW5lciI+Cisg
ICAgPGxlZ2VuZD5Ob24taW5lcnQgYS4uLiBidXQgZ290IEVsZW1lbnQgbm9kZSA8YnV0dG9uIGlk
PSJmb3JlZ3JvdW5kIiBjbGFzcz0iY2xpY2tlZCI+Zm9yZWdyb3VuZDwvYnV0dG9uPgorQ2xpY2sg
b24gImZvcmVncm91bmQiLgorCitUaGUgYmx1ZSBzcXVhcmUgKCJOb24taW5lcnQgYW5jZXN0b3Ig
Y29udGFpbmVyIikgc2hvdWxkIHR1cm4gZ3JlZW4uCitUaGUgeWVsbG93LCBzZW1pLXRyYW5zcGFy
ZW50IHNxdWFyZSAoIk5vbi1pbmVydCwgZGlzcGxhY2VkIGNvbnRhaW5lciIpIHNob3VsZCBub3Qg
dHVybiByZWQuCisiTm9uLWluZXJ0IGJ1dHRvbiIgc2hvdWxkIG5vdCB0dXJuIHJlZC4KKyhUaGUg
ZnVsbCB0ZXN0IHN1aXRlIGNoZWNrcyBhIHJhbmdlIG9mIGV2ZW50cy4pCisKK05vbi1pbmVydCBh
bmNlc3RvciBjb250YWluZXIKK2JhY2tncm91bmROb24taW5lcnQsIGRpc3BsYWNlZCBhbmNlc3Rv
cgorSW5lcnQgY29udGFpbmVyCitmb3JlZ3JvdW5kCisKK0hhcm5lc3MgRXJyb3IgKEZBSUwpLCBt
ZXNzYWdlID0gRXJyb3I6IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIEVsZW1lbnQgbm9kZSA8Zmll
bGRzZXQgaWQ9ImFuY2VzdG9yQ29udGFpbmVyIj4KKyAgICA8bGVnZW5kPk5vbi1pbmVydCBhLi4u
IGJ1dCBnb3QgRWxlbWVudCBub2RlIDxidXR0b24gaWQ9ImZvcmVncm91bmQiIGNsYXNzPSJjbGlj
a2VkIj5mb3JlZ3JvdW5kPC9idXR0b24+CisKK1BBU1MgZWxlbWVudHNGcm9tUG9pbnQgcmV0dXJu
cyBpbmVydCBlbGVtZW50CitGQUlMIFRlc3RzIHRoYXQgYW55IG1vdXNlIGV2ZW50IG9uIGEgbm9u
LWluZXJ0IGVsZW1lbnQgaXMgY29ycmVjdGx5IHRhcmdldGVkIHRvIHRoYXQgZWxlbWVudCBwcm9t
aXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogImRpZCBub3QgZ2V0IGF1
eGNsaWNrIG9uIGZvcmVncm91bmQiCitGQUlMIFRlc3RzIHRoYXQgYW55IG1vdXNlIGV2ZW50IG9u
IGFuIGluZXJ0IGVsZW1lbnQgaXMgdGFyZ2V0ZWQgdG8gdGhlIG5lYXJlc3Qgbm9uLWluZXJ0IGFu
Y2VzdG9yIGF0IHRoZSBzYW1lIGNvb3JkaW5hdGVzIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJl
amVjdGlvbiB3aXRoIHZhbHVlOiAiZGlkIG5vdCBnZXQgbW91c2VvdmVyIG9uIGFuY2VzdG9yQ29u
dGFpbmVyIgorUEFTUyBUZXN0cyB0aGF0IGFueSBwb2ludGVyIGV2ZW50IG9uIGEgbm9uLWluZXJ0
IGVsZW1lbnQgaXMgY29ycmVjdGx5IHRhcmdldGVkIHRvIHRoYXQgZWxlbWVudAorRkFJTCBUZXN0
cyB0aGF0IGFueSBwb2ludGVyIGV2ZW50IG9uIGFuIGluZXJ0IGVsZW1lbnQgaXMgdGFyZ2V0ZWQg
dG8gdGhlIG5lYXJlc3Qgbm9uLWluZXJ0IGFuY2VzdG9yIGF0IHRoZSBzYW1lIGNvb3JkaW5hdGVz
IHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiAiZGlkIG5vdCBn
ZXQgcG9pbnRlcm92ZXIgb24gYW5jZXN0b3JDb250YWluZXIiCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtcmV0YXJn
ZXRpbmcudGVudGF0aXZlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2luZXJ0L2luZXJ0LXJldGFyZ2V0aW5nLnRlbnRhdGl2ZS5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjIyODBjZjVhNWQxZmIxNmVmMTkyMzEwZTRmYjRmN2QyMmIzNzAyYjMKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0
L2luZXJ0LXJldGFyZ2V0aW5nLnRlbnRhdGl2ZS5odG1sCkBAIC0wLDAgKzEsMjkwIEBACis8IURP
Q1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0
aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVz
c3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0ZHJpdmVy
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Rkcml2ZXItYWN0aW9u
cy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0ZHJpdmVyLXZlbmRv
ci5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+CitidXR0b24jZm9yZWdyb3VuZCwKK2J1dHRvbiNiYWNr
Z3JvdW5kIHsKKyAgcG9zaXRpb246IGFic29sdXRlOworICB0b3A6IDc1cHg7CisgIGxlZnQ6IDUw
cHg7CisgIHdpZHRoOiAxMDBweDsKKyAgaGVpZ2h0OiAyMHB4OworfQorCitidXR0b24jYmFja2dy
b3VuZCB7CisgIGxlZnQ6IDc1cHg7CisgIHdpZHRoOiAxNTBweDsKKyAgaGVpZ2h0OiA0MHB4Owor
ICB0b3A6IDEyNXB4OworICBsaW5lLWhlaWdodDogNTNweDsKK30KKworLmNsaWNrZWQgeworICBi
YWNrZ3JvdW5kLWNvbG9yOiByZWQ7Cit9CisKKyNhbmNlc3RvckNvbnRhaW5lci5jbGlja2VkIHsK
KyAgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47Cit9CisKKyNhbmNlc3RvckNvbnRhaW5lciB7Cisg
IHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgd2lkdGg6IDMwMHB4OworICBoZWlnaHQ6IDMwMHB4Owor
ICBiYWNrZ3JvdW5kLWNvbG9yOiBibHVlOworfQorCisjZGlzcGxhY2VkQW5jZXN0b3IgeworICBw
b3NpdGlvbjogYWJzb2x1dGU7CisgIHRvcDogMTNweDsKKyAgbGVmdDogMjQwcHg7CisgIHdpZHRo
OiAzMDBweDsKKyAgaGVpZ2h0OiAyNTBweDsKKyAgYmFja2dyb3VuZC1jb2xvcjogI2ZmODk7Cit9
CisKKyNkaXNwbGFjZWRBbmNlc3Rvci5jbGlja2VkIHsKKyAgYmFja2dyb3VuZC1jb2xvcjogI2Yw
MDk7Cit9CisKKyNpbmVydENvbnRhaW5lciB7CisgIGJhY2tncm91bmQtY29sb3I6ICNmZmY5Owor
ICBwb3NpdGlvbjogYWJzb2x1dGU7CisgIHRvcDogMzVweDsKKyAgbGVmdDogLTE5MnB4OworICB3
aWR0aDogMjAwcHg7CisgIGhlaWdodDogMjAwcHg7Cit9CisKK2ZpZWxkc2V0IHsKKyAgbWFyZ2lu
OiAwOworICBwYWRkaW5nOiAwOworICBib3JkZXI6IDFweCBzb2xpZCBibGFjazsKK30KKworbGVn
ZW5kIHsKKyAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7CisgIGJvcmRlcjogMXB4IHNvbGlkIGJs
YWNrOworICBtYXJnaW4tbGVmdDogNXB4OworfQorCitidXR0b24uY2xpY2tlZDo6YWZ0ZXIgewor
ICBjb250ZW50OiAiIChjbGlja2VkKSI7Cit9CisKKy5jbGlja2VkID4gbGVnZW5kOjphZnRlciB7
CisgIGNvbnRlbnQ6ICIgKGNsaWNrZWQpIjsKK30KKworPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5
PgorICA8cD5DbGljayBvbiAiZm9yZWdyb3VuZCIuPC9wPgorICA8dWw+CisgICAgPGxpPlRoZSBi
bHVlIHNxdWFyZSAoIk5vbi1pbmVydCBhbmNlc3RvciBjb250YWluZXIiKSBzaG91bGQgdHVybiBn
cmVlbi48L2xpPgorICAgIDxsaT5UaGUgeWVsbG93LCBzZW1pLXRyYW5zcGFyZW50IHNxdWFyZSAo
Ik5vbi1pbmVydCwgZGlzcGxhY2VkIGNvbnRhaW5lciIpIHNob3VsZCBub3QgdHVybiByZWQuPC9s
aT4KKyAgICA8bGk+Ik5vbi1pbmVydCBidXR0b24iIHNob3VsZCBub3QgdHVybiByZWQuPC9saT4K
KyAgPC91bD4KKyAgPHA+KFRoZSBmdWxsIHRlc3Qgc3VpdGUgY2hlY2tzIGEgcmFuZ2Ugb2YgZXZl
bnRzLik8L3A+CisgIDxmaWVsZHNldCBpZD0iYW5jZXN0b3JDb250YWluZXIiPgorICAgIDxsZWdl
bmQ+Tm9uLWluZXJ0IGFuY2VzdG9yIGNvbnRhaW5lcjwvbGVnZW5kPgorICAgIDxidXR0b24gaWQ9
ImJhY2tncm91bmQiPmJhY2tncm91bmQ8L2J1dHRvbj4KKyAgICA8ZmllbGRzZXQgaWQ9ImRpc3Bs
YWNlZEFuY2VzdG9yIj4KKyAgICAgIDxsZWdlbmQ+Tm9uLWluZXJ0LCBkaXNwbGFjZWQgYW5jZXN0
b3I8L2xlZ2VuZD4KKyAgICAgIDxmaWVsZHNldCBpZD0iaW5lcnRDb250YWluZXIiIGluZXJ0Pgor
ICAgICAgICA8bGVnZW5kPkluZXJ0IGNvbnRhaW5lcjwvbGVnZW5kPgorICAgICAgICA8YnV0dG9u
IGlkPSJmb3JlZ3JvdW5kIj5mb3JlZ3JvdW5kPC9idXR0b24+CisgICAgICA8L2ZpZWxkc2V0Pgor
ICAgIDwvZmllbGRzZXQ+CisgIDwvZmllbGRzZXQ+CisKKyAgPHNjcmlwdD4KK2RvY3VtZW50LmJv
ZHkuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoZSkgPT4geworICBlLnRhcmdldC5jbGFzc0xp
c3QuYWRkKCdjbGlja2VkJyk7Cit9KTsKKworZnVuY3Rpb24gY2xpY2tPbihlbGVtZW50KSB7Cisg
IHJldHVybiBuZXcgdGVzdF9kcml2ZXIuQWN0aW9ucygpCisgICAgICAucG9pbnRlck1vdmUoMCwg
MCwge29yaWdpbjogZWxlbWVudH0pCisgICAgICAucG9pbnRlckRvd24oe2J1dHRvbjogdGVzdF9k
cml2ZXIuQWN0aW9ucy5wcm90b3R5cGUuQnV0dG9uVHlwZS5MRUZUfSkKKyAgICAgIC5wb2ludGVy
VXAoe2J1dHRvbjogdGVzdF9kcml2ZXIuQWN0aW9ucy5wcm90b3R5cGUuQnV0dG9uVHlwZS5MRUZU
fSkKKyAgICAgIC5zZW5kKCk7Cit9CisKK2Z1bmN0aW9uIGF1eENsaWNrT24oZWxlbWVudCkgewor
ICByZXR1cm4gbmV3IHRlc3RfZHJpdmVyLkFjdGlvbnMoKQorICAgICAgLnBvaW50ZXJNb3ZlKDAs
IDAsIHtvcmlnaW46IGVsZW1lbnR9KQorICAgICAgLnBvaW50ZXJEb3duKHtidXR0b246IHRlc3Rf
ZHJpdmVyLkFjdGlvbnMucHJvdG90eXBlLkJ1dHRvblR5cGUuUklHSFR9KQorICAgICAgLnBvaW50
ZXJVcCh7YnV0dG9uOiB0ZXN0X2RyaXZlci5BY3Rpb25zLnByb3RvdHlwZS5CdXR0b25UeXBlLlJJ
R0hUfSkKKyAgICAgIC5zZW5kKCk7Cit9CisKK2Z1bmN0aW9uIGRibENsaWNrT24oZWxlbWVudCkg
eworICByZXR1cm4gbmV3IHRlc3RfZHJpdmVyLkFjdGlvbnMoKQorICAgICAgLnBvaW50ZXJNb3Zl
KDAsIDAsIHtvcmlnaW46IGVsZW1lbnR9KQorICAgICAgLnBvaW50ZXJEb3duKHtidXR0b246IHRl
c3RfZHJpdmVyLkFjdGlvbnMucHJvdG90eXBlLkJ1dHRvblR5cGUuTEVGVH0pCisgICAgICAucG9p
bnRlclVwKHtidXR0b246IHRlc3RfZHJpdmVyLkFjdGlvbnMucHJvdG90eXBlLkJ1dHRvblR5cGUu
TEVGVH0pCisgICAgICAucG9pbnRlckRvd24oe2J1dHRvbjogdGVzdF9kcml2ZXIuQWN0aW9ucy5w
cm90b3R5cGUuQnV0dG9uVHlwZS5MRUZUfSkKKyAgICAgIC5wb2ludGVyVXAoe2J1dHRvbjogdGVz
dF9kcml2ZXIuQWN0aW9ucy5wcm90b3R5cGUuQnV0dG9uVHlwZS5MRUZUfSkKKyAgICAgIC5zZW5k
KCk7Cit9CisKK2Z1bmN0aW9uIG1vdmVQb2ludGVyT3ZlcihlbGVtZW50KSB7CisgIGxldCByZWN0
ID0gZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgcmV0dXJuIG5ldyB0ZXN0X2Ry
aXZlci5BY3Rpb25zKCkKKyAgICAgIC5wb2ludGVyTW92ZSgwLCAwLCB7IG9yaWdpbjogZWxlbWVu
dCB9KQorICAgICAgLnNlbmQoKTsKK30KKworZnVuY3Rpb24gbW92ZVBvaW50ZXJUbyh4LCB5KSB7
CisgIHJldHVybiBuZXcgdGVzdF9kcml2ZXIuQWN0aW9ucygpCisgICAgICAucG9pbnRlck1vdmUo
eCwgeSwgeyBvcmlnaW46ICJ2aWV3cG9ydCIgfSkKKyAgICAgIC5zZW5kKCk7Cit9CisKK2Z1bmN0
aW9uIGV4cGVjdEV2ZW50c09uKGV2ZW50cywgZWxlbWVudCkgeworICBsZXQgcHJvbWlzZXMgPSBb
XTsKKyAgZm9yIChldmVudCBvZiBldmVudHMpIHsKKyAgICAoKGV2ZW50LCBlbGVtZW50KSA9PiB7
CisgICAgICB2YXIgcHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsK
KyAgICAgICAgbGV0IGYgPSAoZSkgPT4geworICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50eXBl
LCBldmVudCk7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldCwgZWxlbWVudCk7Cisg
ICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgICB9CisgICAgICAgIGVsZW1lbnQuYWRkRXZlbnRM
aXN0ZW5lcihldmVudCwgZiwgeyBjYXB0dXJlOiB0cnVlLCBvbmNlOiB0cnVlIH0pOworCisgICAg
ICAgIHN0ZXBfdGltZW91dCgoKSA9PiB7CisgICAgICAgICAgZWxlbWVudC5yZW1vdmVFdmVudExp
c3RlbmVyKGV2ZW50LCBmLCB7IGNhcHR1cmU6IHRydWUgfSk7CisgICAgICAgICAgcmVqZWN0KCJk
aWQgbm90IGdldCAiICsgZXZlbnQgKyAiIG9uICIgKyBlbGVtZW50LmlkKTsKKyAgICAgICAgfSwg
MTAwMCk7CisgICAgICB9KTsKKyAgICAgIHByb21pc2VzLnB1c2gocHJvbWlzZSk7CisgICAgfSko
ZXZlbnQsIGVsZW1lbnQpOworICB9CisgIHJldHVybiBwcm9taXNlczsKK30KKworZnVuY3Rpb24g
dW5leHBlY3RFdmVudHNPbihldmVudHMsIGVsZW1lbnQpIHsKKyAgbGV0IHByb21pc2VzID0gW107
CisgIGZvciAoZXZlbnQgb2YgZXZlbnRzKSB7CisgICAgKChldmVudCwgZWxlbWVudCkgPT4gewor
ICAgICAgdmFyIHByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7Cisg
ICAgICAgIGxldCBmID0gKGUpID0+IHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUudHlwZSwg
ZXZlbnQpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQsIGVsZW1lbnQpOworICAg
ICAgICAgIHJlamVjdCgiZ290ICIgKyBlLnR5cGUgKyAiIG9uICIgKyBlLnRhcmdldC5pZCk7Cisg
ICAgICAgIH0KKyAgICAgICAgZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKGV2ZW50LCBmLCB7IGNh
cHR1cmU6IHRydWUsIG9uY2U6IHRydWUgfSk7CisKKyAgICAgICAgc3RlcF90aW1lb3V0KCgpID0+
IHsKKyAgICAgICAgICBlbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnQsIGYsIHsgY2Fw
dHVyZTogdHJ1ZSB9KTsKKyAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgIH0sIDEwMDApOwor
ICAgICAgfSk7CisgICAgICBwcm9taXNlcy5wdXNoKHByb21pc2UpOworICAgIH0pKGV2ZW50LCBl
bGVtZW50KTsKKyAgfQorICByZXR1cm4gcHJvbWlzZXM7Cit9CisKK3Rlc3QoKCkgPT4geworICBs
ZXQgcmVjdCA9IGZvcmVncm91bmQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CisgIGxldCBjZW50
ZXJfeCA9IHJlY3QubGVmdCArIChyZWN0LndpZHRoIC8gMik7CisgIGxldCBjZW50ZXJfeSA9IHJl
Y3QudG9wICsgKHJlY3QuaGVpZ2h0IC8gMik7CisgIGFzc2VydF9lcXVhbHMoZG9jdW1lbnQuZWxl
bWVudHNGcm9tUG9pbnQoY2VudGVyX3gsIGNlbnRlcl95KVswXSwgZm9yZWdyb3VuZCk7Cit9LCAi
ZWxlbWVudHNGcm9tUG9pbnQgcmV0dXJucyBpbmVydCBlbGVtZW50Iik7CisKK3Byb21pc2VfdGVz
dChhc3luYyAoKSA9PiB7CisgIC8vIFRlc3QgbW91c2UgZXZlbnRzIG9uIG5vbi1pbmVydCBlbGVt
ZW50IC0gZXZlbnRzIHNob3VsZCBnbyB0byAiZm9yZWdyb3VuZCIKKyAgaW5lcnRDb250YWluZXIu
aW5lcnQgPSBmYWxzZTsKKyAgYXdhaXQgbW92ZVBvaW50ZXJUbygwLCAwKTsKKyAgbGV0IHByb21p
c2VzID0gZXhwZWN0RXZlbnRzT24oWyJtb3VzZW92ZXIiLCAibW91c2VlbnRlciIsICJtb3VzZW1v
dmUiLCAibW91c2Vkb3duIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJtb3Vz
ZXVwIiwgImNsaWNrIiwgImF1eGNsaWNrIiwgIm1vdXNlb3V0IiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJtb3VzZWxlYXZlIl0sCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGZvcmVncm91bmQpOworICBhd2FpdCBjbGlja09uKGZvcmVncm91bmQpOworICBhd2Fp
dCBhdXhDbGlja09uKGZvcmVncm91bmQpOworICBhd2FpdCBkYmxDbGlja09uKGZvcmVncm91bmQp
OworICBsZXQgYW5jZXN0b3JCb3ggPSBhbmNlc3RvckNvbnRhaW5lci5nZXRCb3VuZGluZ0NsaWVu
dFJlY3QoKTsKKyAgbGV0IGluZXJ0Qm94ID0gaW5lcnRDb250YWluZXIuZ2V0Qm91bmRpbmdDbGll
bnRSZWN0KCk7CisgIGxldCB4ID0gYW5jZXN0b3JCb3gubGVmdCArIChhbmNlc3RvckJveC53aWR0
aCAvIDIpOworICBsZXQgeSA9IGluZXJ0Qm94LmJvdHRvbSArICgoYW5jZXN0b3JCb3guYm90dG9t
IC0gaW5lcnRCb3guYm90dG9tKSAvIDIpOworICBhd2FpdCBtb3ZlUG9pbnRlclRvKHgsIHkpOwor
ICBhd2FpdCBQcm9taXNlLmFsbChwcm9taXNlcyk7Cit9LCAiVGVzdHMgdGhhdCBhbnkgbW91c2Ug
ZXZlbnQgb24gYSBub24taW5lcnQgZWxlbWVudCBpcyBjb3JyZWN0bHkgdGFyZ2V0ZWQgdG8gdGhh
dCBlbGVtZW50Iik7CisKK3Byb21pc2VfdGVzdChhc3luYyAoKSA9PiB7CisgIC8vIE1ha2UgdGhl
IGNvbnRhaW5pbmcgZWxlbWVudCBpbmVydCAtIG5vdyBldmVudHMgc2hvdWxkIGdvIHRvICJjb250
YWluZXIiCisgIC8vIHdoaWNoIGlzIHRoZSBub24taW5lcnQgYW5jZXN0b3IgYXQgdGhlIHNhbWUg
cG9zaXRpb24KKyAgaW5lcnRDb250YWluZXIuaW5lcnQgPSB0cnVlOworICBhd2FpdCBtb3ZlUG9p
bnRlclRvKDAsIDApOworCisgIGxldCBwcm9taXNlcyA9IGV4cGVjdEV2ZW50c09uKFsibW91c2Vv
dmVyIiwgIm1vdXNlZW50ZXIiLCAibW91c2Vtb3ZlIiwgIm1vdXNlZG93biIsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAibW91c2V1cCIsICJjbGljayIsICJhdXhjbGljayJdLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmNlc3RvckNvbnRhaW5lcik7CisKKyAg
Ly8gVE9ETyhhYm94aGFsbCk6IFdlIGFyZSBnZXR0aW5nIHRoZXNlIHVuZXhwZWN0ZWQgZXZlbnRz
LiBXaHk/CisgIHByb21pc2VzID0gcHJvbWlzZXMuY29uY2F0KHVuZXhwZWN0RXZlbnRzT24oWyJt
b3VzZW91dCIsICJtb3VzZWxlYXZlIl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYW5jZXN0b3JDb250YWluZXIpKTsKKworICBhd2FpdCBjbGlja09uKGZv
cmVncm91bmQpOworICBhd2FpdCBhdXhDbGlja09uKGZvcmVncm91bmQpOworICBhd2FpdCBkYmxD
bGlja09uKGZvcmVncm91bmQpOworICBsZXQgYW5jZXN0b3JCb3ggPSBhbmNlc3RvckNvbnRhaW5l
ci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgbGV0IGluZXJ0Qm94ID0gaW5lcnRDb250YWlu
ZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CisgIGxldCB4ID0gYW5jZXN0b3JCb3gubGVmdCAr
IChhbmNlc3RvckJveC53aWR0aCAvIDIpOworICBsZXQgeSA9IGluZXJ0Qm94LmJvdHRvbSArICgo
YW5jZXN0b3JCb3guYm90dG9tIC0gaW5lcnRCb3guYm90dG9tKSAvIDIpOworICBhd2FpdCBtb3Zl
UG9pbnRlclRvKHgsIHkpOworICBhd2FpdCBQcm9taXNlLmFsbChwcm9taXNlcyk7Cit9LCAnVGVz
dHMgdGhhdCBhbnkgbW91c2UgZXZlbnQgb24gYW4gaW5lcnQgZWxlbWVudCBpcyB0YXJnZXRlZCB0
byB0aGUgbmVhcmVzdCBub24taW5lcnQgYW5jZXN0b3IgYXQgdGhlIHNhbWUgY29vcmRpbmF0ZXMn
KTsKKworcHJvbWlzZV90ZXN0KGFzeW5jICgpID0+IHsKKyAgLy8gVGVzdCBwb2ludGVyIGV2ZW50
cyBvbiBub24taW5lcnQgZWxlbWVudCAtIGV2ZW50cyBzaG91bGQgZ28gdG8gImZvcmVncm91bmQi
CisgIGluZXJ0Q29udGFpbmVyLmluZXJ0ID0gZmFsc2U7CisgIGF3YWl0IG1vdmVQb2ludGVyVG8o
MCwgMCk7CisKKyAgbGV0IHByb21pc2VzID0gZXhwZWN0RXZlbnRzT24oWyJwb2ludGVyb3ZlciIs
ICJwb2ludGVyZW50ZXIiLCAicG9pbnRlcm1vdmUiLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgInBvaW50ZXJkb3duIiwgInBvaW50ZXJ1cCIsICJwb2ludGVyb3V0IiwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwb2ludGVybGVhdmUiXSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZm9yZWdyb3VuZCk7CisgIGF3YWl0IGNsaWNrT24oZm9yZWdy
b3VuZCk7CisgIGxldCBhbmNlc3RvckJveCA9IGFuY2VzdG9yQ29udGFpbmVyLmdldEJvdW5kaW5n
Q2xpZW50UmVjdCgpOworICBsZXQgaW5lcnRCb3ggPSBpbmVydENvbnRhaW5lci5nZXRCb3VuZGlu
Z0NsaWVudFJlY3QoKTsKKyAgbGV0IHggPSBhbmNlc3RvckJveC5sZWZ0ICsgKGFuY2VzdG9yQm94
LndpZHRoIC8gMik7CisgIGxldCB5ID0gaW5lcnRCb3guYm90dG9tICsgKChhbmNlc3RvckJveC5i
b3R0b20gLSBpbmVydEJveC5ib3R0b20pIC8gMik7CisgIGF3YWl0IG1vdmVQb2ludGVyVG8oeCwg
eSk7CisgIGF3YWl0IFByb21pc2UuYWxsKHByb21pc2VzKTsKK30sICJUZXN0cyB0aGF0IGFueSBw
b2ludGVyIGV2ZW50IG9uIGEgbm9uLWluZXJ0IGVsZW1lbnQgaXMgY29ycmVjdGx5IHRhcmdldGVk
IHRvIHRoYXQgZWxlbWVudCIpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgKCkgPT4geworICAvLyBN
YWtlIHRoZSBjb250YWluaW5nIGVsZW1lbnQgaW5lcnQgLSBub3cgZXZlbnRzIHNob3VsZCBnbyB0
byAiY29udGFpbmVyIgorICAvLyB3aGljaCBpcyB0aGUgbm9uLWluZXJ0IGFuY2VzdG9yIGF0IHRo
ZSBzYW1lIHBvc2l0aW9uCisgIGluZXJ0Q29udGFpbmVyLmluZXJ0ID0gdHJ1ZTsKKyAgYXdhaXQg
bW92ZVBvaW50ZXJUbygwLCAwKTsKKworICBsZXQgcHJvbWlzZXMgPSBleHBlY3RFdmVudHNPbihb
InBvaW50ZXJvdmVyIiwgInBvaW50ZXJlbnRlciIsICJwb2ludGVybW92ZSIsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAicG9pbnRlcmRvd24iLCAicG9pbnRlcnVwIiBdLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmNlc3RvckNvbnRhaW5lcik7CisKKyAgLy8g
VE9ETyhhYm94aGFsbCk6IFdlIGFyZSBnZXR0aW5nIHRoZXNlIHVuZXhwZWN0ZWQgZXZlbnRzLiBX
aHk/CisgIHByb21pc2VzID0gcHJvbWlzZXMuY29uY2F0KHVuZXhwZWN0RXZlbnRzT24oWyJwb2lu
dGVyb3V0IiwgInBvaW50ZXJsZWF2ZSJdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGFuY2VzdG9yQ29udGFpbmVyKSk7CisKKyAgYXdhaXQgY2xpY2tPbihm
b3JlZ3JvdW5kKTsKKyAgbGV0IGFuY2VzdG9yQm94ID0gYW5jZXN0b3JDb250YWluZXIuZ2V0Qm91
bmRpbmdDbGllbnRSZWN0KCk7CisgIGxldCBpbmVydEJveCA9IGluZXJ0Q29udGFpbmVyLmdldEJv
dW5kaW5nQ2xpZW50UmVjdCgpOworICBsZXQgeCA9IGFuY2VzdG9yQm94LmxlZnQgKyAoYW5jZXN0
b3JCb3gud2lkdGggLyAyKTsKKyAgbGV0IHkgPSBpbmVydEJveC5ib3R0b20gKyAoKGFuY2VzdG9y
Qm94LmJvdHRvbSAtIGluZXJ0Qm94LmJvdHRvbSkgLyAyKTsKKyAgYXdhaXQgbW92ZVBvaW50ZXJU
byh4LCB5KTsKKyAgYXdhaXQgUHJvbWlzZS5hbGwocHJvbWlzZXMpOworfSwgJ1Rlc3RzIHRoYXQg
YW55IHBvaW50ZXIgZXZlbnQgb24gYW4gaW5lcnQgZWxlbWVudCBpcyB0YXJnZXRlZCB0byB0aGUg
bmVhcmVzdCBub24taW5lcnQgYW5jZXN0b3IgYXQgdGhlIHNhbWUgY29vcmRpbmF0ZXMnKTsKKwor
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L3czYy1pbXBvcnQubG9nIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC93M2MtaW1wb3J0Lmxv
ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5lZmYxYTcxNTBjYjYwYjIyNzNiMzgwOTFkMzJhOTM2NDE0MjgxOWFjCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9pbmVydC93M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsxLDI2IEBACitUaGUgdGVzdHMgaW4g
dGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KK0Rv
IE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwgY3Jl
YXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNv
bS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0CisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2lt
cG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3Ig
cmVtb3ZlIHRoaXMgZmlsZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmlu
ZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRv
ciBwcmVmaXhlczoKK05vbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LWRvZXMt
bm90LW1hdGNoLWRpc2FibGVkLXNlbGVjdG9yLnRlbnRhdGl2ZS5odG1sCisvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1pbi1zaGFkb3ctZG9t
LnRlbnRhdGl2ZS5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9pbmVydC9pbmVydC1pbmxpbmVzLnRlbnRhdGl2ZS5odG1sCisvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1sYWJlbC1mb2N1cy50ZW50
YXRpdmUuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aW5lcnQvaW5lcnQtbm9kZS1pcy11bmVkaXRhYmxlLnRlbnRhdGl2ZS5odG1sCisvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1ub2RlLWlzLXVu
Zm9jdXNhYmxlLnRlbnRhdGl2ZS5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1ub2RlLWlzLXVuc2VsZWN0YWJsZS50ZW50YXRpdmUu
aHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQv
aW5lcnQtb24tc2xvdHMudGVudGF0aXZlLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LXJldGFyZ2V0aW5nLWlmcmFtZS50ZW50YXRp
dmUuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5l
cnQvaW5lcnQtcmV0YXJnZXRpbmcudGVudGF0aXZlLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL2lvcy13azIvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVy
dC9pbmVydC1ub2RlLWlzLXVuZWRpdGFibGUudGVudGF0aXZlLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9p
bmVydC9pbmVydC1ub2RlLWlzLXVuZWRpdGFibGUudGVudGF0aXZlLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4yMTE0Y2MxOGRlYzkwNGExNDZiZjAwOGEwOGI4MDY3ZmY1NDFhZTA2Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LW5vZGUtaXMtdW5lZGl0YWJsZS50ZW50YXRpdmUt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorSSdtIG5vdCBlZGl0YWJsZS4gSSdtIGVkaXRh
YmxlLgorCitQQVNTIENhbid0IGVkaXQgaW5lcnQgY29udGVudGVkaXRhYmxlCitGQUlMIENhbiBl
ZGl0IG5vbi1pbmVydCBjb250ZW50ZWRpdGFibGUgYXNzZXJ0X25vdF9lcXVhbHM6IGdvdCBkaXNh
bGxvd2VkIHZhbHVlICJJJ20gZWRpdGFibGUuIgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9pb3Mtd2syL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5l
cnQtcmV0YXJnZXRpbmctaWZyYW1lLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9pb3Mtd2syL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQv
aW5lcnQtcmV0YXJnZXRpbmctaWZyYW1lLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZTFmOWVhNDBjZjIxM2VkNDUwNWE5OWRmNDk3MzhmYWFlZTcyNDhjOAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1yZXRhcmdldGluZy1pZnJhbWUudGVudGF0aXZlLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDE4IEBACitDbGljayBvbiAiSW5lcnQgYnV0dG9uIi4KKworVGhl
IGJsdWUgc3F1YXJlICgiTm9uLWluZXJ0IGFuY2VzdG9yIGNvbnRhaW5lciIpIHNob3VsZCB0dXJu
IGdyZWVuLgorVGhlIHllbGxvdywgc2VtaS10cmFuc3BhcmVudCBzcXVhcmUgKCJOb24taW5lcnQs
IGRpc3BsYWNlZCBjb250YWluZXIiKSBzaG91bGQgbm90IHR1cm4gcmVkLgorIk5vbi1pbmVydCBi
dXR0b24iIHNob3VsZCBub3QgdHVybiByZWQuCisoVGhlIGZ1bGwgdGVzdCBzdWl0ZSBjaGVja3Mg
YSByYW5nZSBvZiBldmVudHMuKQorCitOb24taW5lcnQgYW5jZXN0b3IgY29udGFpbmVyCisgTm9u
LWluZXJ0LCBkaXNwbGFjZWQgYW5jZXN0b3IKK0luZXJ0IGNvbnRhaW5lcgorZm9yZWdyb3VuZAor
CitQQVNTIGVsZW1lbnRzRnJvbVBvaW50IHJldHVybnMgaW5lcnQgZWxlbWVudAorRkFJTCBUZXN0
cyB0aGF0IGFueSBtb3VzZSBldmVudCBvbiBhIG5vbi1pbmVydCBlbGVtZW50IGlzIGNvcnJlY3Rs
eSB0YXJnZXRlZCB0byB0aGF0IGVsZW1lbnQgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0
aW9uIHdpdGggdmFsdWU6ICJkaWQgbm90IGdldCBtb3VzZW92ZXIgb24gZm9yZWdyb3VuZCIKK0ZB
SUwgVGVzdHMgdGhhdCBhbnkgbW91c2UgZXZlbnQgb24gYW4gaW5lcnQgZWxlbWVudCBpcyB0YXJn
ZXRlZCB0byB0aGUgbmVhcmVzdCBub24taW5lcnQgYW5jZXN0b3IgYXQgdGhlIHNhbWUgY29vcmRp
bmF0ZXMgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6ICJkaWQg
bm90IGdldCBtb3VzZW92ZXIgb24gYW5jZXN0b3JDb250YWluZXIiCitGQUlMIFRlc3RzIHRoYXQg
YW55IHBvaW50ZXIgZXZlbnQgb24gYSBub24taW5lcnQgZWxlbWVudCBpcyBjb3JyZWN0bHkgdGFy
Z2V0ZWQgdG8gdGhhdCBlbGVtZW50IHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3
aXRoIHZhbHVlOiAiZGlkIG5vdCBnZXQgcG9pbnRlcm92ZXIgb24gZm9yZWdyb3VuZCIKK0ZBSUwg
VGVzdHMgdGhhdCBhbnkgcG9pbnRlciBldmVudCBvbiBhbiBpbmVydCBlbGVtZW50IGlzIHRhcmdl
dGVkIHRvIHRoZSBuZWFyZXN0IG5vbi1pbmVydCBhbmNlc3RvciBhdCB0aGUgc2FtZSBjb29yZGlu
YXRlcyBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogImRpZCBu
b3QgZ2V0IHBvaW50ZXJvdmVyIG9uIGFuY2VzdG9yQ29udGFpbmVyIgorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvaW5lcnQvaW5lcnQtcmV0YXJnZXRpbmcudGVudGF0aXZlLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9p
bmVydC9pbmVydC1yZXRhcmdldGluZy50ZW50YXRpdmUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjFhNWZiYTNiZjcxMjg1N2Q3ODVjOGQwMGM4Yjg3MTJmZGVmNGNhZWMKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaW5lcnQvaW5lcnQtcmV0YXJnZXRpbmcudGVudGF0aXZlLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDE4IEBACitDbGljayBvbiAiZm9yZWdyb3VuZCIuCisKK1RoZSBibHVlIHNxdWFy
ZSAoIk5vbi1pbmVydCBhbmNlc3RvciBjb250YWluZXIiKSBzaG91bGQgdHVybiBncmVlbi4KK1Ro
ZSB5ZWxsb3csIHNlbWktdHJhbnNwYXJlbnQgc3F1YXJlICgiTm9uLWluZXJ0LCBkaXNwbGFjZWQg
Y29udGFpbmVyIikgc2hvdWxkIG5vdCB0dXJuIHJlZC4KKyJOb24taW5lcnQgYnV0dG9uIiBzaG91
bGQgbm90IHR1cm4gcmVkLgorKFRoZSBmdWxsIHRlc3Qgc3VpdGUgY2hlY2tzIGEgcmFuZ2Ugb2Yg
ZXZlbnRzLikKKworTm9uLWluZXJ0IGFuY2VzdG9yIGNvbnRhaW5lcgorYmFja2dyb3VuZE5vbi1p
bmVydCwgZGlzcGxhY2VkIGFuY2VzdG9yCitJbmVydCBjb250YWluZXIKK2ZvcmVncm91bmQKKwor
UEFTUyBlbGVtZW50c0Zyb21Qb2ludCByZXR1cm5zIGluZXJ0IGVsZW1lbnQKK0ZBSUwgVGVzdHMg
dGhhdCBhbnkgbW91c2UgZXZlbnQgb24gYSBub24taW5lcnQgZWxlbWVudCBpcyBjb3JyZWN0bHkg
dGFyZ2V0ZWQgdG8gdGhhdCBlbGVtZW50IHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlv
biB3aXRoIHZhbHVlOiAiZGlkIG5vdCBnZXQgbW91c2VvdmVyIG9uIGZvcmVncm91bmQiCitGQUlM
IFRlc3RzIHRoYXQgYW55IG1vdXNlIGV2ZW50IG9uIGFuIGluZXJ0IGVsZW1lbnQgaXMgdGFyZ2V0
ZWQgdG8gdGhlIG5lYXJlc3Qgbm9uLWluZXJ0IGFuY2VzdG9yIGF0IHRoZSBzYW1lIGNvb3JkaW5h
dGVzIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiAiZGlkIG5v
dCBnZXQgbW91c2VvdmVyIG9uIGFuY2VzdG9yQ29udGFpbmVyIgorRkFJTCBUZXN0cyB0aGF0IGFu
eSBwb2ludGVyIGV2ZW50IG9uIGEgbm9uLWluZXJ0IGVsZW1lbnQgaXMgY29ycmVjdGx5IHRhcmdl
dGVkIHRvIHRoYXQgZWxlbWVudCBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0
aCB2YWx1ZTogImRpZCBub3QgZ2V0IHBvaW50ZXJvdmVyIG9uIGZvcmVncm91bmQiCitGQUlMIFRl
c3RzIHRoYXQgYW55IHBvaW50ZXIgZXZlbnQgb24gYW4gaW5lcnQgZWxlbWVudCBpcyB0YXJnZXRl
ZCB0byB0aGUgbmVhcmVzdCBub24taW5lcnQgYW5jZXN0b3IgYXQgdGhlIHNhbWUgY29vcmRpbmF0
ZXMgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6ICJkaWQgbm90
IGdldCBwb2ludGVyb3ZlciBvbiBhbmNlc3RvckNvbnRhaW5lciIKKwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>436228</attachid>
            <date>2021-08-23 13:15:32 -0700</date>
            <delta_ts>2021-08-24 00:29:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-165279-20210823221530.patch</filename>
            <type>text/plain</type>
            <size>69716</size>
            <attacher name="Tim Nguyen (:ntim)">ntim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxNDM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDY0NmExZjc0Y2M5ODAxZTkxZmQwY2Y3
ZGY1NWNmNDViOTNiYzEzYWUuLjUzYTI1MGQxNDc0OTg5NmM1NmI3NTBkNDFlNGVhMTlhZjMzZDEz
YjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMDgtMjAgIFRpbSBOZ3V5ZW4gIDxudGltQGFw
cGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgaW5lcnQgYXR0cmlidXRlIGJlaGluZCBmZWF0
dXJlIGZsYWcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE2NTI3OQorCisgICAgICAgIFJldmlld2VkIGJ5IENocmlzIER1bWV6LgorCisgICAgICAgIEFk
ZCBydW50aW1lIEluZXJ0QXR0cmlidXRlRW5hYmxlZCBmZWF0dXJlIGZsYWcgZGlzYWJsZWQgYnkg
ZGVmYXVsdC4KKworICAgICAgICAqIFNjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNF
eHBlcmltZW50YWwueWFtbDoKKwogMjAyMS0wOC0yMSAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4
ZmllbGRAYXBwbGUuY29tPgogCiAgICAgICAgIG92ZXJ3cml0ZUNvZGVQb2ludCgpIGluIGNyZWF0
ZUFuZEZpbGxHbHlwaFBhZ2UoKSBpcyB3cm9uZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDVjNzE4ZTNiNmE5YWRm
ZDgwNWUzMWM5YjZkZmMwMDMxMDc1NDUyYTUuLjk1NjNjNDI1MGVkZGVkMjQ4NWRkMzczNGNiYmM2
YzI5Y2Q5OWIzNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAyMS0wOC0yMCAgVGlt
IE5ndXllbiAgPG50aW1AYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBpbmVydCBhdHRy
aWJ1dGUgYmVoaW5kIGZlYXR1cmUgZmxhZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTY1Mjc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMgRHVt
ZXouCisKKyAgICAgICAgVGVzdHM6IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5l
cnQvZnJhbWUvYnV0dG9uLmh0bWwKKyAgICAgICAgICAgICAgIGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtZG9lcy1ub3QtbWF0Y2gtZGlzYWJsZWQtc2VsZWN0b3Iu
dGVudGF0aXZlLmh0bWwKKyAgICAgICAgICAgICAgIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaW5lcnQvaW5lcnQtaW4tc2hhZG93LWRvbS50ZW50YXRpdmUuaHRtbAorICAgICAgICAg
ICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1pbmxpbmVz
LnRlbnRhdGl2ZS5odG1sCisgICAgICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2luZXJ0L2luZXJ0LWxhYmVsLWZvY3VzLnRlbnRhdGl2ZS5odG1sCisgICAgICAgICAg
ICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LW5vZGUtaXMt
dW5lZGl0YWJsZS50ZW50YXRpdmUuaHRtbAorICAgICAgICAgICAgICAgaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1ub2RlLWlzLXVuZm9jdXNhYmxlLnRlbnRhdGl2
ZS5odG1sCisgICAgICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2lu
ZXJ0L2luZXJ0LW5vZGUtaXMtdW5zZWxlY3RhYmxlLnRlbnRhdGl2ZS5odG1sCisgICAgICAgICAg
ICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LW9uLXNsb3Rz
LnRlbnRhdGl2ZS5odG1sCisgICAgICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2luZXJ0L2luZXJ0LXJldGFyZ2V0aW5nLWlmcmFtZS50ZW50YXRpdmUuaHRtbAorICAg
ICAgICAgICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1y
ZXRhcmdldGluZy50ZW50YXRpdmUuaHRtbAorCisgICAgICAgICogZG9tL05vZGUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Tm9kZTo6aXNJbmVydCBjb25zdCk6CisgICAgICAgICogaHRtbC9IVE1M
QXR0cmlidXRlTmFtZXMuaW46CisgICAgICAgICogaHRtbC9IVE1MRWxlbWVudC5pZGw6CisKIDIw
MjEtMDgtMjIgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAg
ICAgICAgIFtGcmVldHlwZV0gU2V0IG1heGltdW0gYWxsb3dlZCBmb250IHNpemUgZm9yIEZyZWV0
eXBlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVy
ZW5jZXNFeHBlcmltZW50YWwueWFtbCBiL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9X
ZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sCmluZGV4IDVmZGIyNDU0Yzk5NDQ0MGY3ZThk
Zjc1MjdmZmNlMTg3MDMzYjM5N2EuLjE4NWE1YWMwZjQ1NGM3NmMwMzQ3OTJhZDE4NTc2MWZjY2E2
OTQ5OTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVm
ZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sCisrKyBiL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJl
bmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sCkBAIC01MzQsNiArNTM0LDE4IEBA
IEluY3JlbWVudGFsUERGTG9hZGluZ0VuYWJsZWQ6CiAgICAgV2ViS2l0OgogICAgICAgZGVmYXVs
dDogV2ViS2l0OjpkZWZhdWx0SW5jcmVtZW50YWxQREZFbmFibGVkKCkKIAorSW5lcnRBdHRyaWJ1
dGVFbmFibGVkOgorICB0eXBlOiBib29sCisgIGh1bWFuUmVhZGFibGVOYW1lOiAiaW5lcnQgYXR0
cmlidXRlIgorICBodW1hblJlYWRhYmxlRGVzY3JpcHRpb246ICJFbmFibGUgaW5lcnQgYXR0cmli
dXRlIHN1cHBvcnQiCisgIGRlZmF1bHRWYWx1ZToKKyAgICBXZWJLaXRMZWdhY3k6CisgICAgICBk
ZWZhdWx0OiBmYWxzZQorICAgIFdlYktpdDoKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCisgICAgV2Vi
Q29yZToKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCisKICMgRklYTUU6IFRoaXMgaXMgb24gYnkgZGVm
YXVsdCBpbiBXZWJLaXQyLiBQZXJoYXBzIHdlIHNob3VsZCBjb25zaWRlciB0dXJuaW5nIGl0IG9u
IGZvciBXZWJLaXRMZWdhY3kgYXMgd2VsbC4KIEludGVyc2VjdGlvbk9ic2VydmVyRW5hYmxlZDoK
ICAgdHlwZTogYm9vbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCmluZGV4IDdlZTExMjY0Yzc3MjZmNDQ0ODI0Y2Y0
YWQ3NDljODEzODYzY2Q5NGEuLjA1OTMyYzIyZmZlODMxY2ZlZDc1YmI2NDE0ZTUwODhhNjYzMzZk
YTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vTm9kZS5jcHAKQEAgLTI2MzIsNiArMjYzMiwxNiBAQCBib29sIE5vZGU6Omlz
SW5lcnQoKSBjb25zdAogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCisgICAgaWYg
KGRvY3VtZW50KCkuc2V0dGluZ3MoKS5pbmVydEF0dHJpYnV0ZUVuYWJsZWQoKSkgeworICAgICAg
ICBhdXRvKiBlbGVtZW50ID0gaXM8RWxlbWVudD4oKnRoaXMpID8gZG93bmNhc3Q8RWxlbWVudD4o
dGhpcykgOiBwYXJlbnRFbGVtZW50KCk7CisgICAgICAgIGlmIChlbGVtZW50KSB7CisgICAgICAg
ICAgICBmb3IgKGF1dG8mIGFuY2VzdG9yIDogbGluZWFnZU9mVHlwZTxFbGVtZW50PigqZWxlbWVu
dCkpIHsKKyAgICAgICAgICAgICAgICBpZiAoaXM8SFRNTEVsZW1lbnQ+KGFuY2VzdG9yKSAmJiBh
bmNlc3Rvci5oYXNBdHRyaWJ1dGUoSFRNTE5hbWVzOjppbmVydEF0dHIpKQorICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKwog
ICAgIGlmICghZG9jdW1lbnQoKS5mcmFtZSgpIHx8ICFkb2N1bWVudCgpLmZyYW1lKCktPm93bmVy
RWxlbWVudCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MQXR0cmlidXRlTmFtZXMuaW4KaW5kZXggNGZkY2I5ZDMyMThlNzJiODFjMzQ1ZGI1NzFmZWJi
MWJkZDlkYzYxNC4uNjI2ZmU0OWRmMmZmZDQ3OGMyZmUwNGY0MjA3ZGJkNGRmZDdjNjliYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4KKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4KQEAgLTE1Nyw2ICsxNTcs
NyBAQCBpbWFnZXNpemVzCiBpbWFnZXNyY3NldAogaW5jcmVtZW50YWwKIGluZGV0ZXJtaW5hdGUK
K2luZXJ0CiBpbnB1dG1vZGUKIGludGVncml0eQogaXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVu
dC5jcHAKaW5kZXggMDZhYjVjZTdiMjFjOTc5ODAzMDI5YmUzMmZjZDc5YmNiYmRmM2U4Yi4uZTI4
MDUwNjc3MWFlZGE5Mjc3OGYyNWY2ODNkMjFiMzEzODcxMjk5OCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MRWxlbWVudC5jcHAKQEAgLTQ4MSw3ICs0ODEsNyBAQCB2b2lkIEhUTUxFbGVtZW50OjpwYXJz
ZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2
YQogICAgICAgICAgICAgc2V0VGFiSW5kZXhFeHBsaWNpdGx5KHN0ZDo6bnVsbG9wdCk7CiAgICAg
ICAgIHJldHVybjsKICAgICB9Ci0gICAgCisKICAgICBpZiAobmFtZSA9PSBpbnB1dG1vZGVBdHRy
KSB7CiAgICAgICAgIGF1dG8mIGRvY3VtZW50ID0gdGhpcy0+ZG9jdW1lbnQoKTsKICAgICAgICAg
aWYgKHRoaXMgPT0gZG9jdW1lbnQuZm9jdXNlZEVsZW1lbnQoKSkgewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxFbGVtZW50LmlkbAppbmRleCAzNGUzOWMyN2UyYWFlODJkNDMyNTk5YTFlYzIyNTg1YWRiYWE0
MjcxLi5mYWNhYzlmMTY3ZmZlMGViMzQ2OGVmYjk2ODNiMDE3MDU1ZjUxYTMxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxFbGVtZW50LmlkbApAQCAtNDcsNiArNDcsOSBAQAogICAgIC8vIEZJWE1FOiBJ
bXBsZW1lbnQgJ2F0dGFjaEludGVybmFscycuCiAgICAgLy8gRWxlbWVudEludGVybmFscyBhdHRh
Y2hJbnRlcm5hbHMoKTsKIAorICAgIC8vIEV4cGVyaW1lbnRhbDogaHR0cHM6Ly9naXRodWIuY29t
L1dJQ0cvaW5lcnQvYmxvYi9tYXN0ZXIvUkVBRE1FLm1kCisgICAgW0NFUmVhY3Rpb25zLCBSZWZs
ZWN0LCBFbmFibGVkQnlTZXR0aW5nPUluZXJ0QXR0cmlidXRlXSBhdHRyaWJ1dGUgYm9vbGVhbiBp
bmVydDsKKwogICAgIC8vIE5vbi1zdGFuZGFyZDogSUUgZXh0ZW5zaW9uLiBNYXkgZ2V0IGFkZGVk
IHRvIHRoZSBzcGVjaWZpY2F0aW9uIChodHRwczovL2dpdGh1Yi5jb20vd2hhdHdnL2h0bWwvaXNz
dWVzLzY2OCkuCiAgICAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5
U3RyaW5nXSBET01TdHJpbmcgb3V0ZXJUZXh0OwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZDdjNThhNjE1Mzg0YThiMjY3
YmVkMjgzMmEwZDNiMmU4ZGM0NmU2OS4uMTc2MTIyMDNkODdhYjM3NGY0MzIxZjA4NjEyZGUyNDIy
NGU2OWI5ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIxLTA4LTIwICBUaW0gTmd1eWVuICA8
bnRpbUBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IGluZXJ0IGF0dHJpYnV0ZSBiZWhp
bmQgZmVhdHVyZSBmbGFnCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNjUyNzkKKworICAgICAgICBSZXZpZXdlZCBieSBDaHJpcyBEdW1lei4KKworICAg
ICAgICBDcmVhdGUgaU9TIGJhc2VsaW5lcy4KKworICAgICAgICAqIHBsYXRmb3JtL2lvcy13azIv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1ub2RlLWlzLXVuZWRp
dGFibGUudGVudGF0aXZlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0v
aW9zLXdrMi9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LXJldGFy
Z2V0aW5nLWlmcmFtZS50ZW50YXRpdmUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9pb3Mtd2syL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5l
cnQtcmV0YXJnZXRpbmcudGVudGF0aXZlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisKIDIwMjEtMDgt
MjIgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBbSlNDXSBS
ZW1vdmUgYWxyZWFkeS1zaGlwcGVkIHdhc20gb3B0aW9uIGZsYWdzCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L0NoYW5nZUxvZwppbmRleCA1YjY3MTk2OWFkMTIxYmNhMTU3ZDdiYmZmOThhMmRkZTUwZjU5ZDNk
Li45Nzk1NTRmODYyOTRkZTMxM2E2N2E3YzUxZWVlNTQ3NGI4NTRjOTM3IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzOSBAQAorMjAyMS0wOC0yMCAgVGltIE5ndXll
biAgPG50aW1AYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBpbmVydCBhdHRyaWJ1dGUg
YmVoaW5kIGZlYXR1cmUgZmxhZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTY1Mjc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMgRHVtZXouCisK
KyAgICAgICAgSW1wb3J0IGluZXJ0LyBXUFQgZGlyZWN0b3J5IHVzaW5nIGBpbXBvcnQtdzNjLXRl
c3RzIC10IHdlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydGAuCisgICAgICAgIFdQVCByZXZpc2lvbjog
aHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvY29tbWl0L2YwMmUzOGQ3
YTY3OTk5NjgzZDA1NTc5ZjYyYjMzOTQzMGM2MWU0ZWMKKworICAgICAgICAqIHJlc291cmNlcy9p
bXBvcnQtZXhwZWN0YXRpb25zLmpzb246CisgICAgICAgICogcmVzb3VyY2VzL3Jlc291cmNlLWZp
bGVzLmpzb246CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2ZyYW1lL2J1dHRv
bi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvZnJhbWUv
dzNjLWltcG9ydC5sb2c6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9pbmVy
dC9pbmVydC1kb2VzLW5vdC1tYXRjaC1kaXNhYmxlZC1zZWxlY3Rvci50ZW50YXRpdmUtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQt
ZG9lcy1ub3QtbWF0Y2gtZGlzYWJsZWQtc2VsZWN0b3IudGVudGF0aXZlLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1pbi1zaGFkb3ctZG9tLnRl
bnRhdGl2ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0
cy9pbmVydC9pbmVydC1pbi1zaGFkb3ctZG9tLnRlbnRhdGl2ZS5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtaW5saW5lcy50ZW50YXRpdmUtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5l
cnQtaW5saW5lcy50ZW50YXRpdmUuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL2luZXJ0L2luZXJ0LWxhYmVsLWZvY3VzLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1sYWJlbC1mb2N1
cy50ZW50YXRpdmUuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2lu
ZXJ0L2luZXJ0LW5vZGUtaXMtdW5lZGl0YWJsZS50ZW50YXRpdmUtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtbm9kZS1pcy11bmVk
aXRhYmxlLnRlbnRhdGl2ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVz
dHMvaW5lcnQvaW5lcnQtbm9kZS1pcy11bmZvY3VzYWJsZS50ZW50YXRpdmUtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtbm9kZS1p
cy11bmZvY3VzYWJsZS50ZW50YXRpdmUuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL2luZXJ0L2luZXJ0LW5vZGUtaXMtdW5zZWxlY3RhYmxlLnRlbnRhdGl2ZS1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVy
dC1ub2RlLWlzLXVuc2VsZWN0YWJsZS50ZW50YXRpdmUuaHRtbDogQWRkZWQuCisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LW9uLXNsb3RzLnRlbnRhdGl2ZS1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1v
bi1zbG90cy50ZW50YXRpdmUuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRl
c3RzL2luZXJ0L2luZXJ0LXJldGFyZ2V0aW5nLWlmcmFtZS50ZW50YXRpdmUtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtcmV0YXJn
ZXRpbmctaWZyYW1lLnRlbnRhdGl2ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvaW5lcnQvaW5lcnQtcmV0YXJnZXRpbmcudGVudGF0aXZlLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LXJldGFyZ2V0
aW5nLnRlbnRhdGl2ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
aW5lcnQvdzNjLWltcG9ydC5sb2c6IEFkZGVkLgorCiAyMDIxLTA4LTIyICBNeWxlcyBDLiBNYXhm
aWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKICAgICAgICAgQ29udHJvbCBjaGFyYWN0ZXJz
IChVbmljb2RlIGNhdGVnb3J5IENjKSBzaG91bGQgYmUgcmVuZGVyZWQgdmlzaWJseQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3Jlc291cmNlcy9pbXBvcnQtZXhwZWN0YXRp
b25zLmpzb24gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvcmVzb3VyY2VzL2ltcG9ydC1leHBl
Y3RhdGlvbnMuanNvbgppbmRleCA1NzNhMDZjMGQ5Mjg4MDAyNDkyYzdhYmI3NDM3NTEzMDgzNzdl
YjQzLi5mODkyYjdjMmRjYTMyNTBlM2QyYTdiZDU3ZjI4NmMyZWJjNGJjNjU2IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvcmVzb3VyY2VzL2ltcG9ydC1leHBlY3RhdGlvbnMu
anNvbgorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvcmVzb3VyY2VzL2ltcG9ydC1leHBl
Y3RhdGlvbnMuanNvbgpAQCAtMzM0LDYgKzMzNCw3IEBACiAgICAgIndlYi1wbGF0Zm9ybS10ZXN0
cy9pbWFnZS1kZWNvZGVzIjogInNraXAiLCAKICAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2ltYWdl
Yml0bWFwLXJlbmRlcmluZ2NvbnRleHQiOiAiaW1wb3J0IiwgCiAgICAgIndlYi1wbGF0Zm9ybS10
ZXN0cy9pbWFnZXMiOiAiaW1wb3J0IiwgCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydCI6
ICJpbXBvcnQiLCAKICAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2luZnJhc3RydWN0dXJlIjogImlt
cG9ydCIsIAogICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaW5uZXJUZXh0IjogImltcG9ydCIsIAog
ICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaW5wdXQtZXZlbnRzIjogInNraXAiLCAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9yZXNvdXJjZXMvcmVzb3VyY2UtZmlsZXMuanNv
biBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9yZXNvdXJjZXMvcmVzb3VyY2UtZmlsZXMuanNv
bgppbmRleCA4ZjY3NDA1M2IyNGE3OGIxOTU0OTkwY2U2NmZkYWI0OTFhMTU4ZjliLi5iMTc4ZTBh
ZDIwODU0Zjc3Yzg1MjQzYjE4ODJkOWM0MDE2ZDRhMWQ5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvcmVzb3VyY2VzL3Jlc291cmNlLWZpbGVzLmpzb24KKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3Jlc291cmNlcy9yZXNvdXJjZS1maWxlcy5qc29uCkBAIC0yNzcy
LDYgKzI3NzIsNyBAQAogICAgICAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvd2ViYXBwYXBp
cy9zY3JpcHRpbmcvZXZlbnRzL29uZXJyb3JldmVudGhhbmRsZXItZnJhbWUuaHRtbCIsCiAgICAg
ICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC93ZWJhcHBhcGlzL3VzZXItcHJvbXB0cy9jYW5u
b3Qtc2hvdy1zaW1wbGUtZGlhbG9ncy9zdXBwb3J0L2NvbmZpcm0uaHRtbCIsCiAgICAgICAgICJ3
ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC93ZWJhcHBhcGlzL3VzZXItcHJvbXB0cy9jYW5ub3Qtc2hv
dy1zaW1wbGUtZGlhbG9ncy9zdXBwb3J0L3Byb21wdC5odG1sIiwKKyAgICAgICAgIndlYi1wbGF0
Zm9ybS10ZXN0cy9pbmVydC9mcmFtZS9idXR0b24uaHRtbCIsCiAgICAgICAgICJ3ZWItcGxhdGZv
cm0tdGVzdHMvaW5mcmFzdHJ1Y3R1cmUvYXNzdW1wdGlvbnMvYWhlbS1ub3RyZWYuaHRtbCIsCiAg
ICAgICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaW5mcmFzdHJ1Y3R1cmUvcmVmdGVzdC9yZWQuaHRt
bCIsCiAgICAgICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaW50ZXJzZWN0aW9uLW9ic2VydmVyL29i
c2VydmVyLWluLWlmcmFtZS5odG1sIiwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvZnJhbWUvYnV0dG9uLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2ZyYW1lL2J1dHRvbi5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjU4NjdjNzU4MTQyYzY2NTIzNjJhMjNmMTk1MzNhOGQ4NmZlMjk2NDgK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2luZXJ0L2ZyYW1lL2J1dHRvbi5odG1sCkBAIC0wLDAgKzEsMzYgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KK2JvZHkgeworICBvdmVyZmxvdzogaGlk
ZGVuOworfQorCitidXR0b24jYmFja2dyb3VuZCB7CisgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAg
dG9wOiAwOworICBsZWZ0OiAwOworICB3aWR0aDogMTUwcHg7CisgIGhlaWdodDogNDBweDsKKyAg
bGluZS1oZWlnaHQ6IDUzcHg7Cit9CisKK2J1dHRvbi5jbGlja2VkIHsKKyAgYmFja2dyb3VuZC1j
b2xvcjogcmVkOworfQorCitidXR0b24uY2xpY2tlZDo6YWZ0ZXIgeworICBjb250ZW50OiAiIChj
bGlja2VkKSI7Cit9CisKKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgPGJ1dHRvbiBpZD0i
YmFja2dyb3VuZCI+YmFja2dyb3VuZDwvYnV0dG9uPgorPHNjcmlwdD4KK2RvY3VtZW50LmJvZHku
YWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoZSkgPT4geworICBlLnRhcmdldC5jbGFzc0xpc3Qu
YWRkKCdjbGlja2VkJyk7Cit9KTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9m
cmFtZS93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaW5lcnQvZnJhbWUvdzNjLWltcG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTQ1MWIwOGI3
YjNiMmExMjYzY2YwYjAyZTc4OGUwNzQxYzAwMjBhNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvZnJhbWUvdzNjLWlt
cG9ydC5sb2cKQEAgLTAsMCArMSwxNyBAQAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdl
cmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNl
IHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVz
dCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRl
c3RzL3dwdAorCitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGlu
IFdlYktpdCB0byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUu
CisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVz
OgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25l
CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9mcmFtZS9idXR0b24uaHRtbApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVy
dC1kb2VzLW5vdC1tYXRjaC1kaXNhYmxlZC1zZWxlY3Rvci50ZW50YXRpdmUtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVy
dC1kb2VzLW5vdC1tYXRjaC1kaXNhYmxlZC1zZWxlY3Rvci50ZW50YXRpdmUtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmE5ZDYzOWUxOGI3OGNkYzE1ZTM2YzhhMzhiMTAwY2U0MTQxMjFiN2MKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2luZXJ0L2luZXJ0LWRvZXMtbm90LW1hdGNoLWRpc2FibGVkLXNlbGVjdG9yLnRlbnRhdGl2
ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitUaGUgdGVzdCBwYXNzZXMgaWYgdGhpcyBp
cyBpbiBncmVlbi4KKworUEFTUyBUZXN0cyB0aGF0IGluZXJ0IGVsZW1lbnRzIGRvIG5vdCBtYXRj
aCB0aGUgOmRpc2FibGVkIHNlbGVjdG9yLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LWRvZXMtbm90LW1hdGNoLWRp
c2FibGVkLXNlbGVjdG9yLnRlbnRhdGl2ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1kb2VzLW5vdC1tYXRjaC1kaXNhYmxlZC1z
ZWxlY3Rvci50ZW50YXRpdmUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NGI4YWMzZjdkZDVjMzQ0N2JmNDdm
ZDczMmZhZGU5MjIwNDk3YzkzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1kb2VzLW5vdC1tYXRjaC1kaXNh
YmxlZC1zZWxlY3Rvci50ZW50YXRpdmUuaHRtbApAQCAtMCwwICsxLDI3IEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVz
cy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9y
dC5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+CitidXR0b24geworICAgIGNvbG9yOiBncmVlbjsKK30K
KworYnV0dG9uOmRpc2FibGVkIHsKKyAgICBjb2xvcjogcmVkOworfQorCis8L3N0eWxlPgorPC9o
ZWFkPgorPGJvZHkgc3R5bGU9ImNvbG9yOiBncmVlbiI+Cis8YnV0dG9uIGluZXJ0PlRoZSB0ZXN0
IHBhc3NlcyBpZiB0aGlzIGlzIGluIGdyZWVuLjwvYnV0dG9uPgorPHNjcmlwdD4KK3Rlc3QoZnVu
Y3Rpb24oKSB7CisgICAgYnV0dG9uID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignYnV0dG9uJyk7
CisgICAgY29sb3IgPSBkb2N1bWVudC5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlKGJ1dHRv
bikuZ2V0UHJvcGVydHlWYWx1ZSgnY29sb3InKTsKKyAgICBhc3NlcnRfZmFsc2UoYnV0dG9uLm1h
dGNoZXMoJzpkaXNhYmxlZCcpKTsKK30sICdUZXN0cyB0aGF0IGluZXJ0IGVsZW1lbnRzIGRvIG5v
dCBtYXRjaCB0aGUgOmRpc2FibGVkIHNlbGVjdG9yLicpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2luZXJ0L2luZXJ0LWluLXNoYWRvdy1kb20udGVudGF0aXZlLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQt
aW4tc2hhZG93LWRvbS50ZW50YXRpdmUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNhMjViNzUx
ZDBjODE2ZTExOGZhZTE0ZGIxODc5MmExNWIyOTVlODMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LWluLXNo
YWRvdy1kb20udGVudGF0aXZlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK0J1dHRvbnMg
MSBhbmQgMiBzaG91bGQgYmUgaW5lcnQuCitCdXR0b24gMSAoaW5lcnQpCisKK0ZBSUwgaW5lcnQg
b24gU2hhZG93IGhvc3QgYWZmZWN0cyBjb250ZW50IGluIHNoYWRvdyBhc3NlcnRfZXF1YWxzOiBl
eHBlY3RlZCBmYWxzZSBidXQgZ290IHRydWUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1pbi1zaGFkb3ctZG9tLnRl
bnRhdGl2ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9pbmVydC9pbmVydC1pbi1zaGFkb3ctZG9tLnRlbnRhdGl2ZS5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVj
ODI1ZGJmZGM5ODU0NThjYzczOTNkNThiMmVmYzJjZTA3OTYzNjQKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0
LWluLXNoYWRvdy1kb20udGVudGF0aXZlLmh0bWwKQEAgLTAsMCArMSw1NSBAQAorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04IiAvPgorICAg
IDx0aXRsZT5pbmVydCBvbiBTaGFkb3cgaG9zdCBhZmZlY3RzIGNvbnRlbnQgaW4gc2hhZG93PC90
aXRsZT4KKyAgICA8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkFsaWNlIEJveGhhbGwiIGhyZWY9
ImFib3hoYWxsQGNocm9taXVtLm9yZyI+CisgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVz
dGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorICA8ZGl2PkJ1dHRv
bnMgMSBhbmQgMiBzaG91bGQgYmUgaW5lcnQuPC9kaXY+CisgIDxkaXYgaWQ9InNoYWRvdy1ob3N0
IiBpbmVydD4KKyAgICA8YnV0dG9uIGlkPSJidXR0b24tMSI+QnV0dG9uIDEgKGluZXJ0KTwvYnV0
dG9uPgorICA8L2Rpdj4KKyAgPHNjcmlwdD4KKyAgICAvKgorICAgIEV2ZW50dWFsIGZsYXR0ZW5l
ZCB0cmVlIHN0cnVjdHVyZToKKworICAgIDxkaXYgaWQ9InNoYWRvdy1ob3N0IiBpbmVydD4KKyAg
ICAgICNzaGFkb3ctcm9vdCAob3BlbikKKyAgICAgIHwgPHNsb3Q+CisgICAgICA6ICAgPGJ1dHRv
biBpZD0iYnV0dG9uLTEiPkJ1dHRvbiAxIChpbmVydCk8L2J1dHRvbj4gPCEtLSBzbG90dGVkIC0t
PgorICAgICAgfCA8L3Nsb3Q+CisgICAgICB8IDxidXR0b24gaWQ9ImJ1dHRvbi0yIj5CdXR0b24g
MiAoaW5lcnQpPC9idXR0b24+ICAgPCEtLSBpbiBzaGFkb3cgLS0+CisgICAgPC9kaXY+CisgICAg
Ki8KKworICAgIGNvbnN0IHNoYWRvd0hvc3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2hh
ZG93LWhvc3QiKTsKKyAgICBjb25zdCBzaGFkb3dSb290ID0gc2hhZG93SG9zdC5hdHRhY2hTaGFk
b3coeyBtb2RlOiAib3BlbiIgfSk7CisKKyAgICAvLyBCdXR0b24gMSB3aWxsIGJlIHNsb3R0ZWQK
KyAgICBjb25zdCBzbG90ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2xvdCIpOworICAgIHNo
YWRvd1Jvb3QuYXBwZW5kQ2hpbGQoc2xvdCk7CisKKyAgICBjb25zdCBidXR0b24yID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgiYnV0dG9uIik7CisgICAgYnV0dG9uMi5pZCA9ICJidXR0b24tMiI7
CisgICAgYnV0dG9uMi50ZXh0Q29udGVudCA9ICJCdXR0b24gMiAoaW5lcnQpIjsKKyAgICBzaGFk
b3dSb290LmFwcGVuZENoaWxkKGJ1dHRvbjIpOworCisgICAgZnVuY3Rpb24gdGVzdENhbkZvY3Vz
KHNlbGVjdG9yLCBjYW5Gb2N1cywgb3B0X2NvbnRleHQpIHsKKyAgICAgIGxldCBjb250ZXh0ID0g
b3B0X2NvbnRleHQgfHwgZG9jdW1lbnQ7CisgICAgICBjb25zdCBlbGVtZW50ID0gY29udGV4dC5x
dWVyeVNlbGVjdG9yKHNlbGVjdG9yKTsKKyAgICAgIGxldCBmb2N1c2VkRWxlbWVudCA9IG51bGw7
CisgICAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwgZnVuY3Rpb24oKSB7IGZv
Y3VzZWRFbGVtZW50ID0gZWxlbWVudDsgfSwgZmFsc2UpOworICAgICAgZWxlbWVudC5mb2N1cygp
OworICAgICAgYXNzZXJ0X2VxdWFscygoZm9jdXNlZEVsZW1lbnQgPT09IGVsZW1lbnQpLCBjYW5G
b2N1cyk7CisgICAgfQorCisgICAgdGVzdCgoKSA9PiB7CisgICAgICB0ZXN0Q2FuRm9jdXMoIiNi
dXR0b24tMSIsIGZhbHNlKTsKKyAgICAgIHRlc3RDYW5Gb2N1cygiI2J1dHRvbi0yIiwgZmFsc2Us
IHNoYWRvd1Jvb3QpOworICAgIH0sICJpbmVydCBvbiBTaGFkb3cgaG9zdCBhZmZlY3RzIGNvbnRl
bnQgaW4gc2hhZG93Iik7CisgIDwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVy
dC1pbmxpbmVzLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LWlubGluZXMudGVudGF0aXZlLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4zY2Q3MDZjOTIwNmNiYzVhNjA2MThhYTM3MjM4NmMxMDNkYzE4
MTQ1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1pbmxpbmVzLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSw2IEBACitDbGljayBtZSBDbGljayBtZQorQ2xpY2sgbWUKK0NsaWNrIG1lCisKK0ZB
SUwgVGVzdHMgdGhhdCBpbmVydCBpbmxpbmVzIGRvIG5vdCByZWNlaXZlIG1vdXNlIGV2ZW50cy4g
VG8gdGVzdCBtYW51YWxseSwgY2xpY2sgb24gYWxsIHRoZSAiQ2xpY2sgbWUicy4gVGhlIHRlc3Qg
ZmFpbHMgaWYgeW91IHNlZSByZWQuIGFzc2VydF9mYWxzZTogbm8gZXZlbnQgc2hvdWxkIGJlIGZp
cmVkIG9uIGEgZXhwZWN0ZWQgZmFsc2UgZ290IHRydWUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1pbmxpbmVzLnRl
bnRhdGl2ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9pbmVydC9pbmVydC1pbmxpbmVzLnRlbnRhdGl2ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIwNTZjNjQ5
NWQyYzU0NzMzYmVlNmFiNzk2MzMyYmE4OWYwMWIzNzkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LWlubGlu
ZXMudGVudGF0aXZlLmh0bWwKQEAgLTAsMCArMSw1NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRt
bD4KKyAgPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0idXRmLTgiIC8+CisgICAgPHRpdGxlPmlu
ZXJ0IGlubGluZXM8L3RpdGxlPgorICAgIDxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iQWxpY2Ug
Qm94aGFsbCIgaHJlZj0iYWJveGhhbGxAY2hyb21pdW0ub3JnIj4KKyAgICA8c2NyaXB0IHNyYz0i
L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3Jj
PSIvcmVzb3VyY2VzL3Rlc3Rkcml2ZXIuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIv
cmVzb3VyY2VzL3Rlc3Rkcml2ZXItdmVuZG9yLmpzIj48L3NjcmlwdD4KKyAgPC9oZWFkPgorPGJv
ZHk+Cis8YSBpbmVydCBpZD0iYSIgaHJlZj0iamF2YXNjcmlwdDp2b2lkKDApIj5DbGljayBtZTwv
YT4KKzxidXR0b24gaW5lcnQgaWQ9ImJ1dHRvbiI+Q2xpY2sgbWU8L2J1dHRvbj4KKzxkaXYgaW5l
cnQgaWQ9ImRpdiIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IGJsdWU7IHdpZHRoOiA1MHB4OyBo
ZWlnaHQ6IDUwcHgiPkNsaWNrIG1lPC9kaXY+Cis8c3BhbiBpbmVydCBpZD0ic3BhbiI+Q2xpY2sg
bWU8L3NwYW4+Cis8c2NyaXB0PgorZnVuY3Rpb24gZXZlbnRGaXJlZE9uSW5lcnRFbGVtZW50KGUp
IHsKKyAgICBlLnRhcmdldC5zdHlsZS5iYWNrZ3JvdW5kID0gJ3JlZCc7CisgICAgaW5lcnRFbGVt
ZW50RmlyZWRPbiA9IHRydWU7Cit9CisKK2luZXJ0RWxlbWVudHMgPSBbJ2EnLCAnYnV0dG9uJywg
J2RpdicsICdzcGFuJ10KK2luZXJ0RWxlbWVudHMuZm9yRWFjaChmdW5jdGlvbihpZCkgeworICAg
IGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCk7CisgICAgZWxlbWVudC5hZGRF
dmVudExpc3RlbmVyKCdjbGljaycsIGV2ZW50RmlyZWRPbkluZXJ0RWxlbWVudCk7CisgICAgZWxl
bWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCBldmVudEZpcmVkT25JbmVydEVsZW1l
bnQpOworfSk7CisKK2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24o
ZSkgeworICAgIGRvY3VtZW50LmZpcmVkT24gPSB0cnVlOworfSk7CisKK3Byb21pc2VfdGVzdChh
c3luYyAoKSA9PiB7CisgICAgZm9yIChsZXQgaWQgb2YgaW5lcnRFbGVtZW50cykgeworICAgICAg
ICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKTsKKyAgICAgICAgaW5l
cnRFbGVtZW50RmlyZWRPbiA9IGZhbHNlOworICAgICAgICBkb2N1bWVudC5maXJlZE9uID0gZmFs
c2U7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgYXdhaXQgdGVzdF9kcml2ZXIuY2xpY2soZWxl
bWVudCk7CisgICAgICAgICAgYXNzZXJ0X2ZhbHNlKGluZXJ0RWxlbWVudEZpcmVkT24sICdubyBl
dmVudCBzaG91bGQgYmUgZmlyZWQgb24gJyArIGlkKTsKKyAgICAgICAgICBhc3NlcnRfdHJ1ZShk
b2N1bWVudC5maXJlZE9uLCAnZXZlbnQgc2hvdWxkIGJlIGZpcmVkIG9uIGRvY3VtZW50IGluc3Rl
YWQgb2YgJyArIGlkKTsKKyAgICAgICAgfSBjYXRjaCAoZSkgeworICAgICAgICAgIC8vIHRlc3Qg
ZHJpdmVyIGRldGVjdHMgaW5lcnQgZWxlbWVudHMgYXMgdW5jbGlja2FibGUKKyAgICAgICAgICAv
LyBhbmQgdGhyb3dzIGFuIGVycm9yCisgICAgICAgICAgYXNzZXJ0X2ZhbHNlKGluZXJ0RWxlbWVu
dEZpcmVkT24sICdubyBldmVudCBzaG91bGQgYmUgZmlyZWQgb24gJyArIGlkKTsKKyAgICAgICAg
fQorICAgIH0KK30sICdUZXN0cyB0aGF0IGluZXJ0IGlubGluZXMgZG8gbm90IHJlY2VpdmUgbW91
c2UgZXZlbnRzLiAnICsKKyAgICdUbyB0ZXN0IG1hbnVhbGx5LCBjbGljayBvbiBhbGwgdGhlICJD
bGljayBtZSJzLiBUaGUgdGVzdCAnICsKKyAgICdmYWlscyBpZiB5b3Ugc2VlIHJlZC4nKTsKKwor
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LWxhYmVsLWZvY3VzLnRlbnRh
dGl2ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2luZXJ0L2luZXJ0LWxhYmVsLWZvY3VzLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYWQ1YWIwZWE0ZmE0NDc1NDUyNDk3YTBhNmU5ZTNhZWYyOTNhMzE4YQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aW5lcnQvaW5lcnQtbGFiZWwtZm9jdXMudGVudGF0aXZlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDcgQEAKK0xhYmVsIGZvciBTdWJtaXQgICAgIExhYmVsIGZvciBpbnB1dCBpbiBpbmVydCBzdWJ0
cmVlCisKKworUEFTUyBDYWxsaW5nIGZvY3VzKCkgb24gYW4gaW5lcnQgbGFiZWwgc2hvdWxkIHN0
aWxsIHNlbmQgZm9jdXMgdG8gaXRzIHRhcmdldC4KK1BBU1MgQ2xpY2tpbmcgb24gYW4gaW5lcnQg
bGFiZWwgc2hvdWxkIHNlbmQgZm9jdXMgdG8gZG9jdW1lbnQuYm9keS4KK1BBU1MgQ2FsbGluZyBm
b2N1cygpIG9uIGEgbGFiZWwgZm9yIGEgY29udHJvbCB3aGljaCBpcyBpbiBhbiBpbmVydCBzdWJ0
cmVlIHNob3VsZCBoYXZlIG5vIGVmZmVjdC4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1sYWJlbC1mb2N1cy50ZW50
YXRpdmUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aW5lcnQvaW5lcnQtbGFiZWwtZm9jdXMudGVudGF0aXZlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGJiZTFl
Y2ExNWM3ZDhmMmY5ZmQ1ZWE0OGMzM2NkMGE1ZDUwOThlMAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtbGFi
ZWwtZm9jdXMudGVudGF0aXZlLmh0bWwKQEAgLTAsMCArMSw1MyBAQAorPCFET0NUWVBFIGh0bWw+
Cis8aHRtbD4KKyAgPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0idXRmLTgiIC8+CisgICAgPHRp
dGxlPmluZXJ0IHdpdGggbGFiZWwvZm9yPC90aXRsZT4KKyAgICA8bGluayByZWw9ImF1dGhvciIg
dGl0bGU9IkFsaWNlIEJveGhhbGwiIGhyZWY9ImFib3hoYWxsQGNocm9taXVtLm9yZyI+CisgICAg
PHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgIDxz
Y3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAg
ICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0ZHJpdmVyLmpzIj48L3NjcmlwdD4KKyAgICA8
c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0ZHJpdmVyLXZlbmRvci5qcyI+PC9zY3JpcHQ+Cisg
IDwvaGVhZD4KKyAgPGJvZHk+CisgICAgPGxhYmVsIGluZXJ0IGlkPSJmb3Itc3VibWl0IiBmb3I9
InN1Ym1pdCI+TGFiZWwgZm9yIFN1Ym1pdDwvbGFiZWw+CisgICAgPGlucHV0IGlkPSJ0ZXh0IiB0
eXBlPSJ0ZXh0Ij4KKyAgICA8aW5wdXQgaWQ9InN1Ym1pdCIgdHlwZT0ic3VibWl0Ij4KKworICAg
IDxsYWJlbCBpZD0iZm9yLWlucHV0LWluLWluZXJ0LXN1YnRyZWUiCisgICAgICAgICAgIGZvcj0i
aW5wdXQtaW4taW5lcnQtc3VidHJlZSI+TGFiZWwgZm9yIGlucHV0IGluIGluZXJ0IHN1YnRyZWU8
L2xhYmVsPgorICAgIDxkaXYgaW5lcnQ+CisgICAgICA8aW5wdXQgaWQ9ImlucHV0LWluLWluZXJ0
LXN1YnRyZWUiPjwvaW5wdXQ+CisgICAgPC9kaXY+CisKKyAgICA8c2NyaXB0PgorICAgICAgdGVz
dCgoKSA9PiB7CisgICAgICAgIGxhYmVsID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI2Zvci1z
dWJtaXQnKTsKKyAgICAgICAgbGFiZWwuZm9jdXMoKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhk
b2N1bWVudC5hY3RpdmVFbGVtZW50LCBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjc3VibWl0Jykp
OworICAgICAgfSwgJ0NhbGxpbmcgZm9jdXMoKSBvbiBhbiBpbmVydCBsYWJlbCBzaG91bGQgc3Rp
bGwgc2VuZCBmb2N1cyB0byBpdHMgdGFyZ2V0LicpOworCisgICAgICBwcm9taXNlX3Rlc3QoYXN5
bmMgKCkgPT4geworICAgICAgICB0ZXh0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3RleHQn
KTsKKyAgICAgICAgdGV4dC5mb2N1cygpOworICAgICAgICBsYWJlbCA9IGRvY3VtZW50LnF1ZXJ5
U2VsZWN0b3IoJyNmb3Itc3VibWl0Jyk7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgYXdhaXQg
dGVzdF9kcml2ZXIuY2xpY2sobGFiZWwpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMoZG9jdW1l
bnQuYWN0aXZlRWxlbWVudCwgZG9jdW1lbnQuYm9keSk7CisgICAgICAgIH0gY2F0Y2ggKGUpIHsK
KyAgICAgICAgICAvLyB0ZXN0IGRyaXZlciBkZXRlY3RzIGluZXJ0IGVsZW1lbnRzIGFzIHVuY2xp
Y2thYmxlCisgICAgICAgICAgLy8gYW5kIHRocm93cyBhbiBlcnJvcgorICAgICAgICB9CisgICAg
ICB9LCAnQ2xpY2tpbmcgb24gYW4gaW5lcnQgbGFiZWwgc2hvdWxkIHNlbmQgZm9jdXMgdG8gZG9j
dW1lbnQuYm9keS4nKTsKKworICAgICAgdGVzdCgoKSA9PiB7CisgICAgICAgIHRleHQgPSBkb2N1
bWVudC5xdWVyeVNlbGVjdG9yKCcjdGV4dCcpOworICAgICAgICB0ZXh0LmZvY3VzKCk7CisKKyAg
ICAgICAgbGFiZWwgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjZm9yLWlucHV0LWluLWluZXJ0
LXN1YnRyZWUnKTsKKyAgICAgICAgbGFiZWwuZm9jdXMoKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFs
cyhkb2N1bWVudC5hY3RpdmVFbGVtZW50LCB0ZXh0KTsKKyAgICAgIH0sICdDYWxsaW5nIGZvY3Vz
KCkgb24gYSBsYWJlbCBmb3IgYSBjb250cm9sIHdoaWNoIGlzIGluIGFuIGluZXJ0IHN1YnRyZWUg
JyArCisgICAgICAgICAnc2hvdWxkIGhhdmUgbm8gZWZmZWN0LicpOworPC9zY3JpcHQ+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2luZXJ0L2luZXJ0LW5vZGUtaXMtdW5lZGl0YWJsZS50ZW50YXRpdmUtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVy
dC1ub2RlLWlzLXVuZWRpdGFibGUudGVudGF0aXZlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5l
NDBhNTlkNjUxYjUyODFiZDUxMTA4ZjVkZjMxYWQ0ODcwN2IyZjk4Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVy
dC1ub2RlLWlzLXVuZWRpdGFibGUudGVudGF0aXZlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUg
QEAKK0knbSBub3QgZWRpdGFibGUuIGFJJ20gZWRpdGFibGUuCisKK1BBU1MgQ2FuJ3QgZWRpdCBp
bmVydCBjb250ZW50ZWRpdGFibGUKK1BBU1MgQ2FuIGVkaXQgbm9uLWluZXJ0IGNvbnRlbnRlZGl0
YWJsZQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2luZXJ0L2luZXJ0LW5vZGUtaXMtdW5lZGl0YWJsZS50ZW50YXRpdmUuaHRtbCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtbm9k
ZS1pcy11bmVkaXRhYmxlLnRlbnRhdGl2ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZkYTIzNzlmYWQ0Mjk3
MmQ0ODM5MTI5YzhkYjBiZWQ3YmJkMmFkZWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LW5vZGUtaXMtdW5l
ZGl0YWJsZS50ZW50YXRpdmUuaHRtbApAQCAtMCwwICsxLDM3IEBACis8IURPQ1RZUEUgaHRtbD4K
KzxodG1sPgorICA8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCIgLz4KKyAgICA8dGl0
bGU+aW5lcnQgbm9kZXMgYXJlIHVuZWRpdGFibGU8L3RpdGxlPgorICAgIDxsaW5rIHJlbD0iYXV0
aG9yIiB0aXRsZT0iQWxpY2UgQm94aGFsbCIgaHJlZj0iYWJveGhhbGxAY2hyb21pdW0ub3JnIj4K
KyAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cisg
ICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0
PgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Rkcml2ZXIuanMiPjwvc2NyaXB0Pgor
ICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Rkcml2ZXItdmVuZG9yLmpzIj48L3Njcmlw
dD4KKyAgPC9oZWFkPgorPGJvZHk+Cis8c3BhbiBpbmVydCBpZD0ibm90LWVkaXRhYmxlIiBjb250
ZW50ZWRpdGFibGU+SSdtIG5vdCBlZGl0YWJsZS48L3NwYW4+Cis8c3BhbiBpZD0iZWRpdGFibGUi
IGNvbnRlbnRlZGl0YWJsZT5JJ20gZWRpdGFibGUuPC9zcGFuPgorPHNjcmlwdD4KK3ZhciBub3RF
ZGl0YWJsZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNub3QtZWRpdGFibGUnKTsKK3ZhciBl
ZGl0YWJsZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNlZGl0YWJsZScpOworCitwcm9taXNl
X3Rlc3QoYXN5bmMgKCkgPT4geworICAgIG5vdEVkaXRhYmxlLmZvY3VzKCk7CisgICAgdmFyIG9s
ZFZhbHVlID0gbm90RWRpdGFibGUudGV4dENvbnRlbnQ7CisgICAgYXNzZXJ0X2VxdWFscyhvbGRW
YWx1ZSwgIkknbSBub3QgZWRpdGFibGUuIik7CisgICAgYXdhaXQgdGVzdF9kcml2ZXIuc2VuZF9r
ZXlzKGRvY3VtZW50LmJvZHksICdhJyk7CisgICAgYXNzZXJ0X2VxdWFscyhub3RFZGl0YWJsZS50
ZXh0Q29udGVudCwgb2xkVmFsdWUpOworfSwgIkNhbid0IGVkaXQgaW5lcnQgY29udGVudGVkaXRh
YmxlIik7CisKK3Byb21pc2VfdGVzdChhc3luYyAoKSA9PiB7CisgICAgZWRpdGFibGUuZm9jdXMo
KTsKKyAgICB2YXIgb2xkVmFsdWUgPSBlZGl0YWJsZS50ZXh0Q29udGVudDsKKyAgICBhc3NlcnRf
ZXF1YWxzKG9sZFZhbHVlLCAiSSdtIGVkaXRhYmxlLiIpOworICAgIGF3YWl0IHRlc3RfZHJpdmVy
LnNlbmRfa2V5cyhkb2N1bWVudC5ib2R5LCAnYScpOworICAgIGFzc2VydF9ub3RfZXF1YWxzKGVk
aXRhYmxlLnRleHRDb250ZW50LCBvbGRWYWx1ZSk7Cit9LCAiQ2FuIGVkaXQgbm9uLWluZXJ0IGNv
bnRlbnRlZGl0YWJsZSIpOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5l
cnQtbm9kZS1pcy11bmZvY3VzYWJsZS50ZW50YXRpdmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1ub2RlLWlzLXVu
Zm9jdXNhYmxlLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTZhZWE4YmI1NTU3
ZDc2OGNhNWVlMGNjYWM3ZDkyZGY4YmY1Nzc5ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtbm9kZS1pcy11
bmZvY3VzYWJsZS50ZW50YXRpdmUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTMgQEAKK091dHNp
ZGUgb2YgaW5lcnQgY29udGFpbmVyICBJbmVydCBidXR0b24KKworSSdtIGVkaXRhYmxlCitJJ20g
dGFiaW5kZXhlZC4KKyBMaW5rCisKK1BBU1MgQnV0dG9uIG91dHNpZGUgb2YgaW5lcnQgY29udGFp
bmVyIGlzIGZvY3VzYWJsZS4KK1BBU1MgQnV0dG9uIHdpdGggaW5lcnQgYXRyaWJ1dGUgaXMgdW5m
b2N1c2FibGUuCitQQVNTIEFsbCBmb2N1c2FibGUgZWxlbWVudHMgaW5zaWRlIGluZXJ0IHN1YnRy
ZWUgYXJlIHVuZm9jdXNhYmxlCitQQVNTIENhbiBnZXQgaW5lcnQgdmlhIHByb3BlcnR5CitQQVNT
IEVsZW1lbnRzIGluc2lkZSBvZiBpbmVydCBzdWJ0cmVlcyByZXR1cm4gZmFsc2Ugd2hlbiBnZXR0
aW5nICdpbmVydCcKK1BBU1MgU2V0dGluZyBpbmVydCB2aWEgcHJvcGVydHkgY29ycmVjdGx5IG1v
ZGlmaWVzIGluZXJ0IHN0YXRlCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtbm9kZS1pcy11bmZvY3VzYWJsZS50ZW50
YXRpdmUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aW5lcnQvaW5lcnQtbm9kZS1pcy11bmZvY3VzYWJsZS50ZW50YXRpdmUuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li44YjVkZTM3ZmRjYWRlZGI5ZDk4ZWM0NGM5YzNjMjBhZWE1MmEwNDAwCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9p
bmVydC1ub2RlLWlzLXVuZm9jdXNhYmxlLnRlbnRhdGl2ZS5odG1sCkBAIC0wLDAgKzEsNzkgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+CisgIDxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9InV0
Zi04IiAvPgorICAgIDx0aXRsZT5pbmVydCBub2RlcyBhcmUgdW5mb2N1c2FibGU8L3RpdGxlPgor
ICAgIDxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iQWxpY2UgQm94aGFsbCIgaHJlZj0iYWJveGhh
bGxAY2hyb21pdW0ub3JnIj4KKyAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVz
cy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3Ny
ZXBvcnQuanMiPjwvc2NyaXB0PgorICA8L2hlYWQ+Cis8Ym9keSBpZD0iYm9keSIgdGFiaW5kZXg9
IjEiPgorICA8YnV0dG9uIGlkPSJmb2N1c2FibGUiPk91dHNpZGUgb2YgaW5lcnQgY29udGFpbmVy
PC9idXR0b24+CisgIDxidXR0b24gaW5lcnQgaWQ9ImluZXJ0Ij5JbmVydCBidXR0b248L2J1dHRv
bj4KKyAgPGRpdiBpbmVydCBpZD0iY29udGFpbmVyIj4KKyAgICA8aW5wdXQgaWQ9InRleHQiIHR5
cGU9InRleHQiPgorICAgIDxpbnB1dCBpZD0iZGF0ZXRpbWUiIHR5cGU9ImRhdGV0aW1lIj4KKyAg
ICA8aW5wdXQgaWQ9ImNvbG9yIiB0eXBlPSJjb2xvciI+CisgICAgPHNlbGVjdCBpZD0ic2VsZWN0
Ij4KKyAgICAgICAgPG9wdGdyb3VwIGlkPSJvcHRncm91cCI+CisgICAgICAgICAgICA8b3B0aW9u
IGlkPSJvcHRpb24iPk9wdGlvbjwvb3B0aW9uPgorICAgICAgICA8L29wdGdyb3VwPgorICAgIDwv
c2VsZWN0PgorICAgIDxkaXYgaWQ9ImNvbnRlbnRlZGl0YWJsZS1kaXYiIGNvbnRlbnRlZGl0YWJs
ZT5JJ20gZWRpdGFibGU8L2Rpdj4KKyAgICA8c3BhbiBpZD0idGFiaW5kZXgtc3BhbiIgdGFiaW5k
ZXg9IjAiPkknbSB0YWJpbmRleGVkLjwvZGl2PgorICAgIDxlbWJlZCBpZD0iZW1iZWQiIHR5cGU9
ImFwcGxpY2F0aW9uL3gtYmxpbmstdGVzdC1wbHVnaW4iIHdpZHRoPTEwMCBoZWlnaHQ9MTAwPjwv
ZW1iZWQ+CisgICAgPGEgaWQ9ImFuY2hvciIgaHJlZj0iIj5MaW5rPC9hPgorICA8L2Rpdj4KKzxz
Y3JpcHQ+CitmdW5jdGlvbiB0ZXN0Rm9jdXMoZWxlbWVudCwgZXhwZWN0Rm9jdXMpIHsKKyAgICBm
b2N1c2VkRWxlbWVudCA9IG51bGw7CisgICAgZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdmb2N1
cycsIGZ1bmN0aW9uKCkgeyBmb2N1c2VkRWxlbWVudCA9IGVsZW1lbnQ7IH0sIGZhbHNlKTsKKyAg
ICBlbGVtZW50LmZvY3VzKCk7CisgICAgdGhlRWxlbWVudCA9IGVsZW1lbnQ7CisgICAgYXNzZXJ0
X2VxdWFscyhmb2N1c2VkRWxlbWVudCA9PT0gdGhlRWxlbWVudCwgZXhwZWN0Rm9jdXMpOworfQor
CitmdW5jdGlvbiB0ZXN0VHJlZShlbGVtZW50LCBleHBlY3RGb2N1cywgZXhjbHVkZUN1cnJlbnQp
IHsKKyAgICBpZiAoZWxlbWVudC5ub2RlVHlwZSA9PSBOb2RlLkVMRU1FTlRfTk9ERSAmJiAhZXhj
bHVkZUN1cnJlbnQpCisgICAgICAgIHRlc3RGb2N1cyhlbGVtZW50LCBleHBlY3RGb2N1cyk7Cisg
ICAgaWYgKGVsZW1lbnQudGFnTmFtZSA9PT0gIlNFTEVDVCIpCisgICAgICAgIHJldHVybjsKKyAg
ICB2YXIgY2hpbGROb2RlcyA9IGVsZW1lbnQuY2hpbGROb2RlczsKKyAgICBmb3IgKHZhciBpID0g
MDsgaSA8IGNoaWxkTm9kZXMubGVuZ3RoOyBpKyspCisgICAgICAgIHRlc3RUcmVlKGNoaWxkTm9k
ZXNbaV0sIGV4cGVjdEZvY3VzKTsKK30KKworCit0ZXN0KGZ1bmN0aW9uKCkgeworICAgIHRlc3RG
b2N1cyhkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZm9jdXNhYmxlJyksIHRydWUpOworfSwgIkJ1
dHRvbiBvdXRzaWRlIG9mIGluZXJ0IGNvbnRhaW5lciBpcyBmb2N1c2FibGUuIik7CisKK3Rlc3Qo
ZnVuY3Rpb24oKSB7CisgICAgdGVzdEZvY3VzKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbmVy
dCcpLCBmYWxzZSk7Cit9LCAiQnV0dG9uIHdpdGggaW5lcnQgYXRyaWJ1dGUgaXMgdW5mb2N1c2Fi
bGUuIik7CisKK3Rlc3QoZnVuY3Rpb24oKSB7CisgICAgdGVzdFRyZWUoZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ2NvbnRhaW5lcicpLCBmYWxzZSk7Cit9LCAiQWxsIGZvY3VzYWJsZSBlbGVtZW50
cyBpbnNpZGUgaW5lcnQgc3VidHJlZSBhcmUgdW5mb2N1c2FibGUiKTsKKwordGVzdChmdW5jdGlv
bigpIHsKKyAgICBhc3NlcnRfZmFsc2UoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZvY3VzYWJs
ZSIpLmluZXJ0LCAiSW5lcnQgbm90IHNldCBleHBsaWNpdGx5IGlzIGZhbHNlIikKKyAgICBhc3Nl
cnRfdHJ1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW5lcnQiKS5pbmVydCwgIkluZXJ0IHNl
dCBleHBsaWNpdGx5IGlzIHRydWUiKTsKKyAgICBhc3NlcnRfdHJ1ZShkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgiY29udGFpbmVyIikuaW5lcnQsICJJbmVydCBzZXQgb24gY29udGFpbmVyIGlzIHRy
dWUiKTsKK30sICJDYW4gZ2V0IGluZXJ0IHZpYSBwcm9wZXJ0eSIpOworCit0ZXN0KGZ1bmN0aW9u
KCkgeworICAgIGFzc2VydF9mYWxzZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGV4dCIpLmlu
ZXJ0LCAiRWxlbWVudHMgaW5zaWRlIG9mIGluZXJ0IHN1YnRyZWVzIHJldHVybiBmYWxzZSB3aGVu
IGdldHRpbmcgaW5lcnQiKTsKK30sICJFbGVtZW50cyBpbnNpZGUgb2YgaW5lcnQgc3VidHJlZXMg
cmV0dXJuIGZhbHNlIHdoZW4gZ2V0dGluZyAnaW5lcnQnIik7CisKK3Rlc3QoZnVuY3Rpb24oKSB7
CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZvY3VzYWJsZScpLmluZXJ0ID0gdHJ1ZTsK
KyAgICB0ZXN0Rm9jdXMoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZvY3VzYWJsZScpLCBmYWxz
ZSk7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2luZXJ0JykuaW5lcnQgPSBmYWxzZTsK
KyAgICB0ZXN0Rm9jdXMoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2luZXJ0JyksIHRydWUpOwor
ICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb250YWluZXInKS5pbmVydCA9IGZhbHNlOwor
ICAgIHRlc3RUcmVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb250YWluZXInKSwgdHJ1ZSwg
dHJ1ZSk7Cit9LCAiU2V0dGluZyBpbmVydCB2aWEgcHJvcGVydHkgY29ycmVjdGx5IG1vZGlmaWVz
IGluZXJ0IHN0YXRlIik7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQt
bm9kZS1pcy11bnNlbGVjdGFibGUudGVudGF0aXZlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtbm9kZS1pcy11bnNl
bGVjdGFibGUudGVudGF0aXZlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZmNhMjM4YWY4ZjE0
YTE1Yjc5ZjlmYzBhMzFiMzkzNzhmODQxZDY0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1ub2RlLWlzLXVu
c2VsZWN0YWJsZS50ZW50YXRpdmUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorSGVyZSBp
cyBhIHRleHQgbm9kZSB5b3UgY2FuJ3Qgc2VsZWN0LgorSSdtIHNlbGVjdGFibGUuCisKK0ZBSUwg
SW5lcnQgbm9kZXMgY2Fubm90IGJlIHNlbGVjdGVkLiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAi
SSdtIHNlbGVjdGFibGUuIiBidXQgZ290ICJIZXJlIGlzIGEgdGV4dCBub2RlIHlvdSBjYW4ndCBz
ZWxlY3QuXG5JJ20gc2VsZWN0YWJsZS4iCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtbm9kZS1pcy11bnNlbGVjdGFi
bGUudGVudGF0aXZlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2luZXJ0L2luZXJ0LW5vZGUtaXMtdW5zZWxlY3RhYmxlLnRlbnRhdGl2ZS5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmI5OWFmMGQ0Y2QxNDJkY2IwNTFhZjUxZjQyZDE3NTkxNDJhMDBjNWUKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2luZXJ0L2luZXJ0LW5vZGUtaXMtdW5zZWxlY3RhYmxlLnRlbnRhdGl2ZS5odG1sCkBAIC0wLDAg
KzEsMjAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+CisgIDxoZWFkPgorICAgIDxtZXRhIGNo
YXJzZXQ9InV0Zi04IiAvPgorICAgIDx0aXRsZT5pbmVydCBub2RlcyBhcmUgdW5zZWxlY3RhYmxl
PC90aXRsZT4KKyAgICA8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkFsaWNlIEJveGhhbGwiIGhy
ZWY9ImFib3hoYWxsQGNocm9taXVtLm9yZyI+CisgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMv
dGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAgPC9oZWFkPgorPGJvZHk+CisgIDxkaXYg
aW5lcnQ+SGVyZSBpcyBhIHRleHQgbm9kZSB5b3UgY2FuJ3Qgc2VsZWN0LjwvZGl2PgorICA8ZGl2
PkknbSBzZWxlY3RhYmxlLjwvZGl2PgorPHNjcmlwdD4KK3Rlc3QoZnVuY3Rpb24oKSB7CisgICAg
ZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ1NlbGVjdEFsbCcpOworICAgIGFzc2VydF9lcXVhbHMod2lu
ZG93LmdldFNlbGVjdGlvbigpLnRvU3RyaW5nKCkudHJpbSgpLCAiSSdtIHNlbGVjdGFibGUuIik7
Cit9LCAiSW5lcnQgbm9kZXMgY2Fubm90IGJlIHNlbGVjdGVkLiIpOworPC9zY3JpcHQ+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LW9uLXNsb3RzLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0
LW9uLXNsb3RzLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGYyYjEyNThkMzUy
Y2RmODkzNDBjN2NjMzA5N2JiOTQ0ZTdkYzc0ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtb24tc2xvdHMu
dGVudGF0aXZlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK0J1dHRvbiAxIHNob3VsZCBi
ZSBpbmVydCwgYW5kIEJ1dHRvbiAyIHNob3VsZCBub3QgYmUgaW5lcnQuCitCdXR0b24gMSAoaW5l
cnQpQnV0dG9uIDIgKG5vdCBpbmVydCkKKworRkFJTCBpbmVydCBpbnNpZGUgU2hhZG93Um9vdCBh
ZmZlY3RzIHNsb3R0ZWQgY29udGVudCBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCBmYWxzZSBidXQg
Z290IHRydWUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1vbi1zbG90cy50ZW50YXRpdmUuaHRtbCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtb24tc2xvdHMu
dGVudGF0aXZlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGQwZDdlYzZkNDZkMWVmMzQ0MTdkY2YwOTljZTUx
NTZiYjE0OWJlYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtb24tc2xvdHMudGVudGF0aXZlLmh0bWwKQEAg
LTAsMCArMSw1NyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxtZXRh
IGNoYXJzZXQ9InV0Zi04IiAvPgorICAgIDx0aXRsZT5pbmVydCBpbnNpZGUgU2hhZG93Um9vdCBh
ZmZlY3RzIHNsb3R0ZWQgY29udGVudDwvdGl0bGU+CisgICAgPGxpbmsgcmVsPSJhdXRob3IiIHRp
dGxlPSJBbGljZSBCb3hoYWxsIiBocmVmPSJhYm94aGFsbEBjaHJvbWl1bS5vcmciPgorICAgIDxz
Y3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKyAgICA8c2Ny
aXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKyAgPGRpdj5CdXR0b24gMSBzaG91bGQgYmUgaW5lcnQsIGFuZCBCdXR0b24g
MiBzaG91bGQgbm90IGJlIGluZXJ0LjwvZGl2PgorICA8ZGl2IGlkPSJzaGFkb3ctaG9zdCI+Cisg
ICAgPGJ1dHRvbiBzbG90PSJzbG90LTEiIGlkPSJidXR0b24tMSI+QnV0dG9uIDEgKGluZXJ0KTwv
YnV0dG9uPgorICAgIDxidXR0b24gc2xvdD0ic2xvdC0yIiBpZD0iYnV0dG9uLTIiPkJ1dHRvbiAy
IChub3QgaW5lcnQpPC9idXR0b24+CisgIDwvZGl2PgorICA8c2NyaXB0PgorICAgIC8qCisgICAg
RXZlbnR1YWwgZmxhdHRlbmVkIHRyZWUgc3RydWN0dXJlOgorCisgICAgPGRpdiBpZD0ic2hhZG93
LWhvc3QiPgorICAgICAgI3NoYWRvdy1yb290IChvcGVuKQorICAgICAgfCA8c2xvdCBpZD0ic2xv
dC0xIiBpbmVydD4KKyAgICAgIDogICA8YnV0dG9uIGlkPSJidXR0b24tMSI+QnV0dG9uIDE8L2J1
dHRvbj4gPCEtLSBzbG90dGVkIC0tPgorICAgICAgfCA8L3Nsb3Q+CisgICAgICB8IDxzbG90IGlk
PSJzbG90LTIiPgorICAgICAgOiAgIDxidXR0b24gaWQ9ImJ1dHRvbi0yIj5CdXR0b24gMjwvYnV0
dG9uPiA8IS0tIHNsb3R0ZWQgLS0+CisgICAgICB8IDwvc2xvdD4KKyAgICA8L2Rpdj4KKyAgICAq
LworCisgICAgY29uc3Qgc2hhZG93SG9zdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzaGFk
b3ctaG9zdCIpOworICAgIGNvbnN0IHNoYWRvd1Jvb3QgPSBzaGFkb3dIb3N0LmF0dGFjaFNoYWRv
dyh7IG1vZGU6ICJvcGVuIiB9KTsKKworICAgIGNvbnN0IHNsb3QxID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgic2xvdCIpOworICAgIHNsb3QxLm5hbWUgPSAic2xvdC0xIjsKKyAgICBzbG90MS5p
bmVydCA9IHRydWU7CisgICAgc2hhZG93Um9vdC5hcHBlbmRDaGlsZChzbG90MSk7CisKKyAgICBj
b25zdCBzbG90MiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNsb3QiKTsKKyAgICBzbG90Mi5u
YW1lID0gInNsb3QtMiI7CisgICAgc2hhZG93Um9vdC5hcHBlbmRDaGlsZChzbG90Mik7CisKKyAg
ICBmdW5jdGlvbiB0ZXN0Q2FuRm9jdXMoc2VsZWN0b3IsIGNhbkZvY3VzKSB7CisgICAgICBjb25z
dCBlbGVtZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihzZWxlY3Rvcik7CisgICAgICBsZXQg
Zm9jdXNlZEVsZW1lbnQgPSBudWxsOworICAgICAgZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJm
b2N1cyIsIGZ1bmN0aW9uKCkgeyBmb2N1c2VkRWxlbWVudCA9IGVsZW1lbnQ7IH0sIGZhbHNlKTsK
KyAgICAgIGVsZW1lbnQuZm9jdXMoKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoKGZvY3VzZWRFbGVt
ZW50ID09PSBlbGVtZW50KSwgY2FuRm9jdXMpOworICAgIH0KKworICAgIHRlc3QoKCkgPT4gewor
ICAgICAgdGVzdENhbkZvY3VzKCIjYnV0dG9uLTEiLCBmYWxzZSk7CisgICAgICB0ZXN0Q2FuRm9j
dXMoIiNidXR0b24tMiIsIHRydWUpOworICAgIH0sICJpbmVydCBpbnNpZGUgU2hhZG93Um9vdCBh
ZmZlY3RzIHNsb3R0ZWQgY29udGVudCIpOworICA8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aW5lcnQvaW5lcnQtcmV0YXJnZXRpbmctaWZyYW1lLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LXJl
dGFyZ2V0aW5nLWlmcmFtZS50ZW50YXRpdmUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI1OTli
ZTcxYTgzZWYwOGVkNTYxOWI5NGNjYjQ2NGZjMWJjOTc3MDkKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LXJl
dGFyZ2V0aW5nLWlmcmFtZS50ZW50YXRpdmUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNDcgQEAK
K0NPTlNPTEUgTUVTU0FHRTogRXJyb3I6IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIEVsZW1lbnQg
bm9kZSA8ZmllbGRzZXQgaWQ9ImFuY2VzdG9yQ29udGFpbmVyIj4KKyAgICA8bGVnZW5kPk5vbi1p
bmVydCBhLi4uIGJ1dCBnb3QgRWxlbWVudCBub2RlIDxidXR0b24gaWQ9ImZvcmVncm91bmQiIGNs
YXNzPSJjbGlja2VkIj5mb3JlZ3JvdW5kPC9idXR0b24+CitDT05TT0xFIE1FU1NBR0U6IEVycm9y
OiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCBFbGVtZW50IG5vZGUgPGZpZWxkc2V0IGlkPSJhbmNl
c3RvckNvbnRhaW5lciI+CisgICAgPGxlZ2VuZD5Ob24taW5lcnQgYS4uLiBidXQgZ290IEVsZW1l
bnQgbm9kZSA8YnV0dG9uIGlkPSJmb3JlZ3JvdW5kIiBjbGFzcz0iY2xpY2tlZCI+Zm9yZWdyb3Vu
ZDwvYnV0dG9uPgorQ09OU09MRSBNRVNTQUdFOiBFcnJvcjogYXNzZXJ0X2VxdWFsczogZXhwZWN0
ZWQgRWxlbWVudCBub2RlIDxmaWVsZHNldCBpZD0iYW5jZXN0b3JDb250YWluZXIiPgorICAgIDxs
ZWdlbmQ+Tm9uLWluZXJ0IGEuLi4gYnV0IGdvdCBFbGVtZW50IG5vZGUgPGJ1dHRvbiBpZD0iZm9y
ZWdyb3VuZCIgY2xhc3M9ImNsaWNrZWQiPmZvcmVncm91bmQ8L2J1dHRvbj4KK0NPTlNPTEUgTUVT
U0FHRTogRXJyb3I6IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIEVsZW1lbnQgbm9kZSA8ZmllbGRz
ZXQgaWQ9ImFuY2VzdG9yQ29udGFpbmVyIj4KKyAgICA8bGVnZW5kPk5vbi1pbmVydCBhLi4uIGJ1
dCBnb3QgRWxlbWVudCBub2RlIDxidXR0b24gaWQ9ImZvcmVncm91bmQiIGNsYXNzPSJjbGlja2Vk
Ij5mb3JlZ3JvdW5kPC9idXR0b24+CitDT05TT0xFIE1FU1NBR0U6IEVycm9yOiBhc3NlcnRfZXF1
YWxzOiBleHBlY3RlZCBFbGVtZW50IG5vZGUgPGZpZWxkc2V0IGlkPSJhbmNlc3RvckNvbnRhaW5l
ciI+CisgICAgPGxlZ2VuZD5Ob24taW5lcnQgYS4uLiBidXQgZ290IEVsZW1lbnQgbm9kZSA8YnV0
dG9uIGlkPSJmb3JlZ3JvdW5kIiBjbGFzcz0iY2xpY2tlZCI+Zm9yZWdyb3VuZDwvYnV0dG9uPgor
Q09OU09MRSBNRVNTQUdFOiBFcnJvcjogYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgRWxlbWVudCBu
b2RlIDxmaWVsZHNldCBpZD0iYW5jZXN0b3JDb250YWluZXIiPgorICAgIDxsZWdlbmQ+Tm9uLWlu
ZXJ0IGEuLi4gYnV0IGdvdCBFbGVtZW50IG5vZGUgPGJ1dHRvbiBpZD0iZm9yZWdyb3VuZCIgY2xh
c3M9ImNsaWNrZWQiPmZvcmVncm91bmQ8L2J1dHRvbj4KK0NPTlNPTEUgTUVTU0FHRTogRXJyb3I6
IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIEVsZW1lbnQgbm9kZSA8ZmllbGRzZXQgaWQ9ImFuY2Vz
dG9yQ29udGFpbmVyIj4KKyAgICA8bGVnZW5kPk5vbi1pbmVydCBhLi4uIGJ1dCBnb3QgRWxlbWVu
dCBub2RlIDxidXR0b24gaWQ9ImZvcmVncm91bmQiIGNsYXNzPSJjbGlja2VkIj5mb3JlZ3JvdW5k
PC9idXR0b24+CitDT05TT0xFIE1FU1NBR0U6IEVycm9yOiBhc3NlcnRfZXF1YWxzOiBleHBlY3Rl
ZCBFbGVtZW50IG5vZGUgPGZpZWxkc2V0IGlkPSJhbmNlc3RvckNvbnRhaW5lciI+CisgICAgPGxl
Z2VuZD5Ob24taW5lcnQgYS4uLiBidXQgZ290IEVsZW1lbnQgbm9kZSA8YnV0dG9uIGlkPSJmb3Jl
Z3JvdW5kIiBjbGFzcz0iY2xpY2tlZCI+Zm9yZWdyb3VuZDwvYnV0dG9uPgorQ09OU09MRSBNRVNT
QUdFOiBFcnJvcjogYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgRWxlbWVudCBub2RlIDxmaWVsZHNl
dCBpZD0iYW5jZXN0b3JDb250YWluZXIiPgorICAgIDxsZWdlbmQ+Tm9uLWluZXJ0IGEuLi4gYnV0
IGdvdCBFbGVtZW50IG5vZGUgPGJ1dHRvbiBpZD0iZm9yZWdyb3VuZCIgY2xhc3M9ImNsaWNrZWQi
PmZvcmVncm91bmQ8L2J1dHRvbj4KK0NPTlNPTEUgTUVTU0FHRTogRXJyb3I6IGFzc2VydF9lcXVh
bHM6IGV4cGVjdGVkIEVsZW1lbnQgbm9kZSA8ZmllbGRzZXQgaWQ9ImFuY2VzdG9yQ29udGFpbmVy
Ij4KKyAgICA8bGVnZW5kPk5vbi1pbmVydCBhLi4uIGJ1dCBnb3QgRWxlbWVudCBub2RlIDxidXR0
b24gaWQ9ImZvcmVncm91bmQiIGNsYXNzPSJjbGlja2VkIj5mb3JlZ3JvdW5kPC9idXR0b24+CitD
T05TT0xFIE1FU1NBR0U6IEVycm9yOiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCBFbGVtZW50IG5v
ZGUgPGZpZWxkc2V0IGlkPSJhbmNlc3RvckNvbnRhaW5lciI+CisgICAgPGxlZ2VuZD5Ob24taW5l
cnQgYS4uLiBidXQgZ290IEVsZW1lbnQgbm9kZSA8YnV0dG9uIGlkPSJmb3JlZ3JvdW5kIiBjbGFz
cz0iY2xpY2tlZCI+Zm9yZWdyb3VuZDwvYnV0dG9uPgorQ09OU09MRSBNRVNTQUdFOiBFcnJvcjog
YXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgRWxlbWVudCBub2RlIDxmaWVsZHNldCBpZD0iYW5jZXN0
b3JDb250YWluZXIiPgorICAgIDxsZWdlbmQ+Tm9uLWluZXJ0IGEuLi4gYnV0IGdvdCBFbGVtZW50
IG5vZGUgPGJ1dHRvbiBpZD0iZm9yZWdyb3VuZCIgY2xhc3M9ImNsaWNrZWQiPmZvcmVncm91bmQ8
L2J1dHRvbj4KK0NPTlNPTEUgTUVTU0FHRTogRXJyb3I6IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVk
IEVsZW1lbnQgbm9kZSA8ZmllbGRzZXQgaWQ9ImFuY2VzdG9yQ29udGFpbmVyIj4KKyAgICA8bGVn
ZW5kPk5vbi1pbmVydCBhLi4uIGJ1dCBnb3QgRWxlbWVudCBub2RlIDxidXR0b24gaWQ9ImZvcmVn
cm91bmQiIGNsYXNzPSJjbGlja2VkIj5mb3JlZ3JvdW5kPC9idXR0b24+CitDbGljayBvbiAiSW5l
cnQgYnV0dG9uIi4KKworVGhlIGJsdWUgc3F1YXJlICgiTm9uLWluZXJ0IGFuY2VzdG9yIGNvbnRh
aW5lciIpIHNob3VsZCB0dXJuIGdyZWVuLgorVGhlIHllbGxvdywgc2VtaS10cmFuc3BhcmVudCBz
cXVhcmUgKCJOb24taW5lcnQsIGRpc3BsYWNlZCBjb250YWluZXIiKSBzaG91bGQgbm90IHR1cm4g
cmVkLgorIk5vbi1pbmVydCBidXR0b24iIHNob3VsZCBub3QgdHVybiByZWQuCisoVGhlIGZ1bGwg
dGVzdCBzdWl0ZSBjaGVja3MgYSByYW5nZSBvZiBldmVudHMuKQorCitOb24taW5lcnQgYW5jZXN0
b3IgY29udGFpbmVyCisgTm9uLWluZXJ0LCBkaXNwbGFjZWQgYW5jZXN0b3IKK0luZXJ0IGNvbnRh
aW5lcgorZm9yZWdyb3VuZAorCitIYXJuZXNzIEVycm9yIChGQUlMKSwgbWVzc2FnZSA9IEVycm9y
OiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCBFbGVtZW50IG5vZGUgPGZpZWxkc2V0IGlkPSJhbmNl
c3RvckNvbnRhaW5lciI+CisgICAgPGxlZ2VuZD5Ob24taW5lcnQgYS4uLiBidXQgZ290IEVsZW1l
bnQgbm9kZSA8YnV0dG9uIGlkPSJmb3JlZ3JvdW5kIiBjbGFzcz0iY2xpY2tlZCI+Zm9yZWdyb3Vu
ZDwvYnV0dG9uPgorCitQQVNTIGVsZW1lbnRzRnJvbVBvaW50IHJldHVybnMgaW5lcnQgZWxlbWVu
dAorRkFJTCBUZXN0cyB0aGF0IGFueSBtb3VzZSBldmVudCBvbiBhIG5vbi1pbmVydCBlbGVtZW50
IGlzIGNvcnJlY3RseSB0YXJnZXRlZCB0byB0aGF0IGVsZW1lbnQgcHJvbWlzZV90ZXN0OiBVbmhh
bmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6ICJkaWQgbm90IGdldCBhdXhjbGljayBvbiBmb3Jl
Z3JvdW5kIgorRkFJTCBUZXN0cyB0aGF0IGFueSBtb3VzZSBldmVudCBvbiBhbiBpbmVydCBlbGVt
ZW50IGlzIHRhcmdldGVkIHRvIHRoZSBuZWFyZXN0IG5vbi1pbmVydCBhbmNlc3RvciBhdCB0aGUg
c2FtZSBjb29yZGluYXRlcyBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2
YWx1ZTogImRpZCBub3QgZ2V0IG1vdXNlb3ZlciBvbiBhbmNlc3RvckNvbnRhaW5lciIKK1BBU1Mg
VGVzdHMgdGhhdCBhbnkgcG9pbnRlciBldmVudCBvbiBhIG5vbi1pbmVydCBlbGVtZW50IGlzIGNv
cnJlY3RseSB0YXJnZXRlZCB0byB0aGF0IGVsZW1lbnQKK0ZBSUwgVGVzdHMgdGhhdCBhbnkgcG9p
bnRlciBldmVudCBvbiBhbiBpbmVydCBlbGVtZW50IGlzIHRhcmdldGVkIHRvIHRoZSBuZWFyZXN0
IG5vbi1pbmVydCBhbmNlc3RvciBhdCB0aGUgc2FtZSBjb29yZGluYXRlcyBwcm9taXNlX3Rlc3Q6
IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogImRpZCBub3QgZ2V0IHBvaW50ZXJvdmVy
IG9uIGFuY2VzdG9yQ29udGFpbmVyIgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LXJldGFyZ2V0aW5nLWlmcmFtZS50
ZW50YXRpdmUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvaW5lcnQvaW5lcnQtcmV0YXJnZXRpbmctaWZyYW1lLnRlbnRhdGl2ZS5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjU3OWZjNTdiZTI1OGE3MDlhOWQyMmNiMjYzYTY0MjJkOWJkYjc5NTMKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0
L2luZXJ0LXJldGFyZ2V0aW5nLWlmcmFtZS50ZW50YXRpdmUuaHRtbApAQCAtMCwwICsxLDI3OSBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVz
dGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVz
dGRyaXZlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0ZHJpdmVy
LWFjdGlvbnMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGRyaXZl
ci12ZW5kb3IuanMiPjwvc2NyaXB0PgorPHN0eWxlPgorYnV0dG9uI2ZvcmVncm91bmQsCitidXR0
b24jYmFja2dyb3VuZCB7CisgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgdG9wOiA3NXB4OworICBs
ZWZ0OiA1MHB4OworICB3aWR0aDogMTAwcHg7CisgIGhlaWdodDogMjBweDsKK30KKworYnV0dG9u
I2JhY2tncm91bmQgeworICBsZWZ0OiA3NXB4OworICB3aWR0aDogMTUwcHg7CisgIGhlaWdodDog
NDBweDsKKyAgdG9wOiAxMjVweDsKKyAgbGluZS1oZWlnaHQ6IDUzcHg7Cit9CisKKy5jbGlja2Vk
IHsKKyAgYmFja2dyb3VuZC1jb2xvcjogcmVkOworfQorCisjYW5jZXN0b3JDb250YWluZXIuY2xp
Y2tlZCB7CisgIGJhY2tncm91bmQtY29sb3I6IGdyZWVuOworfQorCisjYW5jZXN0b3JDb250YWlu
ZXIgeworICBwb3NpdGlvbjogYWJzb2x1dGU7CisgIHRvcDogMjAwcHg7CisgIGxlZnQ6IDEwcHg7
CisgIHdpZHRoOiAzMDBweDsKKyAgaGVpZ2h0OiAzMDBweDsKKyAgYmFja2dyb3VuZC1jb2xvcjog
Ymx1ZTsKK30KKworI2Rpc3BsYWNlZEFuY2VzdG9yIHsKKyAgcG9zaXRpb246IGFic29sdXRlOwor
ICB0b3A6IDEzcHg7CisgIGxlZnQ6IDI0MHB4OworICB3aWR0aDogMzAwcHg7CisgIGhlaWdodDog
MjUwcHg7CisgIGJhY2tncm91bmQtY29sb3I6ICNmZjg5OworfQorCisjZGlzcGxhY2VkQW5jZXN0
b3IuY2xpY2tlZCB7CisgIGJhY2tncm91bmQtY29sb3I6ICNmMDA5OworfQorCisjaW5lcnRDb250
YWluZXIgeworICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOTsKKyAgcG9zaXRpb246IGFic29sdXRl
OworICB0b3A6IDM1cHg7CisgIGxlZnQ6IC0xOTJweDsKKyAgd2lkdGg6IDIwMHB4OworICBoZWln
aHQ6IDIwMHB4OworfQorCitmaWVsZHNldCB7CisgIG1hcmdpbjogMDsKKyAgcGFkZGluZzogMDsK
KyAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7Cit9CisKK2xlZ2VuZCB7CisgIGJhY2tncm91bmQt
Y29sb3I6IHdoaXRlOworICBib3JkZXI6IDFweCBzb2xpZCBibGFjazsKKyAgbWFyZ2luLWxlZnQ6
IDVweDsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgPHA+Q2xpY2sgb24gIkluZXJ0
IGJ1dHRvbiIuPC9wPgorICA8dWw+CisgICAgPGxpPlRoZSBibHVlIHNxdWFyZSAoIk5vbi1pbmVy
dCBhbmNlc3RvciBjb250YWluZXIiKSBzaG91bGQgdHVybiBncmVlbi48L2xpPgorICAgIDxsaT5U
aGUgeWVsbG93LCBzZW1pLXRyYW5zcGFyZW50IHNxdWFyZSAoIk5vbi1pbmVydCwgZGlzcGxhY2Vk
IGNvbnRhaW5lciIpIHNob3VsZCBub3QgdHVybiByZWQuPC9saT4KKyAgICA8bGk+Ik5vbi1pbmVy
dCBidXR0b24iIHNob3VsZCBub3QgdHVybiByZWQuPC9saT4KKyAgPC91bD4KKyAgPHAgc3R5bGU9
Im1hcmdpbi1ib3R0b206MjUwcHgiPihUaGUgZnVsbCB0ZXN0IHN1aXRlIGNoZWNrcyBhIHJhbmdl
IG9mIGV2ZW50cy4pPC9wPgorICA8ZmllbGRzZXQgaWQ9ImFuY2VzdG9yQ29udGFpbmVyIj4KKyAg
ICA8bGVnZW5kPk5vbi1pbmVydCBhbmNlc3RvciBjb250YWluZXI8L2xlZ2VuZD4KKyAgICA8aWZy
YW1lIGlkPSJiYWNrZ3JvdW5kIiBzcmM9ImZyYW1lL2J1dHRvbi5odG1sIj48L2lmcmFtZT4KKyAg
ICA8ZmllbGRzZXQgaWQ9ImRpc3BsYWNlZEFuY2VzdG9yIj4KKyAgICAgIDxsZWdlbmQ+Tm9uLWlu
ZXJ0LCBkaXNwbGFjZWQgYW5jZXN0b3I8L2xlZ2VuZD4KKyAgICAgIDxmaWVsZHNldCBpZD0iaW5l
cnRDb250YWluZXIiIGluZXJ0PgorICAgICAgICA8bGVnZW5kPkluZXJ0IGNvbnRhaW5lcjwvbGVn
ZW5kPgorICAgICAgICA8YnV0dG9uIGlkPSJmb3JlZ3JvdW5kIj5mb3JlZ3JvdW5kPC9idXR0b24+
CisgICAgICA8L2ZpZWxkc2V0PgorICAgIDwvZmllbGRzZXQ+CisgIDwvZmllbGRzZXQ+CisKKyAg
PHNjcmlwdD4KK2RvY3VtZW50LmJvZHkuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoZSkgPT4g
eworICBlLnRhcmdldC5jbGFzc0xpc3QuYWRkKCdjbGlja2VkJyk7Cit9KTsKKworZnVuY3Rpb24g
Y2xpY2tPbihlbGVtZW50KSB7CisgIHJldHVybiBuZXcgdGVzdF9kcml2ZXIuQWN0aW9ucygpCisg
ICAgICAucG9pbnRlck1vdmUoMCwgMCwge29yaWdpbjogZWxlbWVudH0pCisgICAgICAucG9pbnRl
ckRvd24oe2J1dHRvbjogdGVzdF9kcml2ZXIuQWN0aW9ucy5wcm90b3R5cGUuQnV0dG9uVHlwZS5M
RUZUfSkKKyAgICAgIC5wb2ludGVyVXAoe2J1dHRvbjogdGVzdF9kcml2ZXIuQWN0aW9ucy5wcm90
b3R5cGUuQnV0dG9uVHlwZS5MRUZUfSkKKyAgICAgIC5zZW5kKCk7Cit9CisKK2Z1bmN0aW9uIGF1
eENsaWNrT24oZWxlbWVudCkgeworICByZXR1cm4gbmV3IHRlc3RfZHJpdmVyLkFjdGlvbnMoKQor
ICAgICAgLnBvaW50ZXJNb3ZlKDAsIDAsIHtvcmlnaW46IGVsZW1lbnR9KQorICAgICAgLnBvaW50
ZXJEb3duKHtidXR0b246IHRlc3RfZHJpdmVyLkFjdGlvbnMucHJvdG90eXBlLkJ1dHRvblR5cGUu
UklHSFR9KQorICAgICAgLnBvaW50ZXJVcCh7YnV0dG9uOiB0ZXN0X2RyaXZlci5BY3Rpb25zLnBy
b3RvdHlwZS5CdXR0b25UeXBlLlJJR0hUfSkKKyAgICAgIC5zZW5kKCk7Cit9CisKK2Z1bmN0aW9u
IGRibENsaWNrT24oZWxlbWVudCkgeworICByZXR1cm4gbmV3IHRlc3RfZHJpdmVyLkFjdGlvbnMo
KQorICAgICAgLnBvaW50ZXJNb3ZlKDAsIDAsIHtvcmlnaW46IGVsZW1lbnR9KQorICAgICAgLnBv
aW50ZXJEb3duKHtidXR0b246IHRlc3RfZHJpdmVyLkFjdGlvbnMucHJvdG90eXBlLkJ1dHRvblR5
cGUuTEVGVH0pCisgICAgICAucG9pbnRlclVwKHtidXR0b246IHRlc3RfZHJpdmVyLkFjdGlvbnMu
cHJvdG90eXBlLkJ1dHRvblR5cGUuTEVGVH0pCisgICAgICAucG9pbnRlckRvd24oe2J1dHRvbjog
dGVzdF9kcml2ZXIuQWN0aW9ucy5wcm90b3R5cGUuQnV0dG9uVHlwZS5MRUZUfSkKKyAgICAgIC5w
b2ludGVyVXAoe2J1dHRvbjogdGVzdF9kcml2ZXIuQWN0aW9ucy5wcm90b3R5cGUuQnV0dG9uVHlw
ZS5MRUZUfSkKKyAgICAgIC5zZW5kKCk7Cit9CisKK2Z1bmN0aW9uIG1vdmVQb2ludGVyT3Zlcihl
bGVtZW50KSB7CisgIGxldCByZWN0ID0gZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsK
KyAgcmV0dXJuIG5ldyB0ZXN0X2RyaXZlci5BY3Rpb25zKCkKKyAgICAgIC5wb2ludGVyTW92ZSgw
LCAwLCB7IG9yaWdpbjogZWxlbWVudCB9KQorICAgICAgLnNlbmQoKTsKK30KKworZnVuY3Rpb24g
bW92ZVBvaW50ZXJUbyh4LCB5KSB7CisgIHJldHVybiBuZXcgdGVzdF9kcml2ZXIuQWN0aW9ucygp
CisgICAgICAucG9pbnRlck1vdmUoTWF0aC5jZWlsKHgpLCBNYXRoLmNlaWwoeSksIHsgb3JpZ2lu
OiAidmlld3BvcnQiIH0pCisgICAgICAuc2VuZCgpOworfQorCitmdW5jdGlvbiBleHBlY3RFdmVu
dHNPbihldmVudHMsIGVsZW1lbnQpIHsKKyAgbGV0IHByb21pc2VzID0gW107CisgIGZvciAoZXZl
bnQgb2YgZXZlbnRzKSB7CisgICAgKChldmVudCwgZWxlbWVudCkgPT4geworICAgICAgdmFyIHBy
b21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7CisgICAgICAgIGxldCBm
ID0gKGUpID0+IHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUudHlwZSwgZXZlbnQpOworICAg
ICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQsIGVsZW1lbnQpOworICAgICAgICAgIHJlc29s
dmUoKTsKKyAgICAgICAgfQorICAgICAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoZXZlbnQs
IGYsIHsgY2FwdHVyZTogdHJ1ZSwgb25jZTogdHJ1ZSB9KTsKKworICAgICAgICBzdGVwX3RpbWVv
dXQoKCkgPT4geworICAgICAgICAgIGVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihldmVudCwg
ZiwgeyBjYXB0dXJlOiB0cnVlIH0pOworICAgICAgICAgIHJlamVjdCgiZGlkIG5vdCBnZXQgIiAr
IGV2ZW50ICsgIiBvbiAiICsgZWxlbWVudC5pZCk7CisgICAgICAgIH0sIDUwMDApOworICAgICAg
fSk7CisgICAgICBwcm9taXNlcy5wdXNoKHByb21pc2UpOworICAgIH0pKGV2ZW50LCBlbGVtZW50
KTsKKyAgfQorICByZXR1cm4gcHJvbWlzZXM7Cit9CisKK2Z1bmN0aW9uIHVuZXhwZWN0RXZlbnRz
T24oZXZlbnRzLCBlbGVtZW50KSB7CisgIGxldCBwcm9taXNlcyA9IFtdOworICBmb3IgKGV2ZW50
IG9mIGV2ZW50cykgeworICAgICgoZXZlbnQsIGVsZW1lbnQpID0+IHsKKyAgICAgIHZhciBwcm9t
aXNlID0gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4geworICAgICAgICBsZXQgZiA9
IChlKSA9PiB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnR5cGUsIGV2ZW50KTsKKyAgICAg
ICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LCBlbGVtZW50KTsKKyAgICAgICAgICByZWplY3Qo
ImdvdCAiICsgZS50eXBlICsgIiBvbiAiICsgZS50YXJnZXQuaWQpOworICAgICAgICB9CisgICAg
ICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihldmVudCwgZiwgeyBjYXB0dXJlOiB0cnVlLCBv
bmNlOiB0cnVlIH0pOworCisgICAgICAgIHN0ZXBfdGltZW91dCgoKSA9PiB7CisgICAgICAgICAg
ZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50LCBmLCB7IGNhcHR1cmU6IHRydWUgfSk7
CisgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgICB9LCAxMDAwKTsKKyAgICAgIH0pOworICAg
ICAgcHJvbWlzZXMucHVzaChwcm9taXNlKTsKKyAgICB9KShldmVudCwgZWxlbWVudCk7CisgIH0K
KyAgcmV0dXJuIHByb21pc2VzOworfQorCit0ZXN0KCgpID0+IHsKKyAgbGV0IHJlY3QgPSBmb3Jl
Z3JvdW5kLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworICBsZXQgY2VudGVyX3ggPSByZWN0Lmxl
ZnQgKyAocmVjdC53aWR0aCAvIDIpOworICBsZXQgY2VudGVyX3kgPSByZWN0LnRvcCArIChyZWN0
LmhlaWdodCAvIDIpOworICBhc3NlcnRfZXF1YWxzKGRvY3VtZW50LmVsZW1lbnRzRnJvbVBvaW50
KGNlbnRlcl94LCBjZW50ZXJfeSlbMF0sIGZvcmVncm91bmQpOworfSwgImVsZW1lbnRzRnJvbVBv
aW50IHJldHVybnMgaW5lcnQgZWxlbWVudCIpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgKCkgPT4g
eworICAvLyBUZXN0IG1vdXNlIGV2ZW50cyBvbiBub24taW5lcnQgZWxlbWVudCAtIGV2ZW50cyBz
aG91bGQgZ28gdG8gImZvcmVncm91bmQiCisgIGluZXJ0Q29udGFpbmVyLmluZXJ0ID0gZmFsc2U7
CisgIGF3YWl0IG1vdmVQb2ludGVyVG8oMCwgMCk7CisgIGxldCBwcm9taXNlcyA9IGV4cGVjdEV2
ZW50c09uKFsibW91c2VvdmVyIiwgIm1vdXNlZW50ZXIiLCAibW91c2Vtb3ZlIiwgIm1vdXNlZG93
biIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibW91c2V1cCIsICJjbGljayIs
ICJhdXhjbGljayIsICJtb3VzZW91dCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAibW91c2VsZWF2ZSJdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JlZ3Jv
dW5kKTsKKyAgYXdhaXQgY2xpY2tPbihmb3JlZ3JvdW5kKTsKKyAgYXdhaXQgYXV4Q2xpY2tPbihm
b3JlZ3JvdW5kKTsKKyAgYXdhaXQgZGJsQ2xpY2tPbihmb3JlZ3JvdW5kKTsKKyAgbGV0IGFuY2Vz
dG9yQm94ID0gYW5jZXN0b3JDb250YWluZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CisgIGxl
dCBpbmVydEJveCA9IGluZXJ0Q29udGFpbmVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworICBs
ZXQgeCA9IGFuY2VzdG9yQm94LmxlZnQgKyAoYW5jZXN0b3JCb3gud2lkdGggLyAyKTsKKyAgbGV0
IHkgPSBpbmVydEJveC5ib3R0b20gKyAoKGFuY2VzdG9yQm94LmJvdHRvbSAtIGluZXJ0Qm94LmJv
dHRvbSkgLyAyKTsKKyAgYXdhaXQgbW92ZVBvaW50ZXJUbyh4LCB5KTsKKyAgYXdhaXQgUHJvbWlz
ZS5hbGwocHJvbWlzZXMpOworfSwgIlRlc3RzIHRoYXQgYW55IG1vdXNlIGV2ZW50IG9uIGEgbm9u
LWluZXJ0IGVsZW1lbnQgaXMgY29ycmVjdGx5IHRhcmdldGVkIHRvIHRoYXQgZWxlbWVudCIpOwor
Citwcm9taXNlX3Rlc3QoYXN5bmMgKCkgPT4geworICAvLyBNYWtlIHRoZSBjb250YWluaW5nIGVs
ZW1lbnQgaW5lcnQgLSBub3cgZXZlbnRzIHNob3VsZCBnbyB0byAiY29udGFpbmVyIgorICAvLyB3
aGljaCBpcyB0aGUgbm9uLWluZXJ0IGFuY2VzdG9yIGF0IHRoZSBzYW1lIHBvc2l0aW9uCisgIGlu
ZXJ0Q29udGFpbmVyLmluZXJ0ID0gdHJ1ZTsKKyAgYXdhaXQgbW92ZVBvaW50ZXJUbygwLCAwKTsK
KworICBsZXQgcHJvbWlzZXMgPSBleHBlY3RFdmVudHNPbihbIm1vdXNlb3ZlciIsICJtb3VzZWVu
dGVyIiwgIm1vdXNlbW92ZSIsICJtb3VzZWRvd24iLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIm1vdXNldXAiLCAiY2xpY2siLCAiYXV4Y2xpY2siXSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgYW5jZXN0b3JDb250YWluZXIpOworCisgIHByb21pc2VzID0gcHJv
bWlzZXMuY29uY2F0KHVuZXhwZWN0RXZlbnRzT24oWyJtb3VzZW91dCIsICJtb3VzZWxlYXZlIl0s
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5jZXN0b3JD
b250YWluZXIpKTsKKworICBhd2FpdCBjbGlja09uKGZvcmVncm91bmQpOworICBhd2FpdCBhdXhD
bGlja09uKGZvcmVncm91bmQpOworICBhd2FpdCBkYmxDbGlja09uKGZvcmVncm91bmQpOworICBs
ZXQgYW5jZXN0b3JCb3ggPSBhbmNlc3RvckNvbnRhaW5lci5nZXRCb3VuZGluZ0NsaWVudFJlY3Qo
KTsKKyAgbGV0IGluZXJ0Qm94ID0gaW5lcnRDb250YWluZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0
KCk7CisgIGxldCB4ID0gYW5jZXN0b3JCb3gubGVmdCArIChhbmNlc3RvckJveC53aWR0aCAvIDIp
OworICBsZXQgeSA9IGluZXJ0Qm94LmJvdHRvbSArICgoYW5jZXN0b3JCb3guYm90dG9tIC0gaW5l
cnRCb3guYm90dG9tKSAvIDIpOworICBhd2FpdCBtb3ZlUG9pbnRlclRvKHgsIHkpOworICBhd2Fp
dCBQcm9taXNlLmFsbChwcm9taXNlcyk7Cit9LCAnVGVzdHMgdGhhdCBhbnkgbW91c2UgZXZlbnQg
b24gYW4gaW5lcnQgZWxlbWVudCBpcyB0YXJnZXRlZCB0byB0aGUgbmVhcmVzdCBub24taW5lcnQg
YW5jZXN0b3IgYXQgdGhlIHNhbWUgY29vcmRpbmF0ZXMnKTsKKworcHJvbWlzZV90ZXN0KGFzeW5j
ICgpID0+IHsKKyAgLy8gVGVzdCBwb2ludGVyIGV2ZW50cyBvbiBub24taW5lcnQgZWxlbWVudCAt
IGV2ZW50cyBzaG91bGQgZ28gdG8gImZvcmVncm91bmQiCisgIGluZXJ0Q29udGFpbmVyLmluZXJ0
ID0gZmFsc2U7CisgIGF3YWl0IG1vdmVQb2ludGVyVG8oMCwgMCk7CisKKyAgbGV0IHByb21pc2Vz
ID0gZXhwZWN0RXZlbnRzT24oWyJwb2ludGVyb3ZlciIsICJwb2ludGVyZW50ZXIiLCAicG9pbnRl
cm1vdmUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInBvaW50ZXJkb3duIiwg
InBvaW50ZXJ1cCIsICJwb2ludGVyb3V0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJwb2ludGVybGVhdmUiXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9y
ZWdyb3VuZCk7CisgIGF3YWl0IGNsaWNrT24oZm9yZWdyb3VuZCk7CisgIGxldCBhbmNlc3RvckJv
eCA9IGFuY2VzdG9yQ29udGFpbmVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworICBsZXQgaW5l
cnRCb3ggPSBpbmVydENvbnRhaW5lci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgbGV0IHgg
PSBhbmNlc3RvckJveC5sZWZ0ICsgKGFuY2VzdG9yQm94LndpZHRoIC8gMik7CisgIGxldCB5ID0g
aW5lcnRCb3guYm90dG9tICsgKChhbmNlc3RvckJveC5ib3R0b20gLSBpbmVydEJveC5ib3R0b20p
IC8gMik7CisgIGF3YWl0IG1vdmVQb2ludGVyVG8oeCwgeSk7CisgIGF3YWl0IFByb21pc2UuYWxs
KHByb21pc2VzKTsKK30sICJUZXN0cyB0aGF0IGFueSBwb2ludGVyIGV2ZW50IG9uIGEgbm9uLWlu
ZXJ0IGVsZW1lbnQgaXMgY29ycmVjdGx5IHRhcmdldGVkIHRvIHRoYXQgZWxlbWVudCIpOworCitw
cm9taXNlX3Rlc3QoYXN5bmMgKCkgPT4geworICAvLyBNYWtlIHRoZSBjb250YWluaW5nIGVsZW1l
bnQgaW5lcnQgLSBub3cgZXZlbnRzIHNob3VsZCBnbyB0byAiY29udGFpbmVyIgorICAvLyB3aGlj
aCBpcyB0aGUgbm9uLWluZXJ0IGFuY2VzdG9yIGF0IHRoZSBzYW1lIHBvc2l0aW9uCisgIGluZXJ0
Q29udGFpbmVyLmluZXJ0ID0gdHJ1ZTsKKyAgYXdhaXQgbW92ZVBvaW50ZXJUbygwLCAwKTsKKwor
ICBsZXQgcHJvbWlzZXMgPSBleHBlY3RFdmVudHNPbihbInBvaW50ZXJvdmVyIiwgInBvaW50ZXJl
bnRlciIsICJwb2ludGVybW92ZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
cG9pbnRlcmRvd24iLCAicG9pbnRlcnVwIiBdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBhbmNlc3RvckNvbnRhaW5lcik7CisKKyAgcHJvbWlzZXMgPSBwcm9taXNlcy5jb25jYXQo
dW5leHBlY3RFdmVudHNPbihbInBvaW50ZXJvdXQiLCAicG9pbnRlcmxlYXZlIl0sCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5jZXN0b3JDb250YWluZXIp
KTsKKyAgYXdhaXQgY2xpY2tPbihmb3JlZ3JvdW5kKTsKKyAgbGV0IGFuY2VzdG9yQm94ID0gYW5j
ZXN0b3JDb250YWluZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CisgIGxldCBpbmVydEJveCA9
IGluZXJ0Q29udGFpbmVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworICBsZXQgeCA9IGFuY2Vz
dG9yQm94LmxlZnQgKyAoYW5jZXN0b3JCb3gud2lkdGggLyAyKTsKKyAgbGV0IHkgPSBpbmVydEJv
eC5ib3R0b20gKyAoKGFuY2VzdG9yQm94LmJvdHRvbSAtIGluZXJ0Qm94LmJvdHRvbSkgLyAyKTsK
KyAgYXdhaXQgbW92ZVBvaW50ZXJUbyh4LCB5KTsKKyAgYXdhaXQgUHJvbWlzZS5hbGwocHJvbWlz
ZXMpOworfSwgJ1Rlc3RzIHRoYXQgYW55IHBvaW50ZXIgZXZlbnQgb24gYW4gaW5lcnQgZWxlbWVu
dCBpcyB0YXJnZXRlZCB0byB0aGUgbmVhcmVzdCBub24taW5lcnQgYW5jZXN0b3IgYXQgdGhlIHNh
bWUgY29vcmRpbmF0ZXMnKTsKKyAgPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2lu
ZXJ0LXJldGFyZ2V0aW5nLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LXJldGFyZ2V0aW5nLnRlbnRh
dGl2ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmI3NDVmYTIxOGRiY2I1YTRlYzZlNmZiYjZh
ZDJiNWI0ZGE5ZWExNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtcmV0YXJnZXRpbmcudGVudGF0aXZlLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDQ3IEBACitDT05TT0xFIE1FU1NBR0U6IEVycm9yOiBhc3Nl
cnRfZXF1YWxzOiBleHBlY3RlZCBFbGVtZW50IG5vZGUgPGZpZWxkc2V0IGlkPSJhbmNlc3RvckNv
bnRhaW5lciI+CisgICAgPGxlZ2VuZD5Ob24taW5lcnQgYS4uLiBidXQgZ290IEVsZW1lbnQgbm9k
ZSA8YnV0dG9uIGlkPSJmb3JlZ3JvdW5kIiBjbGFzcz0iY2xpY2tlZCI+Zm9yZWdyb3VuZDwvYnV0
dG9uPgorQ09OU09MRSBNRVNTQUdFOiBFcnJvcjogYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgRWxl
bWVudCBub2RlIDxmaWVsZHNldCBpZD0iYW5jZXN0b3JDb250YWluZXIiPgorICAgIDxsZWdlbmQ+
Tm9uLWluZXJ0IGEuLi4gYnV0IGdvdCBFbGVtZW50IG5vZGUgPGJ1dHRvbiBpZD0iZm9yZWdyb3Vu
ZCIgY2xhc3M9ImNsaWNrZWQiPmZvcmVncm91bmQ8L2J1dHRvbj4KK0NPTlNPTEUgTUVTU0FHRTog
RXJyb3I6IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIEVsZW1lbnQgbm9kZSA8ZmllbGRzZXQgaWQ9
ImFuY2VzdG9yQ29udGFpbmVyIj4KKyAgICA8bGVnZW5kPk5vbi1pbmVydCBhLi4uIGJ1dCBnb3Qg
RWxlbWVudCBub2RlIDxidXR0b24gaWQ9ImZvcmVncm91bmQiIGNsYXNzPSJjbGlja2VkIj5mb3Jl
Z3JvdW5kPC9idXR0b24+CitDT05TT0xFIE1FU1NBR0U6IEVycm9yOiBhc3NlcnRfZXF1YWxzOiBl
eHBlY3RlZCBFbGVtZW50IG5vZGUgPGZpZWxkc2V0IGlkPSJhbmNlc3RvckNvbnRhaW5lciI+Cisg
ICAgPGxlZ2VuZD5Ob24taW5lcnQgYS4uLiBidXQgZ290IEVsZW1lbnQgbm9kZSA8YnV0dG9uIGlk
PSJmb3JlZ3JvdW5kIiBjbGFzcz0iY2xpY2tlZCI+Zm9yZWdyb3VuZDwvYnV0dG9uPgorQ09OU09M
RSBNRVNTQUdFOiBFcnJvcjogYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgRWxlbWVudCBub2RlIDxm
aWVsZHNldCBpZD0iYW5jZXN0b3JDb250YWluZXIiPgorICAgIDxsZWdlbmQ+Tm9uLWluZXJ0IGEu
Li4gYnV0IGdvdCBFbGVtZW50IG5vZGUgPGJ1dHRvbiBpZD0iZm9yZWdyb3VuZCIgY2xhc3M9ImNs
aWNrZWQiPmZvcmVncm91bmQ8L2J1dHRvbj4KK0NPTlNPTEUgTUVTU0FHRTogRXJyb3I6IGFzc2Vy
dF9lcXVhbHM6IGV4cGVjdGVkIEVsZW1lbnQgbm9kZSA8ZmllbGRzZXQgaWQ9ImFuY2VzdG9yQ29u
dGFpbmVyIj4KKyAgICA8bGVnZW5kPk5vbi1pbmVydCBhLi4uIGJ1dCBnb3QgRWxlbWVudCBub2Rl
IDxidXR0b24gaWQ9ImZvcmVncm91bmQiIGNsYXNzPSJjbGlja2VkIj5mb3JlZ3JvdW5kPC9idXR0
b24+CitDT05TT0xFIE1FU1NBR0U6IEVycm9yOiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCBFbGVt
ZW50IG5vZGUgPGZpZWxkc2V0IGlkPSJhbmNlc3RvckNvbnRhaW5lciI+CisgICAgPGxlZ2VuZD5O
b24taW5lcnQgYS4uLiBidXQgZ290IEVsZW1lbnQgbm9kZSA8YnV0dG9uIGlkPSJmb3JlZ3JvdW5k
IiBjbGFzcz0iY2xpY2tlZCI+Zm9yZWdyb3VuZDwvYnV0dG9uPgorQ09OU09MRSBNRVNTQUdFOiBF
cnJvcjogYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgRWxlbWVudCBub2RlIDxmaWVsZHNldCBpZD0i
YW5jZXN0b3JDb250YWluZXIiPgorICAgIDxsZWdlbmQ+Tm9uLWluZXJ0IGEuLi4gYnV0IGdvdCBF
bGVtZW50IG5vZGUgPGJ1dHRvbiBpZD0iZm9yZWdyb3VuZCIgY2xhc3M9ImNsaWNrZWQiPmZvcmVn
cm91bmQ8L2J1dHRvbj4KK0NPTlNPTEUgTUVTU0FHRTogRXJyb3I6IGFzc2VydF9lcXVhbHM6IGV4
cGVjdGVkIEVsZW1lbnQgbm9kZSA8ZmllbGRzZXQgaWQ9ImFuY2VzdG9yQ29udGFpbmVyIj4KKyAg
ICA8bGVnZW5kPk5vbi1pbmVydCBhLi4uIGJ1dCBnb3QgRWxlbWVudCBub2RlIDxidXR0b24gaWQ9
ImZvcmVncm91bmQiIGNsYXNzPSJjbGlja2VkIj5mb3JlZ3JvdW5kPC9idXR0b24+CitDT05TT0xF
IE1FU1NBR0U6IEVycm9yOiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCBFbGVtZW50IG5vZGUgPGZp
ZWxkc2V0IGlkPSJhbmNlc3RvckNvbnRhaW5lciI+CisgICAgPGxlZ2VuZD5Ob24taW5lcnQgYS4u
LiBidXQgZ290IEVsZW1lbnQgbm9kZSA8YnV0dG9uIGlkPSJmb3JlZ3JvdW5kIiBjbGFzcz0iY2xp
Y2tlZCI+Zm9yZWdyb3VuZDwvYnV0dG9uPgorQ09OU09MRSBNRVNTQUdFOiBFcnJvcjogYXNzZXJ0
X2VxdWFsczogZXhwZWN0ZWQgRWxlbWVudCBub2RlIDxmaWVsZHNldCBpZD0iYW5jZXN0b3JDb250
YWluZXIiPgorICAgIDxsZWdlbmQ+Tm9uLWluZXJ0IGEuLi4gYnV0IGdvdCBFbGVtZW50IG5vZGUg
PGJ1dHRvbiBpZD0iZm9yZWdyb3VuZCIgY2xhc3M9ImNsaWNrZWQiPmZvcmVncm91bmQ8L2J1dHRv
bj4KK0NPTlNPTEUgTUVTU0FHRTogRXJyb3I6IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIEVsZW1l
bnQgbm9kZSA8ZmllbGRzZXQgaWQ9ImFuY2VzdG9yQ29udGFpbmVyIj4KKyAgICA8bGVnZW5kPk5v
bi1pbmVydCBhLi4uIGJ1dCBnb3QgRWxlbWVudCBub2RlIDxidXR0b24gaWQ9ImZvcmVncm91bmQi
IGNsYXNzPSJjbGlja2VkIj5mb3JlZ3JvdW5kPC9idXR0b24+CitDT05TT0xFIE1FU1NBR0U6IEVy
cm9yOiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCBFbGVtZW50IG5vZGUgPGZpZWxkc2V0IGlkPSJh
bmNlc3RvckNvbnRhaW5lciI+CisgICAgPGxlZ2VuZD5Ob24taW5lcnQgYS4uLiBidXQgZ290IEVs
ZW1lbnQgbm9kZSA8YnV0dG9uIGlkPSJmb3JlZ3JvdW5kIiBjbGFzcz0iY2xpY2tlZCI+Zm9yZWdy
b3VuZDwvYnV0dG9uPgorQ2xpY2sgb24gImZvcmVncm91bmQiLgorCitUaGUgYmx1ZSBzcXVhcmUg
KCJOb24taW5lcnQgYW5jZXN0b3IgY29udGFpbmVyIikgc2hvdWxkIHR1cm4gZ3JlZW4uCitUaGUg
eWVsbG93LCBzZW1pLXRyYW5zcGFyZW50IHNxdWFyZSAoIk5vbi1pbmVydCwgZGlzcGxhY2VkIGNv
bnRhaW5lciIpIHNob3VsZCBub3QgdHVybiByZWQuCisiTm9uLWluZXJ0IGJ1dHRvbiIgc2hvdWxk
IG5vdCB0dXJuIHJlZC4KKyhUaGUgZnVsbCB0ZXN0IHN1aXRlIGNoZWNrcyBhIHJhbmdlIG9mIGV2
ZW50cy4pCisKK05vbi1pbmVydCBhbmNlc3RvciBjb250YWluZXIKK2JhY2tncm91bmROb24taW5l
cnQsIGRpc3BsYWNlZCBhbmNlc3RvcgorSW5lcnQgY29udGFpbmVyCitmb3JlZ3JvdW5kCisKK0hh
cm5lc3MgRXJyb3IgKEZBSUwpLCBtZXNzYWdlID0gRXJyb3I6IGFzc2VydF9lcXVhbHM6IGV4cGVj
dGVkIEVsZW1lbnQgbm9kZSA8ZmllbGRzZXQgaWQ9ImFuY2VzdG9yQ29udGFpbmVyIj4KKyAgICA8
bGVnZW5kPk5vbi1pbmVydCBhLi4uIGJ1dCBnb3QgRWxlbWVudCBub2RlIDxidXR0b24gaWQ9ImZv
cmVncm91bmQiIGNsYXNzPSJjbGlja2VkIj5mb3JlZ3JvdW5kPC9idXR0b24+CisKK1BBU1MgZWxl
bWVudHNGcm9tUG9pbnQgcmV0dXJucyBpbmVydCBlbGVtZW50CitGQUlMIFRlc3RzIHRoYXQgYW55
IG1vdXNlIGV2ZW50IG9uIGEgbm9uLWluZXJ0IGVsZW1lbnQgaXMgY29ycmVjdGx5IHRhcmdldGVk
IHRvIHRoYXQgZWxlbWVudCBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2
YWx1ZTogImRpZCBub3QgZ2V0IGF1eGNsaWNrIG9uIGZvcmVncm91bmQiCitGQUlMIFRlc3RzIHRo
YXQgYW55IG1vdXNlIGV2ZW50IG9uIGFuIGluZXJ0IGVsZW1lbnQgaXMgdGFyZ2V0ZWQgdG8gdGhl
IG5lYXJlc3Qgbm9uLWluZXJ0IGFuY2VzdG9yIGF0IHRoZSBzYW1lIGNvb3JkaW5hdGVzIHByb21p
c2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiAiZGlkIG5vdCBnZXQgbW91
c2VvdmVyIG9uIGFuY2VzdG9yQ29udGFpbmVyIgorUEFTUyBUZXN0cyB0aGF0IGFueSBwb2ludGVy
IGV2ZW50IG9uIGEgbm9uLWluZXJ0IGVsZW1lbnQgaXMgY29ycmVjdGx5IHRhcmdldGVkIHRvIHRo
YXQgZWxlbWVudAorRkFJTCBUZXN0cyB0aGF0IGFueSBwb2ludGVyIGV2ZW50IG9uIGFuIGluZXJ0
IGVsZW1lbnQgaXMgdGFyZ2V0ZWQgdG8gdGhlIG5lYXJlc3Qgbm9uLWluZXJ0IGFuY2VzdG9yIGF0
IHRoZSBzYW1lIGNvb3JkaW5hdGVzIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3
aXRoIHZhbHVlOiAiZGlkIG5vdCBnZXQgcG9pbnRlcm92ZXIgb24gYW5jZXN0b3JDb250YWluZXIi
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvaW5lcnQvaW5lcnQtcmV0YXJnZXRpbmcudGVudGF0aXZlLmh0bWwgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LXJldGFyZ2V0aW5nLnRl
bnRhdGl2ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIyODBjZjVhNWQxZmIxNmVmMTkyMzEwZTRmYjRmN2Qy
MmIzNzAyYjMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LXJldGFyZ2V0aW5nLnRlbnRhdGl2ZS5odG1sCkBA
IC0wLDAgKzEsMjkwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0
IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
L3Jlc291cmNlcy90ZXN0ZHJpdmVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3Vy
Y2VzL3Rlc3Rkcml2ZXItYWN0aW9ucy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291
cmNlcy90ZXN0ZHJpdmVyLXZlbmRvci5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+CitidXR0b24jZm9y
ZWdyb3VuZCwKK2J1dHRvbiNiYWNrZ3JvdW5kIHsKKyAgcG9zaXRpb246IGFic29sdXRlOworICB0
b3A6IDc1cHg7CisgIGxlZnQ6IDUwcHg7CisgIHdpZHRoOiAxMDBweDsKKyAgaGVpZ2h0OiAyMHB4
OworfQorCitidXR0b24jYmFja2dyb3VuZCB7CisgIGxlZnQ6IDc1cHg7CisgIHdpZHRoOiAxNTBw
eDsKKyAgaGVpZ2h0OiA0MHB4OworICB0b3A6IDEyNXB4OworICBsaW5lLWhlaWdodDogNTNweDsK
K30KKworLmNsaWNrZWQgeworICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7Cit9CisKKyNhbmNlc3Rv
ckNvbnRhaW5lci5jbGlja2VkIHsKKyAgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47Cit9CisKKyNh
bmNlc3RvckNvbnRhaW5lciB7CisgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgd2lkdGg6IDMwMHB4
OworICBoZWlnaHQ6IDMwMHB4OworICBiYWNrZ3JvdW5kLWNvbG9yOiBibHVlOworfQorCisjZGlz
cGxhY2VkQW5jZXN0b3IgeworICBwb3NpdGlvbjogYWJzb2x1dGU7CisgIHRvcDogMTNweDsKKyAg
bGVmdDogMjQwcHg7CisgIHdpZHRoOiAzMDBweDsKKyAgaGVpZ2h0OiAyNTBweDsKKyAgYmFja2dy
b3VuZC1jb2xvcjogI2ZmODk7Cit9CisKKyNkaXNwbGFjZWRBbmNlc3Rvci5jbGlja2VkIHsKKyAg
YmFja2dyb3VuZC1jb2xvcjogI2YwMDk7Cit9CisKKyNpbmVydENvbnRhaW5lciB7CisgIGJhY2tn
cm91bmQtY29sb3I6ICNmZmY5OworICBwb3NpdGlvbjogYWJzb2x1dGU7CisgIHRvcDogMzVweDsK
KyAgbGVmdDogLTE5MnB4OworICB3aWR0aDogMjAwcHg7CisgIGhlaWdodDogMjAwcHg7Cit9CisK
K2ZpZWxkc2V0IHsKKyAgbWFyZ2luOiAwOworICBwYWRkaW5nOiAwOworICBib3JkZXI6IDFweCBz
b2xpZCBibGFjazsKK30KKworbGVnZW5kIHsKKyAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7Cisg
IGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOworICBtYXJnaW4tbGVmdDogNXB4OworfQorCitidXR0
b24uY2xpY2tlZDo6YWZ0ZXIgeworICBjb250ZW50OiAiIChjbGlja2VkKSI7Cit9CisKKy5jbGlj
a2VkID4gbGVnZW5kOjphZnRlciB7CisgIGNvbnRlbnQ6ICIgKGNsaWNrZWQpIjsKK30KKworPC9z
dHlsZT4KKzwvaGVhZD4KKzxib2R5PgorICA8cD5DbGljayBvbiAiZm9yZWdyb3VuZCIuPC9wPgor
ICA8dWw+CisgICAgPGxpPlRoZSBibHVlIHNxdWFyZSAoIk5vbi1pbmVydCBhbmNlc3RvciBjb250
YWluZXIiKSBzaG91bGQgdHVybiBncmVlbi48L2xpPgorICAgIDxsaT5UaGUgeWVsbG93LCBzZW1p
LXRyYW5zcGFyZW50IHNxdWFyZSAoIk5vbi1pbmVydCwgZGlzcGxhY2VkIGNvbnRhaW5lciIpIHNo
b3VsZCBub3QgdHVybiByZWQuPC9saT4KKyAgICA8bGk+Ik5vbi1pbmVydCBidXR0b24iIHNob3Vs
ZCBub3QgdHVybiByZWQuPC9saT4KKyAgPC91bD4KKyAgPHA+KFRoZSBmdWxsIHRlc3Qgc3VpdGUg
Y2hlY2tzIGEgcmFuZ2Ugb2YgZXZlbnRzLik8L3A+CisgIDxmaWVsZHNldCBpZD0iYW5jZXN0b3JD
b250YWluZXIiPgorICAgIDxsZWdlbmQ+Tm9uLWluZXJ0IGFuY2VzdG9yIGNvbnRhaW5lcjwvbGVn
ZW5kPgorICAgIDxidXR0b24gaWQ9ImJhY2tncm91bmQiPmJhY2tncm91bmQ8L2J1dHRvbj4KKyAg
ICA8ZmllbGRzZXQgaWQ9ImRpc3BsYWNlZEFuY2VzdG9yIj4KKyAgICAgIDxsZWdlbmQ+Tm9uLWlu
ZXJ0LCBkaXNwbGFjZWQgYW5jZXN0b3I8L2xlZ2VuZD4KKyAgICAgIDxmaWVsZHNldCBpZD0iaW5l
cnRDb250YWluZXIiIGluZXJ0PgorICAgICAgICA8bGVnZW5kPkluZXJ0IGNvbnRhaW5lcjwvbGVn
ZW5kPgorICAgICAgICA8YnV0dG9uIGlkPSJmb3JlZ3JvdW5kIj5mb3JlZ3JvdW5kPC9idXR0b24+
CisgICAgICA8L2ZpZWxkc2V0PgorICAgIDwvZmllbGRzZXQ+CisgIDwvZmllbGRzZXQ+CisKKyAg
PHNjcmlwdD4KK2RvY3VtZW50LmJvZHkuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoZSkgPT4g
eworICBlLnRhcmdldC5jbGFzc0xpc3QuYWRkKCdjbGlja2VkJyk7Cit9KTsKKworZnVuY3Rpb24g
Y2xpY2tPbihlbGVtZW50KSB7CisgIHJldHVybiBuZXcgdGVzdF9kcml2ZXIuQWN0aW9ucygpCisg
ICAgICAucG9pbnRlck1vdmUoMCwgMCwge29yaWdpbjogZWxlbWVudH0pCisgICAgICAucG9pbnRl
ckRvd24oe2J1dHRvbjogdGVzdF9kcml2ZXIuQWN0aW9ucy5wcm90b3R5cGUuQnV0dG9uVHlwZS5M
RUZUfSkKKyAgICAgIC5wb2ludGVyVXAoe2J1dHRvbjogdGVzdF9kcml2ZXIuQWN0aW9ucy5wcm90
b3R5cGUuQnV0dG9uVHlwZS5MRUZUfSkKKyAgICAgIC5zZW5kKCk7Cit9CisKK2Z1bmN0aW9uIGF1
eENsaWNrT24oZWxlbWVudCkgeworICByZXR1cm4gbmV3IHRlc3RfZHJpdmVyLkFjdGlvbnMoKQor
ICAgICAgLnBvaW50ZXJNb3ZlKDAsIDAsIHtvcmlnaW46IGVsZW1lbnR9KQorICAgICAgLnBvaW50
ZXJEb3duKHtidXR0b246IHRlc3RfZHJpdmVyLkFjdGlvbnMucHJvdG90eXBlLkJ1dHRvblR5cGUu
UklHSFR9KQorICAgICAgLnBvaW50ZXJVcCh7YnV0dG9uOiB0ZXN0X2RyaXZlci5BY3Rpb25zLnBy
b3RvdHlwZS5CdXR0b25UeXBlLlJJR0hUfSkKKyAgICAgIC5zZW5kKCk7Cit9CisKK2Z1bmN0aW9u
IGRibENsaWNrT24oZWxlbWVudCkgeworICByZXR1cm4gbmV3IHRlc3RfZHJpdmVyLkFjdGlvbnMo
KQorICAgICAgLnBvaW50ZXJNb3ZlKDAsIDAsIHtvcmlnaW46IGVsZW1lbnR9KQorICAgICAgLnBv
aW50ZXJEb3duKHtidXR0b246IHRlc3RfZHJpdmVyLkFjdGlvbnMucHJvdG90eXBlLkJ1dHRvblR5
cGUuTEVGVH0pCisgICAgICAucG9pbnRlclVwKHtidXR0b246IHRlc3RfZHJpdmVyLkFjdGlvbnMu
cHJvdG90eXBlLkJ1dHRvblR5cGUuTEVGVH0pCisgICAgICAucG9pbnRlckRvd24oe2J1dHRvbjog
dGVzdF9kcml2ZXIuQWN0aW9ucy5wcm90b3R5cGUuQnV0dG9uVHlwZS5MRUZUfSkKKyAgICAgIC5w
b2ludGVyVXAoe2J1dHRvbjogdGVzdF9kcml2ZXIuQWN0aW9ucy5wcm90b3R5cGUuQnV0dG9uVHlw
ZS5MRUZUfSkKKyAgICAgIC5zZW5kKCk7Cit9CisKK2Z1bmN0aW9uIG1vdmVQb2ludGVyT3Zlcihl
bGVtZW50KSB7CisgIGxldCByZWN0ID0gZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsK
KyAgcmV0dXJuIG5ldyB0ZXN0X2RyaXZlci5BY3Rpb25zKCkKKyAgICAgIC5wb2ludGVyTW92ZSgw
LCAwLCB7IG9yaWdpbjogZWxlbWVudCB9KQorICAgICAgLnNlbmQoKTsKK30KKworZnVuY3Rpb24g
bW92ZVBvaW50ZXJUbyh4LCB5KSB7CisgIHJldHVybiBuZXcgdGVzdF9kcml2ZXIuQWN0aW9ucygp
CisgICAgICAucG9pbnRlck1vdmUoeCwgeSwgeyBvcmlnaW46ICJ2aWV3cG9ydCIgfSkKKyAgICAg
IC5zZW5kKCk7Cit9CisKK2Z1bmN0aW9uIGV4cGVjdEV2ZW50c09uKGV2ZW50cywgZWxlbWVudCkg
eworICBsZXQgcHJvbWlzZXMgPSBbXTsKKyAgZm9yIChldmVudCBvZiBldmVudHMpIHsKKyAgICAo
KGV2ZW50LCBlbGVtZW50KSA9PiB7CisgICAgICB2YXIgcHJvbWlzZSA9IG5ldyBQcm9taXNlKChy
ZXNvbHZlLCByZWplY3QpID0+IHsKKyAgICAgICAgbGV0IGYgPSAoZSkgPT4geworICAgICAgICAg
IGFzc2VydF9lcXVhbHMoZS50eXBlLCBldmVudCk7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhl
LnRhcmdldCwgZWxlbWVudCk7CisgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgICB9CisgICAg
ICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihldmVudCwgZiwgeyBjYXB0dXJlOiB0cnVlLCBv
bmNlOiB0cnVlIH0pOworCisgICAgICAgIHN0ZXBfdGltZW91dCgoKSA9PiB7CisgICAgICAgICAg
ZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50LCBmLCB7IGNhcHR1cmU6IHRydWUgfSk7
CisgICAgICAgICAgcmVqZWN0KCJkaWQgbm90IGdldCAiICsgZXZlbnQgKyAiIG9uICIgKyBlbGVt
ZW50LmlkKTsKKyAgICAgICAgfSwgMTAwMCk7CisgICAgICB9KTsKKyAgICAgIHByb21pc2VzLnB1
c2gocHJvbWlzZSk7CisgICAgfSkoZXZlbnQsIGVsZW1lbnQpOworICB9CisgIHJldHVybiBwcm9t
aXNlczsKK30KKworZnVuY3Rpb24gdW5leHBlY3RFdmVudHNPbihldmVudHMsIGVsZW1lbnQpIHsK
KyAgbGV0IHByb21pc2VzID0gW107CisgIGZvciAoZXZlbnQgb2YgZXZlbnRzKSB7CisgICAgKChl
dmVudCwgZWxlbWVudCkgPT4geworICAgICAgdmFyIHByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVz
b2x2ZSwgcmVqZWN0KSA9PiB7CisgICAgICAgIGxldCBmID0gKGUpID0+IHsKKyAgICAgICAgICBh
c3NlcnRfZXF1YWxzKGUudHlwZSwgZXZlbnQpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50
YXJnZXQsIGVsZW1lbnQpOworICAgICAgICAgIHJlamVjdCgiZ290ICIgKyBlLnR5cGUgKyAiIG9u
ICIgKyBlLnRhcmdldC5pZCk7CisgICAgICAgIH0KKyAgICAgICAgZWxlbWVudC5hZGRFdmVudExp
c3RlbmVyKGV2ZW50LCBmLCB7IGNhcHR1cmU6IHRydWUsIG9uY2U6IHRydWUgfSk7CisKKyAgICAg
ICAgc3RlcF90aW1lb3V0KCgpID0+IHsKKyAgICAgICAgICBlbGVtZW50LnJlbW92ZUV2ZW50TGlz
dGVuZXIoZXZlbnQsIGYsIHsgY2FwdHVyZTogdHJ1ZSB9KTsKKyAgICAgICAgICByZXNvbHZlKCk7
CisgICAgICAgIH0sIDEwMDApOworICAgICAgfSk7CisgICAgICBwcm9taXNlcy5wdXNoKHByb21p
c2UpOworICAgIH0pKGV2ZW50LCBlbGVtZW50KTsKKyAgfQorICByZXR1cm4gcHJvbWlzZXM7Cit9
CisKK3Rlc3QoKCkgPT4geworICBsZXQgcmVjdCA9IGZvcmVncm91bmQuZ2V0Qm91bmRpbmdDbGll
bnRSZWN0KCk7CisgIGxldCBjZW50ZXJfeCA9IHJlY3QubGVmdCArIChyZWN0LndpZHRoIC8gMik7
CisgIGxldCBjZW50ZXJfeSA9IHJlY3QudG9wICsgKHJlY3QuaGVpZ2h0IC8gMik7CisgIGFzc2Vy
dF9lcXVhbHMoZG9jdW1lbnQuZWxlbWVudHNGcm9tUG9pbnQoY2VudGVyX3gsIGNlbnRlcl95KVsw
XSwgZm9yZWdyb3VuZCk7Cit9LCAiZWxlbWVudHNGcm9tUG9pbnQgcmV0dXJucyBpbmVydCBlbGVt
ZW50Iik7CisKK3Byb21pc2VfdGVzdChhc3luYyAoKSA9PiB7CisgIC8vIFRlc3QgbW91c2UgZXZl
bnRzIG9uIG5vbi1pbmVydCBlbGVtZW50IC0gZXZlbnRzIHNob3VsZCBnbyB0byAiZm9yZWdyb3Vu
ZCIKKyAgaW5lcnRDb250YWluZXIuaW5lcnQgPSBmYWxzZTsKKyAgYXdhaXQgbW92ZVBvaW50ZXJU
bygwLCAwKTsKKyAgbGV0IHByb21pc2VzID0gZXhwZWN0RXZlbnRzT24oWyJtb3VzZW92ZXIiLCAi
bW91c2VlbnRlciIsICJtb3VzZW1vdmUiLCAibW91c2Vkb3duIiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJtb3VzZXVwIiwgImNsaWNrIiwgImF1eGNsaWNrIiwgIm1vdXNlb3V0
IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJtb3VzZWxlYXZlIl0sCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcmVncm91bmQpOworICBhd2FpdCBjbGlja09u
KGZvcmVncm91bmQpOworICBhd2FpdCBhdXhDbGlja09uKGZvcmVncm91bmQpOworICBhd2FpdCBk
YmxDbGlja09uKGZvcmVncm91bmQpOworICBsZXQgYW5jZXN0b3JCb3ggPSBhbmNlc3RvckNvbnRh
aW5lci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgbGV0IGluZXJ0Qm94ID0gaW5lcnRDb250
YWluZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CisgIGxldCB4ID0gYW5jZXN0b3JCb3gubGVm
dCArIChhbmNlc3RvckJveC53aWR0aCAvIDIpOworICBsZXQgeSA9IGluZXJ0Qm94LmJvdHRvbSAr
ICgoYW5jZXN0b3JCb3guYm90dG9tIC0gaW5lcnRCb3guYm90dG9tKSAvIDIpOworICBhd2FpdCBt
b3ZlUG9pbnRlclRvKHgsIHkpOworICBhd2FpdCBQcm9taXNlLmFsbChwcm9taXNlcyk7Cit9LCAi
VGVzdHMgdGhhdCBhbnkgbW91c2UgZXZlbnQgb24gYSBub24taW5lcnQgZWxlbWVudCBpcyBjb3Jy
ZWN0bHkgdGFyZ2V0ZWQgdG8gdGhhdCBlbGVtZW50Iik7CisKK3Byb21pc2VfdGVzdChhc3luYyAo
KSA9PiB7CisgIC8vIE1ha2UgdGhlIGNvbnRhaW5pbmcgZWxlbWVudCBpbmVydCAtIG5vdyBldmVu
dHMgc2hvdWxkIGdvIHRvICJjb250YWluZXIiCisgIC8vIHdoaWNoIGlzIHRoZSBub24taW5lcnQg
YW5jZXN0b3IgYXQgdGhlIHNhbWUgcG9zaXRpb24KKyAgaW5lcnRDb250YWluZXIuaW5lcnQgPSB0
cnVlOworICBhd2FpdCBtb3ZlUG9pbnRlclRvKDAsIDApOworCisgIGxldCBwcm9taXNlcyA9IGV4
cGVjdEV2ZW50c09uKFsibW91c2VvdmVyIiwgIm1vdXNlZW50ZXIiLCAibW91c2Vtb3ZlIiwgIm1v
dXNlZG93biIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibW91c2V1cCIsICJj
bGljayIsICJhdXhjbGljayJdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmNl
c3RvckNvbnRhaW5lcik7CisKKyAgLy8gVE9ETyhhYm94aGFsbCk6IFdlIGFyZSBnZXR0aW5nIHRo
ZXNlIHVuZXhwZWN0ZWQgZXZlbnRzLiBXaHk/CisgIHByb21pc2VzID0gcHJvbWlzZXMuY29uY2F0
KHVuZXhwZWN0RXZlbnRzT24oWyJtb3VzZW91dCIsICJtb3VzZWxlYXZlIl0sCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5jZXN0b3JDb250YWluZXIpKTsK
KworICBhd2FpdCBjbGlja09uKGZvcmVncm91bmQpOworICBhd2FpdCBhdXhDbGlja09uKGZvcmVn
cm91bmQpOworICBhd2FpdCBkYmxDbGlja09uKGZvcmVncm91bmQpOworICBsZXQgYW5jZXN0b3JC
b3ggPSBhbmNlc3RvckNvbnRhaW5lci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgbGV0IGlu
ZXJ0Qm94ID0gaW5lcnRDb250YWluZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CisgIGxldCB4
ID0gYW5jZXN0b3JCb3gubGVmdCArIChhbmNlc3RvckJveC53aWR0aCAvIDIpOworICBsZXQgeSA9
IGluZXJ0Qm94LmJvdHRvbSArICgoYW5jZXN0b3JCb3guYm90dG9tIC0gaW5lcnRCb3guYm90dG9t
KSAvIDIpOworICBhd2FpdCBtb3ZlUG9pbnRlclRvKHgsIHkpOworICBhd2FpdCBQcm9taXNlLmFs
bChwcm9taXNlcyk7Cit9LCAnVGVzdHMgdGhhdCBhbnkgbW91c2UgZXZlbnQgb24gYW4gaW5lcnQg
ZWxlbWVudCBpcyB0YXJnZXRlZCB0byB0aGUgbmVhcmVzdCBub24taW5lcnQgYW5jZXN0b3IgYXQg
dGhlIHNhbWUgY29vcmRpbmF0ZXMnKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jICgpID0+IHsKKyAg
Ly8gVGVzdCBwb2ludGVyIGV2ZW50cyBvbiBub24taW5lcnQgZWxlbWVudCAtIGV2ZW50cyBzaG91
bGQgZ28gdG8gImZvcmVncm91bmQiCisgIGluZXJ0Q29udGFpbmVyLmluZXJ0ID0gZmFsc2U7Cisg
IGF3YWl0IG1vdmVQb2ludGVyVG8oMCwgMCk7CisKKyAgbGV0IHByb21pc2VzID0gZXhwZWN0RXZl
bnRzT24oWyJwb2ludGVyb3ZlciIsICJwb2ludGVyZW50ZXIiLCAicG9pbnRlcm1vdmUiLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInBvaW50ZXJkb3duIiwgInBvaW50ZXJ1cCIs
ICJwb2ludGVyb3V0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwb2ludGVy
bGVhdmUiXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yZWdyb3VuZCk7Cisg
IGF3YWl0IGNsaWNrT24oZm9yZWdyb3VuZCk7CisgIGxldCBhbmNlc3RvckJveCA9IGFuY2VzdG9y
Q29udGFpbmVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworICBsZXQgaW5lcnRCb3ggPSBpbmVy
dENvbnRhaW5lci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgbGV0IHggPSBhbmNlc3RvckJv
eC5sZWZ0ICsgKGFuY2VzdG9yQm94LndpZHRoIC8gMik7CisgIGxldCB5ID0gaW5lcnRCb3guYm90
dG9tICsgKChhbmNlc3RvckJveC5ib3R0b20gLSBpbmVydEJveC5ib3R0b20pIC8gMik7CisgIGF3
YWl0IG1vdmVQb2ludGVyVG8oeCwgeSk7CisgIGF3YWl0IFByb21pc2UuYWxsKHByb21pc2VzKTsK
K30sICJUZXN0cyB0aGF0IGFueSBwb2ludGVyIGV2ZW50IG9uIGEgbm9uLWluZXJ0IGVsZW1lbnQg
aXMgY29ycmVjdGx5IHRhcmdldGVkIHRvIHRoYXQgZWxlbWVudCIpOworCitwcm9taXNlX3Rlc3Qo
YXN5bmMgKCkgPT4geworICAvLyBNYWtlIHRoZSBjb250YWluaW5nIGVsZW1lbnQgaW5lcnQgLSBu
b3cgZXZlbnRzIHNob3VsZCBnbyB0byAiY29udGFpbmVyIgorICAvLyB3aGljaCBpcyB0aGUgbm9u
LWluZXJ0IGFuY2VzdG9yIGF0IHRoZSBzYW1lIHBvc2l0aW9uCisgIGluZXJ0Q29udGFpbmVyLmlu
ZXJ0ID0gdHJ1ZTsKKyAgYXdhaXQgbW92ZVBvaW50ZXJUbygwLCAwKTsKKworICBsZXQgcHJvbWlz
ZXMgPSBleHBlY3RFdmVudHNPbihbInBvaW50ZXJvdmVyIiwgInBvaW50ZXJlbnRlciIsICJwb2lu
dGVybW92ZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicG9pbnRlcmRvd24i
LCAicG9pbnRlcnVwIiBdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmNlc3Rv
ckNvbnRhaW5lcik7CisKKyAgLy8gVE9ETyhhYm94aGFsbCk6IFdlIGFyZSBnZXR0aW5nIHRoZXNl
IHVuZXhwZWN0ZWQgZXZlbnRzLiBXaHk/CisgIHByb21pc2VzID0gcHJvbWlzZXMuY29uY2F0KHVu
ZXhwZWN0RXZlbnRzT24oWyJwb2ludGVyb3V0IiwgInBvaW50ZXJsZWF2ZSJdLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuY2VzdG9yQ29udGFpbmVyKSk7
CisKKyAgYXdhaXQgY2xpY2tPbihmb3JlZ3JvdW5kKTsKKyAgbGV0IGFuY2VzdG9yQm94ID0gYW5j
ZXN0b3JDb250YWluZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CisgIGxldCBpbmVydEJveCA9
IGluZXJ0Q29udGFpbmVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworICBsZXQgeCA9IGFuY2Vz
dG9yQm94LmxlZnQgKyAoYW5jZXN0b3JCb3gud2lkdGggLyAyKTsKKyAgbGV0IHkgPSBpbmVydEJv
eC5ib3R0b20gKyAoKGFuY2VzdG9yQm94LmJvdHRvbSAtIGluZXJ0Qm94LmJvdHRvbSkgLyAyKTsK
KyAgYXdhaXQgbW92ZVBvaW50ZXJUbyh4LCB5KTsKKyAgYXdhaXQgUHJvbWlzZS5hbGwocHJvbWlz
ZXMpOworfSwgJ1Rlc3RzIHRoYXQgYW55IHBvaW50ZXIgZXZlbnQgb24gYW4gaW5lcnQgZWxlbWVu
dCBpcyB0YXJnZXRlZCB0byB0aGUgbmVhcmVzdCBub24taW5lcnQgYW5jZXN0b3IgYXQgdGhlIHNh
bWUgY29vcmRpbmF0ZXMnKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L3cz
Yy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9pbmVydC93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZmYxYTcxNTBjYjYwYjIyNzNiMzgw
OTFkMzJhOTM2NDE0MjgxOWFjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC93M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsx
LDI2IEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRo
ZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4g
V2ViS2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHVi
OgorCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0CisKK1RoZW4gcnVu
IHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0
CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KKworLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCitQcm9wZXJ0eSB2
YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKKy0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor
TGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2luZXJ0L2luZXJ0LWRvZXMtbm90LW1hdGNoLWRpc2FibGVkLXNlbGVjdG9yLnRlbnRhdGl2
ZS5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVy
dC9pbmVydC1pbi1zaGFkb3ctZG9tLnRlbnRhdGl2ZS5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1pbmxpbmVzLnRlbnRhdGl2ZS5o
dG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9p
bmVydC1sYWJlbC1mb2N1cy50ZW50YXRpdmUuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtbm9kZS1pcy11bmVkaXRhYmxlLnRlbnRh
dGl2ZS5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9p
bmVydC9pbmVydC1ub2RlLWlzLXVuZm9jdXNhYmxlLnRlbnRhdGl2ZS5odG1sCisvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1ub2RlLWlzLXVu
c2VsZWN0YWJsZS50ZW50YXRpdmUuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtb24tc2xvdHMudGVudGF0aXZlLmh0bWwKKy9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LXJldGFy
Z2V0aW5nLWlmcmFtZS50ZW50YXRpdmUuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtcmV0YXJnZXRpbmcudGVudGF0aXZlLmh0bWwK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1ub2RlLWlzLXVuZWRpdGFibGUudGVudGF0aXZl
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1ub2RlLWlzLXVuZWRpdGFibGUudGVudGF0
aXZlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMTE0Y2MxOGRlYzkwNGExNDZiZjAwOGEwOGI4
MDY3ZmY1NDFhZTA2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9z
LXdrMi9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LW5vZGUtaXMt
dW5lZGl0YWJsZS50ZW50YXRpdmUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorSSdtIG5v
dCBlZGl0YWJsZS4gSSdtIGVkaXRhYmxlLgorCitQQVNTIENhbid0IGVkaXQgaW5lcnQgY29udGVu
dGVkaXRhYmxlCitGQUlMIENhbiBlZGl0IG5vbi1pbmVydCBjb250ZW50ZWRpdGFibGUgYXNzZXJ0
X25vdF9lcXVhbHM6IGdvdCBkaXNhbGxvd2VkIHZhbHVlICJJJ20gZWRpdGFibGUuIgorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtcmV0YXJnZXRpbmctaWZyYW1lLnRlbnRhdGl2ZS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtcmV0YXJnZXRpbmctaWZyYW1lLnRlbnRhdGl2ZS1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTFmOWVhNDBjZjIxM2VkNDUwNWE5OWRmNDk3MzhmYWFl
ZTcyNDhjOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1yZXRhcmdldGluZy1p
ZnJhbWUudGVudGF0aXZlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE4IEBACitDbGljayBvbiAi
SW5lcnQgYnV0dG9uIi4KKworVGhlIGJsdWUgc3F1YXJlICgiTm9uLWluZXJ0IGFuY2VzdG9yIGNv
bnRhaW5lciIpIHNob3VsZCB0dXJuIGdyZWVuLgorVGhlIHllbGxvdywgc2VtaS10cmFuc3BhcmVu
dCBzcXVhcmUgKCJOb24taW5lcnQsIGRpc3BsYWNlZCBjb250YWluZXIiKSBzaG91bGQgbm90IHR1
cm4gcmVkLgorIk5vbi1pbmVydCBidXR0b24iIHNob3VsZCBub3QgdHVybiByZWQuCisoVGhlIGZ1
bGwgdGVzdCBzdWl0ZSBjaGVja3MgYSByYW5nZSBvZiBldmVudHMuKQorCitOb24taW5lcnQgYW5j
ZXN0b3IgY29udGFpbmVyCisgTm9uLWluZXJ0LCBkaXNwbGFjZWQgYW5jZXN0b3IKK0luZXJ0IGNv
bnRhaW5lcgorZm9yZWdyb3VuZAorCitQQVNTIGVsZW1lbnRzRnJvbVBvaW50IHJldHVybnMgaW5l
cnQgZWxlbWVudAorRkFJTCBUZXN0cyB0aGF0IGFueSBtb3VzZSBldmVudCBvbiBhIG5vbi1pbmVy
dCBlbGVtZW50IGlzIGNvcnJlY3RseSB0YXJnZXRlZCB0byB0aGF0IGVsZW1lbnQgcHJvbWlzZV90
ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6ICJkaWQgbm90IGdldCBtb3VzZW92
ZXIgb24gZm9yZWdyb3VuZCIKK0ZBSUwgVGVzdHMgdGhhdCBhbnkgbW91c2UgZXZlbnQgb24gYW4g
aW5lcnQgZWxlbWVudCBpcyB0YXJnZXRlZCB0byB0aGUgbmVhcmVzdCBub24taW5lcnQgYW5jZXN0
b3IgYXQgdGhlIHNhbWUgY29vcmRpbmF0ZXMgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0
aW9uIHdpdGggdmFsdWU6ICJkaWQgbm90IGdldCBtb3VzZW92ZXIgb24gYW5jZXN0b3JDb250YWlu
ZXIiCitGQUlMIFRlc3RzIHRoYXQgYW55IHBvaW50ZXIgZXZlbnQgb24gYSBub24taW5lcnQgZWxl
bWVudCBpcyBjb3JyZWN0bHkgdGFyZ2V0ZWQgdG8gdGhhdCBlbGVtZW50IHByb21pc2VfdGVzdDog
VW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiAiZGlkIG5vdCBnZXQgcG9pbnRlcm92ZXIg
b24gZm9yZWdyb3VuZCIKK0ZBSUwgVGVzdHMgdGhhdCBhbnkgcG9pbnRlciBldmVudCBvbiBhbiBp
bmVydCBlbGVtZW50IGlzIHRhcmdldGVkIHRvIHRoZSBuZWFyZXN0IG5vbi1pbmVydCBhbmNlc3Rv
ciBhdCB0aGUgc2FtZSBjb29yZGluYXRlcyBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rp
b24gd2l0aCB2YWx1ZTogImRpZCBub3QgZ2V0IHBvaW50ZXJvdmVyIG9uIGFuY2VzdG9yQ29udGFp
bmVyIgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtcmV0YXJnZXRpbmcudGVudGF0aXZl
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1yZXRhcmdldGluZy50ZW50YXRpdmUtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFhNWZiYTNiZjcxMjg1N2Q3ODVjOGQwMGM4Yjg3MTJmZGVm
NGNhZWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtcmV0YXJnZXRpbmcudGVu
dGF0aXZlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE4IEBACitDbGljayBvbiAiZm9yZWdyb3Vu
ZCIuCisKK1RoZSBibHVlIHNxdWFyZSAoIk5vbi1pbmVydCBhbmNlc3RvciBjb250YWluZXIiKSBz
aG91bGQgdHVybiBncmVlbi4KK1RoZSB5ZWxsb3csIHNlbWktdHJhbnNwYXJlbnQgc3F1YXJlICgi
Tm9uLWluZXJ0LCBkaXNwbGFjZWQgY29udGFpbmVyIikgc2hvdWxkIG5vdCB0dXJuIHJlZC4KKyJO
b24taW5lcnQgYnV0dG9uIiBzaG91bGQgbm90IHR1cm4gcmVkLgorKFRoZSBmdWxsIHRlc3Qgc3Vp
dGUgY2hlY2tzIGEgcmFuZ2Ugb2YgZXZlbnRzLikKKworTm9uLWluZXJ0IGFuY2VzdG9yIGNvbnRh
aW5lcgorYmFja2dyb3VuZE5vbi1pbmVydCwgZGlzcGxhY2VkIGFuY2VzdG9yCitJbmVydCBjb250
YWluZXIKK2ZvcmVncm91bmQKKworUEFTUyBlbGVtZW50c0Zyb21Qb2ludCByZXR1cm5zIGluZXJ0
IGVsZW1lbnQKK0ZBSUwgVGVzdHMgdGhhdCBhbnkgbW91c2UgZXZlbnQgb24gYSBub24taW5lcnQg
ZWxlbWVudCBpcyBjb3JyZWN0bHkgdGFyZ2V0ZWQgdG8gdGhhdCBlbGVtZW50IHByb21pc2VfdGVz
dDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiAiZGlkIG5vdCBnZXQgbW91c2VvdmVy
IG9uIGZvcmVncm91bmQiCitGQUlMIFRlc3RzIHRoYXQgYW55IG1vdXNlIGV2ZW50IG9uIGFuIGlu
ZXJ0IGVsZW1lbnQgaXMgdGFyZ2V0ZWQgdG8gdGhlIG5lYXJlc3Qgbm9uLWluZXJ0IGFuY2VzdG9y
IGF0IHRoZSBzYW1lIGNvb3JkaW5hdGVzIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlv
biB3aXRoIHZhbHVlOiAiZGlkIG5vdCBnZXQgbW91c2VvdmVyIG9uIGFuY2VzdG9yQ29udGFpbmVy
IgorRkFJTCBUZXN0cyB0aGF0IGFueSBwb2ludGVyIGV2ZW50IG9uIGEgbm9uLWluZXJ0IGVsZW1l
bnQgaXMgY29ycmVjdGx5IHRhcmdldGVkIHRvIHRoYXQgZWxlbWVudCBwcm9taXNlX3Rlc3Q6IFVu
aGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogImRpZCBub3QgZ2V0IHBvaW50ZXJvdmVyIG9u
IGZvcmVncm91bmQiCitGQUlMIFRlc3RzIHRoYXQgYW55IHBvaW50ZXIgZXZlbnQgb24gYW4gaW5l
cnQgZWxlbWVudCBpcyB0YXJnZXRlZCB0byB0aGUgbmVhcmVzdCBub24taW5lcnQgYW5jZXN0b3Ig
YXQgdGhlIHNhbWUgY29vcmRpbmF0ZXMgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9u
IHdpdGggdmFsdWU6ICJkaWQgbm90IGdldCBwb2ludGVyb3ZlciBvbiBhbmNlc3RvckNvbnRhaW5l
ciIKKwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>436265</attachid>
            <date>2021-08-24 00:29:12 -0700</date>
            <delta_ts>2021-08-24 01:18:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-165279-20210824092910.patch</filename>
            <type>text/plain</type>
            <size>69544</size>
            <attacher name="Tim Nguyen (:ntim)">ntim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxNDM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDY0NmExZjc0Y2M5ODAxZTkxZmQwY2Y3
ZGY1NWNmNDViOTNiYzEzYWUuLjUzYTI1MGQxNDc0OTg5NmM1NmI3NTBkNDFlNGVhMTlhZjMzZDEz
YjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMDgtMjAgIFRpbSBOZ3V5ZW4gIDxudGltQGFw
cGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgaW5lcnQgYXR0cmlidXRlIGJlaGluZCBmZWF0
dXJlIGZsYWcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE2NTI3OQorCisgICAgICAgIFJldmlld2VkIGJ5IENocmlzIER1bWV6LgorCisgICAgICAgIEFk
ZCBydW50aW1lIEluZXJ0QXR0cmlidXRlRW5hYmxlZCBmZWF0dXJlIGZsYWcgZGlzYWJsZWQgYnkg
ZGVmYXVsdC4KKworICAgICAgICAqIFNjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNF
eHBlcmltZW50YWwueWFtbDoKKwogMjAyMS0wOC0yMSAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4
ZmllbGRAYXBwbGUuY29tPgogCiAgICAgICAgIG92ZXJ3cml0ZUNvZGVQb2ludCgpIGluIGNyZWF0
ZUFuZEZpbGxHbHlwaFBhZ2UoKSBpcyB3cm9uZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDVjNzE4ZTNiNmE5YWRm
ZDgwNWUzMWM5YjZkZmMwMDMxMDc1NDUyYTUuLjk1NjNjNDI1MGVkZGVkMjQ4NWRkMzczNGNiYmM2
YzI5Y2Q5OWIzNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAyMS0wOC0yMCAgVGlt
IE5ndXllbiAgPG50aW1AYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBpbmVydCBhdHRy
aWJ1dGUgYmVoaW5kIGZlYXR1cmUgZmxhZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTY1Mjc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMgRHVt
ZXouCisKKyAgICAgICAgVGVzdHM6IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5l
cnQvZnJhbWUvYnV0dG9uLmh0bWwKKyAgICAgICAgICAgICAgIGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtZG9lcy1ub3QtbWF0Y2gtZGlzYWJsZWQtc2VsZWN0b3Iu
dGVudGF0aXZlLmh0bWwKKyAgICAgICAgICAgICAgIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaW5lcnQvaW5lcnQtaW4tc2hhZG93LWRvbS50ZW50YXRpdmUuaHRtbAorICAgICAgICAg
ICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1pbmxpbmVz
LnRlbnRhdGl2ZS5odG1sCisgICAgICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2luZXJ0L2luZXJ0LWxhYmVsLWZvY3VzLnRlbnRhdGl2ZS5odG1sCisgICAgICAgICAg
ICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LW5vZGUtaXMt
dW5lZGl0YWJsZS50ZW50YXRpdmUuaHRtbAorICAgICAgICAgICAgICAgaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1ub2RlLWlzLXVuZm9jdXNhYmxlLnRlbnRhdGl2
ZS5odG1sCisgICAgICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2lu
ZXJ0L2luZXJ0LW5vZGUtaXMtdW5zZWxlY3RhYmxlLnRlbnRhdGl2ZS5odG1sCisgICAgICAgICAg
ICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LW9uLXNsb3Rz
LnRlbnRhdGl2ZS5odG1sCisgICAgICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2luZXJ0L2luZXJ0LXJldGFyZ2V0aW5nLWlmcmFtZS50ZW50YXRpdmUuaHRtbAorICAg
ICAgICAgICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1y
ZXRhcmdldGluZy50ZW50YXRpdmUuaHRtbAorCisgICAgICAgICogZG9tL05vZGUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Tm9kZTo6aXNJbmVydCBjb25zdCk6CisgICAgICAgICogaHRtbC9IVE1M
QXR0cmlidXRlTmFtZXMuaW46CisgICAgICAgICogaHRtbC9IVE1MRWxlbWVudC5pZGw6CisKIDIw
MjEtMDgtMjIgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAg
ICAgICAgIFtGcmVldHlwZV0gU2V0IG1heGltdW0gYWxsb3dlZCBmb250IHNpemUgZm9yIEZyZWV0
eXBlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVy
ZW5jZXNFeHBlcmltZW50YWwueWFtbCBiL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9X
ZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sCmluZGV4IDVmZGIyNDU0Yzk5NDQ0MGY3ZThk
Zjc1MjdmZmNlMTg3MDMzYjM5N2EuLjE4NWE1YWMwZjQ1NGM3NmMwMzQ3OTJhZDE4NTc2MWZjY2E2
OTQ5OTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVm
ZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sCisrKyBiL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJl
bmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sCkBAIC01MzQsNiArNTM0LDE4IEBA
IEluY3JlbWVudGFsUERGTG9hZGluZ0VuYWJsZWQ6CiAgICAgV2ViS2l0OgogICAgICAgZGVmYXVs
dDogV2ViS2l0OjpkZWZhdWx0SW5jcmVtZW50YWxQREZFbmFibGVkKCkKIAorSW5lcnRBdHRyaWJ1
dGVFbmFibGVkOgorICB0eXBlOiBib29sCisgIGh1bWFuUmVhZGFibGVOYW1lOiAiaW5lcnQgYXR0
cmlidXRlIgorICBodW1hblJlYWRhYmxlRGVzY3JpcHRpb246ICJFbmFibGUgaW5lcnQgYXR0cmli
dXRlIHN1cHBvcnQiCisgIGRlZmF1bHRWYWx1ZToKKyAgICBXZWJLaXRMZWdhY3k6CisgICAgICBk
ZWZhdWx0OiBmYWxzZQorICAgIFdlYktpdDoKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCisgICAgV2Vi
Q29yZToKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCisKICMgRklYTUU6IFRoaXMgaXMgb24gYnkgZGVm
YXVsdCBpbiBXZWJLaXQyLiBQZXJoYXBzIHdlIHNob3VsZCBjb25zaWRlciB0dXJuaW5nIGl0IG9u
IGZvciBXZWJLaXRMZWdhY3kgYXMgd2VsbC4KIEludGVyc2VjdGlvbk9ic2VydmVyRW5hYmxlZDoK
ICAgdHlwZTogYm9vbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCmluZGV4IDdlZTExMjY0Yzc3MjZmNDQ0ODI0Y2Y0
YWQ3NDljODEzODYzY2Q5NGEuLmRlYTY2MjliNzA3NDQ0MzRjNWNlOTJkNDIyM2VlZGNlMWY0ZmE4
OWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vTm9kZS5jcHAKQEAgLTI2MzIsNiArMjYzMiwxMyBAQCBib29sIE5vZGU6Omlz
SW5lcnQoKSBjb25zdAogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCisgICAgaWYg
KGRvY3VtZW50KCkuc2V0dGluZ3MoKS5pbmVydEF0dHJpYnV0ZUVuYWJsZWQoKSkgeworICAgICAg
ICBmb3IgKFJlZlB0ciBlbGVtZW50ID0gdGhpczsgZWxlbWVudDsgZWxlbWVudCA9IGVsZW1lbnQt
PnBhcmVudEVsZW1lbnRJbkNvbXBvc2VkVHJlZSgpKSB7CisgICAgICAgICAgICBpZiAoaXM8SFRN
TEVsZW1lbnQ+KCplbGVtZW50KSAmJiBkb3duY2FzdDxIVE1MRWxlbWVudD4oKmVsZW1lbnQpLmhh
c0F0dHJpYnV0ZShIVE1MTmFtZXM6OmluZXJ0QXR0cikpCisgICAgICAgICAgICAgICAgcmV0dXJu
IHRydWU7CisgICAgICAgIH0KKyAgICB9CisKICAgICBpZiAoIWRvY3VtZW50KCkuZnJhbWUoKSB8
fCAhZG9jdW1lbnQoKS5mcmFtZSgpLT5vd25lckVsZW1lbnQoKSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBdHRyaWJ1dGVOYW1l
cy5pbiBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluCmluZGV4IDRm
ZGNiOWQzMjE4ZTcyYjgxYzM0NWRiNTcxZmViYjFiZGQ5ZGM2MTQuLjYyNmZlNDlkZjJmZmQ0Nzhj
MmZlMDRmNDIwN2RiZDRkZmQ3YzY5YmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEF0dHJpYnV0ZU5hbWVzLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEF0dHJp
YnV0ZU5hbWVzLmluCkBAIC0xNTcsNiArMTU3LDcgQEAgaW1hZ2VzaXplcwogaW1hZ2VzcmNzZXQK
IGluY3JlbWVudGFsCiBpbmRldGVybWluYXRlCitpbmVydAogaW5wdXRtb2RlCiBpbnRlZ3JpdHkK
IGlzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCmluZGV4IDA2YWI1Y2U3YjIxYzk3OTgw
MzAyOWJlMzJmY2Q3OWJjYmJkZjNlOGIuLmUyODA1MDY3NzFhZWRhOTI3NzhmMjVmNjgzZDIxYjMx
Mzg3MTI5OTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCkBAIC00ODEsNyArNDgx
LDcgQEAgdm9pZCBIVE1MRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmEKICAgICAgICAgICAgIHNldFRhYkluZGV4RXhw
bGljaXRseShzdGQ6Om51bGxvcHQpOwogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIAorCiAg
ICAgaWYgKG5hbWUgPT0gaW5wdXRtb2RlQXR0cikgewogICAgICAgICBhdXRvJiBkb2N1bWVudCA9
IHRoaXMtPmRvY3VtZW50KCk7CiAgICAgICAgIGlmICh0aGlzID09IGRvY3VtZW50LmZvY3VzZWRF
bGVtZW50KCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQu
aWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5pZGwKaW5kZXggMzRlMzljMjdl
MmFhZTgyZDQzMjU5OWExZWMyMjU4NWFkYmFhNDI3MS4uZmFjYWM5ZjE2N2ZmZTBlYjM0NjhlZmI5
NjgzYjAxNzA1NWY1MWEzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxl
bWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5pZGwKQEAgLTQ3
LDYgKzQ3LDkgQEAKICAgICAvLyBGSVhNRTogSW1wbGVtZW50ICdhdHRhY2hJbnRlcm5hbHMnLgog
ICAgIC8vIEVsZW1lbnRJbnRlcm5hbHMgYXR0YWNoSW50ZXJuYWxzKCk7CiAKKyAgICAvLyBFeHBl
cmltZW50YWw6IGh0dHBzOi8vZ2l0aHViLmNvbS9XSUNHL2luZXJ0L2Jsb2IvbWFzdGVyL1JFQURN
RS5tZAorICAgIFtDRVJlYWN0aW9ucywgUmVmbGVjdCwgRW5hYmxlZEJ5U2V0dGluZz1JbmVydEF0
dHJpYnV0ZV0gYXR0cmlidXRlIGJvb2xlYW4gaW5lcnQ7CisKICAgICAvLyBOb24tc3RhbmRhcmQ6
IElFIGV4dGVuc2lvbi4gTWF5IGdldCBhZGRlZCB0byB0aGUgc3BlY2lmaWNhdGlvbiAoaHR0cHM6
Ly9naXRodWIuY29tL3doYXR3Zy9odG1sL2lzc3Vlcy82NjgpLgogICAgIFtDRVJlYWN0aW9uc10g
YXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gRE9NU3RyaW5nIG91dGVyVGV4dDsK
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCmluZGV4IGQ3YzU4YTYxNTM4NGE4YjI2N2JlZDI4MzJhMGQzYjJlOGRjNDZlNjkuLjE3NjEy
MjAzZDg3YWIzNzRmNDMyMWYwODYxMmRlMjQyMjRlNjliOWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBA
QAorMjAyMS0wOC0yMCAgVGltIE5ndXllbiAgPG50aW1AYXBwbGUuY29tPgorCisgICAgICAgIElt
cGxlbWVudCBpbmVydCBhdHRyaWJ1dGUgYmVoaW5kIGZlYXR1cmUgZmxhZworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY1Mjc5CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgQ2hyaXMgRHVtZXouCisKKyAgICAgICAgQ3JlYXRlIGlPUyBiYXNlbGluZXMuCisK
KyAgICAgICAgKiBwbGF0Zm9ybS9pb3Mtd2syL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvaW5lcnQvaW5lcnQtbm9kZS1pcy11bmVkaXRhYmxlLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2lvcy13azIvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1yZXRhcmdldGluZy1pZnJhbWUudGVudGF0aXZlLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vaW9zLXdrMi9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LXJldGFyZ2V0aW5nLnRlbnRhdGl2ZS1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorCiAyMDIxLTA4LTIyICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBh
cHBsZS5jb20+CiAKICAgICAgICAgW0pTQ10gUmVtb3ZlIGFscmVhZHktc2hpcHBlZCB3YXNtIG9w
dGlvbiBmbGFncwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxv
ZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggNWI2NzE5NjlhZDEy
MWJjYTE1N2Q3YmJmZjk4YTJkZGU1MGY1OWQzZC4uOTc5NTU0Zjg2Mjk0ZGUzMTNhNjdhN2M1MWVl
ZTU0NzRiODU0YzkzNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5n
ZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MzkgQEAKKzIwMjEtMDgtMjAgIFRpbSBOZ3V5ZW4gIDxudGltQGFwcGxlLmNvbT4KKworICAgICAg
ICBJbXBsZW1lbnQgaW5lcnQgYXR0cmlidXRlIGJlaGluZCBmZWF0dXJlIGZsYWcKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NTI3OQorCisgICAgICAg
IFJldmlld2VkIGJ5IENocmlzIER1bWV6LgorCisgICAgICAgIEltcG9ydCBpbmVydC8gV1BUIGRp
cmVjdG9yeSB1c2luZyBgaW1wb3J0LXczYy10ZXN0cyAtdCB3ZWItcGxhdGZvcm0tdGVzdHMvaW5l
cnRgLgorICAgICAgICBXUFQgcmV2aXNpb246IGh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZv
cm0tdGVzdHMvd3B0L2NvbW1pdC9mMDJlMzhkN2E2Nzk5OTY4M2QwNTU3OWY2MmIzMzk0MzBjNjFl
NGVjCisKKyAgICAgICAgKiByZXNvdXJjZXMvaW1wb3J0LWV4cGVjdGF0aW9ucy5qc29uOgorICAg
ICAgICAqIHJlc291cmNlcy9yZXNvdXJjZS1maWxlcy5qc29uOgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9pbmVydC9mcmFtZS9idXR0b24uaHRtbDogQWRkZWQuCisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL2luZXJ0L2ZyYW1lL3czYy1pbXBvcnQubG9nOiBBZGRlZC4KKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtZG9lcy1ub3QtbWF0Y2gtZGlzYWJs
ZWQtc2VsZWN0b3IudGVudGF0aXZlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LWRvZXMtbm90LW1hdGNoLWRpc2FibGVkLXNlbGVj
dG9yLnRlbnRhdGl2ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
aW5lcnQvaW5lcnQtaW4tc2hhZG93LWRvbS50ZW50YXRpdmUtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtaW4tc2hhZG93LWRvbS50
ZW50YXRpdmUuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0
L2luZXJ0LWlubGluZXMudGVudGF0aXZlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LWlubGluZXMudGVudGF0aXZlLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1sYWJlbC1mb2N1
cy50ZW50YXRpdmUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvaW5lcnQvaW5lcnQtbGFiZWwtZm9jdXMudGVudGF0aXZlLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1ub2RlLWlzLXVuZWRpdGFibGUu
dGVudGF0aXZlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRl
c3RzL2luZXJ0L2luZXJ0LW5vZGUtaXMtdW5lZGl0YWJsZS50ZW50YXRpdmUuaHRtbDogQWRkZWQu
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LW5vZGUtaXMtdW5mb2N1
c2FibGUudGVudGF0aXZlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL2luZXJ0L2luZXJ0LW5vZGUtaXMtdW5mb2N1c2FibGUudGVudGF0aXZlLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1ub2RlLWlz
LXVuc2VsZWN0YWJsZS50ZW50YXRpdmUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtbm9kZS1pcy11bnNlbGVjdGFibGUudGVudGF0
aXZlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVy
dC1vbi1zbG90cy50ZW50YXRpdmUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWIt
cGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtb24tc2xvdHMudGVudGF0aXZlLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1yZXRhcmdldGluZy1p
ZnJhbWUudGVudGF0aXZlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL2luZXJ0L2luZXJ0LXJldGFyZ2V0aW5nLWlmcmFtZS50ZW50YXRpdmUuaHRtbDog
QWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LXJldGFyZ2V0
aW5nLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9pbmVydC9pbmVydC1yZXRhcmdldGluZy50ZW50YXRpdmUuaHRtbDogQWRkZWQuCisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L3czYy1pbXBvcnQubG9nOiBBZGRlZC4K
KwogMjAyMS0wOC0yMiAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgog
CiAgICAgICAgIENvbnRyb2wgY2hhcmFjdGVycyAoVW5pY29kZSBjYXRlZ29yeSBDYykgc2hvdWxk
IGJlIHJlbmRlcmVkIHZpc2libHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9yZXNvdXJjZXMvaW1wb3J0LWV4cGVjdGF0aW9ucy5qc29uIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3Jlc291cmNlcy9pbXBvcnQtZXhwZWN0YXRpb25zLmpzb24KaW5kZXggNTczYTA2YzBk
OTI4ODAwMjQ5MmM3YWJiNzQzNzUxMzA4Mzc3ZWI0My4uZjg5MmI3YzJkY2EzMjUwZTNkMmE3YmQ1
N2YyODZjMmViYzRiYzY1NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3Jl
c291cmNlcy9pbXBvcnQtZXhwZWN0YXRpb25zLmpzb24KKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3Jlc291cmNlcy9pbXBvcnQtZXhwZWN0YXRpb25zLmpzb24KQEAgLTMzNCw2ICszMzQs
NyBAQAogICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaW1hZ2UtZGVjb2RlcyI6ICJza2lwIiwgCiAg
ICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9pbWFnZWJpdG1hcC1yZW5kZXJpbmdjb250ZXh0IjogImlt
cG9ydCIsIAogICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaW1hZ2VzIjogImltcG9ydCIsIAorICAg
ICJ3ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQiOiAiaW1wb3J0IiwgCiAgICAgIndlYi1wbGF0Zm9y
bS10ZXN0cy9pbmZyYXN0cnVjdHVyZSI6ICJpbXBvcnQiLCAKICAgICAid2ViLXBsYXRmb3JtLXRl
c3RzL2lubmVyVGV4dCI6ICJpbXBvcnQiLCAKICAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2lucHV0
LWV2ZW50cyI6ICJza2lwIiwgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
cmVzb3VyY2VzL3Jlc291cmNlLWZpbGVzLmpzb24gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
cmVzb3VyY2VzL3Jlc291cmNlLWZpbGVzLmpzb24KaW5kZXggOGY2NzQwNTNiMjRhNzhiMTk1NDk5
MGNlNjZmZGFiNDkxYTE1OGY5Yi4uYjE3OGUwYWQyMDg1NGY3N2M4NTI0M2IxODgyZDljNDAxNmQ0
YTFkOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3Jlc291cmNlcy9yZXNv
dXJjZS1maWxlcy5qc29uCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9yZXNvdXJjZXMv
cmVzb3VyY2UtZmlsZXMuanNvbgpAQCAtMjc3Miw2ICsyNzcyLDcgQEAKICAgICAgICAgIndlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL3dlYmFwcGFwaXMvc2NyaXB0aW5nL2V2ZW50cy9vbmVycm9yZXZl
bnRoYW5kbGVyLWZyYW1lLmh0bWwiLAogICAgICAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
d2ViYXBwYXBpcy91c2VyLXByb21wdHMvY2Fubm90LXNob3ctc2ltcGxlLWRpYWxvZ3Mvc3VwcG9y
dC9jb25maXJtLmh0bWwiLAogICAgICAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvd2ViYXBw
YXBpcy91c2VyLXByb21wdHMvY2Fubm90LXNob3ctc2ltcGxlLWRpYWxvZ3Mvc3VwcG9ydC9wcm9t
cHQuaHRtbCIsCisgICAgICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvZnJhbWUvYnV0dG9u
Lmh0bWwiLAogICAgICAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2luZnJhc3RydWN0dXJlL2Fzc3Vt
cHRpb25zL2FoZW0tbm90cmVmLmh0bWwiLAogICAgICAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2lu
ZnJhc3RydWN0dXJlL3JlZnRlc3QvcmVkLmh0bWwiLAogICAgICAgICAid2ViLXBsYXRmb3JtLXRl
c3RzL2ludGVyc2VjdGlvbi1vYnNlcnZlci9vYnNlcnZlci1pbi1pZnJhbWUuaHRtbCIsCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0
L2ZyYW1lL2J1dHRvbi5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9pbmVydC9mcmFtZS9idXR0b24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ODY3Yzc1ODE0MmM2
NjUyMzYyYTIzZjE5NTMzYThkODZmZTI5NjQ4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9mcmFtZS9idXR0b24uaHRt
bApAQCAtMCwwICsxLDM2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5
bGU+Citib2R5IHsKKyAgb3ZlcmZsb3c6IGhpZGRlbjsKK30KKworYnV0dG9uI2JhY2tncm91bmQg
eworICBwb3NpdGlvbjogYWJzb2x1dGU7CisgIHRvcDogMDsKKyAgbGVmdDogMDsKKyAgd2lkdGg6
IDE1MHB4OworICBoZWlnaHQ6IDQwcHg7CisgIGxpbmUtaGVpZ2h0OiA1M3B4OworfQorCitidXR0
b24uY2xpY2tlZCB7CisgIGJhY2tncm91bmQtY29sb3I6IHJlZDsKK30KKworYnV0dG9uLmNsaWNr
ZWQ6OmFmdGVyIHsKKyAgY29udGVudDogIiAoY2xpY2tlZCkiOworfQorCis8L3N0eWxlPgorPC9o
ZWFkPgorPGJvZHk+CisgIDxidXR0b24gaWQ9ImJhY2tncm91bmQiPmJhY2tncm91bmQ8L2J1dHRv
bj4KKzxzY3JpcHQ+Citkb2N1bWVudC5ib2R5LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKGUp
ID0+IHsKKyAgZS50YXJnZXQuY2xhc3NMaXN0LmFkZCgnY2xpY2tlZCcpOworfSk7Cis8L3Njcmlw
dD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvZnJhbWUvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2ZyYW1lL3czYy1pbXBv
cnQubG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmE0NTFiMDhiN2IzYjJhMTI2M2NmMGIwMmU3ODhlMDc0MWMwMDIw
YTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2luZXJ0L2ZyYW1lL3czYy1pbXBvcnQubG9nCkBAIC0wLDAgKzEsMTcgQEAKK1Ro
ZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBv
c2l0b3J5LgorRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCitJ
bnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6CisJaHR0cHM6
Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKKworVGhlbiBydW4gdGhlIFRvb2xz
L1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKKworRG8gTk9U
IG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1Byb3BlcnRp
ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKK1Byb3BlcnR5IHZhbHVlcyByZXF1
aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitMaXN0IG9mIGZp
bGVzOgorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQv
ZnJhbWUvYnV0dG9uLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtZG9lcy1ub3QtbWF0Y2gtZGlzYWJsZWQtc2Vs
ZWN0b3IudGVudGF0aXZlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtZG9lcy1ub3QtbWF0Y2gtZGlzYWJsZWQtc2Vs
ZWN0b3IudGVudGF0aXZlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hOWQ2MzllMThiNzhjZGMx
NWUzNmM4YTM4YjEwMGNlNDE0MTIxYjdjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1kb2VzLW5vdC1tYXRj
aC1kaXNhYmxlZC1zZWxlY3Rvci50ZW50YXRpdmUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBA
QAorVGhlIHRlc3QgcGFzc2VzIGlmIHRoaXMgaXMgaW4gZ3JlZW4uCisKK1BBU1MgVGVzdHMgdGhh
dCBpbmVydCBlbGVtZW50cyBkbyBub3QgbWF0Y2ggdGhlIDpkaXNhYmxlZCBzZWxlY3Rvci4KKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9p
bmVydC9pbmVydC1kb2VzLW5vdC1tYXRjaC1kaXNhYmxlZC1zZWxlY3Rvci50ZW50YXRpdmUuaHRt
bCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5l
cnQtZG9lcy1ub3QtbWF0Y2gtZGlzYWJsZWQtc2VsZWN0b3IudGVudGF0aXZlLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNzRiOGFjM2Y3ZGQ1YzM0NDdiZjQ3ZmQ3MzJmYWRlOTIyMDQ5N2M5MwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5l
cnQvaW5lcnQtZG9lcy1ub3QtbWF0Y2gtZGlzYWJsZWQtc2VsZWN0b3IudGVudGF0aXZlLmh0bWwK
QEAgLTAsMCArMSwyNyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlw
dCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHN0eWxlPgorYnV0
dG9uIHsKKyAgICBjb2xvcjogZ3JlZW47Cit9CisKK2J1dHRvbjpkaXNhYmxlZCB7CisgICAgY29s
b3I6IHJlZDsKK30KKworPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5IHN0eWxlPSJjb2xvcjogZ3Jl
ZW4iPgorPGJ1dHRvbiBpbmVydD5UaGUgdGVzdCBwYXNzZXMgaWYgdGhpcyBpcyBpbiBncmVlbi48
L2J1dHRvbj4KKzxzY3JpcHQ+Cit0ZXN0KGZ1bmN0aW9uKCkgeworICAgIGJ1dHRvbiA9IGRvY3Vt
ZW50LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbicpOworICAgIGNvbG9yID0gZG9jdW1lbnQuZGVmYXVs
dFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZShidXR0b24pLmdldFByb3BlcnR5VmFsdWUoJ2NvbG9yJyk7
CisgICAgYXNzZXJ0X2ZhbHNlKGJ1dHRvbi5tYXRjaGVzKCc6ZGlzYWJsZWQnKSk7Cit9LCAnVGVz
dHMgdGhhdCBpbmVydCBlbGVtZW50cyBkbyBub3QgbWF0Y2ggdGhlIDpkaXNhYmxlZCBzZWxlY3Rv
ci4nKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1pbi1zaGFkb3ct
ZG9tLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LWluLXNoYWRvdy1kb20udGVudGF0aXZlLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5kNTU4MjZkZGNlMWVmMjg2ZTllNTA0NTc5MWEyYmZlNzM5MGE4
YjdkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1pbi1zaGFkb3ctZG9tLnRlbnRhdGl2ZS1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSw1IEBACitCdXR0b25zIDEgYW5kIDIgc2hvdWxkIGJlIGluZXJ0LgorQnV0
dG9uIDEgKGluZXJ0KQorCitQQVNTIGluZXJ0IG9uIFNoYWRvdyBob3N0IGFmZmVjdHMgY29udGVu
dCBpbiBzaGFkb3cKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1pbi1zaGFkb3ctZG9tLnRlbnRhdGl2ZS5odG1sIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1p
bi1zaGFkb3ctZG9tLnRlbnRhdGl2ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVjODI1ZGJmZGM5ODU0NThj
YzczOTNkNThiMmVmYzJjZTA3OTYzNjQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LWluLXNoYWRvdy1kb20u
dGVudGF0aXZlLmh0bWwKQEAgLTAsMCArMSw1NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
KzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04IiAvPgorICAgIDx0aXRsZT5pbmVydCBv
biBTaGFkb3cgaG9zdCBhZmZlY3RzIGNvbnRlbnQgaW4gc2hhZG93PC90aXRsZT4KKyAgICA8bGlu
ayByZWw9ImF1dGhvciIgdGl0bGU9IkFsaWNlIEJveGhhbGwiIGhyZWY9ImFib3hoYWxsQGNocm9t
aXVtLm9yZyI+CisgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwv
c2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0Lmpz
Ij48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorICA8ZGl2PkJ1dHRvbnMgMSBhbmQgMiBzaG91
bGQgYmUgaW5lcnQuPC9kaXY+CisgIDxkaXYgaWQ9InNoYWRvdy1ob3N0IiBpbmVydD4KKyAgICA8
YnV0dG9uIGlkPSJidXR0b24tMSI+QnV0dG9uIDEgKGluZXJ0KTwvYnV0dG9uPgorICA8L2Rpdj4K
KyAgPHNjcmlwdD4KKyAgICAvKgorICAgIEV2ZW50dWFsIGZsYXR0ZW5lZCB0cmVlIHN0cnVjdHVy
ZToKKworICAgIDxkaXYgaWQ9InNoYWRvdy1ob3N0IiBpbmVydD4KKyAgICAgICNzaGFkb3ctcm9v
dCAob3BlbikKKyAgICAgIHwgPHNsb3Q+CisgICAgICA6ICAgPGJ1dHRvbiBpZD0iYnV0dG9uLTEi
PkJ1dHRvbiAxIChpbmVydCk8L2J1dHRvbj4gPCEtLSBzbG90dGVkIC0tPgorICAgICAgfCA8L3Ns
b3Q+CisgICAgICB8IDxidXR0b24gaWQ9ImJ1dHRvbi0yIj5CdXR0b24gMiAoaW5lcnQpPC9idXR0
b24+ICAgPCEtLSBpbiBzaGFkb3cgLS0+CisgICAgPC9kaXY+CisgICAgKi8KKworICAgIGNvbnN0
IHNoYWRvd0hvc3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2hhZG93LWhvc3QiKTsKKyAg
ICBjb25zdCBzaGFkb3dSb290ID0gc2hhZG93SG9zdC5hdHRhY2hTaGFkb3coeyBtb2RlOiAib3Bl
biIgfSk7CisKKyAgICAvLyBCdXR0b24gMSB3aWxsIGJlIHNsb3R0ZWQKKyAgICBjb25zdCBzbG90
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2xvdCIpOworICAgIHNoYWRvd1Jvb3QuYXBwZW5k
Q2hpbGQoc2xvdCk7CisKKyAgICBjb25zdCBidXR0b24yID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgiYnV0dG9uIik7CisgICAgYnV0dG9uMi5pZCA9ICJidXR0b24tMiI7CisgICAgYnV0dG9uMi50
ZXh0Q29udGVudCA9ICJCdXR0b24gMiAoaW5lcnQpIjsKKyAgICBzaGFkb3dSb290LmFwcGVuZENo
aWxkKGJ1dHRvbjIpOworCisgICAgZnVuY3Rpb24gdGVzdENhbkZvY3VzKHNlbGVjdG9yLCBjYW5G
b2N1cywgb3B0X2NvbnRleHQpIHsKKyAgICAgIGxldCBjb250ZXh0ID0gb3B0X2NvbnRleHQgfHwg
ZG9jdW1lbnQ7CisgICAgICBjb25zdCBlbGVtZW50ID0gY29udGV4dC5xdWVyeVNlbGVjdG9yKHNl
bGVjdG9yKTsKKyAgICAgIGxldCBmb2N1c2VkRWxlbWVudCA9IG51bGw7CisgICAgICBlbGVtZW50
LmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwgZnVuY3Rpb24oKSB7IGZvY3VzZWRFbGVtZW50ID0g
ZWxlbWVudDsgfSwgZmFsc2UpOworICAgICAgZWxlbWVudC5mb2N1cygpOworICAgICAgYXNzZXJ0
X2VxdWFscygoZm9jdXNlZEVsZW1lbnQgPT09IGVsZW1lbnQpLCBjYW5Gb2N1cyk7CisgICAgfQor
CisgICAgdGVzdCgoKSA9PiB7CisgICAgICB0ZXN0Q2FuRm9jdXMoIiNidXR0b24tMSIsIGZhbHNl
KTsKKyAgICAgIHRlc3RDYW5Gb2N1cygiI2J1dHRvbi0yIiwgZmFsc2UsIHNoYWRvd1Jvb3QpOwor
ICAgIH0sICJpbmVydCBvbiBTaGFkb3cgaG9zdCBhZmZlY3RzIGNvbnRlbnQgaW4gc2hhZG93Iik7
CisgIDwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1pbmxpbmVzLnRlbnRh
dGl2ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2luZXJ0L2luZXJ0LWlubGluZXMudGVudGF0aXZlLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4zY2Q3MDZjOTIwNmNiYzVhNjA2MThhYTM3MjM4NmMxMDNkYzE4MTQ1Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVy
dC9pbmVydC1pbmxpbmVzLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACitD
bGljayBtZSBDbGljayBtZQorQ2xpY2sgbWUKK0NsaWNrIG1lCisKK0ZBSUwgVGVzdHMgdGhhdCBp
bmVydCBpbmxpbmVzIGRvIG5vdCByZWNlaXZlIG1vdXNlIGV2ZW50cy4gVG8gdGVzdCBtYW51YWxs
eSwgY2xpY2sgb24gYWxsIHRoZSAiQ2xpY2sgbWUicy4gVGhlIHRlc3QgZmFpbHMgaWYgeW91IHNl
ZSByZWQuIGFzc2VydF9mYWxzZTogbm8gZXZlbnQgc2hvdWxkIGJlIGZpcmVkIG9uIGEgZXhwZWN0
ZWQgZmFsc2UgZ290IHRydWUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1pbmxpbmVzLnRlbnRhdGl2ZS5odG1sIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1p
bmxpbmVzLnRlbnRhdGl2ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIwNTZjNjQ5NWQyYzU0NzMzYmVlNmFi
Nzk2MzMyYmE4OWYwMWIzNzkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LWlubGluZXMudGVudGF0aXZlLmh0
bWwKQEAgLTAsMCArMSw1NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAgPGhlYWQ+Cisg
ICAgPG1ldGEgY2hhcnNldD0idXRmLTgiIC8+CisgICAgPHRpdGxlPmluZXJ0IGlubGluZXM8L3Rp
dGxlPgorICAgIDxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iQWxpY2UgQm94aGFsbCIgaHJlZj0i
YWJveGhhbGxAY2hyb21pdW0ub3JnIj4KKyAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0
aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhh
cm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rl
c3Rkcml2ZXIuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Rk
cml2ZXItdmVuZG9yLmpzIj48L3NjcmlwdD4KKyAgPC9oZWFkPgorPGJvZHk+Cis8YSBpbmVydCBp
ZD0iYSIgaHJlZj0iamF2YXNjcmlwdDp2b2lkKDApIj5DbGljayBtZTwvYT4KKzxidXR0b24gaW5l
cnQgaWQ9ImJ1dHRvbiI+Q2xpY2sgbWU8L2J1dHRvbj4KKzxkaXYgaW5lcnQgaWQ9ImRpdiIgc3R5
bGU9ImJhY2tncm91bmQtY29sb3I6IGJsdWU7IHdpZHRoOiA1MHB4OyBoZWlnaHQ6IDUwcHgiPkNs
aWNrIG1lPC9kaXY+Cis8c3BhbiBpbmVydCBpZD0ic3BhbiI+Q2xpY2sgbWU8L3NwYW4+Cis8c2Ny
aXB0PgorZnVuY3Rpb24gZXZlbnRGaXJlZE9uSW5lcnRFbGVtZW50KGUpIHsKKyAgICBlLnRhcmdl
dC5zdHlsZS5iYWNrZ3JvdW5kID0gJ3JlZCc7CisgICAgaW5lcnRFbGVtZW50RmlyZWRPbiA9IHRy
dWU7Cit9CisKK2luZXJ0RWxlbWVudHMgPSBbJ2EnLCAnYnV0dG9uJywgJ2RpdicsICdzcGFuJ10K
K2luZXJ0RWxlbWVudHMuZm9yRWFjaChmdW5jdGlvbihpZCkgeworICAgIGVsZW1lbnQgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZChpZCk7CisgICAgZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdj
bGljaycsIGV2ZW50RmlyZWRPbkluZXJ0RWxlbWVudCk7CisgICAgZWxlbWVudC5hZGRFdmVudExp
c3RlbmVyKCdtb3VzZW1vdmUnLCBldmVudEZpcmVkT25JbmVydEVsZW1lbnQpOworfSk7CisKK2Rv
Y3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oZSkgeworICAgIGRvY3Vt
ZW50LmZpcmVkT24gPSB0cnVlOworfSk7CisKK3Byb21pc2VfdGVzdChhc3luYyAoKSA9PiB7Cisg
ICAgZm9yIChsZXQgaWQgb2YgaW5lcnRFbGVtZW50cykgeworICAgICAgICB2YXIgZWxlbWVudCA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKTsKKyAgICAgICAgaW5lcnRFbGVtZW50RmlyZWRP
biA9IGZhbHNlOworICAgICAgICBkb2N1bWVudC5maXJlZE9uID0gZmFsc2U7CisgICAgICAgIHRy
eSB7CisgICAgICAgICAgYXdhaXQgdGVzdF9kcml2ZXIuY2xpY2soZWxlbWVudCk7CisgICAgICAg
ICAgYXNzZXJ0X2ZhbHNlKGluZXJ0RWxlbWVudEZpcmVkT24sICdubyBldmVudCBzaG91bGQgYmUg
ZmlyZWQgb24gJyArIGlkKTsKKyAgICAgICAgICBhc3NlcnRfdHJ1ZShkb2N1bWVudC5maXJlZE9u
LCAnZXZlbnQgc2hvdWxkIGJlIGZpcmVkIG9uIGRvY3VtZW50IGluc3RlYWQgb2YgJyArIGlkKTsK
KyAgICAgICAgfSBjYXRjaCAoZSkgeworICAgICAgICAgIC8vIHRlc3QgZHJpdmVyIGRldGVjdHMg
aW5lcnQgZWxlbWVudHMgYXMgdW5jbGlja2FibGUKKyAgICAgICAgICAvLyBhbmQgdGhyb3dzIGFu
IGVycm9yCisgICAgICAgICAgYXNzZXJ0X2ZhbHNlKGluZXJ0RWxlbWVudEZpcmVkT24sICdubyBl
dmVudCBzaG91bGQgYmUgZmlyZWQgb24gJyArIGlkKTsKKyAgICAgICAgfQorICAgIH0KK30sICdU
ZXN0cyB0aGF0IGluZXJ0IGlubGluZXMgZG8gbm90IHJlY2VpdmUgbW91c2UgZXZlbnRzLiAnICsK
KyAgICdUbyB0ZXN0IG1hbnVhbGx5LCBjbGljayBvbiBhbGwgdGhlICJDbGljayBtZSJzLiBUaGUg
dGVzdCAnICsKKyAgICdmYWlscyBpZiB5b3Ugc2VlIHJlZC4nKTsKKworPC9zY3JpcHQ+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LWxhYmVsLWZvY3VzLnRlbnRhdGl2ZS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2lu
ZXJ0LWxhYmVsLWZvY3VzLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWQ1YWIw
ZWE0ZmE0NDc1NDUyNDk3YTBhNmU5ZTNhZWYyOTNhMzE4YQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtbGFi
ZWwtZm9jdXMudGVudGF0aXZlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDcgQEAKK0xhYmVsIGZv
ciBTdWJtaXQgICAgIExhYmVsIGZvciBpbnB1dCBpbiBpbmVydCBzdWJ0cmVlCisKKworUEFTUyBD
YWxsaW5nIGZvY3VzKCkgb24gYW4gaW5lcnQgbGFiZWwgc2hvdWxkIHN0aWxsIHNlbmQgZm9jdXMg
dG8gaXRzIHRhcmdldC4KK1BBU1MgQ2xpY2tpbmcgb24gYW4gaW5lcnQgbGFiZWwgc2hvdWxkIHNl
bmQgZm9jdXMgdG8gZG9jdW1lbnQuYm9keS4KK1BBU1MgQ2FsbGluZyBmb2N1cygpIG9uIGEgbGFi
ZWwgZm9yIGEgY29udHJvbCB3aGljaCBpcyBpbiBhbiBpbmVydCBzdWJ0cmVlIHNob3VsZCBoYXZl
IG5vIGVmZmVjdC4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1sYWJlbC1mb2N1cy50ZW50YXRpdmUuaHRtbCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtbGFi
ZWwtZm9jdXMudGVudGF0aXZlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGJiZTFlY2ExNWM3ZDhmMmY5ZmQ1
ZWE0OGMzM2NkMGE1ZDUwOThlMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtbGFiZWwtZm9jdXMudGVudGF0
aXZlLmh0bWwKQEAgLTAsMCArMSw1MyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAgPGhl
YWQ+CisgICAgPG1ldGEgY2hhcnNldD0idXRmLTgiIC8+CisgICAgPHRpdGxlPmluZXJ0IHdpdGgg
bGFiZWwvZm9yPC90aXRsZT4KKyAgICA8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkFsaWNlIEJv
eGhhbGwiIGhyZWY9ImFib3hoYWxsQGNocm9taXVtLm9yZyI+CisgICAgPHNjcmlwdCBzcmM9Ii9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0i
L3Jlc291cmNlcy90ZXN0ZHJpdmVyLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iL3Jl
c291cmNlcy90ZXN0ZHJpdmVyLXZlbmRvci5qcyI+PC9zY3JpcHQ+CisgIDwvaGVhZD4KKyAgPGJv
ZHk+CisgICAgPGxhYmVsIGluZXJ0IGlkPSJmb3Itc3VibWl0IiBmb3I9InN1Ym1pdCI+TGFiZWwg
Zm9yIFN1Ym1pdDwvbGFiZWw+CisgICAgPGlucHV0IGlkPSJ0ZXh0IiB0eXBlPSJ0ZXh0Ij4KKyAg
ICA8aW5wdXQgaWQ9InN1Ym1pdCIgdHlwZT0ic3VibWl0Ij4KKworICAgIDxsYWJlbCBpZD0iZm9y
LWlucHV0LWluLWluZXJ0LXN1YnRyZWUiCisgICAgICAgICAgIGZvcj0iaW5wdXQtaW4taW5lcnQt
c3VidHJlZSI+TGFiZWwgZm9yIGlucHV0IGluIGluZXJ0IHN1YnRyZWU8L2xhYmVsPgorICAgIDxk
aXYgaW5lcnQ+CisgICAgICA8aW5wdXQgaWQ9ImlucHV0LWluLWluZXJ0LXN1YnRyZWUiPjwvaW5w
dXQ+CisgICAgPC9kaXY+CisKKyAgICA8c2NyaXB0PgorICAgICAgdGVzdCgoKSA9PiB7CisgICAg
ICAgIGxhYmVsID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI2Zvci1zdWJtaXQnKTsKKyAgICAg
ICAgbGFiZWwuZm9jdXMoKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhkb2N1bWVudC5hY3RpdmVF
bGVtZW50LCBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjc3VibWl0JykpOworICAgICAgfSwgJ0Nh
bGxpbmcgZm9jdXMoKSBvbiBhbiBpbmVydCBsYWJlbCBzaG91bGQgc3RpbGwgc2VuZCBmb2N1cyB0
byBpdHMgdGFyZ2V0LicpOworCisgICAgICBwcm9taXNlX3Rlc3QoYXN5bmMgKCkgPT4geworICAg
ICAgICB0ZXh0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3RleHQnKTsKKyAgICAgICAgdGV4
dC5mb2N1cygpOworICAgICAgICBsYWJlbCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNmb3It
c3VibWl0Jyk7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgYXdhaXQgdGVzdF9kcml2ZXIuY2xp
Y2sobGFiZWwpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMoZG9jdW1lbnQuYWN0aXZlRWxlbWVu
dCwgZG9jdW1lbnQuYm9keSk7CisgICAgICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgICAvLyB0
ZXN0IGRyaXZlciBkZXRlY3RzIGluZXJ0IGVsZW1lbnRzIGFzIHVuY2xpY2thYmxlCisgICAgICAg
ICAgLy8gYW5kIHRocm93cyBhbiBlcnJvcgorICAgICAgICB9CisgICAgICB9LCAnQ2xpY2tpbmcg
b24gYW4gaW5lcnQgbGFiZWwgc2hvdWxkIHNlbmQgZm9jdXMgdG8gZG9jdW1lbnQuYm9keS4nKTsK
KworICAgICAgdGVzdCgoKSA9PiB7CisgICAgICAgIHRleHQgPSBkb2N1bWVudC5xdWVyeVNlbGVj
dG9yKCcjdGV4dCcpOworICAgICAgICB0ZXh0LmZvY3VzKCk7CisKKyAgICAgICAgbGFiZWwgPSBk
b2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjZm9yLWlucHV0LWluLWluZXJ0LXN1YnRyZWUnKTsKKyAg
ICAgICAgbGFiZWwuZm9jdXMoKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhkb2N1bWVudC5hY3Rp
dmVFbGVtZW50LCB0ZXh0KTsKKyAgICAgIH0sICdDYWxsaW5nIGZvY3VzKCkgb24gYSBsYWJlbCBm
b3IgYSBjb250cm9sIHdoaWNoIGlzIGluIGFuIGluZXJ0IHN1YnRyZWUgJyArCisgICAgICAgICAn
c2hvdWxkIGhhdmUgbm8gZWZmZWN0LicpOworPC9zY3JpcHQ+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0
LW5vZGUtaXMtdW5lZGl0YWJsZS50ZW50YXRpdmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1ub2RlLWlzLXVuZWRp
dGFibGUudGVudGF0aXZlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNDBhNTlkNjUxYjUyODFi
ZDUxMTA4ZjVkZjMxYWQ0ODcwN2IyZjk4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1ub2RlLWlzLXVuZWRp
dGFibGUudGVudGF0aXZlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK0knbSBub3QgZWRp
dGFibGUuIGFJJ20gZWRpdGFibGUuCisKK1BBU1MgQ2FuJ3QgZWRpdCBpbmVydCBjb250ZW50ZWRp
dGFibGUKK1BBU1MgQ2FuIGVkaXQgbm9uLWluZXJ0IGNvbnRlbnRlZGl0YWJsZQorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2lu
ZXJ0LW5vZGUtaXMtdW5lZGl0YWJsZS50ZW50YXRpdmUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtbm9kZS1pcy11bmVkaXRhYmxl
LnRlbnRhdGl2ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZkYTIzNzlmYWQ0Mjk3MmQ0ODM5MTI5YzhkYjBi
ZWQ3YmJkMmFkZWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LW5vZGUtaXMtdW5lZGl0YWJsZS50ZW50YXRp
dmUuaHRtbApAQCAtMCwwICsxLDM3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorICA8aGVh
ZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCIgLz4KKyAgICA8dGl0bGU+aW5lcnQgbm9kZXMg
YXJlIHVuZWRpdGFibGU8L3RpdGxlPgorICAgIDxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iQWxp
Y2UgQm94aGFsbCIgaHJlZj0iYWJveGhhbGxAY2hyb21pdW0ub3JnIj4KKyAgICA8c2NyaXB0IHNy
Yz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9
Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQg
c3JjPSIvcmVzb3VyY2VzL3Rlc3Rkcml2ZXIuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3Jj
PSIvcmVzb3VyY2VzL3Rlc3Rkcml2ZXItdmVuZG9yLmpzIj48L3NjcmlwdD4KKyAgPC9oZWFkPgor
PGJvZHk+Cis8c3BhbiBpbmVydCBpZD0ibm90LWVkaXRhYmxlIiBjb250ZW50ZWRpdGFibGU+SSdt
IG5vdCBlZGl0YWJsZS48L3NwYW4+Cis8c3BhbiBpZD0iZWRpdGFibGUiIGNvbnRlbnRlZGl0YWJs
ZT5JJ20gZWRpdGFibGUuPC9zcGFuPgorPHNjcmlwdD4KK3ZhciBub3RFZGl0YWJsZSA9IGRvY3Vt
ZW50LnF1ZXJ5U2VsZWN0b3IoJyNub3QtZWRpdGFibGUnKTsKK3ZhciBlZGl0YWJsZSA9IGRvY3Vt
ZW50LnF1ZXJ5U2VsZWN0b3IoJyNlZGl0YWJsZScpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgKCkg
PT4geworICAgIG5vdEVkaXRhYmxlLmZvY3VzKCk7CisgICAgdmFyIG9sZFZhbHVlID0gbm90RWRp
dGFibGUudGV4dENvbnRlbnQ7CisgICAgYXNzZXJ0X2VxdWFscyhvbGRWYWx1ZSwgIkknbSBub3Qg
ZWRpdGFibGUuIik7CisgICAgYXdhaXQgdGVzdF9kcml2ZXIuc2VuZF9rZXlzKGRvY3VtZW50LmJv
ZHksICdhJyk7CisgICAgYXNzZXJ0X2VxdWFscyhub3RFZGl0YWJsZS50ZXh0Q29udGVudCwgb2xk
VmFsdWUpOworfSwgIkNhbid0IGVkaXQgaW5lcnQgY29udGVudGVkaXRhYmxlIik7CisKK3Byb21p
c2VfdGVzdChhc3luYyAoKSA9PiB7CisgICAgZWRpdGFibGUuZm9jdXMoKTsKKyAgICB2YXIgb2xk
VmFsdWUgPSBlZGl0YWJsZS50ZXh0Q29udGVudDsKKyAgICBhc3NlcnRfZXF1YWxzKG9sZFZhbHVl
LCAiSSdtIGVkaXRhYmxlLiIpOworICAgIGF3YWl0IHRlc3RfZHJpdmVyLnNlbmRfa2V5cyhkb2N1
bWVudC5ib2R5LCAnYScpOworICAgIGFzc2VydF9ub3RfZXF1YWxzKGVkaXRhYmxlLnRleHRDb250
ZW50LCBvbGRWYWx1ZSk7Cit9LCAiQ2FuIGVkaXQgbm9uLWluZXJ0IGNvbnRlbnRlZGl0YWJsZSIp
OworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtbm9kZS1pcy11bmZv
Y3VzYWJsZS50ZW50YXRpdmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1ub2RlLWlzLXVuZm9jdXNhYmxlLnRlbnRh
dGl2ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTZhZWE4YmI1NTU3ZDc2OGNhNWVlMGNjYWM3
ZDkyZGY4YmY1Nzc5ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtbm9kZS1pcy11bmZvY3VzYWJsZS50ZW50
YXRpdmUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTMgQEAKK091dHNpZGUgb2YgaW5lcnQgY29u
dGFpbmVyICBJbmVydCBidXR0b24KKworSSdtIGVkaXRhYmxlCitJJ20gdGFiaW5kZXhlZC4KKyBM
aW5rCisKK1BBU1MgQnV0dG9uIG91dHNpZGUgb2YgaW5lcnQgY29udGFpbmVyIGlzIGZvY3VzYWJs
ZS4KK1BBU1MgQnV0dG9uIHdpdGggaW5lcnQgYXRyaWJ1dGUgaXMgdW5mb2N1c2FibGUuCitQQVNT
IEFsbCBmb2N1c2FibGUgZWxlbWVudHMgaW5zaWRlIGluZXJ0IHN1YnRyZWUgYXJlIHVuZm9jdXNh
YmxlCitQQVNTIENhbiBnZXQgaW5lcnQgdmlhIHByb3BlcnR5CitQQVNTIEVsZW1lbnRzIGluc2lk
ZSBvZiBpbmVydCBzdWJ0cmVlcyByZXR1cm4gZmFsc2Ugd2hlbiBnZXR0aW5nICdpbmVydCcKK1BB
U1MgU2V0dGluZyBpbmVydCB2aWEgcHJvcGVydHkgY29ycmVjdGx5IG1vZGlmaWVzIGluZXJ0IHN0
YXRlCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaW5lcnQvaW5lcnQtbm9kZS1pcy11bmZvY3VzYWJsZS50ZW50YXRpdmUuaHRtbCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtbm9k
ZS1pcy11bmZvY3VzYWJsZS50ZW50YXRpdmUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YjVkZTM3ZmRjYWRl
ZGI5ZDk4ZWM0NGM5YzNjMjBhZWE1MmEwNDAwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1ub2RlLWlzLXVu
Zm9jdXNhYmxlLnRlbnRhdGl2ZS5odG1sCkBAIC0wLDAgKzEsNzkgQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+CisgIDxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04IiAvPgorICAgIDx0
aXRsZT5pbmVydCBub2RlcyBhcmUgdW5mb2N1c2FibGU8L3RpdGxlPgorICAgIDxsaW5rIHJlbD0i
YXV0aG9yIiB0aXRsZT0iQWxpY2UgQm94aGFsbCIgaHJlZj0iYWJveGhhbGxAY2hyb21pdW0ub3Jn
Ij4KKyAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+
CisgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2Ny
aXB0PgorICA8L2hlYWQ+Cis8Ym9keSBpZD0iYm9keSIgdGFiaW5kZXg9IjEiPgorICA8YnV0dG9u
IGlkPSJmb2N1c2FibGUiPk91dHNpZGUgb2YgaW5lcnQgY29udGFpbmVyPC9idXR0b24+CisgIDxi
dXR0b24gaW5lcnQgaWQ9ImluZXJ0Ij5JbmVydCBidXR0b248L2J1dHRvbj4KKyAgPGRpdiBpbmVy
dCBpZD0iY29udGFpbmVyIj4KKyAgICA8aW5wdXQgaWQ9InRleHQiIHR5cGU9InRleHQiPgorICAg
IDxpbnB1dCBpZD0iZGF0ZXRpbWUiIHR5cGU9ImRhdGV0aW1lIj4KKyAgICA8aW5wdXQgaWQ9ImNv
bG9yIiB0eXBlPSJjb2xvciI+CisgICAgPHNlbGVjdCBpZD0ic2VsZWN0Ij4KKyAgICAgICAgPG9w
dGdyb3VwIGlkPSJvcHRncm91cCI+CisgICAgICAgICAgICA8b3B0aW9uIGlkPSJvcHRpb24iPk9w
dGlvbjwvb3B0aW9uPgorICAgICAgICA8L29wdGdyb3VwPgorICAgIDwvc2VsZWN0PgorICAgIDxk
aXYgaWQ9ImNvbnRlbnRlZGl0YWJsZS1kaXYiIGNvbnRlbnRlZGl0YWJsZT5JJ20gZWRpdGFibGU8
L2Rpdj4KKyAgICA8c3BhbiBpZD0idGFiaW5kZXgtc3BhbiIgdGFiaW5kZXg9IjAiPkknbSB0YWJp
bmRleGVkLjwvZGl2PgorICAgIDxlbWJlZCBpZD0iZW1iZWQiIHR5cGU9ImFwcGxpY2F0aW9uL3gt
YmxpbmstdGVzdC1wbHVnaW4iIHdpZHRoPTEwMCBoZWlnaHQ9MTAwPjwvZW1iZWQ+CisgICAgPGEg
aWQ9ImFuY2hvciIgaHJlZj0iIj5MaW5rPC9hPgorICA8L2Rpdj4KKzxzY3JpcHQ+CitmdW5jdGlv
biB0ZXN0Rm9jdXMoZWxlbWVudCwgZXhwZWN0Rm9jdXMpIHsKKyAgICBmb2N1c2VkRWxlbWVudCA9
IG51bGw7CisgICAgZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdmb2N1cycsIGZ1bmN0aW9uKCkg
eyBmb2N1c2VkRWxlbWVudCA9IGVsZW1lbnQ7IH0sIGZhbHNlKTsKKyAgICBlbGVtZW50LmZvY3Vz
KCk7CisgICAgdGhlRWxlbWVudCA9IGVsZW1lbnQ7CisgICAgYXNzZXJ0X2VxdWFscyhmb2N1c2Vk
RWxlbWVudCA9PT0gdGhlRWxlbWVudCwgZXhwZWN0Rm9jdXMpOworfQorCitmdW5jdGlvbiB0ZXN0
VHJlZShlbGVtZW50LCBleHBlY3RGb2N1cywgZXhjbHVkZUN1cnJlbnQpIHsKKyAgICBpZiAoZWxl
bWVudC5ub2RlVHlwZSA9PSBOb2RlLkVMRU1FTlRfTk9ERSAmJiAhZXhjbHVkZUN1cnJlbnQpCisg
ICAgICAgIHRlc3RGb2N1cyhlbGVtZW50LCBleHBlY3RGb2N1cyk7CisgICAgaWYgKGVsZW1lbnQu
dGFnTmFtZSA9PT0gIlNFTEVDVCIpCisgICAgICAgIHJldHVybjsKKyAgICB2YXIgY2hpbGROb2Rl
cyA9IGVsZW1lbnQuY2hpbGROb2RlczsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNoaWxkTm9k
ZXMubGVuZ3RoOyBpKyspCisgICAgICAgIHRlc3RUcmVlKGNoaWxkTm9kZXNbaV0sIGV4cGVjdEZv
Y3VzKTsKK30KKworCit0ZXN0KGZ1bmN0aW9uKCkgeworICAgIHRlc3RGb2N1cyhkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnZm9jdXNhYmxlJyksIHRydWUpOworfSwgIkJ1dHRvbiBvdXRzaWRlIG9m
IGluZXJ0IGNvbnRhaW5lciBpcyBmb2N1c2FibGUuIik7CisKK3Rlc3QoZnVuY3Rpb24oKSB7Cisg
ICAgdGVzdEZvY3VzKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbmVydCcpLCBmYWxzZSk7Cit9
LCAiQnV0dG9uIHdpdGggaW5lcnQgYXRyaWJ1dGUgaXMgdW5mb2N1c2FibGUuIik7CisKK3Rlc3Qo
ZnVuY3Rpb24oKSB7CisgICAgdGVzdFRyZWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnRh
aW5lcicpLCBmYWxzZSk7Cit9LCAiQWxsIGZvY3VzYWJsZSBlbGVtZW50cyBpbnNpZGUgaW5lcnQg
c3VidHJlZSBhcmUgdW5mb2N1c2FibGUiKTsKKwordGVzdChmdW5jdGlvbigpIHsKKyAgICBhc3Nl
cnRfZmFsc2UoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZvY3VzYWJsZSIpLmluZXJ0LCAiSW5l
cnQgbm90IHNldCBleHBsaWNpdGx5IGlzIGZhbHNlIikKKyAgICBhc3NlcnRfdHJ1ZShkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgiaW5lcnQiKS5pbmVydCwgIkluZXJ0IHNldCBleHBsaWNpdGx5IGlz
IHRydWUiKTsKKyAgICBhc3NlcnRfdHJ1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGFp
bmVyIikuaW5lcnQsICJJbmVydCBzZXQgb24gY29udGFpbmVyIGlzIHRydWUiKTsKK30sICJDYW4g
Z2V0IGluZXJ0IHZpYSBwcm9wZXJ0eSIpOworCit0ZXN0KGZ1bmN0aW9uKCkgeworICAgIGFzc2Vy
dF9mYWxzZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGV4dCIpLmluZXJ0LCAiRWxlbWVudHMg
aW5zaWRlIG9mIGluZXJ0IHN1YnRyZWVzIHJldHVybiBmYWxzZSB3aGVuIGdldHRpbmcgaW5lcnQi
KTsKK30sICJFbGVtZW50cyBpbnNpZGUgb2YgaW5lcnQgc3VidHJlZXMgcmV0dXJuIGZhbHNlIHdo
ZW4gZ2V0dGluZyAnaW5lcnQnIik7CisKK3Rlc3QoZnVuY3Rpb24oKSB7CisgICAgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ2ZvY3VzYWJsZScpLmluZXJ0ID0gdHJ1ZTsKKyAgICB0ZXN0Rm9jdXMo
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZvY3VzYWJsZScpLCBmYWxzZSk7CisgICAgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ2luZXJ0JykuaW5lcnQgPSBmYWxzZTsKKyAgICB0ZXN0Rm9jdXMo
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2luZXJ0JyksIHRydWUpOworICAgIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdjb250YWluZXInKS5pbmVydCA9IGZhbHNlOworICAgIHRlc3RUcmVlKGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb250YWluZXInKSwgdHJ1ZSwgdHJ1ZSk7Cit9LCAiU2V0
dGluZyBpbmVydCB2aWEgcHJvcGVydHkgY29ycmVjdGx5IG1vZGlmaWVzIGluZXJ0IHN0YXRlIik7
Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtbm9kZS1pcy11bnNlbGVj
dGFibGUudGVudGF0aXZlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtbm9kZS1pcy11bnNlbGVjdGFibGUudGVudGF0
aXZlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZmNhMjM4YWY4ZjE0YTE1Yjc5ZjlmYzBhMzFi
MzkzNzhmODQxZDY0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1ub2RlLWlzLXVuc2VsZWN0YWJsZS50ZW50
YXRpdmUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorSGVyZSBpcyBhIHRleHQgbm9kZSB5
b3UgY2FuJ3Qgc2VsZWN0LgorSSdtIHNlbGVjdGFibGUuCisKK0ZBSUwgSW5lcnQgbm9kZXMgY2Fu
bm90IGJlIHNlbGVjdGVkLiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiSSdtIHNlbGVjdGFibGUu
IiBidXQgZ290ICJIZXJlIGlzIGEgdGV4dCBub2RlIHlvdSBjYW4ndCBzZWxlY3QuXG5JJ20gc2Vs
ZWN0YWJsZS4iCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtbm9kZS1pcy11bnNlbGVjdGFibGUudGVudGF0aXZlLmh0
bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2lu
ZXJ0LW5vZGUtaXMtdW5zZWxlY3RhYmxlLnRlbnRhdGl2ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI5OWFm
MGQ0Y2QxNDJkY2IwNTFhZjUxZjQyZDE3NTkxNDJhMDBjNWUKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LW5v
ZGUtaXMtdW5zZWxlY3RhYmxlLnRlbnRhdGl2ZS5odG1sCkBAIC0wLDAgKzEsMjAgQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+CisgIDxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04IiAv
PgorICAgIDx0aXRsZT5pbmVydCBub2RlcyBhcmUgdW5zZWxlY3RhYmxlPC90aXRsZT4KKyAgICA8
bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkFsaWNlIEJveGhhbGwiIGhyZWY9ImFib3hoYWxsQGNo
cm9taXVtLm9yZyI+CisgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMi
Pjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0
LmpzIj48L3NjcmlwdD4KKyAgPC9oZWFkPgorPGJvZHk+CisgIDxkaXYgaW5lcnQ+SGVyZSBpcyBh
IHRleHQgbm9kZSB5b3UgY2FuJ3Qgc2VsZWN0LjwvZGl2PgorICA8ZGl2PkknbSBzZWxlY3RhYmxl
LjwvZGl2PgorPHNjcmlwdD4KK3Rlc3QoZnVuY3Rpb24oKSB7CisgICAgZG9jdW1lbnQuZXhlY0Nv
bW1hbmQoJ1NlbGVjdEFsbCcpOworICAgIGFzc2VydF9lcXVhbHMod2luZG93LmdldFNlbGVjdGlv
bigpLnRvU3RyaW5nKCkudHJpbSgpLCAiSSdtIHNlbGVjdGFibGUuIik7Cit9LCAiSW5lcnQgbm9k
ZXMgY2Fubm90IGJlIHNlbGVjdGVkLiIpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2lu
ZXJ0L2luZXJ0LW9uLXNsb3RzLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LW9uLXNsb3RzLnRlbnRh
dGl2ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTEyMjJmMTZkZDM3NjExMzU0MGI4MWU1ZTA1
MTJkMTZlZTEzN2RlMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtb24tc2xvdHMudGVudGF0aXZlLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK0J1dHRvbiAxIHNob3VsZCBiZSBpbmVydCwgYW5kIEJ1
dHRvbiAyIHNob3VsZCBub3QgYmUgaW5lcnQuCitCdXR0b24gMSAoaW5lcnQpQnV0dG9uIDIgKG5v
dCBpbmVydCkKKworUEFTUyBpbmVydCBpbnNpZGUgU2hhZG93Um9vdCBhZmZlY3RzIHNsb3R0ZWQg
Y29udGVudAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2luZXJ0L2luZXJ0LW9uLXNsb3RzLnRlbnRhdGl2ZS5odG1sIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1vbi1zbG90cy50
ZW50YXRpdmUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kZDBkN2VjNmQ0NmQxZWYzNDQxN2RjZjA5OWNlNTE1
NmJiMTQ5YmVhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1vbi1zbG90cy50ZW50YXRpdmUuaHRtbApAQCAt
MCwwICsxLDU3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPG1ldGEg
Y2hhcnNldD0idXRmLTgiIC8+CisgICAgPHRpdGxlPmluZXJ0IGluc2lkZSBTaGFkb3dSb290IGFm
ZmVjdHMgc2xvdHRlZCBjb250ZW50PC90aXRsZT4KKyAgICA8bGluayByZWw9ImF1dGhvciIgdGl0
bGU9IkFsaWNlIEJveGhhbGwiIGhyZWY9ImFib3hoYWxsQGNocm9taXVtLm9yZyI+CisgICAgPHNj
cmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgIDxzY3Jp
cHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorICA8ZGl2PkJ1dHRvbiAxIHNob3VsZCBiZSBpbmVydCwgYW5kIEJ1dHRvbiAy
IHNob3VsZCBub3QgYmUgaW5lcnQuPC9kaXY+CisgIDxkaXYgaWQ9InNoYWRvdy1ob3N0Ij4KKyAg
ICA8YnV0dG9uIHNsb3Q9InNsb3QtMSIgaWQ9ImJ1dHRvbi0xIj5CdXR0b24gMSAoaW5lcnQpPC9i
dXR0b24+CisgICAgPGJ1dHRvbiBzbG90PSJzbG90LTIiIGlkPSJidXR0b24tMiI+QnV0dG9uIDIg
KG5vdCBpbmVydCk8L2J1dHRvbj4KKyAgPC9kaXY+CisgIDxzY3JpcHQ+CisgICAgLyoKKyAgICBF
dmVudHVhbCBmbGF0dGVuZWQgdHJlZSBzdHJ1Y3R1cmU6CisKKyAgICA8ZGl2IGlkPSJzaGFkb3ct
aG9zdCI+CisgICAgICAjc2hhZG93LXJvb3QgKG9wZW4pCisgICAgICB8IDxzbG90IGlkPSJzbG90
LTEiIGluZXJ0PgorICAgICAgOiAgIDxidXR0b24gaWQ9ImJ1dHRvbi0xIj5CdXR0b24gMTwvYnV0
dG9uPiA8IS0tIHNsb3R0ZWQgLS0+CisgICAgICB8IDwvc2xvdD4KKyAgICAgIHwgPHNsb3QgaWQ9
InNsb3QtMiI+CisgICAgICA6ICAgPGJ1dHRvbiBpZD0iYnV0dG9uLTIiPkJ1dHRvbiAyPC9idXR0
b24+IDwhLS0gc2xvdHRlZCAtLT4KKyAgICAgIHwgPC9zbG90PgorICAgIDwvZGl2PgorICAgICov
CisKKyAgICBjb25zdCBzaGFkb3dIb3N0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNoYWRv
dy1ob3N0Iik7CisgICAgY29uc3Qgc2hhZG93Um9vdCA9IHNoYWRvd0hvc3QuYXR0YWNoU2hhZG93
KHsgbW9kZTogIm9wZW4iIH0pOworCisgICAgY29uc3Qgc2xvdDEgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJzbG90Iik7CisgICAgc2xvdDEubmFtZSA9ICJzbG90LTEiOworICAgIHNsb3QxLmlu
ZXJ0ID0gdHJ1ZTsKKyAgICBzaGFkb3dSb290LmFwcGVuZENoaWxkKHNsb3QxKTsKKworICAgIGNv
bnN0IHNsb3QyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2xvdCIpOworICAgIHNsb3QyLm5h
bWUgPSAic2xvdC0yIjsKKyAgICBzaGFkb3dSb290LmFwcGVuZENoaWxkKHNsb3QyKTsKKworICAg
IGZ1bmN0aW9uIHRlc3RDYW5Gb2N1cyhzZWxlY3RvciwgY2FuRm9jdXMpIHsKKyAgICAgIGNvbnN0
IGVsZW1lbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKHNlbGVjdG9yKTsKKyAgICAgIGxldCBm
b2N1c2VkRWxlbWVudCA9IG51bGw7CisgICAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImZv
Y3VzIiwgZnVuY3Rpb24oKSB7IGZvY3VzZWRFbGVtZW50ID0gZWxlbWVudDsgfSwgZmFsc2UpOwor
ICAgICAgZWxlbWVudC5mb2N1cygpOworICAgICAgYXNzZXJ0X2VxdWFscygoZm9jdXNlZEVsZW1l
bnQgPT09IGVsZW1lbnQpLCBjYW5Gb2N1cyk7CisgICAgfQorCisgICAgdGVzdCgoKSA9PiB7Cisg
ICAgICB0ZXN0Q2FuRm9jdXMoIiNidXR0b24tMSIsIGZhbHNlKTsKKyAgICAgIHRlc3RDYW5Gb2N1
cygiI2J1dHRvbi0yIiwgdHJ1ZSk7CisgICAgfSwgImluZXJ0IGluc2lkZSBTaGFkb3dSb290IGFm
ZmVjdHMgc2xvdHRlZCBjb250ZW50Iik7CisgIDwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9p
bmVydC9pbmVydC1yZXRhcmdldGluZy1pZnJhbWUudGVudGF0aXZlLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtcmV0
YXJnZXRpbmctaWZyYW1lLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjU5OWJl
NzFhODNlZjA4ZWQ1NjE5Yjk0Y2NiNDY0ZmMxYmM5NzcwOQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtcmV0
YXJnZXRpbmctaWZyYW1lLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0NyBAQAor
Q09OU09MRSBNRVNTQUdFOiBFcnJvcjogYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgRWxlbWVudCBu
b2RlIDxmaWVsZHNldCBpZD0iYW5jZXN0b3JDb250YWluZXIiPgorICAgIDxsZWdlbmQ+Tm9uLWlu
ZXJ0IGEuLi4gYnV0IGdvdCBFbGVtZW50IG5vZGUgPGJ1dHRvbiBpZD0iZm9yZWdyb3VuZCIgY2xh
c3M9ImNsaWNrZWQiPmZvcmVncm91bmQ8L2J1dHRvbj4KK0NPTlNPTEUgTUVTU0FHRTogRXJyb3I6
IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIEVsZW1lbnQgbm9kZSA8ZmllbGRzZXQgaWQ9ImFuY2Vz
dG9yQ29udGFpbmVyIj4KKyAgICA8bGVnZW5kPk5vbi1pbmVydCBhLi4uIGJ1dCBnb3QgRWxlbWVu
dCBub2RlIDxidXR0b24gaWQ9ImZvcmVncm91bmQiIGNsYXNzPSJjbGlja2VkIj5mb3JlZ3JvdW5k
PC9idXR0b24+CitDT05TT0xFIE1FU1NBR0U6IEVycm9yOiBhc3NlcnRfZXF1YWxzOiBleHBlY3Rl
ZCBFbGVtZW50IG5vZGUgPGZpZWxkc2V0IGlkPSJhbmNlc3RvckNvbnRhaW5lciI+CisgICAgPGxl
Z2VuZD5Ob24taW5lcnQgYS4uLiBidXQgZ290IEVsZW1lbnQgbm9kZSA8YnV0dG9uIGlkPSJmb3Jl
Z3JvdW5kIiBjbGFzcz0iY2xpY2tlZCI+Zm9yZWdyb3VuZDwvYnV0dG9uPgorQ09OU09MRSBNRVNT
QUdFOiBFcnJvcjogYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgRWxlbWVudCBub2RlIDxmaWVsZHNl
dCBpZD0iYW5jZXN0b3JDb250YWluZXIiPgorICAgIDxsZWdlbmQ+Tm9uLWluZXJ0IGEuLi4gYnV0
IGdvdCBFbGVtZW50IG5vZGUgPGJ1dHRvbiBpZD0iZm9yZWdyb3VuZCIgY2xhc3M9ImNsaWNrZWQi
PmZvcmVncm91bmQ8L2J1dHRvbj4KK0NPTlNPTEUgTUVTU0FHRTogRXJyb3I6IGFzc2VydF9lcXVh
bHM6IGV4cGVjdGVkIEVsZW1lbnQgbm9kZSA8ZmllbGRzZXQgaWQ9ImFuY2VzdG9yQ29udGFpbmVy
Ij4KKyAgICA8bGVnZW5kPk5vbi1pbmVydCBhLi4uIGJ1dCBnb3QgRWxlbWVudCBub2RlIDxidXR0
b24gaWQ9ImZvcmVncm91bmQiIGNsYXNzPSJjbGlja2VkIj5mb3JlZ3JvdW5kPC9idXR0b24+CitD
T05TT0xFIE1FU1NBR0U6IEVycm9yOiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCBFbGVtZW50IG5v
ZGUgPGZpZWxkc2V0IGlkPSJhbmNlc3RvckNvbnRhaW5lciI+CisgICAgPGxlZ2VuZD5Ob24taW5l
cnQgYS4uLiBidXQgZ290IEVsZW1lbnQgbm9kZSA8YnV0dG9uIGlkPSJmb3JlZ3JvdW5kIiBjbGFz
cz0iY2xpY2tlZCI+Zm9yZWdyb3VuZDwvYnV0dG9uPgorQ09OU09MRSBNRVNTQUdFOiBFcnJvcjog
YXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgRWxlbWVudCBub2RlIDxmaWVsZHNldCBpZD0iYW5jZXN0
b3JDb250YWluZXIiPgorICAgIDxsZWdlbmQ+Tm9uLWluZXJ0IGEuLi4gYnV0IGdvdCBFbGVtZW50
IG5vZGUgPGJ1dHRvbiBpZD0iZm9yZWdyb3VuZCIgY2xhc3M9ImNsaWNrZWQiPmZvcmVncm91bmQ8
L2J1dHRvbj4KK0NPTlNPTEUgTUVTU0FHRTogRXJyb3I6IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVk
IEVsZW1lbnQgbm9kZSA8ZmllbGRzZXQgaWQ9ImFuY2VzdG9yQ29udGFpbmVyIj4KKyAgICA8bGVn
ZW5kPk5vbi1pbmVydCBhLi4uIGJ1dCBnb3QgRWxlbWVudCBub2RlIDxidXR0b24gaWQ9ImZvcmVn
cm91bmQiIGNsYXNzPSJjbGlja2VkIj5mb3JlZ3JvdW5kPC9idXR0b24+CitDT05TT0xFIE1FU1NB
R0U6IEVycm9yOiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCBFbGVtZW50IG5vZGUgPGZpZWxkc2V0
IGlkPSJhbmNlc3RvckNvbnRhaW5lciI+CisgICAgPGxlZ2VuZD5Ob24taW5lcnQgYS4uLiBidXQg
Z290IEVsZW1lbnQgbm9kZSA8YnV0dG9uIGlkPSJmb3JlZ3JvdW5kIiBjbGFzcz0iY2xpY2tlZCI+
Zm9yZWdyb3VuZDwvYnV0dG9uPgorQ09OU09MRSBNRVNTQUdFOiBFcnJvcjogYXNzZXJ0X2VxdWFs
czogZXhwZWN0ZWQgRWxlbWVudCBub2RlIDxmaWVsZHNldCBpZD0iYW5jZXN0b3JDb250YWluZXIi
PgorICAgIDxsZWdlbmQ+Tm9uLWluZXJ0IGEuLi4gYnV0IGdvdCBFbGVtZW50IG5vZGUgPGJ1dHRv
biBpZD0iZm9yZWdyb3VuZCIgY2xhc3M9ImNsaWNrZWQiPmZvcmVncm91bmQ8L2J1dHRvbj4KK0NP
TlNPTEUgTUVTU0FHRTogRXJyb3I6IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIEVsZW1lbnQgbm9k
ZSA8ZmllbGRzZXQgaWQ9ImFuY2VzdG9yQ29udGFpbmVyIj4KKyAgICA8bGVnZW5kPk5vbi1pbmVy
dCBhLi4uIGJ1dCBnb3QgRWxlbWVudCBub2RlIDxidXR0b24gaWQ9ImZvcmVncm91bmQiIGNsYXNz
PSJjbGlja2VkIj5mb3JlZ3JvdW5kPC9idXR0b24+CitDT05TT0xFIE1FU1NBR0U6IEVycm9yOiBh
c3NlcnRfZXF1YWxzOiBleHBlY3RlZCBFbGVtZW50IG5vZGUgPGZpZWxkc2V0IGlkPSJhbmNlc3Rv
ckNvbnRhaW5lciI+CisgICAgPGxlZ2VuZD5Ob24taW5lcnQgYS4uLiBidXQgZ290IEVsZW1lbnQg
bm9kZSA8YnV0dG9uIGlkPSJmb3JlZ3JvdW5kIiBjbGFzcz0iY2xpY2tlZCI+Zm9yZWdyb3VuZDwv
YnV0dG9uPgorQ09OU09MRSBNRVNTQUdFOiBFcnJvcjogYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQg
RWxlbWVudCBub2RlIDxmaWVsZHNldCBpZD0iYW5jZXN0b3JDb250YWluZXIiPgorICAgIDxsZWdl
bmQ+Tm9uLWluZXJ0IGEuLi4gYnV0IGdvdCBFbGVtZW50IG5vZGUgPGJ1dHRvbiBpZD0iZm9yZWdy
b3VuZCIgY2xhc3M9ImNsaWNrZWQiPmZvcmVncm91bmQ8L2J1dHRvbj4KK0NsaWNrIG9uICJJbmVy
dCBidXR0b24iLgorCitUaGUgYmx1ZSBzcXVhcmUgKCJOb24taW5lcnQgYW5jZXN0b3IgY29udGFp
bmVyIikgc2hvdWxkIHR1cm4gZ3JlZW4uCitUaGUgeWVsbG93LCBzZW1pLXRyYW5zcGFyZW50IHNx
dWFyZSAoIk5vbi1pbmVydCwgZGlzcGxhY2VkIGNvbnRhaW5lciIpIHNob3VsZCBub3QgdHVybiBy
ZWQuCisiTm9uLWluZXJ0IGJ1dHRvbiIgc2hvdWxkIG5vdCB0dXJuIHJlZC4KKyhUaGUgZnVsbCB0
ZXN0IHN1aXRlIGNoZWNrcyBhIHJhbmdlIG9mIGV2ZW50cy4pCisKK05vbi1pbmVydCBhbmNlc3Rv
ciBjb250YWluZXIKKyBOb24taW5lcnQsIGRpc3BsYWNlZCBhbmNlc3RvcgorSW5lcnQgY29udGFp
bmVyCitmb3JlZ3JvdW5kCisKK0hhcm5lc3MgRXJyb3IgKEZBSUwpLCBtZXNzYWdlID0gRXJyb3I6
IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIEVsZW1lbnQgbm9kZSA8ZmllbGRzZXQgaWQ9ImFuY2Vz
dG9yQ29udGFpbmVyIj4KKyAgICA8bGVnZW5kPk5vbi1pbmVydCBhLi4uIGJ1dCBnb3QgRWxlbWVu
dCBub2RlIDxidXR0b24gaWQ9ImZvcmVncm91bmQiIGNsYXNzPSJjbGlja2VkIj5mb3JlZ3JvdW5k
PC9idXR0b24+CisKK1BBU1MgZWxlbWVudHNGcm9tUG9pbnQgcmV0dXJucyBpbmVydCBlbGVtZW50
CitGQUlMIFRlc3RzIHRoYXQgYW55IG1vdXNlIGV2ZW50IG9uIGEgbm9uLWluZXJ0IGVsZW1lbnQg
aXMgY29ycmVjdGx5IHRhcmdldGVkIHRvIHRoYXQgZWxlbWVudCBwcm9taXNlX3Rlc3Q6IFVuaGFu
ZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogImRpZCBub3QgZ2V0IGF1eGNsaWNrIG9uIGZvcmVn
cm91bmQiCitGQUlMIFRlc3RzIHRoYXQgYW55IG1vdXNlIGV2ZW50IG9uIGFuIGluZXJ0IGVsZW1l
bnQgaXMgdGFyZ2V0ZWQgdG8gdGhlIG5lYXJlc3Qgbm9uLWluZXJ0IGFuY2VzdG9yIGF0IHRoZSBz
YW1lIGNvb3JkaW5hdGVzIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZh
bHVlOiAiZGlkIG5vdCBnZXQgbW91c2VvdmVyIG9uIGFuY2VzdG9yQ29udGFpbmVyIgorUEFTUyBU
ZXN0cyB0aGF0IGFueSBwb2ludGVyIGV2ZW50IG9uIGEgbm9uLWluZXJ0IGVsZW1lbnQgaXMgY29y
cmVjdGx5IHRhcmdldGVkIHRvIHRoYXQgZWxlbWVudAorRkFJTCBUZXN0cyB0aGF0IGFueSBwb2lu
dGVyIGV2ZW50IG9uIGFuIGluZXJ0IGVsZW1lbnQgaXMgdGFyZ2V0ZWQgdG8gdGhlIG5lYXJlc3Qg
bm9uLWluZXJ0IGFuY2VzdG9yIGF0IHRoZSBzYW1lIGNvb3JkaW5hdGVzIHByb21pc2VfdGVzdDog
VW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiAiZGlkIG5vdCBnZXQgcG9pbnRlcm92ZXIg
b24gYW5jZXN0b3JDb250YWluZXIiCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtcmV0YXJnZXRpbmctaWZyYW1lLnRl
bnRhdGl2ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9pbmVydC9pbmVydC1yZXRhcmdldGluZy1pZnJhbWUudGVudGF0aXZlLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNTc5ZmM1N2JlMjU4YTcwOWE5ZDIyY2IyNjNhNjQyMmQ5YmRiNzk1MwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQv
aW5lcnQtcmV0YXJnZXRpbmctaWZyYW1lLnRlbnRhdGl2ZS5odG1sCkBAIC0wLDAgKzEsMjc5IEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNl
cy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0
aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0
ZHJpdmVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Rkcml2ZXIt
YWN0aW9ucy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0ZHJpdmVy
LXZlbmRvci5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+CitidXR0b24jZm9yZWdyb3VuZCwKK2J1dHRv
biNiYWNrZ3JvdW5kIHsKKyAgcG9zaXRpb246IGFic29sdXRlOworICB0b3A6IDc1cHg7CisgIGxl
ZnQ6IDUwcHg7CisgIHdpZHRoOiAxMDBweDsKKyAgaGVpZ2h0OiAyMHB4OworfQorCitidXR0b24j
YmFja2dyb3VuZCB7CisgIGxlZnQ6IDc1cHg7CisgIHdpZHRoOiAxNTBweDsKKyAgaGVpZ2h0OiA0
MHB4OworICB0b3A6IDEyNXB4OworICBsaW5lLWhlaWdodDogNTNweDsKK30KKworLmNsaWNrZWQg
eworICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7Cit9CisKKyNhbmNlc3RvckNvbnRhaW5lci5jbGlj
a2VkIHsKKyAgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47Cit9CisKKyNhbmNlc3RvckNvbnRhaW5l
ciB7CisgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgdG9wOiAyMDBweDsKKyAgbGVmdDogMTBweDsK
KyAgd2lkdGg6IDMwMHB4OworICBoZWlnaHQ6IDMwMHB4OworICBiYWNrZ3JvdW5kLWNvbG9yOiBi
bHVlOworfQorCisjZGlzcGxhY2VkQW5jZXN0b3IgeworICBwb3NpdGlvbjogYWJzb2x1dGU7Cisg
IHRvcDogMTNweDsKKyAgbGVmdDogMjQwcHg7CisgIHdpZHRoOiAzMDBweDsKKyAgaGVpZ2h0OiAy
NTBweDsKKyAgYmFja2dyb3VuZC1jb2xvcjogI2ZmODk7Cit9CisKKyNkaXNwbGFjZWRBbmNlc3Rv
ci5jbGlja2VkIHsKKyAgYmFja2dyb3VuZC1jb2xvcjogI2YwMDk7Cit9CisKKyNpbmVydENvbnRh
aW5lciB7CisgIGJhY2tncm91bmQtY29sb3I6ICNmZmY5OworICBwb3NpdGlvbjogYWJzb2x1dGU7
CisgIHRvcDogMzVweDsKKyAgbGVmdDogLTE5MnB4OworICB3aWR0aDogMjAwcHg7CisgIGhlaWdo
dDogMjAwcHg7Cit9CisKK2ZpZWxkc2V0IHsKKyAgbWFyZ2luOiAwOworICBwYWRkaW5nOiAwOwor
ICBib3JkZXI6IDFweCBzb2xpZCBibGFjazsKK30KKworbGVnZW5kIHsKKyAgYmFja2dyb3VuZC1j
b2xvcjogd2hpdGU7CisgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOworICBtYXJnaW4tbGVmdDog
NXB4OworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorICA8cD5DbGljayBvbiAiSW5lcnQg
YnV0dG9uIi48L3A+CisgIDx1bD4KKyAgICA8bGk+VGhlIGJsdWUgc3F1YXJlICgiTm9uLWluZXJ0
IGFuY2VzdG9yIGNvbnRhaW5lciIpIHNob3VsZCB0dXJuIGdyZWVuLjwvbGk+CisgICAgPGxpPlRo
ZSB5ZWxsb3csIHNlbWktdHJhbnNwYXJlbnQgc3F1YXJlICgiTm9uLWluZXJ0LCBkaXNwbGFjZWQg
Y29udGFpbmVyIikgc2hvdWxkIG5vdCB0dXJuIHJlZC48L2xpPgorICAgIDxsaT4iTm9uLWluZXJ0
IGJ1dHRvbiIgc2hvdWxkIG5vdCB0dXJuIHJlZC48L2xpPgorICA8L3VsPgorICA8cCBzdHlsZT0i
bWFyZ2luLWJvdHRvbToyNTBweCI+KFRoZSBmdWxsIHRlc3Qgc3VpdGUgY2hlY2tzIGEgcmFuZ2Ug
b2YgZXZlbnRzLik8L3A+CisgIDxmaWVsZHNldCBpZD0iYW5jZXN0b3JDb250YWluZXIiPgorICAg
IDxsZWdlbmQ+Tm9uLWluZXJ0IGFuY2VzdG9yIGNvbnRhaW5lcjwvbGVnZW5kPgorICAgIDxpZnJh
bWUgaWQ9ImJhY2tncm91bmQiIHNyYz0iZnJhbWUvYnV0dG9uLmh0bWwiPjwvaWZyYW1lPgorICAg
IDxmaWVsZHNldCBpZD0iZGlzcGxhY2VkQW5jZXN0b3IiPgorICAgICAgPGxlZ2VuZD5Ob24taW5l
cnQsIGRpc3BsYWNlZCBhbmNlc3RvcjwvbGVnZW5kPgorICAgICAgPGZpZWxkc2V0IGlkPSJpbmVy
dENvbnRhaW5lciIgaW5lcnQ+CisgICAgICAgIDxsZWdlbmQ+SW5lcnQgY29udGFpbmVyPC9sZWdl
bmQ+CisgICAgICAgIDxidXR0b24gaWQ9ImZvcmVncm91bmQiPmZvcmVncm91bmQ8L2J1dHRvbj4K
KyAgICAgIDwvZmllbGRzZXQ+CisgICAgPC9maWVsZHNldD4KKyAgPC9maWVsZHNldD4KKworICA8
c2NyaXB0PgorZG9jdW1lbnQuYm9keS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIChlKSA9PiB7
CisgIGUudGFyZ2V0LmNsYXNzTGlzdC5hZGQoJ2NsaWNrZWQnKTsKK30pOworCitmdW5jdGlvbiBj
bGlja09uKGVsZW1lbnQpIHsKKyAgcmV0dXJuIG5ldyB0ZXN0X2RyaXZlci5BY3Rpb25zKCkKKyAg
ICAgIC5wb2ludGVyTW92ZSgwLCAwLCB7b3JpZ2luOiBlbGVtZW50fSkKKyAgICAgIC5wb2ludGVy
RG93bih7YnV0dG9uOiB0ZXN0X2RyaXZlci5BY3Rpb25zLnByb3RvdHlwZS5CdXR0b25UeXBlLkxF
RlR9KQorICAgICAgLnBvaW50ZXJVcCh7YnV0dG9uOiB0ZXN0X2RyaXZlci5BY3Rpb25zLnByb3Rv
dHlwZS5CdXR0b25UeXBlLkxFRlR9KQorICAgICAgLnNlbmQoKTsKK30KKworZnVuY3Rpb24gYXV4
Q2xpY2tPbihlbGVtZW50KSB7CisgIHJldHVybiBuZXcgdGVzdF9kcml2ZXIuQWN0aW9ucygpCisg
ICAgICAucG9pbnRlck1vdmUoMCwgMCwge29yaWdpbjogZWxlbWVudH0pCisgICAgICAucG9pbnRl
ckRvd24oe2J1dHRvbjogdGVzdF9kcml2ZXIuQWN0aW9ucy5wcm90b3R5cGUuQnV0dG9uVHlwZS5S
SUdIVH0pCisgICAgICAucG9pbnRlclVwKHtidXR0b246IHRlc3RfZHJpdmVyLkFjdGlvbnMucHJv
dG90eXBlLkJ1dHRvblR5cGUuUklHSFR9KQorICAgICAgLnNlbmQoKTsKK30KKworZnVuY3Rpb24g
ZGJsQ2xpY2tPbihlbGVtZW50KSB7CisgIHJldHVybiBuZXcgdGVzdF9kcml2ZXIuQWN0aW9ucygp
CisgICAgICAucG9pbnRlck1vdmUoMCwgMCwge29yaWdpbjogZWxlbWVudH0pCisgICAgICAucG9p
bnRlckRvd24oe2J1dHRvbjogdGVzdF9kcml2ZXIuQWN0aW9ucy5wcm90b3R5cGUuQnV0dG9uVHlw
ZS5MRUZUfSkKKyAgICAgIC5wb2ludGVyVXAoe2J1dHRvbjogdGVzdF9kcml2ZXIuQWN0aW9ucy5w
cm90b3R5cGUuQnV0dG9uVHlwZS5MRUZUfSkKKyAgICAgIC5wb2ludGVyRG93bih7YnV0dG9uOiB0
ZXN0X2RyaXZlci5BY3Rpb25zLnByb3RvdHlwZS5CdXR0b25UeXBlLkxFRlR9KQorICAgICAgLnBv
aW50ZXJVcCh7YnV0dG9uOiB0ZXN0X2RyaXZlci5BY3Rpb25zLnByb3RvdHlwZS5CdXR0b25UeXBl
LkxFRlR9KQorICAgICAgLnNlbmQoKTsKK30KKworZnVuY3Rpb24gbW92ZVBvaW50ZXJPdmVyKGVs
ZW1lbnQpIHsKKyAgbGV0IHJlY3QgPSBlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwor
ICByZXR1cm4gbmV3IHRlc3RfZHJpdmVyLkFjdGlvbnMoKQorICAgICAgLnBvaW50ZXJNb3ZlKDAs
IDAsIHsgb3JpZ2luOiBlbGVtZW50IH0pCisgICAgICAuc2VuZCgpOworfQorCitmdW5jdGlvbiBt
b3ZlUG9pbnRlclRvKHgsIHkpIHsKKyAgcmV0dXJuIG5ldyB0ZXN0X2RyaXZlci5BY3Rpb25zKCkK
KyAgICAgIC5wb2ludGVyTW92ZShNYXRoLmNlaWwoeCksIE1hdGguY2VpbCh5KSwgeyBvcmlnaW46
ICJ2aWV3cG9ydCIgfSkKKyAgICAgIC5zZW5kKCk7Cit9CisKK2Z1bmN0aW9uIGV4cGVjdEV2ZW50
c09uKGV2ZW50cywgZWxlbWVudCkgeworICBsZXQgcHJvbWlzZXMgPSBbXTsKKyAgZm9yIChldmVu
dCBvZiBldmVudHMpIHsKKyAgICAoKGV2ZW50LCBlbGVtZW50KSA9PiB7CisgICAgICB2YXIgcHJv
bWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsKKyAgICAgICAgbGV0IGYg
PSAoZSkgPT4geworICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50eXBlLCBldmVudCk7CisgICAg
ICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldCwgZWxlbWVudCk7CisgICAgICAgICAgcmVzb2x2
ZSgpOworICAgICAgICB9CisgICAgICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihldmVudCwg
ZiwgeyBjYXB0dXJlOiB0cnVlLCBvbmNlOiB0cnVlIH0pOworCisgICAgICAgIHN0ZXBfdGltZW91
dCgoKSA9PiB7CisgICAgICAgICAgZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50LCBm
LCB7IGNhcHR1cmU6IHRydWUgfSk7CisgICAgICAgICAgcmVqZWN0KCJkaWQgbm90IGdldCAiICsg
ZXZlbnQgKyAiIG9uICIgKyBlbGVtZW50LmlkKTsKKyAgICAgICAgfSwgNTAwMCk7CisgICAgICB9
KTsKKyAgICAgIHByb21pc2VzLnB1c2gocHJvbWlzZSk7CisgICAgfSkoZXZlbnQsIGVsZW1lbnQp
OworICB9CisgIHJldHVybiBwcm9taXNlczsKK30KKworZnVuY3Rpb24gdW5leHBlY3RFdmVudHNP
bihldmVudHMsIGVsZW1lbnQpIHsKKyAgbGV0IHByb21pc2VzID0gW107CisgIGZvciAoZXZlbnQg
b2YgZXZlbnRzKSB7CisgICAgKChldmVudCwgZWxlbWVudCkgPT4geworICAgICAgdmFyIHByb21p
c2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7CisgICAgICAgIGxldCBmID0g
KGUpID0+IHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUudHlwZSwgZXZlbnQpOworICAgICAg
ICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQsIGVsZW1lbnQpOworICAgICAgICAgIHJlamVjdCgi
Z290ICIgKyBlLnR5cGUgKyAiIG9uICIgKyBlLnRhcmdldC5pZCk7CisgICAgICAgIH0KKyAgICAg
ICAgZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKGV2ZW50LCBmLCB7IGNhcHR1cmU6IHRydWUsIG9u
Y2U6IHRydWUgfSk7CisKKyAgICAgICAgc3RlcF90aW1lb3V0KCgpID0+IHsKKyAgICAgICAgICBl
bGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnQsIGYsIHsgY2FwdHVyZTogdHJ1ZSB9KTsK
KyAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgIH0sIDEwMDApOworICAgICAgfSk7CisgICAg
ICBwcm9taXNlcy5wdXNoKHByb21pc2UpOworICAgIH0pKGV2ZW50LCBlbGVtZW50KTsKKyAgfQor
ICByZXR1cm4gcHJvbWlzZXM7Cit9CisKK3Rlc3QoKCkgPT4geworICBsZXQgcmVjdCA9IGZvcmVn
cm91bmQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CisgIGxldCBjZW50ZXJfeCA9IHJlY3QubGVm
dCArIChyZWN0LndpZHRoIC8gMik7CisgIGxldCBjZW50ZXJfeSA9IHJlY3QudG9wICsgKHJlY3Qu
aGVpZ2h0IC8gMik7CisgIGFzc2VydF9lcXVhbHMoZG9jdW1lbnQuZWxlbWVudHNGcm9tUG9pbnQo
Y2VudGVyX3gsIGNlbnRlcl95KVswXSwgZm9yZWdyb3VuZCk7Cit9LCAiZWxlbWVudHNGcm9tUG9p
bnQgcmV0dXJucyBpbmVydCBlbGVtZW50Iik7CisKK3Byb21pc2VfdGVzdChhc3luYyAoKSA9PiB7
CisgIC8vIFRlc3QgbW91c2UgZXZlbnRzIG9uIG5vbi1pbmVydCBlbGVtZW50IC0gZXZlbnRzIHNo
b3VsZCBnbyB0byAiZm9yZWdyb3VuZCIKKyAgaW5lcnRDb250YWluZXIuaW5lcnQgPSBmYWxzZTsK
KyAgYXdhaXQgbW92ZVBvaW50ZXJUbygwLCAwKTsKKyAgbGV0IHByb21pc2VzID0gZXhwZWN0RXZl
bnRzT24oWyJtb3VzZW92ZXIiLCAibW91c2VlbnRlciIsICJtb3VzZW1vdmUiLCAibW91c2Vkb3du
IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJtb3VzZXVwIiwgImNsaWNrIiwg
ImF1eGNsaWNrIiwgIm1vdXNlb3V0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJtb3VzZWxlYXZlIl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcmVncm91
bmQpOworICBhd2FpdCBjbGlja09uKGZvcmVncm91bmQpOworICBhd2FpdCBhdXhDbGlja09uKGZv
cmVncm91bmQpOworICBhd2FpdCBkYmxDbGlja09uKGZvcmVncm91bmQpOworICBsZXQgYW5jZXN0
b3JCb3ggPSBhbmNlc3RvckNvbnRhaW5lci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgbGV0
IGluZXJ0Qm94ID0gaW5lcnRDb250YWluZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CisgIGxl
dCB4ID0gYW5jZXN0b3JCb3gubGVmdCArIChhbmNlc3RvckJveC53aWR0aCAvIDIpOworICBsZXQg
eSA9IGluZXJ0Qm94LmJvdHRvbSArICgoYW5jZXN0b3JCb3guYm90dG9tIC0gaW5lcnRCb3guYm90
dG9tKSAvIDIpOworICBhd2FpdCBtb3ZlUG9pbnRlclRvKHgsIHkpOworICBhd2FpdCBQcm9taXNl
LmFsbChwcm9taXNlcyk7Cit9LCAiVGVzdHMgdGhhdCBhbnkgbW91c2UgZXZlbnQgb24gYSBub24t
aW5lcnQgZWxlbWVudCBpcyBjb3JyZWN0bHkgdGFyZ2V0ZWQgdG8gdGhhdCBlbGVtZW50Iik7CisK
K3Byb21pc2VfdGVzdChhc3luYyAoKSA9PiB7CisgIC8vIE1ha2UgdGhlIGNvbnRhaW5pbmcgZWxl
bWVudCBpbmVydCAtIG5vdyBldmVudHMgc2hvdWxkIGdvIHRvICJjb250YWluZXIiCisgIC8vIHdo
aWNoIGlzIHRoZSBub24taW5lcnQgYW5jZXN0b3IgYXQgdGhlIHNhbWUgcG9zaXRpb24KKyAgaW5l
cnRDb250YWluZXIuaW5lcnQgPSB0cnVlOworICBhd2FpdCBtb3ZlUG9pbnRlclRvKDAsIDApOwor
CisgIGxldCBwcm9taXNlcyA9IGV4cGVjdEV2ZW50c09uKFsibW91c2VvdmVyIiwgIm1vdXNlZW50
ZXIiLCAibW91c2Vtb3ZlIiwgIm1vdXNlZG93biIsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAibW91c2V1cCIsICJjbGljayIsICJhdXhjbGljayJdLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBhbmNlc3RvckNvbnRhaW5lcik7CisKKyAgcHJvbWlzZXMgPSBwcm9t
aXNlcy5jb25jYXQodW5leHBlY3RFdmVudHNPbihbIm1vdXNlb3V0IiwgIm1vdXNlbGVhdmUiXSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmNlc3RvckNv
bnRhaW5lcikpOworCisgIGF3YWl0IGNsaWNrT24oZm9yZWdyb3VuZCk7CisgIGF3YWl0IGF1eENs
aWNrT24oZm9yZWdyb3VuZCk7CisgIGF3YWl0IGRibENsaWNrT24oZm9yZWdyb3VuZCk7CisgIGxl
dCBhbmNlc3RvckJveCA9IGFuY2VzdG9yQ29udGFpbmVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgp
OworICBsZXQgaW5lcnRCb3ggPSBpbmVydENvbnRhaW5lci5nZXRCb3VuZGluZ0NsaWVudFJlY3Qo
KTsKKyAgbGV0IHggPSBhbmNlc3RvckJveC5sZWZ0ICsgKGFuY2VzdG9yQm94LndpZHRoIC8gMik7
CisgIGxldCB5ID0gaW5lcnRCb3guYm90dG9tICsgKChhbmNlc3RvckJveC5ib3R0b20gLSBpbmVy
dEJveC5ib3R0b20pIC8gMik7CisgIGF3YWl0IG1vdmVQb2ludGVyVG8oeCwgeSk7CisgIGF3YWl0
IFByb21pc2UuYWxsKHByb21pc2VzKTsKK30sICdUZXN0cyB0aGF0IGFueSBtb3VzZSBldmVudCBv
biBhbiBpbmVydCBlbGVtZW50IGlzIHRhcmdldGVkIHRvIHRoZSBuZWFyZXN0IG5vbi1pbmVydCBh
bmNlc3RvciBhdCB0aGUgc2FtZSBjb29yZGluYXRlcycpOworCitwcm9taXNlX3Rlc3QoYXN5bmMg
KCkgPT4geworICAvLyBUZXN0IHBvaW50ZXIgZXZlbnRzIG9uIG5vbi1pbmVydCBlbGVtZW50IC0g
ZXZlbnRzIHNob3VsZCBnbyB0byAiZm9yZWdyb3VuZCIKKyAgaW5lcnRDb250YWluZXIuaW5lcnQg
PSBmYWxzZTsKKyAgYXdhaXQgbW92ZVBvaW50ZXJUbygwLCAwKTsKKworICBsZXQgcHJvbWlzZXMg
PSBleHBlY3RFdmVudHNPbihbInBvaW50ZXJvdmVyIiwgInBvaW50ZXJlbnRlciIsICJwb2ludGVy
bW92ZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicG9pbnRlcmRvd24iLCAi
cG9pbnRlcnVwIiwgInBvaW50ZXJvdXQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgInBvaW50ZXJsZWF2ZSJdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3Jl
Z3JvdW5kKTsKKyAgYXdhaXQgY2xpY2tPbihmb3JlZ3JvdW5kKTsKKyAgbGV0IGFuY2VzdG9yQm94
ID0gYW5jZXN0b3JDb250YWluZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CisgIGxldCBpbmVy
dEJveCA9IGluZXJ0Q29udGFpbmVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworICBsZXQgeCA9
IGFuY2VzdG9yQm94LmxlZnQgKyAoYW5jZXN0b3JCb3gud2lkdGggLyAyKTsKKyAgbGV0IHkgPSBp
bmVydEJveC5ib3R0b20gKyAoKGFuY2VzdG9yQm94LmJvdHRvbSAtIGluZXJ0Qm94LmJvdHRvbSkg
LyAyKTsKKyAgYXdhaXQgbW92ZVBvaW50ZXJUbyh4LCB5KTsKKyAgYXdhaXQgUHJvbWlzZS5hbGwo
cHJvbWlzZXMpOworfSwgIlRlc3RzIHRoYXQgYW55IHBvaW50ZXIgZXZlbnQgb24gYSBub24taW5l
cnQgZWxlbWVudCBpcyBjb3JyZWN0bHkgdGFyZ2V0ZWQgdG8gdGhhdCBlbGVtZW50Iik7CisKK3By
b21pc2VfdGVzdChhc3luYyAoKSA9PiB7CisgIC8vIE1ha2UgdGhlIGNvbnRhaW5pbmcgZWxlbWVu
dCBpbmVydCAtIG5vdyBldmVudHMgc2hvdWxkIGdvIHRvICJjb250YWluZXIiCisgIC8vIHdoaWNo
IGlzIHRoZSBub24taW5lcnQgYW5jZXN0b3IgYXQgdGhlIHNhbWUgcG9zaXRpb24KKyAgaW5lcnRD
b250YWluZXIuaW5lcnQgPSB0cnVlOworICBhd2FpdCBtb3ZlUG9pbnRlclRvKDAsIDApOworCisg
IGxldCBwcm9taXNlcyA9IGV4cGVjdEV2ZW50c09uKFsicG9pbnRlcm92ZXIiLCAicG9pbnRlcmVu
dGVyIiwgInBvaW50ZXJtb3ZlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJw
b2ludGVyZG93biIsICJwb2ludGVydXAiIF0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGFuY2VzdG9yQ29udGFpbmVyKTsKKworICBwcm9taXNlcyA9IHByb21pc2VzLmNvbmNhdCh1
bmV4cGVjdEV2ZW50c09uKFsicG9pbnRlcm91dCIsICJwb2ludGVybGVhdmUiXSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmNlc3RvckNvbnRhaW5lcikp
OworICBhd2FpdCBjbGlja09uKGZvcmVncm91bmQpOworICBsZXQgYW5jZXN0b3JCb3ggPSBhbmNl
c3RvckNvbnRhaW5lci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgbGV0IGluZXJ0Qm94ID0g
aW5lcnRDb250YWluZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CisgIGxldCB4ID0gYW5jZXN0
b3JCb3gubGVmdCArIChhbmNlc3RvckJveC53aWR0aCAvIDIpOworICBsZXQgeSA9IGluZXJ0Qm94
LmJvdHRvbSArICgoYW5jZXN0b3JCb3guYm90dG9tIC0gaW5lcnRCb3guYm90dG9tKSAvIDIpOwor
ICBhd2FpdCBtb3ZlUG9pbnRlclRvKHgsIHkpOworICBhd2FpdCBQcm9taXNlLmFsbChwcm9taXNl
cyk7Cit9LCAnVGVzdHMgdGhhdCBhbnkgcG9pbnRlciBldmVudCBvbiBhbiBpbmVydCBlbGVtZW50
IGlzIHRhcmdldGVkIHRvIHRoZSBuZWFyZXN0IG5vbi1pbmVydCBhbmNlc3RvciBhdCB0aGUgc2Ft
ZSBjb29yZGluYXRlcycpOworICA8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5l
cnQtcmV0YXJnZXRpbmcudGVudGF0aXZlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtcmV0YXJnZXRpbmcudGVudGF0
aXZlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYjc0NWZhMjE4ZGJjYjVhNGVjNmU2ZmJiNmFk
MmI1YjRkYTllYTE1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1yZXRhcmdldGluZy50ZW50YXRpdmUtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsNDcgQEAKK0NPTlNPTEUgTUVTU0FHRTogRXJyb3I6IGFzc2Vy
dF9lcXVhbHM6IGV4cGVjdGVkIEVsZW1lbnQgbm9kZSA8ZmllbGRzZXQgaWQ9ImFuY2VzdG9yQ29u
dGFpbmVyIj4KKyAgICA8bGVnZW5kPk5vbi1pbmVydCBhLi4uIGJ1dCBnb3QgRWxlbWVudCBub2Rl
IDxidXR0b24gaWQ9ImZvcmVncm91bmQiIGNsYXNzPSJjbGlja2VkIj5mb3JlZ3JvdW5kPC9idXR0
b24+CitDT05TT0xFIE1FU1NBR0U6IEVycm9yOiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCBFbGVt
ZW50IG5vZGUgPGZpZWxkc2V0IGlkPSJhbmNlc3RvckNvbnRhaW5lciI+CisgICAgPGxlZ2VuZD5O
b24taW5lcnQgYS4uLiBidXQgZ290IEVsZW1lbnQgbm9kZSA8YnV0dG9uIGlkPSJmb3JlZ3JvdW5k
IiBjbGFzcz0iY2xpY2tlZCI+Zm9yZWdyb3VuZDwvYnV0dG9uPgorQ09OU09MRSBNRVNTQUdFOiBF
cnJvcjogYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgRWxlbWVudCBub2RlIDxmaWVsZHNldCBpZD0i
YW5jZXN0b3JDb250YWluZXIiPgorICAgIDxsZWdlbmQ+Tm9uLWluZXJ0IGEuLi4gYnV0IGdvdCBF
bGVtZW50IG5vZGUgPGJ1dHRvbiBpZD0iZm9yZWdyb3VuZCIgY2xhc3M9ImNsaWNrZWQiPmZvcmVn
cm91bmQ8L2J1dHRvbj4KK0NPTlNPTEUgTUVTU0FHRTogRXJyb3I6IGFzc2VydF9lcXVhbHM6IGV4
cGVjdGVkIEVsZW1lbnQgbm9kZSA8ZmllbGRzZXQgaWQ9ImFuY2VzdG9yQ29udGFpbmVyIj4KKyAg
ICA8bGVnZW5kPk5vbi1pbmVydCBhLi4uIGJ1dCBnb3QgRWxlbWVudCBub2RlIDxidXR0b24gaWQ9
ImZvcmVncm91bmQiIGNsYXNzPSJjbGlja2VkIj5mb3JlZ3JvdW5kPC9idXR0b24+CitDT05TT0xF
IE1FU1NBR0U6IEVycm9yOiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCBFbGVtZW50IG5vZGUgPGZp
ZWxkc2V0IGlkPSJhbmNlc3RvckNvbnRhaW5lciI+CisgICAgPGxlZ2VuZD5Ob24taW5lcnQgYS4u
LiBidXQgZ290IEVsZW1lbnQgbm9kZSA8YnV0dG9uIGlkPSJmb3JlZ3JvdW5kIiBjbGFzcz0iY2xp
Y2tlZCI+Zm9yZWdyb3VuZDwvYnV0dG9uPgorQ09OU09MRSBNRVNTQUdFOiBFcnJvcjogYXNzZXJ0
X2VxdWFsczogZXhwZWN0ZWQgRWxlbWVudCBub2RlIDxmaWVsZHNldCBpZD0iYW5jZXN0b3JDb250
YWluZXIiPgorICAgIDxsZWdlbmQ+Tm9uLWluZXJ0IGEuLi4gYnV0IGdvdCBFbGVtZW50IG5vZGUg
PGJ1dHRvbiBpZD0iZm9yZWdyb3VuZCIgY2xhc3M9ImNsaWNrZWQiPmZvcmVncm91bmQ8L2J1dHRv
bj4KK0NPTlNPTEUgTUVTU0FHRTogRXJyb3I6IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIEVsZW1l
bnQgbm9kZSA8ZmllbGRzZXQgaWQ9ImFuY2VzdG9yQ29udGFpbmVyIj4KKyAgICA8bGVnZW5kPk5v
bi1pbmVydCBhLi4uIGJ1dCBnb3QgRWxlbWVudCBub2RlIDxidXR0b24gaWQ9ImZvcmVncm91bmQi
IGNsYXNzPSJjbGlja2VkIj5mb3JlZ3JvdW5kPC9idXR0b24+CitDT05TT0xFIE1FU1NBR0U6IEVy
cm9yOiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCBFbGVtZW50IG5vZGUgPGZpZWxkc2V0IGlkPSJh
bmNlc3RvckNvbnRhaW5lciI+CisgICAgPGxlZ2VuZD5Ob24taW5lcnQgYS4uLiBidXQgZ290IEVs
ZW1lbnQgbm9kZSA8YnV0dG9uIGlkPSJmb3JlZ3JvdW5kIiBjbGFzcz0iY2xpY2tlZCI+Zm9yZWdy
b3VuZDwvYnV0dG9uPgorQ09OU09MRSBNRVNTQUdFOiBFcnJvcjogYXNzZXJ0X2VxdWFsczogZXhw
ZWN0ZWQgRWxlbWVudCBub2RlIDxmaWVsZHNldCBpZD0iYW5jZXN0b3JDb250YWluZXIiPgorICAg
IDxsZWdlbmQ+Tm9uLWluZXJ0IGEuLi4gYnV0IGdvdCBFbGVtZW50IG5vZGUgPGJ1dHRvbiBpZD0i
Zm9yZWdyb3VuZCIgY2xhc3M9ImNsaWNrZWQiPmZvcmVncm91bmQ8L2J1dHRvbj4KK0NPTlNPTEUg
TUVTU0FHRTogRXJyb3I6IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIEVsZW1lbnQgbm9kZSA8Zmll
bGRzZXQgaWQ9ImFuY2VzdG9yQ29udGFpbmVyIj4KKyAgICA8bGVnZW5kPk5vbi1pbmVydCBhLi4u
IGJ1dCBnb3QgRWxlbWVudCBub2RlIDxidXR0b24gaWQ9ImZvcmVncm91bmQiIGNsYXNzPSJjbGlj
a2VkIj5mb3JlZ3JvdW5kPC9idXR0b24+CitDT05TT0xFIE1FU1NBR0U6IEVycm9yOiBhc3NlcnRf
ZXF1YWxzOiBleHBlY3RlZCBFbGVtZW50IG5vZGUgPGZpZWxkc2V0IGlkPSJhbmNlc3RvckNvbnRh
aW5lciI+CisgICAgPGxlZ2VuZD5Ob24taW5lcnQgYS4uLiBidXQgZ290IEVsZW1lbnQgbm9kZSA8
YnV0dG9uIGlkPSJmb3JlZ3JvdW5kIiBjbGFzcz0iY2xpY2tlZCI+Zm9yZWdyb3VuZDwvYnV0dG9u
PgorQ09OU09MRSBNRVNTQUdFOiBFcnJvcjogYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgRWxlbWVu
dCBub2RlIDxmaWVsZHNldCBpZD0iYW5jZXN0b3JDb250YWluZXIiPgorICAgIDxsZWdlbmQ+Tm9u
LWluZXJ0IGEuLi4gYnV0IGdvdCBFbGVtZW50IG5vZGUgPGJ1dHRvbiBpZD0iZm9yZWdyb3VuZCIg
Y2xhc3M9ImNsaWNrZWQiPmZvcmVncm91bmQ8L2J1dHRvbj4KK0NPTlNPTEUgTUVTU0FHRTogRXJy
b3I6IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIEVsZW1lbnQgbm9kZSA8ZmllbGRzZXQgaWQ9ImFu
Y2VzdG9yQ29udGFpbmVyIj4KKyAgICA8bGVnZW5kPk5vbi1pbmVydCBhLi4uIGJ1dCBnb3QgRWxl
bWVudCBub2RlIDxidXR0b24gaWQ9ImZvcmVncm91bmQiIGNsYXNzPSJjbGlja2VkIj5mb3JlZ3Jv
dW5kPC9idXR0b24+CitDbGljayBvbiAiZm9yZWdyb3VuZCIuCisKK1RoZSBibHVlIHNxdWFyZSAo
Ik5vbi1pbmVydCBhbmNlc3RvciBjb250YWluZXIiKSBzaG91bGQgdHVybiBncmVlbi4KK1RoZSB5
ZWxsb3csIHNlbWktdHJhbnNwYXJlbnQgc3F1YXJlICgiTm9uLWluZXJ0LCBkaXNwbGFjZWQgY29u
dGFpbmVyIikgc2hvdWxkIG5vdCB0dXJuIHJlZC4KKyJOb24taW5lcnQgYnV0dG9uIiBzaG91bGQg
bm90IHR1cm4gcmVkLgorKFRoZSBmdWxsIHRlc3Qgc3VpdGUgY2hlY2tzIGEgcmFuZ2Ugb2YgZXZl
bnRzLikKKworTm9uLWluZXJ0IGFuY2VzdG9yIGNvbnRhaW5lcgorYmFja2dyb3VuZE5vbi1pbmVy
dCwgZGlzcGxhY2VkIGFuY2VzdG9yCitJbmVydCBjb250YWluZXIKK2ZvcmVncm91bmQKKworSGFy
bmVzcyBFcnJvciAoRkFJTCksIG1lc3NhZ2UgPSBFcnJvcjogYXNzZXJ0X2VxdWFsczogZXhwZWN0
ZWQgRWxlbWVudCBub2RlIDxmaWVsZHNldCBpZD0iYW5jZXN0b3JDb250YWluZXIiPgorICAgIDxs
ZWdlbmQ+Tm9uLWluZXJ0IGEuLi4gYnV0IGdvdCBFbGVtZW50IG5vZGUgPGJ1dHRvbiBpZD0iZm9y
ZWdyb3VuZCIgY2xhc3M9ImNsaWNrZWQiPmZvcmVncm91bmQ8L2J1dHRvbj4KKworUEFTUyBlbGVt
ZW50c0Zyb21Qb2ludCByZXR1cm5zIGluZXJ0IGVsZW1lbnQKK0ZBSUwgVGVzdHMgdGhhdCBhbnkg
bW91c2UgZXZlbnQgb24gYSBub24taW5lcnQgZWxlbWVudCBpcyBjb3JyZWN0bHkgdGFyZ2V0ZWQg
dG8gdGhhdCBlbGVtZW50IHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZh
bHVlOiAiZGlkIG5vdCBnZXQgYXV4Y2xpY2sgb24gZm9yZWdyb3VuZCIKK0ZBSUwgVGVzdHMgdGhh
dCBhbnkgbW91c2UgZXZlbnQgb24gYW4gaW5lcnQgZWxlbWVudCBpcyB0YXJnZXRlZCB0byB0aGUg
bmVhcmVzdCBub24taW5lcnQgYW5jZXN0b3IgYXQgdGhlIHNhbWUgY29vcmRpbmF0ZXMgcHJvbWlz
ZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6ICJkaWQgbm90IGdldCBtb3Vz
ZW92ZXIgb24gYW5jZXN0b3JDb250YWluZXIiCitQQVNTIFRlc3RzIHRoYXQgYW55IHBvaW50ZXIg
ZXZlbnQgb24gYSBub24taW5lcnQgZWxlbWVudCBpcyBjb3JyZWN0bHkgdGFyZ2V0ZWQgdG8gdGhh
dCBlbGVtZW50CitGQUlMIFRlc3RzIHRoYXQgYW55IHBvaW50ZXIgZXZlbnQgb24gYW4gaW5lcnQg
ZWxlbWVudCBpcyB0YXJnZXRlZCB0byB0aGUgbmVhcmVzdCBub24taW5lcnQgYW5jZXN0b3IgYXQg
dGhlIHNhbWUgY29vcmRpbmF0ZXMgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdp
dGggdmFsdWU6ICJkaWQgbm90IGdldCBwb2ludGVyb3ZlciBvbiBhbmNlc3RvckNvbnRhaW5lciIK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9pbmVydC9pbmVydC1yZXRhcmdldGluZy50ZW50YXRpdmUuaHRtbCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtcmV0YXJnZXRpbmcudGVu
dGF0aXZlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjI4MGNmNWE1ZDFmYjE2ZWYxOTIzMTBlNGZiNGY3ZDIy
YjM3MDJiMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtcmV0YXJnZXRpbmcudGVudGF0aXZlLmh0bWwKQEAg
LTAsMCArMSwyOTAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQg
c3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIv
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIv
cmVzb3VyY2VzL3Rlc3Rkcml2ZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJj
ZXMvdGVzdGRyaXZlci1hY3Rpb25zLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3Vy
Y2VzL3Rlc3Rkcml2ZXItdmVuZG9yLmpzIj48L3NjcmlwdD4KKzxzdHlsZT4KK2J1dHRvbiNmb3Jl
Z3JvdW5kLAorYnV0dG9uI2JhY2tncm91bmQgeworICBwb3NpdGlvbjogYWJzb2x1dGU7CisgIHRv
cDogNzVweDsKKyAgbGVmdDogNTBweDsKKyAgd2lkdGg6IDEwMHB4OworICBoZWlnaHQ6IDIwcHg7
Cit9CisKK2J1dHRvbiNiYWNrZ3JvdW5kIHsKKyAgbGVmdDogNzVweDsKKyAgd2lkdGg6IDE1MHB4
OworICBoZWlnaHQ6IDQwcHg7CisgIHRvcDogMTI1cHg7CisgIGxpbmUtaGVpZ2h0OiA1M3B4Owor
fQorCisuY2xpY2tlZCB7CisgIGJhY2tncm91bmQtY29sb3I6IHJlZDsKK30KKworI2FuY2VzdG9y
Q29udGFpbmVyLmNsaWNrZWQgeworICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKK30KKworI2Fu
Y2VzdG9yQ29udGFpbmVyIHsKKyAgcG9zaXRpb246IHJlbGF0aXZlOworICB3aWR0aDogMzAwcHg7
CisgIGhlaWdodDogMzAwcHg7CisgIGJhY2tncm91bmQtY29sb3I6IGJsdWU7Cit9CisKKyNkaXNw
bGFjZWRBbmNlc3RvciB7CisgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgdG9wOiAxM3B4OworICBs
ZWZ0OiAyNDBweDsKKyAgd2lkdGg6IDMwMHB4OworICBoZWlnaHQ6IDI1MHB4OworICBiYWNrZ3Jv
dW5kLWNvbG9yOiAjZmY4OTsKK30KKworI2Rpc3BsYWNlZEFuY2VzdG9yLmNsaWNrZWQgeworICBi
YWNrZ3JvdW5kLWNvbG9yOiAjZjAwOTsKK30KKworI2luZXJ0Q29udGFpbmVyIHsKKyAgYmFja2dy
b3VuZC1jb2xvcjogI2ZmZjk7CisgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgdG9wOiAzNXB4Owor
ICBsZWZ0OiAtMTkycHg7CisgIHdpZHRoOiAyMDBweDsKKyAgaGVpZ2h0OiAyMDBweDsKK30KKwor
ZmllbGRzZXQgeworICBtYXJnaW46IDA7CisgIHBhZGRpbmc6IDA7CisgIGJvcmRlcjogMXB4IHNv
bGlkIGJsYWNrOworfQorCitsZWdlbmQgeworICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsKKyAg
Ym9yZGVyOiAxcHggc29saWQgYmxhY2s7CisgIG1hcmdpbi1sZWZ0OiA1cHg7Cit9CisKK2J1dHRv
bi5jbGlja2VkOjphZnRlciB7CisgIGNvbnRlbnQ6ICIgKGNsaWNrZWQpIjsKK30KKworLmNsaWNr
ZWQgPiBsZWdlbmQ6OmFmdGVyIHsKKyAgY29udGVudDogIiAoY2xpY2tlZCkiOworfQorCis8L3N0
eWxlPgorPC9oZWFkPgorPGJvZHk+CisgIDxwPkNsaWNrIG9uICJmb3JlZ3JvdW5kIi48L3A+Cisg
IDx1bD4KKyAgICA8bGk+VGhlIGJsdWUgc3F1YXJlICgiTm9uLWluZXJ0IGFuY2VzdG9yIGNvbnRh
aW5lciIpIHNob3VsZCB0dXJuIGdyZWVuLjwvbGk+CisgICAgPGxpPlRoZSB5ZWxsb3csIHNlbWkt
dHJhbnNwYXJlbnQgc3F1YXJlICgiTm9uLWluZXJ0LCBkaXNwbGFjZWQgY29udGFpbmVyIikgc2hv
dWxkIG5vdCB0dXJuIHJlZC48L2xpPgorICAgIDxsaT4iTm9uLWluZXJ0IGJ1dHRvbiIgc2hvdWxk
IG5vdCB0dXJuIHJlZC48L2xpPgorICA8L3VsPgorICA8cD4oVGhlIGZ1bGwgdGVzdCBzdWl0ZSBj
aGVja3MgYSByYW5nZSBvZiBldmVudHMuKTwvcD4KKyAgPGZpZWxkc2V0IGlkPSJhbmNlc3RvckNv
bnRhaW5lciI+CisgICAgPGxlZ2VuZD5Ob24taW5lcnQgYW5jZXN0b3IgY29udGFpbmVyPC9sZWdl
bmQ+CisgICAgPGJ1dHRvbiBpZD0iYmFja2dyb3VuZCI+YmFja2dyb3VuZDwvYnV0dG9uPgorICAg
IDxmaWVsZHNldCBpZD0iZGlzcGxhY2VkQW5jZXN0b3IiPgorICAgICAgPGxlZ2VuZD5Ob24taW5l
cnQsIGRpc3BsYWNlZCBhbmNlc3RvcjwvbGVnZW5kPgorICAgICAgPGZpZWxkc2V0IGlkPSJpbmVy
dENvbnRhaW5lciIgaW5lcnQ+CisgICAgICAgIDxsZWdlbmQ+SW5lcnQgY29udGFpbmVyPC9sZWdl
bmQ+CisgICAgICAgIDxidXR0b24gaWQ9ImZvcmVncm91bmQiPmZvcmVncm91bmQ8L2J1dHRvbj4K
KyAgICAgIDwvZmllbGRzZXQ+CisgICAgPC9maWVsZHNldD4KKyAgPC9maWVsZHNldD4KKworICA8
c2NyaXB0PgorZG9jdW1lbnQuYm9keS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIChlKSA9PiB7
CisgIGUudGFyZ2V0LmNsYXNzTGlzdC5hZGQoJ2NsaWNrZWQnKTsKK30pOworCitmdW5jdGlvbiBj
bGlja09uKGVsZW1lbnQpIHsKKyAgcmV0dXJuIG5ldyB0ZXN0X2RyaXZlci5BY3Rpb25zKCkKKyAg
ICAgIC5wb2ludGVyTW92ZSgwLCAwLCB7b3JpZ2luOiBlbGVtZW50fSkKKyAgICAgIC5wb2ludGVy
RG93bih7YnV0dG9uOiB0ZXN0X2RyaXZlci5BY3Rpb25zLnByb3RvdHlwZS5CdXR0b25UeXBlLkxF
RlR9KQorICAgICAgLnBvaW50ZXJVcCh7YnV0dG9uOiB0ZXN0X2RyaXZlci5BY3Rpb25zLnByb3Rv
dHlwZS5CdXR0b25UeXBlLkxFRlR9KQorICAgICAgLnNlbmQoKTsKK30KKworZnVuY3Rpb24gYXV4
Q2xpY2tPbihlbGVtZW50KSB7CisgIHJldHVybiBuZXcgdGVzdF9kcml2ZXIuQWN0aW9ucygpCisg
ICAgICAucG9pbnRlck1vdmUoMCwgMCwge29yaWdpbjogZWxlbWVudH0pCisgICAgICAucG9pbnRl
ckRvd24oe2J1dHRvbjogdGVzdF9kcml2ZXIuQWN0aW9ucy5wcm90b3R5cGUuQnV0dG9uVHlwZS5S
SUdIVH0pCisgICAgICAucG9pbnRlclVwKHtidXR0b246IHRlc3RfZHJpdmVyLkFjdGlvbnMucHJv
dG90eXBlLkJ1dHRvblR5cGUuUklHSFR9KQorICAgICAgLnNlbmQoKTsKK30KKworZnVuY3Rpb24g
ZGJsQ2xpY2tPbihlbGVtZW50KSB7CisgIHJldHVybiBuZXcgdGVzdF9kcml2ZXIuQWN0aW9ucygp
CisgICAgICAucG9pbnRlck1vdmUoMCwgMCwge29yaWdpbjogZWxlbWVudH0pCisgICAgICAucG9p
bnRlckRvd24oe2J1dHRvbjogdGVzdF9kcml2ZXIuQWN0aW9ucy5wcm90b3R5cGUuQnV0dG9uVHlw
ZS5MRUZUfSkKKyAgICAgIC5wb2ludGVyVXAoe2J1dHRvbjogdGVzdF9kcml2ZXIuQWN0aW9ucy5w
cm90b3R5cGUuQnV0dG9uVHlwZS5MRUZUfSkKKyAgICAgIC5wb2ludGVyRG93bih7YnV0dG9uOiB0
ZXN0X2RyaXZlci5BY3Rpb25zLnByb3RvdHlwZS5CdXR0b25UeXBlLkxFRlR9KQorICAgICAgLnBv
aW50ZXJVcCh7YnV0dG9uOiB0ZXN0X2RyaXZlci5BY3Rpb25zLnByb3RvdHlwZS5CdXR0b25UeXBl
LkxFRlR9KQorICAgICAgLnNlbmQoKTsKK30KKworZnVuY3Rpb24gbW92ZVBvaW50ZXJPdmVyKGVs
ZW1lbnQpIHsKKyAgbGV0IHJlY3QgPSBlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwor
ICByZXR1cm4gbmV3IHRlc3RfZHJpdmVyLkFjdGlvbnMoKQorICAgICAgLnBvaW50ZXJNb3ZlKDAs
IDAsIHsgb3JpZ2luOiBlbGVtZW50IH0pCisgICAgICAuc2VuZCgpOworfQorCitmdW5jdGlvbiBt
b3ZlUG9pbnRlclRvKHgsIHkpIHsKKyAgcmV0dXJuIG5ldyB0ZXN0X2RyaXZlci5BY3Rpb25zKCkK
KyAgICAgIC5wb2ludGVyTW92ZSh4LCB5LCB7IG9yaWdpbjogInZpZXdwb3J0IiB9KQorICAgICAg
LnNlbmQoKTsKK30KKworZnVuY3Rpb24gZXhwZWN0RXZlbnRzT24oZXZlbnRzLCBlbGVtZW50KSB7
CisgIGxldCBwcm9taXNlcyA9IFtdOworICBmb3IgKGV2ZW50IG9mIGV2ZW50cykgeworICAgICgo
ZXZlbnQsIGVsZW1lbnQpID0+IHsKKyAgICAgIHZhciBwcm9taXNlID0gbmV3IFByb21pc2UoKHJl
c29sdmUsIHJlamVjdCkgPT4geworICAgICAgICBsZXQgZiA9IChlKSA9PiB7CisgICAgICAgICAg
YXNzZXJ0X2VxdWFscyhlLnR5cGUsIGV2ZW50KTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUu
dGFyZ2V0LCBlbGVtZW50KTsKKyAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgIH0KKyAgICAg
ICAgZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKGV2ZW50LCBmLCB7IGNhcHR1cmU6IHRydWUsIG9u
Y2U6IHRydWUgfSk7CisKKyAgICAgICAgc3RlcF90aW1lb3V0KCgpID0+IHsKKyAgICAgICAgICBl
bGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnQsIGYsIHsgY2FwdHVyZTogdHJ1ZSB9KTsK
KyAgICAgICAgICByZWplY3QoImRpZCBub3QgZ2V0ICIgKyBldmVudCArICIgb24gIiArIGVsZW1l
bnQuaWQpOworICAgICAgICB9LCAxMDAwKTsKKyAgICAgIH0pOworICAgICAgcHJvbWlzZXMucHVz
aChwcm9taXNlKTsKKyAgICB9KShldmVudCwgZWxlbWVudCk7CisgIH0KKyAgcmV0dXJuIHByb21p
c2VzOworfQorCitmdW5jdGlvbiB1bmV4cGVjdEV2ZW50c09uKGV2ZW50cywgZWxlbWVudCkgewor
ICBsZXQgcHJvbWlzZXMgPSBbXTsKKyAgZm9yIChldmVudCBvZiBldmVudHMpIHsKKyAgICAoKGV2
ZW50LCBlbGVtZW50KSA9PiB7CisgICAgICB2YXIgcHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNv
bHZlLCByZWplY3QpID0+IHsKKyAgICAgICAgbGV0IGYgPSAoZSkgPT4geworICAgICAgICAgIGFz
c2VydF9lcXVhbHMoZS50eXBlLCBldmVudCk7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRh
cmdldCwgZWxlbWVudCk7CisgICAgICAgICAgcmVqZWN0KCJnb3QgIiArIGUudHlwZSArICIgb24g
IiArIGUudGFyZ2V0LmlkKTsKKyAgICAgICAgfQorICAgICAgICBlbGVtZW50LmFkZEV2ZW50TGlz
dGVuZXIoZXZlbnQsIGYsIHsgY2FwdHVyZTogdHJ1ZSwgb25jZTogdHJ1ZSB9KTsKKworICAgICAg
ICBzdGVwX3RpbWVvdXQoKCkgPT4geworICAgICAgICAgIGVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0
ZW5lcihldmVudCwgZiwgeyBjYXB0dXJlOiB0cnVlIH0pOworICAgICAgICAgIHJlc29sdmUoKTsK
KyAgICAgICAgfSwgMTAwMCk7CisgICAgICB9KTsKKyAgICAgIHByb21pc2VzLnB1c2gocHJvbWlz
ZSk7CisgICAgfSkoZXZlbnQsIGVsZW1lbnQpOworICB9CisgIHJldHVybiBwcm9taXNlczsKK30K
KwordGVzdCgoKSA9PiB7CisgIGxldCByZWN0ID0gZm9yZWdyb3VuZC5nZXRCb3VuZGluZ0NsaWVu
dFJlY3QoKTsKKyAgbGV0IGNlbnRlcl94ID0gcmVjdC5sZWZ0ICsgKHJlY3Qud2lkdGggLyAyKTsK
KyAgbGV0IGNlbnRlcl95ID0gcmVjdC50b3AgKyAocmVjdC5oZWlnaHQgLyAyKTsKKyAgYXNzZXJ0
X2VxdWFscyhkb2N1bWVudC5lbGVtZW50c0Zyb21Qb2ludChjZW50ZXJfeCwgY2VudGVyX3kpWzBd
LCBmb3JlZ3JvdW5kKTsKK30sICJlbGVtZW50c0Zyb21Qb2ludCByZXR1cm5zIGluZXJ0IGVsZW1l
bnQiKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jICgpID0+IHsKKyAgLy8gVGVzdCBtb3VzZSBldmVu
dHMgb24gbm9uLWluZXJ0IGVsZW1lbnQgLSBldmVudHMgc2hvdWxkIGdvIHRvICJmb3JlZ3JvdW5k
IgorICBpbmVydENvbnRhaW5lci5pbmVydCA9IGZhbHNlOworICBhd2FpdCBtb3ZlUG9pbnRlclRv
KDAsIDApOworICBsZXQgcHJvbWlzZXMgPSBleHBlY3RFdmVudHNPbihbIm1vdXNlb3ZlciIsICJt
b3VzZWVudGVyIiwgIm1vdXNlbW92ZSIsICJtb3VzZWRvd24iLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIm1vdXNldXAiLCAiY2xpY2siLCAiYXV4Y2xpY2siLCAibW91c2VvdXQi
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm1vdXNlbGVhdmUiXSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yZWdyb3VuZCk7CisgIGF3YWl0IGNsaWNrT24o
Zm9yZWdyb3VuZCk7CisgIGF3YWl0IGF1eENsaWNrT24oZm9yZWdyb3VuZCk7CisgIGF3YWl0IGRi
bENsaWNrT24oZm9yZWdyb3VuZCk7CisgIGxldCBhbmNlc3RvckJveCA9IGFuY2VzdG9yQ29udGFp
bmVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworICBsZXQgaW5lcnRCb3ggPSBpbmVydENvbnRh
aW5lci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgbGV0IHggPSBhbmNlc3RvckJveC5sZWZ0
ICsgKGFuY2VzdG9yQm94LndpZHRoIC8gMik7CisgIGxldCB5ID0gaW5lcnRCb3guYm90dG9tICsg
KChhbmNlc3RvckJveC5ib3R0b20gLSBpbmVydEJveC5ib3R0b20pIC8gMik7CisgIGF3YWl0IG1v
dmVQb2ludGVyVG8oeCwgeSk7CisgIGF3YWl0IFByb21pc2UuYWxsKHByb21pc2VzKTsKK30sICJU
ZXN0cyB0aGF0IGFueSBtb3VzZSBldmVudCBvbiBhIG5vbi1pbmVydCBlbGVtZW50IGlzIGNvcnJl
Y3RseSB0YXJnZXRlZCB0byB0aGF0IGVsZW1lbnQiKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jICgp
ID0+IHsKKyAgLy8gTWFrZSB0aGUgY29udGFpbmluZyBlbGVtZW50IGluZXJ0IC0gbm93IGV2ZW50
cyBzaG91bGQgZ28gdG8gImNvbnRhaW5lciIKKyAgLy8gd2hpY2ggaXMgdGhlIG5vbi1pbmVydCBh
bmNlc3RvciBhdCB0aGUgc2FtZSBwb3NpdGlvbgorICBpbmVydENvbnRhaW5lci5pbmVydCA9IHRy
dWU7CisgIGF3YWl0IG1vdmVQb2ludGVyVG8oMCwgMCk7CisKKyAgbGV0IHByb21pc2VzID0gZXhw
ZWN0RXZlbnRzT24oWyJtb3VzZW92ZXIiLCAibW91c2VlbnRlciIsICJtb3VzZW1vdmUiLCAibW91
c2Vkb3duIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJtb3VzZXVwIiwgImNs
aWNrIiwgImF1eGNsaWNrIl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuY2Vz
dG9yQ29udGFpbmVyKTsKKworICAvLyBUT0RPKGFib3hoYWxsKTogV2UgYXJlIGdldHRpbmcgdGhl
c2UgdW5leHBlY3RlZCBldmVudHMuIFdoeT8KKyAgcHJvbWlzZXMgPSBwcm9taXNlcy5jb25jYXQo
dW5leHBlY3RFdmVudHNPbihbIm1vdXNlb3V0IiwgIm1vdXNlbGVhdmUiXSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmNlc3RvckNvbnRhaW5lcikpOwor
CisgIGF3YWl0IGNsaWNrT24oZm9yZWdyb3VuZCk7CisgIGF3YWl0IGF1eENsaWNrT24oZm9yZWdy
b3VuZCk7CisgIGF3YWl0IGRibENsaWNrT24oZm9yZWdyb3VuZCk7CisgIGxldCBhbmNlc3RvckJv
eCA9IGFuY2VzdG9yQ29udGFpbmVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworICBsZXQgaW5l
cnRCb3ggPSBpbmVydENvbnRhaW5lci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgbGV0IHgg
PSBhbmNlc3RvckJveC5sZWZ0ICsgKGFuY2VzdG9yQm94LndpZHRoIC8gMik7CisgIGxldCB5ID0g
aW5lcnRCb3guYm90dG9tICsgKChhbmNlc3RvckJveC5ib3R0b20gLSBpbmVydEJveC5ib3R0b20p
IC8gMik7CisgIGF3YWl0IG1vdmVQb2ludGVyVG8oeCwgeSk7CisgIGF3YWl0IFByb21pc2UuYWxs
KHByb21pc2VzKTsKK30sICdUZXN0cyB0aGF0IGFueSBtb3VzZSBldmVudCBvbiBhbiBpbmVydCBl
bGVtZW50IGlzIHRhcmdldGVkIHRvIHRoZSBuZWFyZXN0IG5vbi1pbmVydCBhbmNlc3RvciBhdCB0
aGUgc2FtZSBjb29yZGluYXRlcycpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgKCkgPT4geworICAv
LyBUZXN0IHBvaW50ZXIgZXZlbnRzIG9uIG5vbi1pbmVydCBlbGVtZW50IC0gZXZlbnRzIHNob3Vs
ZCBnbyB0byAiZm9yZWdyb3VuZCIKKyAgaW5lcnRDb250YWluZXIuaW5lcnQgPSBmYWxzZTsKKyAg
YXdhaXQgbW92ZVBvaW50ZXJUbygwLCAwKTsKKworICBsZXQgcHJvbWlzZXMgPSBleHBlY3RFdmVu
dHNPbihbInBvaW50ZXJvdmVyIiwgInBvaW50ZXJlbnRlciIsICJwb2ludGVybW92ZSIsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicG9pbnRlcmRvd24iLCAicG9pbnRlcnVwIiwg
InBvaW50ZXJvdXQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInBvaW50ZXJs
ZWF2ZSJdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JlZ3JvdW5kKTsKKyAg
YXdhaXQgY2xpY2tPbihmb3JlZ3JvdW5kKTsKKyAgbGV0IGFuY2VzdG9yQm94ID0gYW5jZXN0b3JD
b250YWluZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CisgIGxldCBpbmVydEJveCA9IGluZXJ0
Q29udGFpbmVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworICBsZXQgeCA9IGFuY2VzdG9yQm94
LmxlZnQgKyAoYW5jZXN0b3JCb3gud2lkdGggLyAyKTsKKyAgbGV0IHkgPSBpbmVydEJveC5ib3R0
b20gKyAoKGFuY2VzdG9yQm94LmJvdHRvbSAtIGluZXJ0Qm94LmJvdHRvbSkgLyAyKTsKKyAgYXdh
aXQgbW92ZVBvaW50ZXJUbyh4LCB5KTsKKyAgYXdhaXQgUHJvbWlzZS5hbGwocHJvbWlzZXMpOwor
fSwgIlRlc3RzIHRoYXQgYW55IHBvaW50ZXIgZXZlbnQgb24gYSBub24taW5lcnQgZWxlbWVudCBp
cyBjb3JyZWN0bHkgdGFyZ2V0ZWQgdG8gdGhhdCBlbGVtZW50Iik7CisKK3Byb21pc2VfdGVzdChh
c3luYyAoKSA9PiB7CisgIC8vIE1ha2UgdGhlIGNvbnRhaW5pbmcgZWxlbWVudCBpbmVydCAtIG5v
dyBldmVudHMgc2hvdWxkIGdvIHRvICJjb250YWluZXIiCisgIC8vIHdoaWNoIGlzIHRoZSBub24t
aW5lcnQgYW5jZXN0b3IgYXQgdGhlIHNhbWUgcG9zaXRpb24KKyAgaW5lcnRDb250YWluZXIuaW5l
cnQgPSB0cnVlOworICBhd2FpdCBtb3ZlUG9pbnRlclRvKDAsIDApOworCisgIGxldCBwcm9taXNl
cyA9IGV4cGVjdEV2ZW50c09uKFsicG9pbnRlcm92ZXIiLCAicG9pbnRlcmVudGVyIiwgInBvaW50
ZXJtb3ZlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwb2ludGVyZG93biIs
ICJwb2ludGVydXAiIF0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuY2VzdG9y
Q29udGFpbmVyKTsKKworICAvLyBUT0RPKGFib3hoYWxsKTogV2UgYXJlIGdldHRpbmcgdGhlc2Ug
dW5leHBlY3RlZCBldmVudHMuIFdoeT8KKyAgcHJvbWlzZXMgPSBwcm9taXNlcy5jb25jYXQodW5l
eHBlY3RFdmVudHNPbihbInBvaW50ZXJvdXQiLCAicG9pbnRlcmxlYXZlIl0sCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5jZXN0b3JDb250YWluZXIpKTsK
KworICBhd2FpdCBjbGlja09uKGZvcmVncm91bmQpOworICBsZXQgYW5jZXN0b3JCb3ggPSBhbmNl
c3RvckNvbnRhaW5lci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgbGV0IGluZXJ0Qm94ID0g
aW5lcnRDb250YWluZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CisgIGxldCB4ID0gYW5jZXN0
b3JCb3gubGVmdCArIChhbmNlc3RvckJveC53aWR0aCAvIDIpOworICBsZXQgeSA9IGluZXJ0Qm94
LmJvdHRvbSArICgoYW5jZXN0b3JCb3guYm90dG9tIC0gaW5lcnRCb3guYm90dG9tKSAvIDIpOwor
ICBhd2FpdCBtb3ZlUG9pbnRlclRvKHgsIHkpOworICBhd2FpdCBQcm9taXNlLmFsbChwcm9taXNl
cyk7Cit9LCAnVGVzdHMgdGhhdCBhbnkgcG9pbnRlciBldmVudCBvbiBhbiBpbmVydCBlbGVtZW50
IGlzIHRhcmdldGVkIHRvIHRoZSBuZWFyZXN0IG5vbi1pbmVydCBhbmNlc3RvciBhdCB0aGUgc2Ft
ZSBjb29yZGluYXRlcycpOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvdzNj
LWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2luZXJ0L3czYy1pbXBvcnQubG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVmZjFhNzE1MGNiNjBiMjI3M2IzODA5
MWQzMmE5MzY0MTQyODE5YWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L3czYy1pbXBvcnQubG9nCkBAIC0wLDAgKzEs
MjYgQEAKK1RoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhl
IFczQyByZXBvc2l0b3J5LgorRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBX
ZWJLaXQuCitJbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6
CisJaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKKworVGhlbiBydW4g
dGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQK
KworRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgorCistLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
K1Byb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKK1Byb3BlcnR5IHZh
bHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitM
aXN0IG9mIGZpbGVzOgorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvaW5lcnQvaW5lcnQtZG9lcy1ub3QtbWF0Y2gtZGlzYWJsZWQtc2VsZWN0b3IudGVudGF0aXZl
Lmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0
L2luZXJ0LWluLXNoYWRvdy1kb20udGVudGF0aXZlLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LWlubGluZXMudGVudGF0aXZlLmh0
bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2lu
ZXJ0LWxhYmVsLWZvY3VzLnRlbnRhdGl2ZS5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1ub2RlLWlzLXVuZWRpdGFibGUudGVudGF0
aXZlLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2lu
ZXJ0L2luZXJ0LW5vZGUtaXMtdW5mb2N1c2FibGUudGVudGF0aXZlLmh0bWwKKy9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LW5vZGUtaXMtdW5z
ZWxlY3RhYmxlLnRlbnRhdGl2ZS5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1vbi1zbG90cy50ZW50YXRpdmUuaHRtbAorL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtcmV0YXJn
ZXRpbmctaWZyYW1lLnRlbnRhdGl2ZS5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1yZXRhcmdldGluZy50ZW50YXRpdmUuaHRtbApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LW5vZGUtaXMtdW5lZGl0YWJsZS50ZW50YXRpdmUt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LW5vZGUtaXMtdW5lZGl0YWJsZS50ZW50YXRp
dmUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIxMTRjYzE4ZGVjOTA0YTE0NmJmMDA4YTA4Yjgw
NjdmZjU0MWFlMDYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mt
d2syL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtbm9kZS1pcy11
bmVkaXRhYmxlLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitJJ20gbm90
IGVkaXRhYmxlLiBJJ20gZWRpdGFibGUuCisKK1BBU1MgQ2FuJ3QgZWRpdCBpbmVydCBjb250ZW50
ZWRpdGFibGUKK0ZBSUwgQ2FuIGVkaXQgbm9uLWluZXJ0IGNvbnRlbnRlZGl0YWJsZSBhc3NlcnRf
bm90X2VxdWFsczogZ290IGRpc2FsbG93ZWQgdmFsdWUgIkknbSBlZGl0YWJsZS4iCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1yZXRhcmdldGluZy1pZnJhbWUudGVudGF0aXZlLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1yZXRhcmdldGluZy1pZnJhbWUudGVudGF0aXZlLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMWY5ZWE0MGNmMjEzZWQ0NTA1YTk5ZGY0OTczOGZhYWVl
NzI0OGM4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LXJldGFyZ2V0aW5nLWlm
cmFtZS50ZW50YXRpdmUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTggQEAKK0NsaWNrIG9uICJJ
bmVydCBidXR0b24iLgorCitUaGUgYmx1ZSBzcXVhcmUgKCJOb24taW5lcnQgYW5jZXN0b3IgY29u
dGFpbmVyIikgc2hvdWxkIHR1cm4gZ3JlZW4uCitUaGUgeWVsbG93LCBzZW1pLXRyYW5zcGFyZW50
IHNxdWFyZSAoIk5vbi1pbmVydCwgZGlzcGxhY2VkIGNvbnRhaW5lciIpIHNob3VsZCBub3QgdHVy
biByZWQuCisiTm9uLWluZXJ0IGJ1dHRvbiIgc2hvdWxkIG5vdCB0dXJuIHJlZC4KKyhUaGUgZnVs
bCB0ZXN0IHN1aXRlIGNoZWNrcyBhIHJhbmdlIG9mIGV2ZW50cy4pCisKK05vbi1pbmVydCBhbmNl
c3RvciBjb250YWluZXIKKyBOb24taW5lcnQsIGRpc3BsYWNlZCBhbmNlc3RvcgorSW5lcnQgY29u
dGFpbmVyCitmb3JlZ3JvdW5kCisKK1BBU1MgZWxlbWVudHNGcm9tUG9pbnQgcmV0dXJucyBpbmVy
dCBlbGVtZW50CitGQUlMIFRlc3RzIHRoYXQgYW55IG1vdXNlIGV2ZW50IG9uIGEgbm9uLWluZXJ0
IGVsZW1lbnQgaXMgY29ycmVjdGx5IHRhcmdldGVkIHRvIHRoYXQgZWxlbWVudCBwcm9taXNlX3Rl
c3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogImRpZCBub3QgZ2V0IG1vdXNlb3Zl
ciBvbiBmb3JlZ3JvdW5kIgorRkFJTCBUZXN0cyB0aGF0IGFueSBtb3VzZSBldmVudCBvbiBhbiBp
bmVydCBlbGVtZW50IGlzIHRhcmdldGVkIHRvIHRoZSBuZWFyZXN0IG5vbi1pbmVydCBhbmNlc3Rv
ciBhdCB0aGUgc2FtZSBjb29yZGluYXRlcyBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rp
b24gd2l0aCB2YWx1ZTogImRpZCBub3QgZ2V0IG1vdXNlb3ZlciBvbiBhbmNlc3RvckNvbnRhaW5l
ciIKK0ZBSUwgVGVzdHMgdGhhdCBhbnkgcG9pbnRlciBldmVudCBvbiBhIG5vbi1pbmVydCBlbGVt
ZW50IGlzIGNvcnJlY3RseSB0YXJnZXRlZCB0byB0aGF0IGVsZW1lbnQgcHJvbWlzZV90ZXN0OiBV
bmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6ICJkaWQgbm90IGdldCBwb2ludGVyb3ZlciBv
biBmb3JlZ3JvdW5kIgorRkFJTCBUZXN0cyB0aGF0IGFueSBwb2ludGVyIGV2ZW50IG9uIGFuIGlu
ZXJ0IGVsZW1lbnQgaXMgdGFyZ2V0ZWQgdG8gdGhlIG5lYXJlc3Qgbm9uLWluZXJ0IGFuY2VzdG9y
IGF0IHRoZSBzYW1lIGNvb3JkaW5hdGVzIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlv
biB3aXRoIHZhbHVlOiAiZGlkIG5vdCBnZXQgcG9pbnRlcm92ZXIgb24gYW5jZXN0b3JDb250YWlu
ZXIiCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1yZXRhcmdldGluZy50ZW50YXRpdmUt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LXJldGFyZ2V0aW5nLnRlbnRhdGl2ZS1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMWE1ZmJhM2JmNzEyODU3ZDc4NWM4ZDAwYzhiODcxMmZkZWY0
Y2FlYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydC9pbmVydC1yZXRhcmdldGluZy50ZW50
YXRpdmUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTggQEAKK0NsaWNrIG9uICJmb3JlZ3JvdW5k
Ii4KKworVGhlIGJsdWUgc3F1YXJlICgiTm9uLWluZXJ0IGFuY2VzdG9yIGNvbnRhaW5lciIpIHNo
b3VsZCB0dXJuIGdyZWVuLgorVGhlIHllbGxvdywgc2VtaS10cmFuc3BhcmVudCBzcXVhcmUgKCJO
b24taW5lcnQsIGRpc3BsYWNlZCBjb250YWluZXIiKSBzaG91bGQgbm90IHR1cm4gcmVkLgorIk5v
bi1pbmVydCBidXR0b24iIHNob3VsZCBub3QgdHVybiByZWQuCisoVGhlIGZ1bGwgdGVzdCBzdWl0
ZSBjaGVja3MgYSByYW5nZSBvZiBldmVudHMuKQorCitOb24taW5lcnQgYW5jZXN0b3IgY29udGFp
bmVyCitiYWNrZ3JvdW5kTm9uLWluZXJ0LCBkaXNwbGFjZWQgYW5jZXN0b3IKK0luZXJ0IGNvbnRh
aW5lcgorZm9yZWdyb3VuZAorCitQQVNTIGVsZW1lbnRzRnJvbVBvaW50IHJldHVybnMgaW5lcnQg
ZWxlbWVudAorRkFJTCBUZXN0cyB0aGF0IGFueSBtb3VzZSBldmVudCBvbiBhIG5vbi1pbmVydCBl
bGVtZW50IGlzIGNvcnJlY3RseSB0YXJnZXRlZCB0byB0aGF0IGVsZW1lbnQgcHJvbWlzZV90ZXN0
OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6ICJkaWQgbm90IGdldCBtb3VzZW92ZXIg
b24gZm9yZWdyb3VuZCIKK0ZBSUwgVGVzdHMgdGhhdCBhbnkgbW91c2UgZXZlbnQgb24gYW4gaW5l
cnQgZWxlbWVudCBpcyB0YXJnZXRlZCB0byB0aGUgbmVhcmVzdCBub24taW5lcnQgYW5jZXN0b3Ig
YXQgdGhlIHNhbWUgY29vcmRpbmF0ZXMgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9u
IHdpdGggdmFsdWU6ICJkaWQgbm90IGdldCBtb3VzZW92ZXIgb24gYW5jZXN0b3JDb250YWluZXIi
CitGQUlMIFRlc3RzIHRoYXQgYW55IHBvaW50ZXIgZXZlbnQgb24gYSBub24taW5lcnQgZWxlbWVu
dCBpcyBjb3JyZWN0bHkgdGFyZ2V0ZWQgdG8gdGhhdCBlbGVtZW50IHByb21pc2VfdGVzdDogVW5o
YW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiAiZGlkIG5vdCBnZXQgcG9pbnRlcm92ZXIgb24g
Zm9yZWdyb3VuZCIKK0ZBSUwgVGVzdHMgdGhhdCBhbnkgcG9pbnRlciBldmVudCBvbiBhbiBpbmVy
dCBlbGVtZW50IGlzIHRhcmdldGVkIHRvIHRoZSBuZWFyZXN0IG5vbi1pbmVydCBhbmNlc3RvciBh
dCB0aGUgc2FtZSBjb29yZGluYXRlcyBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24g
d2l0aCB2YWx1ZTogImRpZCBub3QgZ2V0IHBvaW50ZXJvdmVyIG9uIGFuY2VzdG9yQ29udGFpbmVy
IgorCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>