<?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>229758</bug_id>
          
          <creation_ts>2021-09-01 04:33:53 -0700</creation_ts>
          <short_desc>[GTK] The Xvfb display server may fail to start sometimes causing tests to randomly crash</short_desc>
          <delta_ts>2021-09-22 04:16:14 -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>Tools / Tests</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=229782</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=229824</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=230610</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>229990</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Alberto Lopez Perez">clopez</reporter>
          <assigned_to name="Carlos Alberto Lopez Perez">clopez</assigned_to>
          <cc>bugs-noreply</cc>
    
    <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dewei_zhu</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>jbedard</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>pnormand</cc>
    
    <cc>sergio</cc>
    
    <cc>slewis</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
    
    <cc>zdobersek</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1789288</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2021-09-01 04:33:53 -0700</bug_when>
    <thetext>I have observed this here: https://build.webkit.org/#/builders/199/builds/1062
 - If you take a look at that build there are 11 unexpected crashes which only happened on that build (didn&apos;t happened not on the build before or after)
 - There are no crash log for any of the crashes, this is weird.. it is an evidence it was not an actual crash but a failure to start
 - And if you take a closer look to the stdio log you see the crashes happened on a few workers. As soon as this workers were started all the tests on that workers crashed with a common stderr message: &quot;Gtk-WARNING **: 15:52:29.549: cannot open display: :$X&quot;. And as soon the driver was restarted the tests started to work back again.

So, I think that what happened here was that the Xvfb driver failed to start on this workers, leading to crashes on all tests until it was restarted.

We need to make the Xvfb driver more robust and deal better with an eventual failure to start Xvfb.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1789344</commentid>
    <comment_count>1</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2021-09-01 09:24:30 -0700</bug_when>
    <thetext>Looks like this was more common than I expected.. I have been able to reproduce the issue of Xvfb not starting properly locally when testing this. Patch incoming</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1789369</commentid>
    <comment_count>2</comment_count>
      <attachid>437043</attachid>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2021-09-01 10:47:18 -0700</bug_when>
    <thetext>Created attachment 437043
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1789403</commentid>
    <comment_count>3</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2021-09-01 12:05:23 -0700</bug_when>
    <thetext>EWS is red, python2 test failure: webkitpy.port.xvfbdriver_unittest.XvfbDriverTest.test_xvfb_not_replying

I&apos;m all-in-favor for fixing this, but it begs the question, should we soon migrate the bots to wayland and consider X as a legacy thing?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1789407</commentid>
    <comment_count>4</comment_count>
      <attachid>437051</attachid>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2021-09-01 12:16:07 -0700</bug_when>
    <thetext>Created attachment 437051
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1789411</commentid>
    <comment_count>5</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2021-09-01 12:24:33 -0700</bug_when>
    <thetext>(In reply to Philippe Normand from comment #3)
&gt; EWS is red, python2 test failure:
&gt; webkitpy.port.xvfbdriver_unittest.XvfbDriverTest.test_xvfb_not_replying
&gt; 
&gt; I&apos;m all-in-favor for fixing this, but it begs the question, should we soon
&gt; migrate the bots to wayland and consider X as a legacy thing?

Running on a real wayland display is a major issue because it complicates a lot the hardware maintenance and deployment (makes difficult to use containers, also depending on a specific graphics hardware drivers makes failures less reproducible, etc).

I would be all in favour of migrating to wayland if there is a way of having the tests to run in a virtualized wayland environment. Fortunately we have that, currently we can pass --display-server=weston to run-webkit-tests which runs the tests inside weston inside Xvfb. Is a bit hackish but it works.

This patch also fixes the startup of Xvfb for the --display-server=weston option (weston in Xvfb--- fixes the Xvfb part). I plan to also fix the weston startup part (likely there are race conditions there as well) on a follow-up patch soon.

Then we would need to check how different are the results from the Weston driver compared to the Xvfb one.

Also I&apos;m not really found of this solution of Weston inside Xvfb.. if there is a better way of achieving a virtualized display for wayland please let me know that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1789422</commentid>
    <comment_count>6</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2021-09-01 12:47:39 -0700</bug_when>
    <thetext>&gt; if there is a better way of achieving a virtualized display for wayland please let me know that.

Maybe there&apos;s a way to run weston in swrast mode? I don&apos;t know, I haven&apos;t done research in that field :) But yeah it&apos;s a bit sad to run weston within xvfb :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1789426</commentid>
    <comment_count>7</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-09-01 12:51:17 -0700</bug_when>
    <thetext>(In reply to Carlos Alberto Lopez Perez from comment #5)
&gt; Also I&apos;m not really found of this solution of Weston inside Xvfb.. if there
&gt; is a better way of achieving a virtualized display for wayland please let me
&gt; know that.

I think we can do:

$ weston --backend=headless-backend.so

If that doesn&apos;t work, mutter has a headless mode added in https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1698. You could try:

$ mutter --wayland --headless --virtual-monitor 1280x720

I know wlroots also has a headless mode.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1789446</commentid>
    <comment_count>8</comment_count>
      <attachid>437051</attachid>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2021-09-01 13:20:55 -0700</bug_when>
    <thetext>Comment on attachment 437051
Patch

Clearing flags on attachment: 437051

Committed r281870 (241200@main): &lt;https://commits.webkit.org/241200@main&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1789447</commentid>
    <comment_count>9</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2021-09-01 13:21:01 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1789448</commentid>
    <comment_count>10</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-09-01 13:21:27 -0700</bug_when>
    <thetext>&lt;rdar://problem/82643101&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1789468</commentid>
    <comment_count>11</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2021-09-01 13:52:57 -0700</bug_when>
    <thetext>This broke GTK API tests :\ ... it seems the GTK API test runner script runs with python2 and the code I added is not working properly there .. I will revert this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1789470</commentid>
    <comment_count>12</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2021-09-01 13:56:24 -0700</bug_when>
    <thetext>Reverted r281870 for reason:

It

Committed r281874 (241204@main): &lt;https://commits.webkit.org/241204@main&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1789472</commentid>
    <comment_count>13</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2021-09-01 14:06:18 -0700</bug_when>
    <thetext>(In reply to Carlos Alberto Lopez Perez from comment #11)
&gt; This broke GTK API tests :\ ... it seems the GTK API test runner script runs
&gt; with python2 and the code I added is not working properly there .. I will
&gt; revert this.

On this note, we&apos;ve started changing invocations of all Apple&apos;s Python scripts to Python3. Other ports will get some of this work for free (already happened with run-webkit-tests, for example) but Apple folks won&apos;t make that change for scripts we don&apos;t own or partially own</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1789554</commentid>
    <comment_count>14</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2021-09-01 17:28:38 -0700</bug_when>
    <thetext>(In reply to Jonathan Bedard from comment #13)
&gt; (In reply to Carlos Alberto Lopez Perez from comment #11)
&gt; &gt; This broke GTK API tests :\ ... it seems the GTK API test runner script runs
&gt; &gt; with python2 and the code I added is not working properly there .. I will
&gt; &gt; revert this.
&gt; 
&gt; On this note, we&apos;ve started changing invocations of all Apple&apos;s Python
&gt; scripts to Python3. Other ports will get some of this work for free (already
&gt; happened with run-webkit-tests, for example) but Apple folks won&apos;t make that
&gt; change for scripts we don&apos;t own or partially own

That&apos;s for the note. I think that is fair and makes sense. Thanks for working on this, btw.

I opened bug 229782 for porting the GTK/WPE API test runner to python3
Also opened bug 229783 for run-perf-tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1790689</commentid>
    <comment_count>15</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2021-09-06 06:21:40 -0700</bug_when>
    <thetext>I converted run-gtk-tests, run-wpe-tests and run-perf-tests to use python3. But I realized that there are still more scripts running with python2 like run-webdriver-tests and maybe even others which I still didn&apos;t realized about.

So I will upload now a new version of this patch that is compatible with python2, to not block here on migrating every consumer of it to python3.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1790690</commentid>
    <comment_count>16</comment_count>
      <attachid>437409</attachid>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2021-09-06 06:32:18 -0700</bug_when>
    <thetext>Created attachment 437409
Patch

Make code compatible with python2. This is the diff against the previous patch: http://sprunge.us/BfNZVc?diff</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1790767</commentid>
    <comment_count>17</comment_count>
      <attachid>437409</attachid>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2021-09-06 12:48:39 -0700</bug_when>
    <thetext>Comment on attachment 437409
Patch

Clearing flags on attachment: 437409

Committed r282064 (241364@main): &lt;https://commits.webkit.org/241364@main&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1790768</commentid>
    <comment_count>18</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2021-09-06 12:48:45 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1790929</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2021-09-07 03:28:32 -0700</bug_when>
    <thetext>Re-opened since this is blocked by bug 229990</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1790987</commentid>
    <comment_count>20</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2021-09-07 07:02:23 -0700</bug_when>
    <thetext>(In reply to WebKit Commit Bot from comment #19)
&gt; Re-opened since this is blocked by bug 229990

An update of what happened here.. On r282064 I messed things up and by mistake I redirected stderr to stdout on the subprocess call to check the screen size of the Xvfb display, so when for any reason the program that checks the size prints anything on stderr (like a gtk/glib warning), then it would mix stderr with stdout and it will make the check fail (since the screen dimensions of the display it reports on stdout are compared with the expected ones)

In the reported case this was happening:

04:13:30.337 2 worker/5 Waiting for Xvfb display server to be ready.
04:13:30.338 2 worker/1 The queried Xvfb screen size &quot;(print-screen-size:258): dbind-WARNING **: 04:13:30.304: Couldn&apos;t connect to accessibility bus: Failed to connect to socket /tmp/dbus-WDVOI6JrL3: No such file or directory
1024x768&quot; does not match the expectation &quot;1024x768&quot;.

The string &quot;&quot;&quot;(print-screen-size:258): dbind-WARNING **: 04:13:30.304: Couldn&apos;t connect to accessibility bus: Failed to connect to socket /tmp/dbus-WDVOI6JrL3: No such file or directory&quot;&quot;&quot; should belong only to stderr.

This patch on top fixes the issue: http://sprunge.us/r865Ui

I will re-land it with the above fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1790991</commentid>
    <comment_count>21</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2021-09-07 07:14:01 -0700</bug_when>
    <thetext>Committed r282082 (241382@main): &lt;https://commits.webkit.org/241382@main&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>437043</attachid>
            <date>2021-09-01 10:47:18 -0700</date>
            <delta_ts>2021-09-01 12:15:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229758-20210901184636.patch</filename>
            <type>text/plain</type>
            <size>22080</size>
            <attacher name="Carlos Alberto Lopez Perez">clopez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxODI0CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOWE0YjAyZDNhZjAxZDk2ZmNmMGQzZTA0MDM5MDc3MWJk
NTM0MTdiYy4uZGJhNGJlNjRlYWI2ZjFiYmU3NDQ4YjMwYjE1NzJkMTM5NGMxYjY4MSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUx
IEBACisyMDIxLTA5LTAxICBDYXJsb3MgQWxiZXJ0byBMb3BleiBQZXJleiAgPGNsb3BlekBpZ2Fs
aWEuY29tPgorCisgICAgICAgIFtHVEtdIFRoZSBYdmZiIGRpc3BsYXkgc2VydmVyIG1heSBmYWls
IHRvIHN0YXJ0IHNvbWV0aW1lcyBjYXVzaW5nIHRlc3RzIHRvIHJhbmRvbWx5IGNyYXNoCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjk3NTgKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBuZXcgZnVu
Y3Rpb24gaW4gWHZmYkRyaXZlcigpIHRvIGVuc3VyZSB0aGF0IHRoZSBkaXNwbGF5IHNlcnZlcgor
ICAgICAgICBhdCBhIGdpdmVuIGRpc3BsYXlfaWQgaXMgcmVwbHlpbmcgYXMgZXhwZWN0ZWQuIEFz
ayBpdCBmb3IgdGhlIHNjcmVlbgorICAgICAgICBzaXplIGF0IG1vbml0b3IgMCBhbmQgY29tcGFy
ZSB0aGUgcmVzdWx0IHdpdGggdGhlIG9uZSB3ZSBleHBlY3QgdG8KKyAgICAgICAgaGF2ZSBpbnNp
ZGUgWHZmYi4gRm9yIGRvaW5nIHRoaXMgY2hlY2sgYSBleHRlcm5hbCBweXRob24gcHJvZ3JhbSBp
cworICAgICAgICBjYWxsZWQgd2hpY2ggZG9lcyB0aGUgcXVlcnkgdXNpbmcgR1RLLiBVc2luZyBh
IGV4dGVybmFsIHByb2dyYW0gaXMKKyAgICAgICAgbW9yZSByb2J1c3QgYWdhaW5zdCBwb3NzaWJs
ZSBmYWlsdXJlcyBjYWxsaW5nIGludG8gR1RLIGFuZCBhbHNvIHdpbGwKKyAgICAgICAgYWxsb3cg
cmUtdXNpbmcgdGhpcyBwcm9ncmFtIGFsc28gdG8gY2hlY2sgdGhhdCB0aGUgd2VzdG9uIHNlcnZl
ciBpcworICAgICAgICBhbHNvIHJlcGx5aW5nIGFzIGV4cGVjdGVkIGZvciB0aGUgd2VzdG9uIGRy
aXZlciAob24gYSBmdXR1cmUgcGF0Y2gpLgorCisgICAgICAgIElmIHRoZSBYdmZiIGRyaXZlciBp
cyBub3QgcmVwbHlpbmcgYXMgZXhwZWN0ZWQgdGhlbiByZXN0YXJ0IGl0IGFuZAorICAgICAgICB0
cnkgYWdhaW4sIHVwIHRvIDMgcmV0cmllcy4KKworICAgICAgICBVc2UgdGhpcyBhbHNvIG9uIHRo
ZSB3ZXN0b24gZHJpdmVyIHRvIGNoZWNrIHRoYXQgdGhlIFh2ZmIgZHJpdmVyIGlzCisgICAgICAg
IHJlYWR5LgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2V4ZWN1
dGl2ZV9tb2NrLnB5OgorICAgICAgICAoTW9ja1Byb2Nlc3MuX19pbml0X18pOgorICAgICAgICAo
TW9ja1Byb2Nlc3MuY29tbXVuaWNhdGUpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvcG9y
dC93ZXN0b25kcml2ZXIucHk6CisgICAgICAgIChXZXN0b25Ecml2ZXIuX3NldHVwX2Vudmlyb25f
Zm9yX3Rlc3QpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvcG9ydC93ZXN0b25kcml2ZXJf
dW5pdHRlc3QucHk6CisgICAgICAgIChXZXN0b25YdmZiRHJpdmVyRGlzcGxheVRlc3QuX3h2ZmJf
Y2hlY2tfaWZfcmVhZHkpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvcG9ydC94dmZiZHJp
dmVyLnB5OgorICAgICAgICAoWHZmYkRyaXZlcik6CisgICAgICAgIChYdmZiRHJpdmVyLl9faW5p
dF9fKToKKyAgICAgICAgKFh2ZmJEcml2ZXIuY2hlY2tfZHJpdmVyKToKKyAgICAgICAgKFh2ZmJE
cml2ZXIuX3h2ZmJfcnVuKToKKyAgICAgICAgKFh2ZmJEcml2ZXIuX3h2ZmJfc2NyZWVuX3NpemUp
OgorICAgICAgICAoWHZmYkRyaXZlci5feHZmYl9zdG9wKToKKyAgICAgICAgKFh2ZmJEcml2ZXIu
X3h2ZmJfY2hlY2tfaWZfcmVhZHkpOgorICAgICAgICAoWHZmYkRyaXZlci5fc2V0dXBfZW52aXJv
bl9mb3JfdGVzdCk6CisgICAgICAgIChYdmZiRHJpdmVyLmhhc19jcmFzaGVkKToKKyAgICAgICAg
KFh2ZmJEcml2ZXIuc3RvcCk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9wb3J0L3h2ZmJk
cml2ZXJfdW5pdHRlc3QucHk6CisgICAgICAgIChYdmZiRHJpdmVyVGVzdC5tYWtlX2RyaXZlcik6
CisgICAgICAgIChYdmZiRHJpdmVyVGVzdC5hc3NlcnREcml2ZXJTdGFydFN1Y2Nlc3NmdWwpOgor
ICAgICAgICAoWHZmYkRyaXZlclRlc3QudGVzdF94dmZiX3N0YXJ0X2FuZF9yZWFkeSk6CisgICAg
ICAgIChYdmZiRHJpdmVyVGVzdC50ZXN0X3h2ZmJfc3RhcnRfYXJiaXRyYXJ5X3dvcmtlcl9udW1i
ZXIpOgorICAgICAgICAoWHZmYkRyaXZlclRlc3QudGVzdF94dmZiX25vdF9yZXBseWluZyk6Cisg
ICAgICAgICogZ3RrL3ByaW50LXNjcmVlbi1zaXplOiBBZGRlZC4KKwogMjAyMS0wOC0zMSAgSm9u
YXRoYW4gQmVkYXJkICA8amJlZGFyZEBhcHBsZS5jb20+CiAKICAgICAgICAgW2dpdC13ZWJraXRd
IEF1dG9tYXRpYyByZWJhc2luZyBvciBwdWxsLXJlcXVlc3RzCmRpZmYgLS1naXQgYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vZXhlY3V0aXZlX21vY2sucHkgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vZXhlY3V0aXZlX21vY2sucHkKaW5kZXggMDJi
ZWFkMTdhYjViNDY4YjQ1ODZkNmFiY2YyOWVhMDM4NjM2MjBmNS4uNWI0ZDkzNTEzZTIzYzU5MWQ0
ZDYwNmRiZDlhZjZjOTNkYTM5MjFmMiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9jb21tb24vc3lzdGVtL2V4ZWN1dGl2ZV9tb2NrLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvY29tbW9uL3N5c3RlbS9leGVjdXRpdmVfbW9jay5weQpAQCAtMzcsMjEgKzM3LDIzIEBA
IF9sb2cgPSBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVfXykKIAogCiBjbGFzcyBNb2NrUHJvY2Vz
cyhvYmplY3QpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBzdGRvdXQ9J01PQ0sgU1RET1VUXG4n
LCBzdGRlcnI9JycpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBzdGRvdXQ9J01PQ0sgU1RET1VU
XG4nLCBzdGRlcnI9JycsIHJldHVybmNvZGU9MCk6CiAgICAgICAgIHNlbGYucGlkID0gNDIKICAg
ICAgICAgc2VsZi5zdGRvdXQgPSBCeXRlc0lPKHN0cmluZ191dGlscy5lbmNvZGUoc3Rkb3V0KSkK
ICAgICAgICAgc2VsZi5zdGRlcnIgPSBCeXRlc0lPKHN0cmluZ191dGlscy5lbmNvZGUoc3RkZXJy
KSkKICAgICAgICAgc2VsZi5zdGRpbiA9IEJ5dGVzSU8oKQotICAgICAgICBzZWxmLnJldHVybmNv
ZGUgPSAwCisgICAgICAgIHNlbGYucmV0dXJuY29kZSA9IHJldHVybmNvZGUKICAgICAgICAgc2Vs
Zi5faXNfcnVubmluZyA9IEZhbHNlCiAKICAgICBkZWYgd2FpdChzZWxmKToKICAgICAgICAgc2Vs
Zi5faXNfcnVubmluZyA9IEZhbHNlCiAgICAgICAgIHJldHVybiBzZWxmLnJldHVybmNvZGUKIAot
ICAgIGRlZiBjb21tdW5pY2F0ZShzZWxmLCBpbnB1dD1Ob25lKToKKyAgICBkZWYgY29tbXVuaWNh
dGUoc2VsZiwgaW5wdXQ9Tm9uZSwgdGltZW91dD1Ob25lKToKICAgICAgICAgc2VsZi5faXNfcnVu
bmluZyA9IEZhbHNlCi0gICAgICAgIHJldHVybiAoc2VsZi5zdGRvdXQsIHNlbGYuc3RkZXJyKQor
ICAgICAgICBzdGRvdXQgPSBzZWxmLnN0ZG91dC5yZWFkKCkgaWYgaXNpbnN0YW5jZShzZWxmLnN0
ZG91dCwgQnl0ZXNJTykgZWxzZSBzZWxmLnN0ZG91dAorICAgICAgICBzdGRlcnIgPSBzZWxmLnN0
ZGVyci5yZWFkKCkgaWYgaXNpbnN0YW5jZShzZWxmLnN0ZGVyciwgQnl0ZXNJTykgZWxzZSBzZWxm
LnN0ZGVycgorICAgICAgICByZXR1cm4gKHN0ZG91dCwgc3RkZXJyKQogCiAgICAgZGVmIHBvbGwo
c2VsZik6CiAgICAgICAgIGlmIHNlbGYuX2lzX3J1bm5pbmc6CmRpZmYgLS1naXQgYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L3BvcnQvd2VzdG9uZHJpdmVyLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9wb3J0L3dlc3RvbmRyaXZlci5weQppbmRleCBhNmE1YWIzMjk4MzdmNGMzOTlmZmNkNjFk
NjJiODI4MTZhNjU4YmRlLi5iY2JmZTdiYjRhMWU4MjFmNDAxMmFkYzJmZDllMzc5NDVjZTI0Zjk2
IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvd2VzdG9uZHJpdmVyLnB5
CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC93ZXN0b25kcml2ZXIucHkKQEAgLTU2
LDcgKzU2LDE4IEBAIGNsYXNzIFdlc3RvbkRyaXZlcihEcml2ZXIpOgogCiAgICAgZGVmIF9zZXR1
cF9lbnZpcm9uX2Zvcl90ZXN0KHNlbGYpOgogICAgICAgICBkcml2ZXJfZW52aXJvbm1lbnQgPSBz
dXBlcihXZXN0b25Ecml2ZXIsIHNlbGYpLl9zZXR1cF9lbnZpcm9uX2Zvcl90ZXN0KCkKLSAgICAg
ICAgZHJpdmVyX2Vudmlyb25tZW50WydESVNQTEFZJ10gPSAiOiVkIiAlIHNlbGYuX3h2ZmJkcml2
ZXIuX3h2ZmJfcnVuKGRyaXZlcl9lbnZpcm9ubWVudCkKKyAgICAgICAgeHZmYl9kaXNwbGF5X2lk
ID0gc2VsZi5feHZmYmRyaXZlci5feHZmYl9ydW4oZHJpdmVyX2Vudmlyb25tZW50KQorICAgICAg
ICBkcml2ZXJfZW52aXJvbm1lbnRbJ0RJU1BMQVknXSA9ICI6JWQiICUgeHZmYl9kaXNwbGF5X2lk
CisKKyAgICAgICAgIyBFbnN1cmUgdGhhdCBYdmZiIGlzIHJlYWR5IGFuZCByZXBseWluZyBhbmQg
ZXhwZWN0ZWQgYmVmb3JlIGNvbnRpbnVpbmcsIGdpdmUgaXQgMyB0cmllcy4KKyAgICAgICAgaWYg
bm90IHNlbGYuX3h2ZmJkcml2ZXIuX3h2ZmJfY2hlY2tfaWZfcmVhZHkoeHZmYl9kaXNwbGF5X2lk
KToKKyAgICAgICAgICAgIHNlbGYuX3h2ZmJkcml2ZXIuX2N1cnJlbnRfcmV0cnlfc3RhcnRfeHZm
YiArPSAxCisgICAgICAgICAgICBpZiBzZWxmLl94dmZiZHJpdmVyLl9jdXJyZW50X3JldHJ5X3N0
YXJ0X3h2ZmIgPiAzOgorICAgICAgICAgICAgICAgIF9sb2cuZXJyb3IoJ0ZhaWxlZCB0byBzdGFy
dCBYdmZiIGRpc3BsYXkgc2VydmVyIC4uLiBnaXZpbmcgdXAgYWZ0ZXIgMyByZXRyaWVzLicpCisg
ICAgICAgICAgICAgICAgcmFpc2UgUnVudGltZUVycm9yKCdVbmFibGUgdG8gc3RhcnQgWHZmYiBk
aXNwbGF5IHNlcnZlcicpCisgICAgICAgICAgICBfbG9nLmVycm9yKCdGYWlsZWQgdG8gc3RhcnQg
WHZmYiBkaXNwbGF5IHNlcnZlciAuLi4gcmV0cnlpbmcgWyAlcyBvZiAzIF0uJyAlIHNlbGYuX3h2
ZmJkcml2ZXIuX2N1cnJlbnRfcmV0cnlfc3RhcnRfeHZmYikKKyAgICAgICAgICAgIHJldHVybiBz
ZWxmLl9zZXR1cF9lbnZpcm9uX2Zvcl90ZXN0KCkKKwogICAgICAgICB3ZXN0b25fc29ja2V0ID0g
J1dLVGVzdGluZy13ZXN0b24tJTAzMngnICUgcmFuZG9tLmdldHJhbmRiaXRzKDEyOCkKICAgICAg
ICAgd2VzdG9uX2NvbW1hbmQgPSBbJ3dlc3RvbicsICctLXNvY2tldD0lcycgJSB3ZXN0b25fc29j
a2V0LCAnLS13aWR0aD0xMDI0JywgJy0taGVpZ2h0PTc2OCcsICctLXVzZS1waXhtYW4nXQogICAg
ICAgICBpZiBzZWxmLl9wb3J0Ll9zaG91bGRfdXNlX2poYnVpbGQoKToKZGlmZiAtLWdpdCBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC93ZXN0b25kcml2ZXJfdW5pdHRlc3QucHkgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvd2VzdG9uZHJpdmVyX3VuaXR0ZXN0LnB5CmluZGV4IGYz
ZTZiMzQ2OTQ5YjQxMmU2NmY4ZGQzZjk1OGNlMTFmNDA1NzQyZTkuLjhiODY5NThmN2M2OTJhZGQ1
NjRkMDg0Y2YxYWFmMTcxOGRmNmYzZTIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvcG9ydC93ZXN0b25kcml2ZXJfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9wb3J0L3dlc3RvbmRyaXZlcl91bml0dGVzdC5weQpAQCAtNTAsNiArNTAsOSBAQCBjbGFz
cyBXZXN0b25YdmZiRHJpdmVyRGlzcGxheVRlc3QoKToKICAgICBkZWYgX3h2ZmJfcnVuKHNlbGYs
IGVudmlyb25tZW50KToKICAgICAgICAgcmV0dXJuIHNlbGYuX2V4cGVjdGVkX3h2ZmJkaXNwbGF5
CiAKKyAgICBkZWYgX3h2ZmJfY2hlY2tfaWZfcmVhZHkoc2VsZiwgZGlzcGxheV9pZCk6CisgICAg
ICAgIHJldHVybiBUcnVlCisKIAogY2xhc3MgV2VzdG9uRHJpdmVyVGVzdCh1bml0dGVzdC5UZXN0
Q2FzZSk6CiAgICAgZGVmIG1ha2VfZHJpdmVyKHNlbGYpOgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9wb3J0L3h2ZmJkcml2ZXIucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L3BvcnQveHZmYmRyaXZlci5weQppbmRleCBjYmQwODYwMTJmOTQyODA1MWY3ZjFlODI1ZTBhNTgy
NDk1NjViZTc5Li5kODgxN2VjODQ5Y2VlOWUxNzJjZWZiMTc4M2IzNDBlZTllZGIyZjM5IDEwMDY0
NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQveHZmYmRyaXZlci5weQorKysgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQveHZmYmRyaXZlci5weQpAQCAtMSw1ICsxLDUgQEAK
ICMgQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0j
IENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorIyBDb3B5cmlnaHQgKEMpIDIwMTQtMjAy
MSBJZ2FsaWEgUy5MLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtMjksNiAr
MjksNyBAQAogCiBpbXBvcnQgbG9nZ2luZwogaW1wb3J0IG9zCitpbXBvcnQgc3VicHJvY2Vzcwog
aW1wb3J0IHN5cwogaW1wb3J0IHJlCiBpbXBvcnQgdGltZQpAQCAtNDEsNiArNDIsMTMgQEAgX2xv
ZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKQogCiAKIGNsYXNzIFh2ZmJEcml2ZXIoRHJp
dmVyKToKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqYXJncywgKiprd2FyZ3MpOgorICAgICAg
ICBEcml2ZXIuX19pbml0X18oc2VsZiwgKmFyZ3MsICoqa3dhcmdzKQorICAgICAgICBzZWxmLl94
dmZiX3Byb2Nlc3MgPSBOb25lCisgICAgICAgIHNlbGYuX2N1cnJlbnRfcmV0cnlfc3RhcnRfeHZm
YiA9IDAKKyAgICAgICAgc2VsZi5fcHJpbnRfc2NyZWVuX3NpemVfcHJvY2Vzc19mb3JfdGVzdGlu
ZyA9IE5vbmUgICMgcmVxdWlyZWQgZm9yIHVuaXQgdGVzdHMKKwogICAgIEBzdGF0aWNtZXRob2QK
ICAgICBkZWYgY2hlY2tfZHJpdmVyKHBvcnQpOgogICAgICAgICB4dmZiX2ZpbmRjbWQgPSBbJ3do
aWNoJywgJ1h2ZmInXQpAQCAtNDgsNyArNTYsNyBAQCBjbGFzcyBYdmZiRHJpdmVyKERyaXZlcik6
CiAgICAgICAgICAgICAgICAgeHZmYl9maW5kY21kID0gcG9ydC5famhidWlsZF93cmFwcGVyICsg
eHZmYl9maW5kY21kCiAgICAgICAgIHh2ZmJfZm91bmQgPSBwb3J0Lmhvc3QuZXhlY3V0aXZlLnJ1
bl9jb21tYW5kKHh2ZmJfZmluZGNtZCwgcmV0dXJuX2V4aXRfY29kZT1UcnVlKSA9PSAwCiAgICAg
ICAgIGlmIG5vdCB4dmZiX2ZvdW5kOgotICAgICAgICAgICAgX2xvZy5lcnJvcigiTm8gWHZmYiBm
b3VuZC4gQ2Fubm90IHJ1biBsYXlvdXQgdGVzdHMuIikKKyAgICAgICAgICAgIF9sb2cuZXJyb3Io
J05vIFh2ZmIgZm91bmQuIENhbm5vdCBydW4gbGF5b3V0IHRlc3RzLicpCiAgICAgICAgIHJldHVy
biB4dmZiX2ZvdW5kCiAKICAgICBkZWYgX3h2ZmJfcGlwZShzZWxmKToKQEAgLTg2LDIxICs5NCw3
MyBAQCBjbGFzcyBYdmZiRHJpdmVyKERyaXZlcik6CiAKICAgICBkZWYgX3h2ZmJfcnVuKHNlbGYs
IGVudmlyb25tZW50KToKICAgICAgICAgcmVhZF9mZCwgd3JpdGVfZmQgPSBzZWxmLl94dmZiX3Bp
cGUoKQotICAgICAgICBydW5feHZmYiA9IFsiWHZmYiIsICItZGlzcGxheWZkIiwgc3RyKHdyaXRl
X2ZkKSwgIi1zY3JlZW4iLCAgIjAiLCAiMTAyNHg3Njh4JXMiICUgc2VsZi5feHZmYl9zY3JlZW5f
ZGVwdGgoKSwgIi1ub2xpc3RlbiIsICJ0Y3AiXQorICAgICAgICBydW5feHZmYiA9IFsnWHZmYics
ICctZGlzcGxheWZkJywgc3RyKHdyaXRlX2ZkKSwgJy1ub2xpc3RlbicsICd0Y3AnLAorICAgICAg
ICAgICAgICAgICAgICAnK2V4dGVuc2lvbicsICdHTFgnLCAnLWFjJywgJy1zY3JlZW4nLCAnMCcs
CisgICAgICAgICAgICAgICAgICAgICclc3glcycgJSAoc2VsZi5feHZmYl9zY3JlZW5fc2l6ZSgp
LCBzZWxmLl94dmZiX3NjcmVlbl9kZXB0aCgpKV0KICAgICAgICAgaWYgc2VsZi5fcG9ydC5fc2hv
dWxkX3VzZV9qaGJ1aWxkKCk6CiAgICAgICAgICAgICBydW5feHZmYiA9IHNlbGYuX3BvcnQuX2po
YnVpbGRfd3JhcHBlciArIHJ1bl94dmZiCi0gICAgICAgIHdpdGggb3Blbihvcy5kZXZudWxsLCAn
dycpIGFzIGRldm51bGw6Ci0gICAgICAgICAgICAjIHB5dGhvbjMgd2lsbCB0cnkgdG8gY2xvc2Ug
dGhlIGZpbGUgZGVzY3JpcHRvcnMgYnkgZGVmYXVsdAotICAgICAgICAgICAgc2VsZi5feHZmYl9w
cm9jZXNzID0gc2VsZi5fcG9ydC5ob3N0LmV4ZWN1dGl2ZS5wb3BlbihydW5feHZmYiwgc3RkZXJy
PWRldm51bGwsIGVudj1lbnZpcm9ubWVudCwgY2xvc2VfZmRzPUZhbHNlKQotICAgICAgICAgICAg
ZGlzcGxheV9pZCA9IHNlbGYuX3h2ZmJfcmVhZF9kaXNwbGF5X2lkKHJlYWRfZmQpCi0KKyAgICAg
ICAgc2VsZi5feHZmYl9wcm9jZXNzID0gc2VsZi5fcG9ydC5ob3N0LmV4ZWN1dGl2ZS5wb3Blbihy
dW5feHZmYiwgc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSwgc3RkZXJyPXN1YnByb2Nlc3MuU1RET1VU
LCBlbnY9ZW52aXJvbm1lbnQsIGNsb3NlX2Zkcz1GYWxzZSkKKyAgICAgICAgZGlzcGxheV9pZCA9
IHNlbGYuX3h2ZmJfcmVhZF9kaXNwbGF5X2lkKHJlYWRfZmQpCiAgICAgICAgIHNlbGYuX3h2ZmJf
Y2xvc2VfcGlwZSgocmVhZF9mZCwgd3JpdGVfZmQpKQotCiAgICAgICAgIHJldHVybiBkaXNwbGF5
X2lkCiAKICAgICBkZWYgX3h2ZmJfc2NyZWVuX2RlcHRoKHNlbGYpOgogICAgICAgICByZXR1cm4g
b3MuZW52aXJvbi5nZXQoJ1hWRkJfU0NSRUVOX0RFUFRIJywgJzI0JykKIAorICAgIGRlZiBfeHZm
Yl9zY3JlZW5fc2l6ZShzZWxmKToKKyAgICAgICAgcmV0dXJuIG9zLmVudmlyb24uZ2V0KCdYVkZC
X1NDUkVFTl9TSVpFJywgJzEwMjR4NzY4JykKKworICAgIGRlZiBfeHZmYl9zdG9wKHNlbGYpOgor
ICAgICAgICBpZiBzZWxmLl94dmZiX3Byb2Nlc3M6CisgICAgICAgICAgICBzZWxmLl9wb3J0Lmhv
c3QuZXhlY3V0aXZlLmtpbGxfcHJvY2VzcyhzZWxmLl94dmZiX3Byb2Nlc3MucGlkKQorICAgICAg
ICAgICAgc2VsZi5feHZmYl9wcm9jZXNzID0gTm9uZQorCisgICAgZGVmIF94dmZiX2NoZWNrX2lm
X3JlYWR5KHNlbGYsIGRpc3BsYXlfaWQpOgorICAgICAgICBlbnZpcm9ubWVudF9wcmludF9zY3Jl
ZW5fc2l6ZV9wcm9jZXNzID0gc3VwZXIoWHZmYkRyaXZlciwgc2VsZikuX3NldHVwX2Vudmlyb25f
Zm9yX3Rlc3QoKQorICAgICAgICBlbnZpcm9ubWVudF9wcmludF9zY3JlZW5fc2l6ZV9wcm9jZXNz
WydESVNQTEFZJ10gPSAiOiVkIiAlIGRpc3BsYXlfaWQKKyAgICAgICAgZW52aXJvbm1lbnRfcHJp
bnRfc2NyZWVuX3NpemVfcHJvY2Vzc1snR0RLX0JBQ0tFTkQnXSA9ICd4MTEnCisgICAgICAgIHdh
aXRlZF9zZWNvbmRzX2Zvcl94dmZiX3JlYWR5ID0gMAorICAgICAgICB4dmZiX3NlcnZlcl9yZXBs
eWluZ19hc19leHBlY3RlZCA9IEZhbHNlCisgICAgICAgIHdoaWxlIFRydWU6CisgICAgICAgICAg
ICB0cnk6CisgICAgICAgICAgICAgICAgdGltZW91dF9leHBpcmVkID0gRmFsc2UKKyAgICAgICAg
ICAgICAgICBxdWVyeV9mYWlsZWQgPSBGYWxzZQorICAgICAgICAgICAgICAgIHByaW50X3NjcmVl
bl9zaXplX3Byb2Nlc3MgPSBzZWxmLl9wcmludF9zY3JlZW5fc2l6ZV9wcm9jZXNzX2Zvcl90ZXN0
aW5nIGlmIHNlbGYuX3ByaW50X3NjcmVlbl9zaXplX3Byb2Nlc3NfZm9yX3Rlc3RpbmcgZWxzZSBc
CisgICAgICAgICAgICAgICAgICAgIHNlbGYuX3BvcnQuaG9zdC5leGVjdXRpdmUucG9wZW4oW3Nl
bGYuX3BvcnQucGF0aF9mcm9tX3dlYmtpdF9iYXNlKCdUb29scycsICdndGsnLCAncHJpbnQtc2Ny
ZWVuLXNpemUnKV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSwgc3RkZXJyPXN1YnByb2Nlc3MuU1RET1VU
LCBlbnY9ZW52aXJvbm1lbnRfcHJpbnRfc2NyZWVuX3NpemVfcHJvY2VzcykKKyAgICAgICAgICAg
ICAgICBzdGRvdXQsIHN0ZGVyciA9IHByaW50X3NjcmVlbl9zaXplX3Byb2Nlc3MuY29tbXVuaWNh
dGUoKQorICAgICAgICAgICAgZXhjZXB0IHN1YnByb2Nlc3MuVGltZW91dEV4cGlyZWQ6CisgICAg
ICAgICAgICAgICAgX2xvZy5kZWJ1ZygnVGltZW91dCBleHBpcmVkIHRyeWluZyB0byBxdWVyeSB0
aGUgWHZmYiBkaXNwbGF5IHNlcnZlci4nKQorICAgICAgICAgICAgICAgIHRpbWVvdXRfZXhwaXJl
ZCA9IFRydWUKKyAgICAgICAgICAgICAgICBwcmludF9zY3JlZW5fc2l6ZV9wcm9jZXNzLmtpbGwo
KQorICAgICAgICAgICAgICAgIHN0ZG91dCwgc3RkZXJyID0gcHJpbnRfc2NyZWVuX3NpemVfcHJv
Y2Vzcy5jb21tdW5pY2F0ZSgpCisgICAgICAgICAgICAgICAgd2FpdGVkX3NlY29uZHNfZm9yX3h2
ZmJfcmVhZHkgKz0gMgorICAgICAgICAgICAgaWYgbm90IHRpbWVvdXRfZXhwaXJlZDoKKyAgICAg
ICAgICAgICAgICBpZiBwcmludF9zY3JlZW5fc2l6ZV9wcm9jZXNzLnJldHVybmNvZGUgPT0gMDoK
KyAgICAgICAgICAgICAgICAgICAgcXVlcmllZF9zY3JlZW5fc2l6ZSA9IHN0ZG91dC5kZWNvZGUo
J1VURi04Jykuc3RyaXAoKQorICAgICAgICAgICAgICAgICAgICBpZiBxdWVyaWVkX3NjcmVlbl9z
aXplID09IHNlbGYuX3h2ZmJfc2NyZWVuX3NpemUoKToKKyAgICAgICAgICAgICAgICAgICAgICAg
IHh2ZmJfc2VydmVyX3JlcGx5aW5nX2FzX2V4cGVjdGVkID0gVHJ1ZQorICAgICAgICAgICAgICAg
ICAgICAgICAgX2xvZy5kZWJ1ZygnVGhlIFh2ZmIgZGlzcGxheSBzZXJ2ZXIgIjolZCIgaXMgcmVh
ZHkgYW5kIHJlcGx5aW5nIGFzIGV4cGVjdGVkLicgJSBkaXNwbGF5X2lkKQorICAgICAgICAgICAg
ICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAg
ICAgICAgICAgICAgIF9sb2cud2FybmluZygnVGhlIHF1ZXJpZWQgWHZmYiBzY3JlZW4gc2l6ZSAi
JXMiIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RhdGlvbiAiJXMiLicgJSAocXVlcmllZF9zY3Jl
ZW5fc2l6ZSwgc2VsZi5feHZmYl9zY3JlZW5fc2l6ZSgpKSkKKyAgICAgICAgICAgICAgICBlbHNl
OgorICAgICAgICAgICAgICAgICAgICBfbG9nLndhcm5pbmcoJ1RoZSBwcmludC1zY3JlZW4tc2l6
ZSB0b29sIHJldHVybmVkIG5vbi16ZXJvIHN0YXR1cy4gc3Rkb3V0IGlzICIlcyIgYW5kIHN0ZGVy
ciBpcyAiJXMiJyAlIChzdGRvdXQsIHN0ZGVycikpCisgICAgICAgICAgICAgICAgICAgIHF1ZXJ5
X2ZhaWxlZCA9IFRydWUKKyAgICAgICAgICAgIGlmIHRpbWVvdXRfZXhwaXJlZCBvciBxdWVyeV9m
YWlsZWQ6CisgICAgICAgICAgICAgICAgaWYgc2VsZi5feHZmYl9wcm9jZXNzLnBvbGwoKToKKyAg
ICAgICAgICAgICAgICAgICAgeHZmYl9zdGRvdXQsIHh2ZmJfc3RkZXJyID0gc2VsZi5feHZmYl9w
cm9jZXNzLmNvbW11bmljYXRlKCkKKyAgICAgICAgICAgICAgICAgICAgX2xvZy5lcnJvcignVGhl
IFh2ZmIgZGlzcGxheSBzZXJ2ZXIgaGFzIGV4aXRlZCB1bmV4cGVjdGVkbHkgd2l0aCBhIHJldHVy
biBjb2RlIG9mICVzLiBzdGRvdXQgaXMgIiVzIiBhbmQgc3RkZXJyIGlzICIlcyInICUgKHNlbGYu
X3h2ZmJfcHJvY2Vzcy5wb2xsKCksIHh2ZmJfc3Rkb3V0LCB4dmZiX3N0ZGVycikpCisgICAgICAg
ICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICAgICBpZiB3YWl0ZWRfc2Vjb25kc19mb3JfeHZm
Yl9yZWFkeSA+IDU6CisgICAgICAgICAgICAgICAgX2xvZy5lcnJvcignVGltZW91dCByZWFjaGVk
IG1lYW53aGlsZSB3YWl0aW5nIGZvciB0aGUgWHZmYiBkaXNwbGF5IHNlcnZlciB0byBiZSByZWFk
eScpCisgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgIF9sb2cuZGVidWcoJ1dhaXRp
bmcgZm9yIFh2ZmIgZGlzcGxheSBzZXJ2ZXIgdG8gYmUgcmVhZHkuJykKKyAgICAgICAgICAgIGlm
IG5vdCBzZWxmLl9wcmludF9zY3JlZW5fc2l6ZV9wcm9jZXNzX2Zvcl90ZXN0aW5nOgorICAgICAg
ICAgICAgICAgIHRpbWUuc2xlZXAoMSkgICMgb25seSB3YWl0IHdoZW4gbm90IHJ1bm5pbmcgdW5p
dCB0ZXN0cworICAgICAgICAgICAgd2FpdGVkX3NlY29uZHNfZm9yX3h2ZmJfcmVhZHkgKz0gMQor
ICAgICAgICByZXR1cm4geHZmYl9zZXJ2ZXJfcmVwbHlpbmdfYXNfZXhwZWN0ZWQKKwogICAgIGRl
ZiBfc2V0dXBfZW52aXJvbl9mb3JfdGVzdChzZWxmKToKICAgICAgICAgcG9ydF9zZXJ2ZXJfZW52
aXJvbm1lbnQgPSBzZWxmLl9wb3J0LnNldHVwX2Vudmlyb25fZm9yX3NlcnZlcihzZWxmLl9zZXJ2
ZXJfbmFtZSkKICAgICAgICAgZHJpdmVyX2Vudmlyb25tZW50ID0gc3VwZXIoWHZmYkRyaXZlciwg
c2VsZikuX3NldHVwX2Vudmlyb25fZm9yX3Rlc3QoKQpAQCAtMTExLDEwICsxNzEsMjUgQEAgY2xh
c3MgWHZmYkRyaXZlcihEcml2ZXIpOgogICAgICAgICBkcml2ZXJfZW52aXJvbm1lbnRbJ1VOREVS
X1hWRkInXSA9ICd5ZXMnCiAgICAgICAgIGRyaXZlcl9lbnZpcm9ubWVudFsnR0RLX0JBQ0tFTkQn
XSA9ICd4MTEnCiAgICAgICAgIGRyaXZlcl9lbnZpcm9ubWVudFsnTE9DQUxfUkVTT1VSQ0VfUk9P
VCddID0gc2VsZi5fcG9ydC5sYXlvdXRfdGVzdHNfZGlyKCkKKworICAgICAgICAjIEVuc3VyZSB0
aGF0IFh2ZmIgaXMgcmVhZHkgYW5kIHJlcGx5aW5nIGFuZCBleHBlY3RlZCBiZWZvcmUgY29udGlu
dWluZywgZ2l2ZSBpdCAzIHRyaWVzLgorICAgICAgICBpZiBub3Qgc2VsZi5feHZmYl9jaGVja19p
Zl9yZWFkeShkaXNwbGF5X2lkKToKKyAgICAgICAgICAgIHNlbGYuX2N1cnJlbnRfcmV0cnlfc3Rh
cnRfeHZmYiArPSAxCisgICAgICAgICAgICBpZiBzZWxmLl9jdXJyZW50X3JldHJ5X3N0YXJ0X3h2
ZmIgPiAzOgorICAgICAgICAgICAgICAgIF9sb2cuZXJyb3IoJ0ZhaWxlZCB0byBzdGFydCBYdmZi
IGRpc3BsYXkgc2VydmVyIC4uLiBnaXZpbmcgdXAgYWZ0ZXIgMyByZXRyaWVzLicpCisgICAgICAg
ICAgICAgICAgcmFpc2UgUnVudGltZUVycm9yKCdVbmFibGUgdG8gc3RhcnQgWHZmYiBkaXNwbGF5
IHNlcnZlcicpCisgICAgICAgICAgICBfbG9nLmVycm9yKCdGYWlsZWQgdG8gc3RhcnQgWHZmYiBk
aXNwbGF5IHNlcnZlciAuLi4gcmV0cnlpbmcgWyAlcyBvZiAzIF0uJyAlIHNlbGYuX2N1cnJlbnRf
cmV0cnlfc3RhcnRfeHZmYikKKyAgICAgICAgICAgIHJldHVybiBzZWxmLl9zZXR1cF9lbnZpcm9u
X2Zvcl90ZXN0KCkKKwogICAgICAgICByZXR1cm4gZHJpdmVyX2Vudmlyb25tZW50CiAKKyAgICBk
ZWYgaGFzX2NyYXNoZWQoc2VsZik6CisgICAgICAgIGlmIHNlbGYuX3h2ZmJfcHJvY2VzcyBhbmQg
c2VsZi5feHZmYl9wcm9jZXNzLnBvbGwoKToKKyAgICAgICAgICAgIHNlbGYuX2NyYXNoZWRfcHJv
Y2Vzc19uYW1lID0gJ1h2ZmInCisgICAgICAgICAgICBzZWxmLl9jcmFzaGVkX3BpZCA9IHNlbGYu
X3h2ZmJfcHJvY2Vzcy5waWQKKyAgICAgICAgICAgIHJldHVybiBUcnVlCisgICAgICAgIHJldHVy
biBzdXBlcihYdmZiRHJpdmVyLCBzZWxmKS5oYXNfY3Jhc2hlZCgpCisKICAgICBkZWYgc3RvcChz
ZWxmKToKICAgICAgICAgc3VwZXIoWHZmYkRyaXZlciwgc2VsZikuc3RvcCgpCi0gICAgICAgIGlm
IGdldGF0dHIoc2VsZiwgJ194dmZiX3Byb2Nlc3MnLCBOb25lKToKLSAgICAgICAgICAgIHNlbGYu
X3BvcnQuaG9zdC5leGVjdXRpdmUua2lsbF9wcm9jZXNzKHNlbGYuX3h2ZmJfcHJvY2Vzcy5waWQp
Ci0gICAgICAgICAgICBzZWxmLl94dmZiX3Byb2Nlc3MgPSBOb25lCisgICAgICAgIHNlbGYuX3h2
ZmJfc3RvcCgpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQveHZmYmRy
aXZlcl91bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC94dmZiZHJpdmVy
X3VuaXR0ZXN0LnB5CmluZGV4IDQ2NzRjODBlM2NlMDEzYmMwZTE2OTdlN2M4ZjI3OWVmMWEzYTBj
NWQuLjllMGU5NWUyYjI0YmRhN2MzMWQ3YWNhNWJlNzY5Y2VjY2NmMjJhMzEgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC94dmZiZHJpdmVyX3VuaXR0ZXN0LnB5CisrKyBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC94dmZiZHJpdmVyX3VuaXR0ZXN0LnB5CkBAIC0z
MSw3ICszMSw3IEBAIGltcG9ydCBsb2dnaW5nCiBpbXBvcnQgdW5pdHRlc3QKIAogZnJvbSB3ZWJr
aXRweS5jb21tb24uc3lzdGVtLmZpbGVzeXN0ZW1fbW9jayBpbXBvcnQgTW9ja0ZpbGVTeXN0ZW0K
LWZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5leGVjdXRpdmVfbW9jayBpbXBvcnQgTW9ja0V4
ZWN1dGl2ZTIKK2Zyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5leGVjdXRpdmVfbW9jayBpbXBv
cnQgTW9ja1Byb2Nlc3MKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5zeXN0ZW1ob3N0X21v
Y2sgaW1wb3J0IE1vY2tTeXN0ZW1Ib3N0CiBmcm9tIHdlYmtpdHB5LnBvcnQgaW1wb3J0IFBvcnQK
IGZyb20gd2Via2l0cHkucG9ydC5zZXJ2ZXJfcHJvY2Vzc19tb2NrIGltcG9ydCBNb2NrU2VydmVy
UHJvY2VzcwpAQCAtNDQsNyArNDQsNyBAQCBfbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1l
X18pCiAKIAogY2xhc3MgWHZmYkRyaXZlclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgotICAgIGRl
ZiBtYWtlX2RyaXZlcihzZWxmLCB3b3JrZXJfbnVtYmVyPTAsIHhvcmdfcnVubmluZz1GYWxzZSwg
ZXhlY3V0aXZlPU5vbmUpOgorICAgIGRlZiBtYWtlX2RyaXZlcihzZWxmLCB3b3JrZXJfbnVtYmVy
PTAsIHhvcmdfcnVubmluZz1GYWxzZSwgZXhlY3V0aXZlPU5vbmUsIHByaW50X3NjcmVlbl9zaXpl
X3Byb2Nlc3M9Tm9uZSk6CiAgICAgICAgIHBvcnQgPSBQb3J0KE1vY2tTeXN0ZW1Ib3N0KGxvZ19l
eGVjdXRpdmU9VHJ1ZSwgZXhlY3V0aXZlPWV4ZWN1dGl2ZSksICd4dmZiZHJpdmVydGVzdHBvcnQn
LCBvcHRpb25zPU1vY2tPcHRpb25zKGNvbmZpZ3VyYXRpb249J1JlbGVhc2UnKSkKICAgICAgICAg
cG9ydC5fY29uZmlnLmJ1aWxkX2RpcmVjdG9yeSA9IGxhbWJkYSBjb25maWd1cmF0aW9uOiAiL21v
Y2stYnVpbGQiCiAgICAgICAgIHBvcnQuX3Rlc3RfcnVubmVyX3Byb2Nlc3NfY29uc3RydWN0b3Ig
PSBNb2NrU2VydmVyUHJvY2VzcwpAQCAtNTcsNiArNTcsNyBAQCBjbGFzcyBYdmZiRHJpdmVyVGVz
dCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIGRyaXZlci5feHZmYl9waXBlID0gbGFtYmRh
OiAoMywgNCkKICAgICAgICAgZHJpdmVyLl94dmZiX3JlYWRfZGlzcGxheV9pZCA9IGxhbWJkYSB4
OiAxCiAgICAgICAgIGRyaXZlci5feHZmYl9jbG9zZV9waXBlID0gbGFtYmRhIHA6IE5vbmUKKyAg
ICAgICAgZHJpdmVyLl9wcmludF9zY3JlZW5fc2l6ZV9wcm9jZXNzX2Zvcl90ZXN0aW5nID0gcHJp
bnRfc2NyZWVuX3NpemVfcHJvY2VzcyBpZiBwcmludF9zY3JlZW5fc2l6ZV9wcm9jZXNzIGVsc2Ug
TW9ja1Byb2Nlc3MoZHJpdmVyLl94dmZiX3NjcmVlbl9zaXplKCkpCiAgICAgICAgIGRyaXZlci5f
cG9ydF9zZXJ2ZXJfZW52aXJvbm1lbnQgPSBwb3J0LnNldHVwX2Vudmlyb25fZm9yX3NlcnZlcihw
b3J0LmRyaXZlcl9uYW1lKCkpCiAgICAgICAgIHJldHVybiBkcml2ZXIKIApAQCAtNjcsNyArNjgs
NyBAQCBjbGFzcyBYdmZiRHJpdmVyVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIGRy
aXZlci5feHZmYl9wcm9jZXNzID0gTm9uZQogCiAgICAgZGVmIGFzc2VydERyaXZlclN0YXJ0U3Vj
Y2Vzc2Z1bChzZWxmLCBkcml2ZXIsIGV4cGVjdGVkX2xvZ3MsIGV4cGVjdGVkX2Rpc3BsYXksIHBp
eGVsX3Rlc3RzPUZhbHNlKToKLSAgICAgICAgd2l0aCBPdXRwdXRDYXB0dXJlKGxldmVsPWxvZ2dp
bmcuSU5GTykgYXMgY2FwdHVyZWQ6CisgICAgICAgIHdpdGggT3V0cHV0Q2FwdHVyZShsZXZlbD1s
b2dnaW5nLkRFQlVHKSBhcyBjYXB0dXJlZDoKICAgICAgICAgICAgIGRyaXZlci5zdGFydChwaXhl
bF90ZXN0cywgW10pCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY2FwdHVyZWQucm9vdC5sb2cu
Z2V0dmFsdWUoKSwgZXhwZWN0ZWRfbG9ncykKIApAQCAtNzUsMTggKzc2LDM1IEBAIGNsYXNzIFh2
ZmJEcml2ZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChkcml2ZXIuX3NlcnZlcl9wcm9jZXNzLmVudlsnRElTUExBWSddLCBleHBlY3RlZF9kaXNwbGF5
KQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGRyaXZlci5fc2VydmVyX3Byb2Nlc3MuZW52WydH
REtfQkFDS0VORCddLCAneDExJykKIAotICAgIGRlZiB0ZXN0X3N0YXJ0KHNlbGYpOgorICAgIGRl
ZiB0ZXN0X3h2ZmJfc3RhcnRfYW5kX3JlYWR5KHNlbGYpOgogICAgICAgICBkcml2ZXIgPSBzZWxm
Lm1ha2VfZHJpdmVyKCkKLSAgICAgICAgZXhwZWN0ZWRfbG9ncyA9ICgiTU9DSyBwb3BlbjogWydY
dmZiJywgJy1kaXNwbGF5ZmQnLCAnNCcsICctc2NyZWVuJywgJzAnLCAnMTAyNHg3Njh4MjQnLCAn
LW5vbGlzdGVuJywgJ3RjcCddLCBlbnY9JXNcbiIgJSBkcml2ZXIuX3BvcnRfc2VydmVyX2Vudmly
b25tZW50KQotICAgICAgICBzZWxmLmFzc2VydERyaXZlclN0YXJ0U3VjY2Vzc2Z1bChkcml2ZXIs
IGV4cGVjdGVkX2xvZ3M9ZXhwZWN0ZWRfbG9ncywgZXhwZWN0ZWRfZGlzcGxheT0iOjEiKQorICAg
ICAgICBleHBlY3RlZF9kaXNwbGF5ID0gJzoxJworICAgICAgICBleHBlY3RlZF9sb2dzID0gKCJN
T0NLIHBvcGVuOiBbJ1h2ZmInLCAnLWRpc3BsYXlmZCcsICc0JywgJy1ub2xpc3RlbicsICd0Y3An
LCAnK2V4dGVuc2lvbicsICdHTFgnLCAnLWFjJywgJy1zY3JlZW4nLCAnMCcsICcxMDI0eDc2OHgy
NCddLCBlbnY9JXNcbiIgJSBkcml2ZXIuX3BvcnRfc2VydmVyX2Vudmlyb25tZW50KQorICAgICAg
ICBleHBlY3RlZF9sb2dzICs9ICgnVGhlIFh2ZmIgZGlzcGxheSBzZXJ2ZXIgIiVzIiBpcyByZWFk
eSBhbmQgcmVwbHlpbmcgYXMgZXhwZWN0ZWQuXG4nICUgZXhwZWN0ZWRfZGlzcGxheSkKKyAgICAg
ICAgc2VsZi5hc3NlcnREcml2ZXJTdGFydFN1Y2Nlc3NmdWwoZHJpdmVyLCBleHBlY3RlZF9sb2dz
PWV4cGVjdGVkX2xvZ3MsIGV4cGVjdGVkX2Rpc3BsYXk9ZXhwZWN0ZWRfZGlzcGxheSkKICAgICAg
ICAgc2VsZi5jbGVhbnVwX2RyaXZlcihkcml2ZXIpCiAKLSAgICBkZWYgdGVzdF9zdGFydF9hcmJp
dHJhcnlfd29ya2VyX251bWJlcihzZWxmKToKKyAgICBkZWYgdGVzdF94dmZiX3N0YXJ0X2FyYml0
cmFyeV93b3JrZXJfbnVtYmVyKHNlbGYpOgogICAgICAgICBkcml2ZXIgPSBzZWxmLm1ha2VfZHJp
dmVyKHdvcmtlcl9udW1iZXI9MTcpCi0gICAgICAgIGV4cGVjdGVkX2xvZ3MgPSAoIk1PQ0sgcG9w
ZW46IFsnWHZmYicsICctZGlzcGxheWZkJywgJzQnLCAnLXNjcmVlbicsICcwJywgJzEwMjR4NzY4
eDI0JywgJy1ub2xpc3RlbicsICd0Y3AnXSwgZW52PSVzXG4iICUgZHJpdmVyLl9wb3J0X3NlcnZl
cl9lbnZpcm9ubWVudCkKKyAgICAgICAgZXhwZWN0ZWRfZGlzcGxheSA9ICc6MScKKyAgICAgICAg
ZXhwZWN0ZWRfbG9ncyA9ICgiTU9DSyBwb3BlbjogWydYdmZiJywgJy1kaXNwbGF5ZmQnLCAnNCcs
ICctbm9saXN0ZW4nLCAndGNwJywgJytleHRlbnNpb24nLCAnR0xYJywgJy1hYycsICctc2NyZWVu
JywgJzAnLCAnMTAyNHg3Njh4MjQnXSwgZW52PSVzXG4iICUgZHJpdmVyLl9wb3J0X3NlcnZlcl9l
bnZpcm9ubWVudCkKKyAgICAgICAgZXhwZWN0ZWRfbG9ncyArPSAoJ1RoZSBYdmZiIGRpc3BsYXkg
c2VydmVyICIlcyIgaXMgcmVhZHkgYW5kIHJlcGx5aW5nIGFzIGV4cGVjdGVkLlxuJyAlIGV4cGVj
dGVkX2Rpc3BsYXkpCiAgICAgICAgIHNlbGYuYXNzZXJ0RHJpdmVyU3RhcnRTdWNjZXNzZnVsKGRy
aXZlciwgZXhwZWN0ZWRfbG9ncz1leHBlY3RlZF9sb2dzLCBleHBlY3RlZF9kaXNwbGF5PSI6MSIs
IHBpeGVsX3Rlc3RzPVRydWUpCiAgICAgICAgIHNlbGYuY2xlYW51cF9kcml2ZXIoZHJpdmVyKQog
CisgICAgZGVmIHRlc3RfeHZmYl9ub3RfcmVwbHlpbmcoc2VsZik6CisgICAgICAgIGZhaWxpbmdf
cHJpbnRfc2NyZWVuX3NpemVfcHJvY2VzcyA9IE1vY2tQcm9jZXNzKHJldHVybmNvZGU9MSkKKyAg
ICAgICAgZHJpdmVyID0gc2VsZi5tYWtlX2RyaXZlcihwcmludF9zY3JlZW5fc2l6ZV9wcm9jZXNz
PWZhaWxpbmdfcHJpbnRfc2NyZWVuX3NpemVfcHJvY2VzcykKKyAgICAgICAgd2l0aCBPdXRwdXRD
YXB0dXJlKGxldmVsPWxvZ2dpbmcuSU5GTykgYXMgY2FwdHVyZWQ6CisgICAgICAgICAgICBzZWxm
LmFzc2VydFJhaXNlc1JlZ2V4KFJ1bnRpbWVFcnJvciwgJ1VuYWJsZSB0byBzdGFydCBYdmZiIGRp
c3BsYXkgc2VydmVyJywgZHJpdmVyLnN0YXJ0LCBGYWxzZSwgW10pCisgICAgICAgICAgICBjYXB0
dXJlZF9sb2cgPSBjYXB0dXJlZC5yb290LmxvZy5nZXR2YWx1ZSgpCisgICAgICAgICAgICBmb3Ig
cmV0cnkgaW4gWzEsIDIsIDNdOgorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgnRmFp
bGVkIHRvIHN0YXJ0IFh2ZmIgZGlzcGxheSBzZXJ2ZXIgLi4uIHJldHJ5aW5nIFsge30gb2YgMyBd
LicuZm9ybWF0KHJldHJ5KSBpbiBjYXB0dXJlZF9sb2cpCisgICAgICAgICAgICAgICAgc2VsZi5h
c3NlcnRGYWxzZSgnRmFpbGVkIHRvIHN0YXJ0IFh2ZmIgZGlzcGxheSBzZXJ2ZXIgLi4uIHJldHJ5
aW5nIFsgNCBvZiAzIF0uJyBpbiBjYXB0dXJlZF9sb2cpCisgICAgICAgICAgICBzZWxmLmFzc2Vy
dFRydWUoJ0ZhaWxlZCB0byBzdGFydCBYdmZiIGRpc3BsYXkgc2VydmVyIC4uLiBnaXZpbmcgdXAg
YWZ0ZXIgMyByZXRyaWVzLicgaW4gY2FwdHVyZWRfbG9nKQorICAgICAgICAgICAgc2VsZi5hc3Nl
cnRUcnVlKCdUaGUgcHJpbnQtc2NyZWVuLXNpemUgdG9vbCByZXR1cm5lZCBub24temVybyBzdGF0
dXMnIGluIGNhcHR1cmVkX2xvZykKKyAgICAgICAgc2VsZi5jbGVhbnVwX2RyaXZlcihkcml2ZXIp
CisKICAgICBkZWYgdGVzdF9zdG9wKHNlbGYpOgogICAgICAgICBwb3J0ID0gUG9ydChNb2NrU3lz
dGVtSG9zdChsb2dfZXhlY3V0aXZlPVRydWUpLCAneHZmYmRyaXZlcnRlc3Rwb3J0Jywgb3B0aW9u
cz1Nb2NrT3B0aW9ucyhjb25maWd1cmF0aW9uPSdSZWxlYXNlJykpCiAgICAgICAgIHBvcnQuX2V4
ZWN1dGl2ZS5raWxsX3Byb2Nlc3MgPSBsYW1iZGEgeDogX2xvZy5pbmZvKCJNT0NLIGtpbGxfcHJv
Y2VzcyBwaWQ6ICIgKyBzdHIoeCkpCmRpZmYgLS1naXQgYS9Ub29scy9ndGsvcHJpbnQtc2NyZWVu
LXNpemUgYi9Ub29scy9ndGsvcHJpbnQtc2NyZWVuLXNpemUKbmV3IGZpbGUgbW9kZSAxMDA3NTUK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWQwYWE2YTc1
Y2I2YjAxYTYyOTdkNDU0MzU2NWJiMzE1OGNmZGIxZgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xz
L2d0ay9wcmludC1zY3JlZW4tc2l6ZQpAQCAtMCwwICsxLDU0IEBACisjIS91c3IvYmluL2VudiBw
eXRob24zCisjCisjIENvcHlyaWdodCAoQykgMjAyMSBJZ2FsaWEgUy5MLgorIworIyBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CisjCisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwgdGhpcworIyAg
ICBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQgbm90aWNlLAorIyAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uCisjICAgIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVU
T1JTICJBUyBJUyIgQU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUK
KyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBPV05FUiBPUiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOworIyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyMgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK2ltcG9ydCBhcmdwYXJzZQoraW1w
b3J0IHN5cworaW1wb3J0IGdpCitnaS5yZXF1aXJlX3ZlcnNpb24oJ0d0aycsICczLjAnKQorZ2ku
cmVxdWlyZV92ZXJzaW9uKCdHZGsnLCAnMy4wJykKK2Zyb20gZ2kucmVwb3NpdG9yeSBpbXBvcnQg
R3RrLCBHZGsKKworCitkZWYgcHJpbnRfc2NyZWVuX3NpemUobW9uaXRvcl9pZCk6CisgICAgZGlz
cGxheSA9IEdkay5EaXNwbGF5LmdldF9kZWZhdWx0KCkKKyAgICBpZiBub3QgZGlzcGxheToKKyAg
ICAgICAgcHJpbnQoJ1VuYWJsZSB0byBmaW5kIGEgZGlzcGxheScpCisgICAgICAgIHJldHVybiAx
CisgICAgbW9uaXRvciA9IGRpc3BsYXkuZ2V0X21vbml0b3IobW9uaXRvcl9pZCkKKyAgICBpZiBu
b3QgbW9uaXRvcjoKKyAgICAgICAgcHJpbnQoJ1VuYWJsZSB0byBmaW5kIGEgbW9uaXRvcicpCisg
ICAgICAgIHJldHVybiAxCisgICAgZ2VvbWV0cnkgPSBtb25pdG9yLmdldF9nZW9tZXRyeSgpCisg
ICAgcHJpbnQoJ3t9eHt9Jy5mb3JtYXQoZ2VvbWV0cnkud2lkdGgsICBnZW9tZXRyeS5oZWlnaHQp
KQorICAgIHJldHVybiAwCisKKworIyBUaGlzIHRvb2wgaXMgdXNlZCBmcm9tIHRoZSBsYXlvdXQg
dGVzdHMgd2hlbiBydW5uaW5nIHdpdGggdGhlIFh2ZmIgZHJpdmVyLAorIyBpbiBvcmRlciB0byBj
aGVjayB0aGF0IHRoZSBYdmZiIHNlcnZlciBpcyBhbGl2ZSBhbmQgY29uZmlndXJlZCBhcyBleHBl
Y3RlZC4KKyMgUGxlYXNlLCBkb24ndCBtb2RpZnkgdGhpcyB0b29sIHdpdGhvdXQgY2hlY2tpbmcg
Zmlyc3QgaG93IGl0IGlzIHVzZWQgYXQgd2Via2l0cHkvcG9ydC94dmZiZHJpdmVyLnB5CitpZiBf
X25hbWVfXyA9PSAnX19tYWluX18nOgorICAgIHBhcnNlciA9IGFyZ3BhcnNlLkFyZ3VtZW50UGFy
c2VyKGRlc2NyaXB0aW9uPSdQcmludCB0aGUgY3VycmVudCBkaXNwbGF5IHNpemUgKHdpZHRoeGhl
aWdodCkgb2YgYSBnaXZlbiBtb25pdG9yJykKKyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCItbiIs
IHR5cGU9aW50LCBoZWxwPSdOdW1iZXIgb2YgdGhlIG1vbml0b3IgdGhlIHF1ZXJ5JywgZGVmYXVs
dD0wKQorICAgIGFyZ3MgPSBwYXJzZXIucGFyc2VfYXJncygpCisgICAgc3lzLmV4aXQocHJpbnRf
c2NyZWVuX3NpemUoYXJncy5uKSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>437051</attachid>
            <date>2021-09-01 12:16:07 -0700</date>
            <delta_ts>2021-09-06 06:32:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229758-20210901201524.patch</filename>
            <type>text/plain</type>
            <size>22081</size>
            <attacher name="Carlos Alberto Lopez Perez">clopez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxODI0CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOWE0YjAyZDNhZjAxZDk2ZmNmMGQzZTA0MDM5MDc3MWJk
NTM0MTdiYy4uZGJhNGJlNjRlYWI2ZjFiYmU3NDQ4YjMwYjE1NzJkMTM5NGMxYjY4MSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUx
IEBACisyMDIxLTA5LTAxICBDYXJsb3MgQWxiZXJ0byBMb3BleiBQZXJleiAgPGNsb3BlekBpZ2Fs
aWEuY29tPgorCisgICAgICAgIFtHVEtdIFRoZSBYdmZiIGRpc3BsYXkgc2VydmVyIG1heSBmYWls
IHRvIHN0YXJ0IHNvbWV0aW1lcyBjYXVzaW5nIHRlc3RzIHRvIHJhbmRvbWx5IGNyYXNoCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjk3NTgKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBuZXcgZnVu
Y3Rpb24gaW4gWHZmYkRyaXZlcigpIHRvIGVuc3VyZSB0aGF0IHRoZSBkaXNwbGF5IHNlcnZlcgor
ICAgICAgICBhdCBhIGdpdmVuIGRpc3BsYXlfaWQgaXMgcmVwbHlpbmcgYXMgZXhwZWN0ZWQuIEFz
ayBpdCBmb3IgdGhlIHNjcmVlbgorICAgICAgICBzaXplIGF0IG1vbml0b3IgMCBhbmQgY29tcGFy
ZSB0aGUgcmVzdWx0IHdpdGggdGhlIG9uZSB3ZSBleHBlY3QgdG8KKyAgICAgICAgaGF2ZSBpbnNp
ZGUgWHZmYi4gRm9yIGRvaW5nIHRoaXMgY2hlY2sgYSBleHRlcm5hbCBweXRob24gcHJvZ3JhbSBp
cworICAgICAgICBjYWxsZWQgd2hpY2ggZG9lcyB0aGUgcXVlcnkgdXNpbmcgR1RLLiBVc2luZyBh
IGV4dGVybmFsIHByb2dyYW0gaXMKKyAgICAgICAgbW9yZSByb2J1c3QgYWdhaW5zdCBwb3NzaWJs
ZSBmYWlsdXJlcyBjYWxsaW5nIGludG8gR1RLIGFuZCBhbHNvIHdpbGwKKyAgICAgICAgYWxsb3cg
cmUtdXNpbmcgdGhpcyBwcm9ncmFtIGFsc28gdG8gY2hlY2sgdGhhdCB0aGUgd2VzdG9uIHNlcnZl
ciBpcworICAgICAgICBhbHNvIHJlcGx5aW5nIGFzIGV4cGVjdGVkIGZvciB0aGUgd2VzdG9uIGRy
aXZlciAob24gYSBmdXR1cmUgcGF0Y2gpLgorCisgICAgICAgIElmIHRoZSBYdmZiIGRyaXZlciBp
cyBub3QgcmVwbHlpbmcgYXMgZXhwZWN0ZWQgdGhlbiByZXN0YXJ0IGl0IGFuZAorICAgICAgICB0
cnkgYWdhaW4sIHVwIHRvIDMgcmV0cmllcy4KKworICAgICAgICBVc2UgdGhpcyBhbHNvIG9uIHRo
ZSB3ZXN0b24gZHJpdmVyIHRvIGNoZWNrIHRoYXQgdGhlIFh2ZmIgZHJpdmVyIGlzCisgICAgICAg
IHJlYWR5LgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2V4ZWN1
dGl2ZV9tb2NrLnB5OgorICAgICAgICAoTW9ja1Byb2Nlc3MuX19pbml0X18pOgorICAgICAgICAo
TW9ja1Byb2Nlc3MuY29tbXVuaWNhdGUpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvcG9y
dC93ZXN0b25kcml2ZXIucHk6CisgICAgICAgIChXZXN0b25Ecml2ZXIuX3NldHVwX2Vudmlyb25f
Zm9yX3Rlc3QpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvcG9ydC93ZXN0b25kcml2ZXJf
dW5pdHRlc3QucHk6CisgICAgICAgIChXZXN0b25YdmZiRHJpdmVyRGlzcGxheVRlc3QuX3h2ZmJf
Y2hlY2tfaWZfcmVhZHkpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvcG9ydC94dmZiZHJp
dmVyLnB5OgorICAgICAgICAoWHZmYkRyaXZlcik6CisgICAgICAgIChYdmZiRHJpdmVyLl9faW5p
dF9fKToKKyAgICAgICAgKFh2ZmJEcml2ZXIuY2hlY2tfZHJpdmVyKToKKyAgICAgICAgKFh2ZmJE
cml2ZXIuX3h2ZmJfcnVuKToKKyAgICAgICAgKFh2ZmJEcml2ZXIuX3h2ZmJfc2NyZWVuX3NpemUp
OgorICAgICAgICAoWHZmYkRyaXZlci5feHZmYl9zdG9wKToKKyAgICAgICAgKFh2ZmJEcml2ZXIu
X3h2ZmJfY2hlY2tfaWZfcmVhZHkpOgorICAgICAgICAoWHZmYkRyaXZlci5fc2V0dXBfZW52aXJv
bl9mb3JfdGVzdCk6CisgICAgICAgIChYdmZiRHJpdmVyLmhhc19jcmFzaGVkKToKKyAgICAgICAg
KFh2ZmJEcml2ZXIuc3RvcCk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9wb3J0L3h2ZmJk
cml2ZXJfdW5pdHRlc3QucHk6CisgICAgICAgIChYdmZiRHJpdmVyVGVzdC5tYWtlX2RyaXZlcik6
CisgICAgICAgIChYdmZiRHJpdmVyVGVzdC5hc3NlcnREcml2ZXJTdGFydFN1Y2Nlc3NmdWwpOgor
ICAgICAgICAoWHZmYkRyaXZlclRlc3QudGVzdF94dmZiX3N0YXJ0X2FuZF9yZWFkeSk6CisgICAg
ICAgIChYdmZiRHJpdmVyVGVzdC50ZXN0X3h2ZmJfc3RhcnRfYXJiaXRyYXJ5X3dvcmtlcl9udW1i
ZXIpOgorICAgICAgICAoWHZmYkRyaXZlclRlc3QudGVzdF94dmZiX25vdF9yZXBseWluZyk6Cisg
ICAgICAgICogZ3RrL3ByaW50LXNjcmVlbi1zaXplOiBBZGRlZC4KKwogMjAyMS0wOC0zMSAgSm9u
YXRoYW4gQmVkYXJkICA8amJlZGFyZEBhcHBsZS5jb20+CiAKICAgICAgICAgW2dpdC13ZWJraXRd
IEF1dG9tYXRpYyByZWJhc2luZyBvciBwdWxsLXJlcXVlc3RzCmRpZmYgLS1naXQgYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vZXhlY3V0aXZlX21vY2sucHkgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vZXhlY3V0aXZlX21vY2sucHkKaW5kZXggMDJi
ZWFkMTdhYjViNDY4YjQ1ODZkNmFiY2YyOWVhMDM4NjM2MjBmNS4uNWI0ZDkzNTEzZTIzYzU5MWQ0
ZDYwNmRiZDlhZjZjOTNkYTM5MjFmMiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9jb21tb24vc3lzdGVtL2V4ZWN1dGl2ZV9tb2NrLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvY29tbW9uL3N5c3RlbS9leGVjdXRpdmVfbW9jay5weQpAQCAtMzcsMjEgKzM3LDIzIEBA
IF9sb2cgPSBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVfXykKIAogCiBjbGFzcyBNb2NrUHJvY2Vz
cyhvYmplY3QpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBzdGRvdXQ9J01PQ0sgU1RET1VUXG4n
LCBzdGRlcnI9JycpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBzdGRvdXQ9J01PQ0sgU1RET1VU
XG4nLCBzdGRlcnI9JycsIHJldHVybmNvZGU9MCk6CiAgICAgICAgIHNlbGYucGlkID0gNDIKICAg
ICAgICAgc2VsZi5zdGRvdXQgPSBCeXRlc0lPKHN0cmluZ191dGlscy5lbmNvZGUoc3Rkb3V0KSkK
ICAgICAgICAgc2VsZi5zdGRlcnIgPSBCeXRlc0lPKHN0cmluZ191dGlscy5lbmNvZGUoc3RkZXJy
KSkKICAgICAgICAgc2VsZi5zdGRpbiA9IEJ5dGVzSU8oKQotICAgICAgICBzZWxmLnJldHVybmNv
ZGUgPSAwCisgICAgICAgIHNlbGYucmV0dXJuY29kZSA9IHJldHVybmNvZGUKICAgICAgICAgc2Vs
Zi5faXNfcnVubmluZyA9IEZhbHNlCiAKICAgICBkZWYgd2FpdChzZWxmKToKICAgICAgICAgc2Vs
Zi5faXNfcnVubmluZyA9IEZhbHNlCiAgICAgICAgIHJldHVybiBzZWxmLnJldHVybmNvZGUKIAot
ICAgIGRlZiBjb21tdW5pY2F0ZShzZWxmLCBpbnB1dD1Ob25lKToKKyAgICBkZWYgY29tbXVuaWNh
dGUoc2VsZiwgaW5wdXQ9Tm9uZSwgdGltZW91dD1Ob25lKToKICAgICAgICAgc2VsZi5faXNfcnVu
bmluZyA9IEZhbHNlCi0gICAgICAgIHJldHVybiAoc2VsZi5zdGRvdXQsIHNlbGYuc3RkZXJyKQor
ICAgICAgICBzdGRvdXQgPSBzZWxmLnN0ZG91dC5yZWFkKCkgaWYgaXNpbnN0YW5jZShzZWxmLnN0
ZG91dCwgQnl0ZXNJTykgZWxzZSBzZWxmLnN0ZG91dAorICAgICAgICBzdGRlcnIgPSBzZWxmLnN0
ZGVyci5yZWFkKCkgaWYgaXNpbnN0YW5jZShzZWxmLnN0ZGVyciwgQnl0ZXNJTykgZWxzZSBzZWxm
LnN0ZGVycgorICAgICAgICByZXR1cm4gKHN0ZG91dCwgc3RkZXJyKQogCiAgICAgZGVmIHBvbGwo
c2VsZik6CiAgICAgICAgIGlmIHNlbGYuX2lzX3J1bm5pbmc6CmRpZmYgLS1naXQgYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L3BvcnQvd2VzdG9uZHJpdmVyLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9wb3J0L3dlc3RvbmRyaXZlci5weQppbmRleCBhNmE1YWIzMjk4MzdmNGMzOTlmZmNkNjFk
NjJiODI4MTZhNjU4YmRlLi45YjYyMzAzMDdkYzBmODEzYjQ1YTY0ZjBiMjQ2OTY2OGI2MGE2MWNj
IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvd2VzdG9uZHJpdmVyLnB5
CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC93ZXN0b25kcml2ZXIucHkKQEAgLTU2
LDcgKzU2LDE4IEBAIGNsYXNzIFdlc3RvbkRyaXZlcihEcml2ZXIpOgogCiAgICAgZGVmIF9zZXR1
cF9lbnZpcm9uX2Zvcl90ZXN0KHNlbGYpOgogICAgICAgICBkcml2ZXJfZW52aXJvbm1lbnQgPSBz
dXBlcihXZXN0b25Ecml2ZXIsIHNlbGYpLl9zZXR1cF9lbnZpcm9uX2Zvcl90ZXN0KCkKLSAgICAg
ICAgZHJpdmVyX2Vudmlyb25tZW50WydESVNQTEFZJ10gPSAiOiVkIiAlIHNlbGYuX3h2ZmJkcml2
ZXIuX3h2ZmJfcnVuKGRyaXZlcl9lbnZpcm9ubWVudCkKKyAgICAgICAgeHZmYl9kaXNwbGF5X2lk
ID0gc2VsZi5feHZmYmRyaXZlci5feHZmYl9ydW4oZHJpdmVyX2Vudmlyb25tZW50KQorICAgICAg
ICBkcml2ZXJfZW52aXJvbm1lbnRbJ0RJU1BMQVknXSA9ICc6JWQnICUgeHZmYl9kaXNwbGF5X2lk
CisKKyAgICAgICAgIyBFbnN1cmUgdGhhdCBYdmZiIGlzIHJlYWR5IGFuZCByZXBseWluZyBhbmQg
ZXhwZWN0ZWQgYmVmb3JlIGNvbnRpbnVpbmcsIGdpdmUgaXQgMyB0cmllcy4KKyAgICAgICAgaWYg
bm90IHNlbGYuX3h2ZmJkcml2ZXIuX3h2ZmJfY2hlY2tfaWZfcmVhZHkoeHZmYl9kaXNwbGF5X2lk
KToKKyAgICAgICAgICAgIHNlbGYuX3h2ZmJkcml2ZXIuX2N1cnJlbnRfcmV0cnlfc3RhcnRfeHZm
YiArPSAxCisgICAgICAgICAgICBpZiBzZWxmLl94dmZiZHJpdmVyLl9jdXJyZW50X3JldHJ5X3N0
YXJ0X3h2ZmIgPiAzOgorICAgICAgICAgICAgICAgIF9sb2cuZXJyb3IoJ0ZhaWxlZCB0byBzdGFy
dCBYdmZiIGRpc3BsYXkgc2VydmVyIC4uLiBnaXZpbmcgdXAgYWZ0ZXIgMyByZXRyaWVzLicpCisg
ICAgICAgICAgICAgICAgcmFpc2UgUnVudGltZUVycm9yKCdVbmFibGUgdG8gc3RhcnQgWHZmYiBk
aXNwbGF5IHNlcnZlcicpCisgICAgICAgICAgICBfbG9nLmVycm9yKCdGYWlsZWQgdG8gc3RhcnQg
WHZmYiBkaXNwbGF5IHNlcnZlciAuLi4gcmV0cnlpbmcgWyAlcyBvZiAzIF0uJyAlIHNlbGYuX3h2
ZmJkcml2ZXIuX2N1cnJlbnRfcmV0cnlfc3RhcnRfeHZmYikKKyAgICAgICAgICAgIHJldHVybiBz
ZWxmLl9zZXR1cF9lbnZpcm9uX2Zvcl90ZXN0KCkKKwogICAgICAgICB3ZXN0b25fc29ja2V0ID0g
J1dLVGVzdGluZy13ZXN0b24tJTAzMngnICUgcmFuZG9tLmdldHJhbmRiaXRzKDEyOCkKICAgICAg
ICAgd2VzdG9uX2NvbW1hbmQgPSBbJ3dlc3RvbicsICctLXNvY2tldD0lcycgJSB3ZXN0b25fc29j
a2V0LCAnLS13aWR0aD0xMDI0JywgJy0taGVpZ2h0PTc2OCcsICctLXVzZS1waXhtYW4nXQogICAg
ICAgICBpZiBzZWxmLl9wb3J0Ll9zaG91bGRfdXNlX2poYnVpbGQoKToKZGlmZiAtLWdpdCBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC93ZXN0b25kcml2ZXJfdW5pdHRlc3QucHkgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvd2VzdG9uZHJpdmVyX3VuaXR0ZXN0LnB5CmluZGV4IGYz
ZTZiMzQ2OTQ5YjQxMmU2NmY4ZGQzZjk1OGNlMTFmNDA1NzQyZTkuLjhiODY5NThmN2M2OTJhZGQ1
NjRkMDg0Y2YxYWFmMTcxOGRmNmYzZTIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvcG9ydC93ZXN0b25kcml2ZXJfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9wb3J0L3dlc3RvbmRyaXZlcl91bml0dGVzdC5weQpAQCAtNTAsNiArNTAsOSBAQCBjbGFz
cyBXZXN0b25YdmZiRHJpdmVyRGlzcGxheVRlc3QoKToKICAgICBkZWYgX3h2ZmJfcnVuKHNlbGYs
IGVudmlyb25tZW50KToKICAgICAgICAgcmV0dXJuIHNlbGYuX2V4cGVjdGVkX3h2ZmJkaXNwbGF5
CiAKKyAgICBkZWYgX3h2ZmJfY2hlY2tfaWZfcmVhZHkoc2VsZiwgZGlzcGxheV9pZCk6CisgICAg
ICAgIHJldHVybiBUcnVlCisKIAogY2xhc3MgV2VzdG9uRHJpdmVyVGVzdCh1bml0dGVzdC5UZXN0
Q2FzZSk6CiAgICAgZGVmIG1ha2VfZHJpdmVyKHNlbGYpOgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9wb3J0L3h2ZmJkcml2ZXIucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L3BvcnQveHZmYmRyaXZlci5weQppbmRleCBjYmQwODYwMTJmOTQyODA1MWY3ZjFlODI1ZTBhNTgy
NDk1NjViZTc5Li4zOTg2MTA0NjYxNjI3NjUxMjFkZjZjNDc2NjQ0NDZmY2Q1NDljNmZmIDEwMDY0
NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQveHZmYmRyaXZlci5weQorKysgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQveHZmYmRyaXZlci5weQpAQCAtMSw1ICsxLDUgQEAK
ICMgQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0j
IENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorIyBDb3B5cmlnaHQgKEMpIDIwMTQtMjAy
MSBJZ2FsaWEgUy5MLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtMjksNiAr
MjksNyBAQAogCiBpbXBvcnQgbG9nZ2luZwogaW1wb3J0IG9zCitpbXBvcnQgc3VicHJvY2Vzcwog
aW1wb3J0IHN5cwogaW1wb3J0IHJlCiBpbXBvcnQgdGltZQpAQCAtNDEsNiArNDIsMTMgQEAgX2xv
ZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKQogCiAKIGNsYXNzIFh2ZmJEcml2ZXIoRHJp
dmVyKToKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqYXJncywgKiprd2FyZ3MpOgorICAgICAg
ICBEcml2ZXIuX19pbml0X18oc2VsZiwgKmFyZ3MsICoqa3dhcmdzKQorICAgICAgICBzZWxmLl94
dmZiX3Byb2Nlc3MgPSBOb25lCisgICAgICAgIHNlbGYuX2N1cnJlbnRfcmV0cnlfc3RhcnRfeHZm
YiA9IDAKKyAgICAgICAgc2VsZi5fcHJpbnRfc2NyZWVuX3NpemVfcHJvY2Vzc19mb3JfdGVzdGlu
ZyA9IE5vbmUgICMgcmVxdWlyZWQgZm9yIHVuaXQgdGVzdHMKKwogICAgIEBzdGF0aWNtZXRob2QK
ICAgICBkZWYgY2hlY2tfZHJpdmVyKHBvcnQpOgogICAgICAgICB4dmZiX2ZpbmRjbWQgPSBbJ3do
aWNoJywgJ1h2ZmInXQpAQCAtNDgsNyArNTYsNyBAQCBjbGFzcyBYdmZiRHJpdmVyKERyaXZlcik6
CiAgICAgICAgICAgICAgICAgeHZmYl9maW5kY21kID0gcG9ydC5famhidWlsZF93cmFwcGVyICsg
eHZmYl9maW5kY21kCiAgICAgICAgIHh2ZmJfZm91bmQgPSBwb3J0Lmhvc3QuZXhlY3V0aXZlLnJ1
bl9jb21tYW5kKHh2ZmJfZmluZGNtZCwgcmV0dXJuX2V4aXRfY29kZT1UcnVlKSA9PSAwCiAgICAg
ICAgIGlmIG5vdCB4dmZiX2ZvdW5kOgotICAgICAgICAgICAgX2xvZy5lcnJvcigiTm8gWHZmYiBm
b3VuZC4gQ2Fubm90IHJ1biBsYXlvdXQgdGVzdHMuIikKKyAgICAgICAgICAgIF9sb2cuZXJyb3Io
J05vIFh2ZmIgZm91bmQuIENhbm5vdCBydW4gbGF5b3V0IHRlc3RzLicpCiAgICAgICAgIHJldHVy
biB4dmZiX2ZvdW5kCiAKICAgICBkZWYgX3h2ZmJfcGlwZShzZWxmKToKQEAgLTg2LDIxICs5NCw3
MyBAQCBjbGFzcyBYdmZiRHJpdmVyKERyaXZlcik6CiAKICAgICBkZWYgX3h2ZmJfcnVuKHNlbGYs
IGVudmlyb25tZW50KToKICAgICAgICAgcmVhZF9mZCwgd3JpdGVfZmQgPSBzZWxmLl94dmZiX3Bp
cGUoKQotICAgICAgICBydW5feHZmYiA9IFsiWHZmYiIsICItZGlzcGxheWZkIiwgc3RyKHdyaXRl
X2ZkKSwgIi1zY3JlZW4iLCAgIjAiLCAiMTAyNHg3Njh4JXMiICUgc2VsZi5feHZmYl9zY3JlZW5f
ZGVwdGgoKSwgIi1ub2xpc3RlbiIsICJ0Y3AiXQorICAgICAgICBydW5feHZmYiA9IFsnWHZmYics
ICctZGlzcGxheWZkJywgc3RyKHdyaXRlX2ZkKSwgJy1ub2xpc3RlbicsICd0Y3AnLAorICAgICAg
ICAgICAgICAgICAgICAnK2V4dGVuc2lvbicsICdHTFgnLCAnLWFjJywgJy1zY3JlZW4nLCAnMCcs
CisgICAgICAgICAgICAgICAgICAgICclc3glcycgJSAoc2VsZi5feHZmYl9zY3JlZW5fc2l6ZSgp
LCBzZWxmLl94dmZiX3NjcmVlbl9kZXB0aCgpKV0KICAgICAgICAgaWYgc2VsZi5fcG9ydC5fc2hv
dWxkX3VzZV9qaGJ1aWxkKCk6CiAgICAgICAgICAgICBydW5feHZmYiA9IHNlbGYuX3BvcnQuX2po
YnVpbGRfd3JhcHBlciArIHJ1bl94dmZiCi0gICAgICAgIHdpdGggb3Blbihvcy5kZXZudWxsLCAn
dycpIGFzIGRldm51bGw6Ci0gICAgICAgICAgICAjIHB5dGhvbjMgd2lsbCB0cnkgdG8gY2xvc2Ug
dGhlIGZpbGUgZGVzY3JpcHRvcnMgYnkgZGVmYXVsdAotICAgICAgICAgICAgc2VsZi5feHZmYl9w
cm9jZXNzID0gc2VsZi5fcG9ydC5ob3N0LmV4ZWN1dGl2ZS5wb3BlbihydW5feHZmYiwgc3RkZXJy
PWRldm51bGwsIGVudj1lbnZpcm9ubWVudCwgY2xvc2VfZmRzPUZhbHNlKQotICAgICAgICAgICAg
ZGlzcGxheV9pZCA9IHNlbGYuX3h2ZmJfcmVhZF9kaXNwbGF5X2lkKHJlYWRfZmQpCi0KKyAgICAg
ICAgc2VsZi5feHZmYl9wcm9jZXNzID0gc2VsZi5fcG9ydC5ob3N0LmV4ZWN1dGl2ZS5wb3Blbihy
dW5feHZmYiwgc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSwgc3RkZXJyPXN1YnByb2Nlc3MuU1RET1VU
LCBlbnY9ZW52aXJvbm1lbnQsIGNsb3NlX2Zkcz1GYWxzZSkKKyAgICAgICAgZGlzcGxheV9pZCA9
IHNlbGYuX3h2ZmJfcmVhZF9kaXNwbGF5X2lkKHJlYWRfZmQpCiAgICAgICAgIHNlbGYuX3h2ZmJf
Y2xvc2VfcGlwZSgocmVhZF9mZCwgd3JpdGVfZmQpKQotCiAgICAgICAgIHJldHVybiBkaXNwbGF5
X2lkCiAKICAgICBkZWYgX3h2ZmJfc2NyZWVuX2RlcHRoKHNlbGYpOgogICAgICAgICByZXR1cm4g
b3MuZW52aXJvbi5nZXQoJ1hWRkJfU0NSRUVOX0RFUFRIJywgJzI0JykKIAorICAgIGRlZiBfeHZm
Yl9zY3JlZW5fc2l6ZShzZWxmKToKKyAgICAgICAgcmV0dXJuIG9zLmVudmlyb24uZ2V0KCdYVkZC
X1NDUkVFTl9TSVpFJywgJzEwMjR4NzY4JykKKworICAgIGRlZiBfeHZmYl9zdG9wKHNlbGYpOgor
ICAgICAgICBpZiBzZWxmLl94dmZiX3Byb2Nlc3M6CisgICAgICAgICAgICBzZWxmLl9wb3J0Lmhv
c3QuZXhlY3V0aXZlLmtpbGxfcHJvY2VzcyhzZWxmLl94dmZiX3Byb2Nlc3MucGlkKQorICAgICAg
ICAgICAgc2VsZi5feHZmYl9wcm9jZXNzID0gTm9uZQorCisgICAgZGVmIF94dmZiX2NoZWNrX2lm
X3JlYWR5KHNlbGYsIGRpc3BsYXlfaWQpOgorICAgICAgICBlbnZpcm9ubWVudF9wcmludF9zY3Jl
ZW5fc2l6ZV9wcm9jZXNzID0gc3VwZXIoWHZmYkRyaXZlciwgc2VsZikuX3NldHVwX2Vudmlyb25f
Zm9yX3Rlc3QoKQorICAgICAgICBlbnZpcm9ubWVudF9wcmludF9zY3JlZW5fc2l6ZV9wcm9jZXNz
WydESVNQTEFZJ10gPSAnOiVkJyAlIGRpc3BsYXlfaWQKKyAgICAgICAgZW52aXJvbm1lbnRfcHJp
bnRfc2NyZWVuX3NpemVfcHJvY2Vzc1snR0RLX0JBQ0tFTkQnXSA9ICd4MTEnCisgICAgICAgIHdh
aXRlZF9zZWNvbmRzX2Zvcl94dmZiX3JlYWR5ID0gMAorICAgICAgICB4dmZiX3NlcnZlcl9yZXBs
eWluZ19hc19leHBlY3RlZCA9IEZhbHNlCisgICAgICAgIHdoaWxlIFRydWU6CisgICAgICAgICAg
ICB0cnk6CisgICAgICAgICAgICAgICAgdGltZW91dF9leHBpcmVkID0gRmFsc2UKKyAgICAgICAg
ICAgICAgICBxdWVyeV9mYWlsZWQgPSBGYWxzZQorICAgICAgICAgICAgICAgIHByaW50X3NjcmVl
bl9zaXplX3Byb2Nlc3MgPSBzZWxmLl9wcmludF9zY3JlZW5fc2l6ZV9wcm9jZXNzX2Zvcl90ZXN0
aW5nIGlmIHNlbGYuX3ByaW50X3NjcmVlbl9zaXplX3Byb2Nlc3NfZm9yX3Rlc3RpbmcgZWxzZSBc
CisgICAgICAgICAgICAgICAgICAgIHNlbGYuX3BvcnQuaG9zdC5leGVjdXRpdmUucG9wZW4oW3Nl
bGYuX3BvcnQucGF0aF9mcm9tX3dlYmtpdF9iYXNlKCdUb29scycsICdndGsnLCAncHJpbnQtc2Ny
ZWVuLXNpemUnKV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSwgc3RkZXJyPXN1YnByb2Nlc3MuU1RET1VU
LCBlbnY9ZW52aXJvbm1lbnRfcHJpbnRfc2NyZWVuX3NpemVfcHJvY2VzcykKKyAgICAgICAgICAg
ICAgICBzdGRvdXQsIHN0ZGVyciA9IHByaW50X3NjcmVlbl9zaXplX3Byb2Nlc3MuY29tbXVuaWNh
dGUoKQorICAgICAgICAgICAgZXhjZXB0IHN1YnByb2Nlc3MuVGltZW91dEV4cGlyZWQ6CisgICAg
ICAgICAgICAgICAgX2xvZy5kZWJ1ZygnVGltZW91dCBleHBpcmVkIHRyeWluZyB0byBxdWVyeSB0
aGUgWHZmYiBkaXNwbGF5IHNlcnZlci4nKQorICAgICAgICAgICAgICAgIHRpbWVvdXRfZXhwaXJl
ZCA9IFRydWUKKyAgICAgICAgICAgICAgICBwcmludF9zY3JlZW5fc2l6ZV9wcm9jZXNzLmtpbGwo
KQorICAgICAgICAgICAgICAgIHN0ZG91dCwgc3RkZXJyID0gcHJpbnRfc2NyZWVuX3NpemVfcHJv
Y2Vzcy5jb21tdW5pY2F0ZSgpCisgICAgICAgICAgICAgICAgd2FpdGVkX3NlY29uZHNfZm9yX3h2
ZmJfcmVhZHkgKz0gMgorICAgICAgICAgICAgaWYgbm90IHRpbWVvdXRfZXhwaXJlZDoKKyAgICAg
ICAgICAgICAgICBpZiBwcmludF9zY3JlZW5fc2l6ZV9wcm9jZXNzLnJldHVybmNvZGUgPT0gMDoK
KyAgICAgICAgICAgICAgICAgICAgcXVlcmllZF9zY3JlZW5fc2l6ZSA9IHN0ZG91dC5kZWNvZGUo
J1VURi04Jykuc3RyaXAoKQorICAgICAgICAgICAgICAgICAgICBpZiBxdWVyaWVkX3NjcmVlbl9z
aXplID09IHNlbGYuX3h2ZmJfc2NyZWVuX3NpemUoKToKKyAgICAgICAgICAgICAgICAgICAgICAg
IHh2ZmJfc2VydmVyX3JlcGx5aW5nX2FzX2V4cGVjdGVkID0gVHJ1ZQorICAgICAgICAgICAgICAg
ICAgICAgICAgX2xvZy5kZWJ1ZygnVGhlIFh2ZmIgZGlzcGxheSBzZXJ2ZXIgIjolZCIgaXMgcmVh
ZHkgYW5kIHJlcGx5aW5nIGFzIGV4cGVjdGVkLicgJSBkaXNwbGF5X2lkKQorICAgICAgICAgICAg
ICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAg
ICAgICAgICAgICAgIF9sb2cud2FybmluZygnVGhlIHF1ZXJpZWQgWHZmYiBzY3JlZW4gc2l6ZSAi
JXMiIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RhdGlvbiAiJXMiLicgJSAocXVlcmllZF9zY3Jl
ZW5fc2l6ZSwgc2VsZi5feHZmYl9zY3JlZW5fc2l6ZSgpKSkKKyAgICAgICAgICAgICAgICBlbHNl
OgorICAgICAgICAgICAgICAgICAgICBfbG9nLndhcm5pbmcoJ1RoZSBwcmludC1zY3JlZW4tc2l6
ZSB0b29sIHJldHVybmVkIG5vbi16ZXJvIHN0YXR1cy4gc3Rkb3V0IGlzICIlcyIgYW5kIHN0ZGVy
ciBpcyAiJXMiJyAlIChzdGRvdXQsIHN0ZGVycikpCisgICAgICAgICAgICAgICAgICAgIHF1ZXJ5
X2ZhaWxlZCA9IFRydWUKKyAgICAgICAgICAgIGlmIHRpbWVvdXRfZXhwaXJlZCBvciBxdWVyeV9m
YWlsZWQ6CisgICAgICAgICAgICAgICAgaWYgc2VsZi5feHZmYl9wcm9jZXNzLnBvbGwoKToKKyAg
ICAgICAgICAgICAgICAgICAgeHZmYl9zdGRvdXQsIHh2ZmJfc3RkZXJyID0gc2VsZi5feHZmYl9w
cm9jZXNzLmNvbW11bmljYXRlKCkKKyAgICAgICAgICAgICAgICAgICAgX2xvZy5lcnJvcignVGhl
IFh2ZmIgZGlzcGxheSBzZXJ2ZXIgaGFzIGV4aXRlZCB1bmV4cGVjdGVkbHkgd2l0aCBhIHJldHVy
biBjb2RlIG9mICVzLiBzdGRvdXQgaXMgIiVzIiBhbmQgc3RkZXJyIGlzICIlcyInICUgKHNlbGYu
X3h2ZmJfcHJvY2Vzcy5wb2xsKCksIHh2ZmJfc3Rkb3V0LCB4dmZiX3N0ZGVycikpCisgICAgICAg
ICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICAgICBpZiB3YWl0ZWRfc2Vjb25kc19mb3JfeHZm
Yl9yZWFkeSA+IDU6CisgICAgICAgICAgICAgICAgX2xvZy5lcnJvcignVGltZW91dCByZWFjaGVk
IG1lYW53aGlsZSB3YWl0aW5nIGZvciB0aGUgWHZmYiBkaXNwbGF5IHNlcnZlciB0byBiZSByZWFk
eScpCisgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgIF9sb2cuZGVidWcoJ1dhaXRp
bmcgZm9yIFh2ZmIgZGlzcGxheSBzZXJ2ZXIgdG8gYmUgcmVhZHkuJykKKyAgICAgICAgICAgIGlm
IG5vdCBzZWxmLl9wcmludF9zY3JlZW5fc2l6ZV9wcm9jZXNzX2Zvcl90ZXN0aW5nOgorICAgICAg
ICAgICAgICAgIHRpbWUuc2xlZXAoMSkgICMgb25seSB3YWl0IHdoZW4gbm90IHJ1bm5pbmcgdW5p
dCB0ZXN0cworICAgICAgICAgICAgd2FpdGVkX3NlY29uZHNfZm9yX3h2ZmJfcmVhZHkgKz0gMQor
ICAgICAgICByZXR1cm4geHZmYl9zZXJ2ZXJfcmVwbHlpbmdfYXNfZXhwZWN0ZWQKKwogICAgIGRl
ZiBfc2V0dXBfZW52aXJvbl9mb3JfdGVzdChzZWxmKToKICAgICAgICAgcG9ydF9zZXJ2ZXJfZW52
aXJvbm1lbnQgPSBzZWxmLl9wb3J0LnNldHVwX2Vudmlyb25fZm9yX3NlcnZlcihzZWxmLl9zZXJ2
ZXJfbmFtZSkKICAgICAgICAgZHJpdmVyX2Vudmlyb25tZW50ID0gc3VwZXIoWHZmYkRyaXZlciwg
c2VsZikuX3NldHVwX2Vudmlyb25fZm9yX3Rlc3QoKQpAQCAtMTExLDEwICsxNzEsMjUgQEAgY2xh
c3MgWHZmYkRyaXZlcihEcml2ZXIpOgogICAgICAgICBkcml2ZXJfZW52aXJvbm1lbnRbJ1VOREVS
X1hWRkInXSA9ICd5ZXMnCiAgICAgICAgIGRyaXZlcl9lbnZpcm9ubWVudFsnR0RLX0JBQ0tFTkQn
XSA9ICd4MTEnCiAgICAgICAgIGRyaXZlcl9lbnZpcm9ubWVudFsnTE9DQUxfUkVTT1VSQ0VfUk9P
VCddID0gc2VsZi5fcG9ydC5sYXlvdXRfdGVzdHNfZGlyKCkKKworICAgICAgICAjIEVuc3VyZSB0
aGF0IFh2ZmIgaXMgcmVhZHkgYW5kIHJlcGx5aW5nIGFuZCBleHBlY3RlZCBiZWZvcmUgY29udGlu
dWluZywgZ2l2ZSBpdCAzIHRyaWVzLgorICAgICAgICBpZiBub3Qgc2VsZi5feHZmYl9jaGVja19p
Zl9yZWFkeShkaXNwbGF5X2lkKToKKyAgICAgICAgICAgIHNlbGYuX2N1cnJlbnRfcmV0cnlfc3Rh
cnRfeHZmYiArPSAxCisgICAgICAgICAgICBpZiBzZWxmLl9jdXJyZW50X3JldHJ5X3N0YXJ0X3h2
ZmIgPiAzOgorICAgICAgICAgICAgICAgIF9sb2cuZXJyb3IoJ0ZhaWxlZCB0byBzdGFydCBYdmZi
IGRpc3BsYXkgc2VydmVyIC4uLiBnaXZpbmcgdXAgYWZ0ZXIgMyByZXRyaWVzLicpCisgICAgICAg
ICAgICAgICAgcmFpc2UgUnVudGltZUVycm9yKCdVbmFibGUgdG8gc3RhcnQgWHZmYiBkaXNwbGF5
IHNlcnZlcicpCisgICAgICAgICAgICBfbG9nLmVycm9yKCdGYWlsZWQgdG8gc3RhcnQgWHZmYiBk
aXNwbGF5IHNlcnZlciAuLi4gcmV0cnlpbmcgWyAlcyBvZiAzIF0uJyAlIHNlbGYuX2N1cnJlbnRf
cmV0cnlfc3RhcnRfeHZmYikKKyAgICAgICAgICAgIHJldHVybiBzZWxmLl9zZXR1cF9lbnZpcm9u
X2Zvcl90ZXN0KCkKKwogICAgICAgICByZXR1cm4gZHJpdmVyX2Vudmlyb25tZW50CiAKKyAgICBk
ZWYgaGFzX2NyYXNoZWQoc2VsZik6CisgICAgICAgIGlmIHNlbGYuX3h2ZmJfcHJvY2VzcyBhbmQg
c2VsZi5feHZmYl9wcm9jZXNzLnBvbGwoKToKKyAgICAgICAgICAgIHNlbGYuX2NyYXNoZWRfcHJv
Y2Vzc19uYW1lID0gJ1h2ZmInCisgICAgICAgICAgICBzZWxmLl9jcmFzaGVkX3BpZCA9IHNlbGYu
X3h2ZmJfcHJvY2Vzcy5waWQKKyAgICAgICAgICAgIHJldHVybiBUcnVlCisgICAgICAgIHJldHVy
biBzdXBlcihYdmZiRHJpdmVyLCBzZWxmKS5oYXNfY3Jhc2hlZCgpCisKICAgICBkZWYgc3RvcChz
ZWxmKToKICAgICAgICAgc3VwZXIoWHZmYkRyaXZlciwgc2VsZikuc3RvcCgpCi0gICAgICAgIGlm
IGdldGF0dHIoc2VsZiwgJ194dmZiX3Byb2Nlc3MnLCBOb25lKToKLSAgICAgICAgICAgIHNlbGYu
X3BvcnQuaG9zdC5leGVjdXRpdmUua2lsbF9wcm9jZXNzKHNlbGYuX3h2ZmJfcHJvY2Vzcy5waWQp
Ci0gICAgICAgICAgICBzZWxmLl94dmZiX3Byb2Nlc3MgPSBOb25lCisgICAgICAgIHNlbGYuX3h2
ZmJfc3RvcCgpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQveHZmYmRy
aXZlcl91bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC94dmZiZHJpdmVy
X3VuaXR0ZXN0LnB5CmluZGV4IDQ2NzRjODBlM2NlMDEzYmMwZTE2OTdlN2M4ZjI3OWVmMWEzYTBj
NWQuLjI3MjllOTk4OTAzMGQzNWNiNzYzM2FjNjk2YzJmN2QyMzBhMmUyYjEgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC94dmZiZHJpdmVyX3VuaXR0ZXN0LnB5CisrKyBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC94dmZiZHJpdmVyX3VuaXR0ZXN0LnB5CkBAIC0z
MSw3ICszMSw3IEBAIGltcG9ydCBsb2dnaW5nCiBpbXBvcnQgdW5pdHRlc3QKIAogZnJvbSB3ZWJr
aXRweS5jb21tb24uc3lzdGVtLmZpbGVzeXN0ZW1fbW9jayBpbXBvcnQgTW9ja0ZpbGVTeXN0ZW0K
LWZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5leGVjdXRpdmVfbW9jayBpbXBvcnQgTW9ja0V4
ZWN1dGl2ZTIKK2Zyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5leGVjdXRpdmVfbW9jayBpbXBv
cnQgTW9ja1Byb2Nlc3MKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5zeXN0ZW1ob3N0X21v
Y2sgaW1wb3J0IE1vY2tTeXN0ZW1Ib3N0CiBmcm9tIHdlYmtpdHB5LnBvcnQgaW1wb3J0IFBvcnQK
IGZyb20gd2Via2l0cHkucG9ydC5zZXJ2ZXJfcHJvY2Vzc19tb2NrIGltcG9ydCBNb2NrU2VydmVy
UHJvY2VzcwpAQCAtNDQsNyArNDQsNyBAQCBfbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1l
X18pCiAKIAogY2xhc3MgWHZmYkRyaXZlclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgotICAgIGRl
ZiBtYWtlX2RyaXZlcihzZWxmLCB3b3JrZXJfbnVtYmVyPTAsIHhvcmdfcnVubmluZz1GYWxzZSwg
ZXhlY3V0aXZlPU5vbmUpOgorICAgIGRlZiBtYWtlX2RyaXZlcihzZWxmLCB3b3JrZXJfbnVtYmVy
PTAsIHhvcmdfcnVubmluZz1GYWxzZSwgZXhlY3V0aXZlPU5vbmUsIHByaW50X3NjcmVlbl9zaXpl
X3Byb2Nlc3M9Tm9uZSk6CiAgICAgICAgIHBvcnQgPSBQb3J0KE1vY2tTeXN0ZW1Ib3N0KGxvZ19l
eGVjdXRpdmU9VHJ1ZSwgZXhlY3V0aXZlPWV4ZWN1dGl2ZSksICd4dmZiZHJpdmVydGVzdHBvcnQn
LCBvcHRpb25zPU1vY2tPcHRpb25zKGNvbmZpZ3VyYXRpb249J1JlbGVhc2UnKSkKICAgICAgICAg
cG9ydC5fY29uZmlnLmJ1aWxkX2RpcmVjdG9yeSA9IGxhbWJkYSBjb25maWd1cmF0aW9uOiAiL21v
Y2stYnVpbGQiCiAgICAgICAgIHBvcnQuX3Rlc3RfcnVubmVyX3Byb2Nlc3NfY29uc3RydWN0b3Ig
PSBNb2NrU2VydmVyUHJvY2VzcwpAQCAtNTcsNiArNTcsNyBAQCBjbGFzcyBYdmZiRHJpdmVyVGVz
dCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIGRyaXZlci5feHZmYl9waXBlID0gbGFtYmRh
OiAoMywgNCkKICAgICAgICAgZHJpdmVyLl94dmZiX3JlYWRfZGlzcGxheV9pZCA9IGxhbWJkYSB4
OiAxCiAgICAgICAgIGRyaXZlci5feHZmYl9jbG9zZV9waXBlID0gbGFtYmRhIHA6IE5vbmUKKyAg
ICAgICAgZHJpdmVyLl9wcmludF9zY3JlZW5fc2l6ZV9wcm9jZXNzX2Zvcl90ZXN0aW5nID0gcHJp
bnRfc2NyZWVuX3NpemVfcHJvY2VzcyBpZiBwcmludF9zY3JlZW5fc2l6ZV9wcm9jZXNzIGVsc2Ug
TW9ja1Byb2Nlc3MoZHJpdmVyLl94dmZiX3NjcmVlbl9zaXplKCkpCiAgICAgICAgIGRyaXZlci5f
cG9ydF9zZXJ2ZXJfZW52aXJvbm1lbnQgPSBwb3J0LnNldHVwX2Vudmlyb25fZm9yX3NlcnZlcihw
b3J0LmRyaXZlcl9uYW1lKCkpCiAgICAgICAgIHJldHVybiBkcml2ZXIKIApAQCAtNjcsNyArNjgs
NyBAQCBjbGFzcyBYdmZiRHJpdmVyVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIGRy
aXZlci5feHZmYl9wcm9jZXNzID0gTm9uZQogCiAgICAgZGVmIGFzc2VydERyaXZlclN0YXJ0U3Vj
Y2Vzc2Z1bChzZWxmLCBkcml2ZXIsIGV4cGVjdGVkX2xvZ3MsIGV4cGVjdGVkX2Rpc3BsYXksIHBp
eGVsX3Rlc3RzPUZhbHNlKToKLSAgICAgICAgd2l0aCBPdXRwdXRDYXB0dXJlKGxldmVsPWxvZ2dp
bmcuSU5GTykgYXMgY2FwdHVyZWQ6CisgICAgICAgIHdpdGggT3V0cHV0Q2FwdHVyZShsZXZlbD1s
b2dnaW5nLkRFQlVHKSBhcyBjYXB0dXJlZDoKICAgICAgICAgICAgIGRyaXZlci5zdGFydChwaXhl
bF90ZXN0cywgW10pCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY2FwdHVyZWQucm9vdC5sb2cu
Z2V0dmFsdWUoKSwgZXhwZWN0ZWRfbG9ncykKIApAQCAtNzUsMTggKzc2LDM1IEBAIGNsYXNzIFh2
ZmJEcml2ZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChkcml2ZXIuX3NlcnZlcl9wcm9jZXNzLmVudlsnRElTUExBWSddLCBleHBlY3RlZF9kaXNwbGF5
KQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGRyaXZlci5fc2VydmVyX3Byb2Nlc3MuZW52WydH
REtfQkFDS0VORCddLCAneDExJykKIAotICAgIGRlZiB0ZXN0X3N0YXJ0KHNlbGYpOgorICAgIGRl
ZiB0ZXN0X3h2ZmJfc3RhcnRfYW5kX3JlYWR5KHNlbGYpOgogICAgICAgICBkcml2ZXIgPSBzZWxm
Lm1ha2VfZHJpdmVyKCkKLSAgICAgICAgZXhwZWN0ZWRfbG9ncyA9ICgiTU9DSyBwb3BlbjogWydY
dmZiJywgJy1kaXNwbGF5ZmQnLCAnNCcsICctc2NyZWVuJywgJzAnLCAnMTAyNHg3Njh4MjQnLCAn
LW5vbGlzdGVuJywgJ3RjcCddLCBlbnY9JXNcbiIgJSBkcml2ZXIuX3BvcnRfc2VydmVyX2Vudmly
b25tZW50KQotICAgICAgICBzZWxmLmFzc2VydERyaXZlclN0YXJ0U3VjY2Vzc2Z1bChkcml2ZXIs
IGV4cGVjdGVkX2xvZ3M9ZXhwZWN0ZWRfbG9ncywgZXhwZWN0ZWRfZGlzcGxheT0iOjEiKQorICAg
ICAgICBleHBlY3RlZF9kaXNwbGF5ID0gJzoxJworICAgICAgICBleHBlY3RlZF9sb2dzID0gKCJN
T0NLIHBvcGVuOiBbJ1h2ZmInLCAnLWRpc3BsYXlmZCcsICc0JywgJy1ub2xpc3RlbicsICd0Y3An
LCAnK2V4dGVuc2lvbicsICdHTFgnLCAnLWFjJywgJy1zY3JlZW4nLCAnMCcsICcxMDI0eDc2OHgy
NCddLCBlbnY9JXNcbiIgJSBkcml2ZXIuX3BvcnRfc2VydmVyX2Vudmlyb25tZW50KQorICAgICAg
ICBleHBlY3RlZF9sb2dzICs9ICgnVGhlIFh2ZmIgZGlzcGxheSBzZXJ2ZXIgIiVzIiBpcyByZWFk
eSBhbmQgcmVwbHlpbmcgYXMgZXhwZWN0ZWQuXG4nICUgZXhwZWN0ZWRfZGlzcGxheSkKKyAgICAg
ICAgc2VsZi5hc3NlcnREcml2ZXJTdGFydFN1Y2Nlc3NmdWwoZHJpdmVyLCBleHBlY3RlZF9sb2dz
PWV4cGVjdGVkX2xvZ3MsIGV4cGVjdGVkX2Rpc3BsYXk9ZXhwZWN0ZWRfZGlzcGxheSkKICAgICAg
ICAgc2VsZi5jbGVhbnVwX2RyaXZlcihkcml2ZXIpCiAKLSAgICBkZWYgdGVzdF9zdGFydF9hcmJp
dHJhcnlfd29ya2VyX251bWJlcihzZWxmKToKKyAgICBkZWYgdGVzdF94dmZiX3N0YXJ0X2FyYml0
cmFyeV93b3JrZXJfbnVtYmVyKHNlbGYpOgogICAgICAgICBkcml2ZXIgPSBzZWxmLm1ha2VfZHJp
dmVyKHdvcmtlcl9udW1iZXI9MTcpCi0gICAgICAgIGV4cGVjdGVkX2xvZ3MgPSAoIk1PQ0sgcG9w
ZW46IFsnWHZmYicsICctZGlzcGxheWZkJywgJzQnLCAnLXNjcmVlbicsICcwJywgJzEwMjR4NzY4
eDI0JywgJy1ub2xpc3RlbicsICd0Y3AnXSwgZW52PSVzXG4iICUgZHJpdmVyLl9wb3J0X3NlcnZl
cl9lbnZpcm9ubWVudCkKKyAgICAgICAgZXhwZWN0ZWRfZGlzcGxheSA9ICc6MScKKyAgICAgICAg
ZXhwZWN0ZWRfbG9ncyA9ICgiTU9DSyBwb3BlbjogWydYdmZiJywgJy1kaXNwbGF5ZmQnLCAnNCcs
ICctbm9saXN0ZW4nLCAndGNwJywgJytleHRlbnNpb24nLCAnR0xYJywgJy1hYycsICctc2NyZWVu
JywgJzAnLCAnMTAyNHg3Njh4MjQnXSwgZW52PSVzXG4iICUgZHJpdmVyLl9wb3J0X3NlcnZlcl9l
bnZpcm9ubWVudCkKKyAgICAgICAgZXhwZWN0ZWRfbG9ncyArPSAoJ1RoZSBYdmZiIGRpc3BsYXkg
c2VydmVyICIlcyIgaXMgcmVhZHkgYW5kIHJlcGx5aW5nIGFzIGV4cGVjdGVkLlxuJyAlIGV4cGVj
dGVkX2Rpc3BsYXkpCiAgICAgICAgIHNlbGYuYXNzZXJ0RHJpdmVyU3RhcnRTdWNjZXNzZnVsKGRy
aXZlciwgZXhwZWN0ZWRfbG9ncz1leHBlY3RlZF9sb2dzLCBleHBlY3RlZF9kaXNwbGF5PSI6MSIs
IHBpeGVsX3Rlc3RzPVRydWUpCiAgICAgICAgIHNlbGYuY2xlYW51cF9kcml2ZXIoZHJpdmVyKQog
CisgICAgZGVmIHRlc3RfeHZmYl9ub3RfcmVwbHlpbmcoc2VsZik6CisgICAgICAgIGZhaWxpbmdf
cHJpbnRfc2NyZWVuX3NpemVfcHJvY2VzcyA9IE1vY2tQcm9jZXNzKHJldHVybmNvZGU9MSkKKyAg
ICAgICAgZHJpdmVyID0gc2VsZi5tYWtlX2RyaXZlcihwcmludF9zY3JlZW5fc2l6ZV9wcm9jZXNz
PWZhaWxpbmdfcHJpbnRfc2NyZWVuX3NpemVfcHJvY2VzcykKKyAgICAgICAgd2l0aCBPdXRwdXRD
YXB0dXJlKGxldmVsPWxvZ2dpbmcuSU5GTykgYXMgY2FwdHVyZWQ6CisgICAgICAgICAgICBzZWxm
LmFzc2VydFJhaXNlc1JlZ2V4cChSdW50aW1lRXJyb3IsICdVbmFibGUgdG8gc3RhcnQgWHZmYiBk
aXNwbGF5IHNlcnZlcicsIGRyaXZlci5zdGFydCwgRmFsc2UsIFtdKQorICAgICAgICAgICAgY2Fw
dHVyZWRfbG9nID0gY2FwdHVyZWQucm9vdC5sb2cuZ2V0dmFsdWUoKQorICAgICAgICAgICAgZm9y
IHJldHJ5IGluIFsxLCAyLCAzXToKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUoJ0Zh
aWxlZCB0byBzdGFydCBYdmZiIGRpc3BsYXkgc2VydmVyIC4uLiByZXRyeWluZyBbIHt9IG9mIDMg
XS4nLmZvcm1hdChyZXRyeSkgaW4gY2FwdHVyZWRfbG9nKQorICAgICAgICAgICAgICAgIHNlbGYu
YXNzZXJ0RmFsc2UoJ0ZhaWxlZCB0byBzdGFydCBYdmZiIGRpc3BsYXkgc2VydmVyIC4uLiByZXRy
eWluZyBbIDQgb2YgMyBdLicgaW4gY2FwdHVyZWRfbG9nKQorICAgICAgICAgICAgc2VsZi5hc3Nl
cnRUcnVlKCdGYWlsZWQgdG8gc3RhcnQgWHZmYiBkaXNwbGF5IHNlcnZlciAuLi4gZ2l2aW5nIHVw
IGFmdGVyIDMgcmV0cmllcy4nIGluIGNhcHR1cmVkX2xvZykKKyAgICAgICAgICAgIHNlbGYuYXNz
ZXJ0VHJ1ZSgnVGhlIHByaW50LXNjcmVlbi1zaXplIHRvb2wgcmV0dXJuZWQgbm9uLXplcm8gc3Rh
dHVzJyBpbiBjYXB0dXJlZF9sb2cpCisgICAgICAgIHNlbGYuY2xlYW51cF9kcml2ZXIoZHJpdmVy
KQorCiAgICAgZGVmIHRlc3Rfc3RvcChzZWxmKToKICAgICAgICAgcG9ydCA9IFBvcnQoTW9ja1N5
c3RlbUhvc3QobG9nX2V4ZWN1dGl2ZT1UcnVlKSwgJ3h2ZmJkcml2ZXJ0ZXN0cG9ydCcsIG9wdGlv
bnM9TW9ja09wdGlvbnMoY29uZmlndXJhdGlvbj0nUmVsZWFzZScpKQogICAgICAgICBwb3J0Ll9l
eGVjdXRpdmUua2lsbF9wcm9jZXNzID0gbGFtYmRhIHg6IF9sb2cuaW5mbygiTU9DSyBraWxsX3By
b2Nlc3MgcGlkOiAiICsgc3RyKHgpKQpkaWZmIC0tZ2l0IGEvVG9vbHMvZ3RrL3ByaW50LXNjcmVl
bi1zaXplIGIvVG9vbHMvZ3RrL3ByaW50LXNjcmVlbi1zaXplCm5ldyBmaWxlIG1vZGUgMTAwNzU1
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVkMGFhNmE3
NWNiNmIwMWE2Mjk3ZDQ1NDM1NjViYjMxNThjZmRiMWYKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29s
cy9ndGsvcHJpbnQtc2NyZWVuLXNpemUKQEAgLTAsMCArMSw1NCBAQAorIyEvdXNyL2Jpbi9lbnYg
cHl0aG9uMworIworIyBDb3B5cmlnaHQgKEMpIDIwMjEgSWdhbGlhIFMuTC4KKyMKKyMgUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorIworIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsIHRoaXMKKyMg
ICAgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0IG5vdGljZSwKKyMgICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbgorIyAgICBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJV
VE9SUyAiQVMgSVMiIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
CisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgT1dORVIgT1Ig
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisjIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsKKyMgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisjIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisjIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitpbXBvcnQgYXJncGFyc2UKK2lt
cG9ydCBzeXMKK2ltcG9ydCBnaQorZ2kucmVxdWlyZV92ZXJzaW9uKCdHdGsnLCAnMy4wJykKK2dp
LnJlcXVpcmVfdmVyc2lvbignR2RrJywgJzMuMCcpCitmcm9tIGdpLnJlcG9zaXRvcnkgaW1wb3J0
IEd0aywgR2RrCisKKworZGVmIHByaW50X3NjcmVlbl9zaXplKG1vbml0b3JfaWQpOgorICAgIGRp
c3BsYXkgPSBHZGsuRGlzcGxheS5nZXRfZGVmYXVsdCgpCisgICAgaWYgbm90IGRpc3BsYXk6Cisg
ICAgICAgIHByaW50KCdVbmFibGUgdG8gZmluZCBhIGRpc3BsYXknKQorICAgICAgICByZXR1cm4g
MQorICAgIG1vbml0b3IgPSBkaXNwbGF5LmdldF9tb25pdG9yKG1vbml0b3JfaWQpCisgICAgaWYg
bm90IG1vbml0b3I6CisgICAgICAgIHByaW50KCdVbmFibGUgdG8gZmluZCBhIG1vbml0b3InKQor
ICAgICAgICByZXR1cm4gMQorICAgIGdlb21ldHJ5ID0gbW9uaXRvci5nZXRfZ2VvbWV0cnkoKQor
ICAgIHByaW50KCd7fXh7fScuZm9ybWF0KGdlb21ldHJ5LndpZHRoLCAgZ2VvbWV0cnkuaGVpZ2h0
KSkKKyAgICByZXR1cm4gMAorCisKKyMgVGhpcyB0b29sIGlzIHVzZWQgZnJvbSB0aGUgbGF5b3V0
IHRlc3RzIHdoZW4gcnVubmluZyB3aXRoIHRoZSBYdmZiIGRyaXZlciwKKyMgaW4gb3JkZXIgdG8g
Y2hlY2sgdGhhdCB0aGUgWHZmYiBzZXJ2ZXIgaXMgYWxpdmUgYW5kIGNvbmZpZ3VyZWQgYXMgZXhw
ZWN0ZWQuCisjIFBsZWFzZSwgZG9uJ3QgbW9kaWZ5IHRoaXMgdG9vbCB3aXRob3V0IGNoZWNraW5n
IGZpcnN0IGhvdyBpdCBpcyB1c2VkIGF0IHdlYmtpdHB5L3BvcnQveHZmYmRyaXZlci5weQoraWYg
X19uYW1lX18gPT0gJ19fbWFpbl9fJzoKKyAgICBwYXJzZXIgPSBhcmdwYXJzZS5Bcmd1bWVudFBh
cnNlcihkZXNjcmlwdGlvbj0nUHJpbnQgdGhlIGN1cnJlbnQgZGlzcGxheSBzaXplICh3aWR0aHho
ZWlnaHQpIG9mIGEgZ2l2ZW4gbW9uaXRvcicpCisgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgiLW4i
LCB0eXBlPWludCwgaGVscD0nTnVtYmVyIG9mIHRoZSBtb25pdG9yIHRoZSBxdWVyeScsIGRlZmF1
bHQ9MCkKKyAgICBhcmdzID0gcGFyc2VyLnBhcnNlX2FyZ3MoKQorICAgIHN5cy5leGl0KHByaW50
X3NjcmVlbl9zaXplKGFyZ3MubikpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>437409</attachid>
            <date>2021-09-06 06:32:18 -0700</date>
            <delta_ts>2021-09-06 12:48:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229758-20210906143135.patch</filename>
            <type>text/plain</type>
            <size>22825</size>
            <attacher name="Carlos Alberto Lopez Perez">clopez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyMDU1CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOTZjNjJiZGEzMjQ3NDVhOWI4NTQ4NDQ2MDIyMTJkYjdk
M2M2OGMwMS4uYmM3MWU4YWM2ZjE0ZjMzNmJiNjQ0NWIxN2EwNmE0ZDM2YzNjNGM3NyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1
IEBACisyMDIxLTA5LTA2ICBDYXJsb3MgQWxiZXJ0byBMb3BleiBQZXJleiAgPGNsb3BlekBpZ2Fs
aWEuY29tPgorCisgICAgICAgIFtHVEtdIFRoZSBYdmZiIGRpc3BsYXkgc2VydmVyIG1heSBmYWls
IHRvIHN0YXJ0IHNvbWV0aW1lcyBjYXVzaW5nIHRlc3RzIHRvIHJhbmRvbWx5IGNyYXNoCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjk3NTgKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBuZXcgZnVu
Y3Rpb24gaW4gWHZmYkRyaXZlcigpIHRvIGVuc3VyZSB0aGF0IHRoZSBkaXNwbGF5IHNlcnZlcgor
ICAgICAgICBhdCBhIGdpdmVuIGRpc3BsYXlfaWQgaXMgcmVwbHlpbmcgYXMgZXhwZWN0ZWQuIEFz
ayBpdCBmb3IgdGhlIHNjcmVlbgorICAgICAgICBzaXplIGF0IG1vbml0b3IgMCBhbmQgY29tcGFy
ZSB0aGUgcmVzdWx0IHdpdGggdGhlIG9uZSB3ZSBleHBlY3QgdG8KKyAgICAgICAgaGF2ZSBpbnNp
ZGUgWHZmYi4gRm9yIGRvaW5nIHRoaXMgY2hlY2sgYSBleHRlcm5hbCBweXRob24gcHJvZ3JhbSBp
cworICAgICAgICBjYWxsZWQgd2hpY2ggZG9lcyB0aGUgcXVlcnkgdXNpbmcgR1RLLiBVc2luZyBh
IGV4dGVybmFsIHByb2dyYW0gaXMKKyAgICAgICAgbW9yZSByb2J1c3QgYWdhaW5zdCBwb3NzaWJs
ZSBmYWlsdXJlcyBjYWxsaW5nIGludG8gR1RLIGFuZCBhbHNvIHdpbGwKKyAgICAgICAgYWxsb3cg
cmUtdXNpbmcgdGhpcyBwcm9ncmFtIGFsc28gdG8gY2hlY2sgdGhhdCB0aGUgd2VzdG9uIHNlcnZl
ciBpcworICAgICAgICBhbHNvIHJlcGx5aW5nIGFzIGV4cGVjdGVkIGZvciB0aGUgd2VzdG9uIGRy
aXZlciAob24gYSBmdXR1cmUgcGF0Y2gpLgorCisgICAgICAgIElmIHRoZSBYdmZiIGRyaXZlciBp
cyBub3QgcmVwbHlpbmcgYXMgZXhwZWN0ZWQgdGhlbiByZXN0YXJ0IGl0IGFuZAorICAgICAgICB0
cnkgYWdhaW4sIHVwIHRvIDMgcmV0cmllcy4KKworICAgICAgICBVc2UgdGhpcyBhbHNvIG9uIHRo
ZSB3ZXN0b24gZHJpdmVyIHRvIGNoZWNrIHRoYXQgdGhlIFh2ZmIgZHJpdmVyIGlzCisgICAgICAg
IHJlYWR5LgorCisgICAgICAgIFRoZSBjb2RlIGlzIGJvdGggY29tcGF0aWJsZSB3aXRoIHB5dGhv
bjIgYW5kIHB5dGhvbjMsIHdoZW4gcnVubmluZyBvbgorICAgICAgICBweXRob24yIGl0IHdpbGwg
dHJ5IGZpcnN0IHRvIHVzZSBzdWJwcm9jZXNzMzIgaWYgYXZhaWxhYmxlLCBvdGhlcndpc2UKKyAg
ICAgICAgd2lsbCB1c2Ugc3RhbmRhcmQgcHl0aG9uMiBzdWJwcm9jZXNzIHdpdGhvdXQgdXNpbmcg
dGhlIHRpbWVvdXQgZmVhdHVyZS4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9u
L3N5c3RlbS9leGVjdXRpdmVfbW9jay5weToKKyAgICAgICAgKE1vY2tQcm9jZXNzLl9faW5pdF9f
KToKKyAgICAgICAgKE1vY2tQcm9jZXNzLmNvbW11bmljYXRlKToKKyAgICAgICAgKiBTY3JpcHRz
L3dlYmtpdHB5L3BvcnQvd2VzdG9uZHJpdmVyLnB5OgorICAgICAgICAoV2VzdG9uRHJpdmVyLl9z
ZXR1cF9lbnZpcm9uX2Zvcl90ZXN0KToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3BvcnQv
d2VzdG9uZHJpdmVyX3VuaXR0ZXN0LnB5OgorICAgICAgICAoV2VzdG9uWHZmYkRyaXZlckRpc3Bs
YXlUZXN0Ll94dmZiX2NoZWNrX2lmX3JlYWR5KToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5
L3BvcnQveHZmYmRyaXZlci5weToKKyAgICAgICAgKFh2ZmJEcml2ZXIpOgorICAgICAgICAoWHZm
YkRyaXZlci5fX2luaXRfXyk6CisgICAgICAgIChYdmZiRHJpdmVyLmNoZWNrX2RyaXZlcik6Cisg
ICAgICAgIChYdmZiRHJpdmVyLl94dmZiX3J1bik6CisgICAgICAgIChYdmZiRHJpdmVyLl94dmZi
X3NjcmVlbl9zaXplKToKKyAgICAgICAgKFh2ZmJEcml2ZXIuX3h2ZmJfc3RvcCk6CisgICAgICAg
IChYdmZiRHJpdmVyLl94dmZiX2NoZWNrX2lmX3JlYWR5KToKKyAgICAgICAgKFh2ZmJEcml2ZXIu
X3NldHVwX2Vudmlyb25fZm9yX3Rlc3QpOgorICAgICAgICAoWHZmYkRyaXZlci5oYXNfY3Jhc2hl
ZCk6CisgICAgICAgIChYdmZiRHJpdmVyLnN0b3ApOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0
cHkvcG9ydC94dmZiZHJpdmVyX3VuaXR0ZXN0LnB5OgorICAgICAgICAoWHZmYkRyaXZlclRlc3Qu
bWFrZV9kcml2ZXIpOgorICAgICAgICAoWHZmYkRyaXZlclRlc3QuYXNzZXJ0RHJpdmVyU3RhcnRT
dWNjZXNzZnVsKToKKyAgICAgICAgKFh2ZmJEcml2ZXJUZXN0LnRlc3RfeHZmYl9zdGFydF9hbmRf
cmVhZHkpOgorICAgICAgICAoWHZmYkRyaXZlclRlc3QudGVzdF94dmZiX3N0YXJ0X2FyYml0cmFy
eV93b3JrZXJfbnVtYmVyKToKKyAgICAgICAgKFh2ZmJEcml2ZXJUZXN0LnRlc3RfeHZmYl9ub3Rf
cmVwbHlpbmcpOgorICAgICAgICAqIGd0ay9wcmludC1zY3JlZW4tc2l6ZTogQWRkZWQuCisKIDIw
MjEtMDktMDMgIEFha2FzaCBKYWluICA8YWFrYXNoX2phaW5AYXBwbGUuY29tPgogCiAgICAgICAg
IFtld3NdIEludm9rZSB2YWxpZGF0ZS1jaGFuZ2Vsb2cgd2l0aCBweXRob24gMwpkaWZmIC0tZ2l0
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2V4ZWN1dGl2ZV9tb2NrLnB5
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2V4ZWN1dGl2ZV9tb2NrLnB5
CmluZGV4IDAyYmVhZDE3YWI1YjQ2OGI0NTg2ZDZhYmNmMjllYTAzODYzNjIwZjUuLjViNGQ5MzUx
M2UyM2M1OTFkNGQ2MDZkYmQ5YWY2YzkzZGEzOTIxZjIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9leGVjdXRpdmVfbW9jay5weQorKysgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vZXhlY3V0aXZlX21vY2sucHkKQEAgLTM3LDIx
ICszNywyMyBAQCBfbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18pCiAKIAogY2xhc3Mg
TW9ja1Byb2Nlc3Mob2JqZWN0KToKLSAgICBkZWYgX19pbml0X18oc2VsZiwgc3Rkb3V0PSdNT0NL
IFNURE9VVFxuJywgc3RkZXJyPScnKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgc3Rkb3V0PSdN
T0NLIFNURE9VVFxuJywgc3RkZXJyPScnLCByZXR1cm5jb2RlPTApOgogICAgICAgICBzZWxmLnBp
ZCA9IDQyCiAgICAgICAgIHNlbGYuc3Rkb3V0ID0gQnl0ZXNJTyhzdHJpbmdfdXRpbHMuZW5jb2Rl
KHN0ZG91dCkpCiAgICAgICAgIHNlbGYuc3RkZXJyID0gQnl0ZXNJTyhzdHJpbmdfdXRpbHMuZW5j
b2RlKHN0ZGVycikpCiAgICAgICAgIHNlbGYuc3RkaW4gPSBCeXRlc0lPKCkKLSAgICAgICAgc2Vs
Zi5yZXR1cm5jb2RlID0gMAorICAgICAgICBzZWxmLnJldHVybmNvZGUgPSByZXR1cm5jb2RlCiAg
ICAgICAgIHNlbGYuX2lzX3J1bm5pbmcgPSBGYWxzZQogCiAgICAgZGVmIHdhaXQoc2VsZik6CiAg
ICAgICAgIHNlbGYuX2lzX3J1bm5pbmcgPSBGYWxzZQogICAgICAgICByZXR1cm4gc2VsZi5yZXR1
cm5jb2RlCiAKLSAgICBkZWYgY29tbXVuaWNhdGUoc2VsZiwgaW5wdXQ9Tm9uZSk6CisgICAgZGVm
IGNvbW11bmljYXRlKHNlbGYsIGlucHV0PU5vbmUsIHRpbWVvdXQ9Tm9uZSk6CiAgICAgICAgIHNl
bGYuX2lzX3J1bm5pbmcgPSBGYWxzZQotICAgICAgICByZXR1cm4gKHNlbGYuc3Rkb3V0LCBzZWxm
LnN0ZGVycikKKyAgICAgICAgc3Rkb3V0ID0gc2VsZi5zdGRvdXQucmVhZCgpIGlmIGlzaW5zdGFu
Y2Uoc2VsZi5zdGRvdXQsIEJ5dGVzSU8pIGVsc2Ugc2VsZi5zdGRvdXQKKyAgICAgICAgc3RkZXJy
ID0gc2VsZi5zdGRlcnIucmVhZCgpIGlmIGlzaW5zdGFuY2Uoc2VsZi5zdGRlcnIsIEJ5dGVzSU8p
IGVsc2Ugc2VsZi5zdGRlcnIKKyAgICAgICAgcmV0dXJuIChzdGRvdXQsIHN0ZGVycikKIAogICAg
IGRlZiBwb2xsKHNlbGYpOgogICAgICAgICBpZiBzZWxmLl9pc19ydW5uaW5nOgpkaWZmIC0tZ2l0
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L3dlc3RvbmRyaXZlci5weSBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvcG9ydC93ZXN0b25kcml2ZXIucHkKaW5kZXggYTZhNWFiMzI5ODM3ZjRj
Mzk5ZmZjZDYxZDYyYjgyODE2YTY1OGJkZS4uOWI2MjMwMzA3ZGMwZjgxM2I0NWE2NGYwYjI0Njk2
NjhiNjBhNjFjYyAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L3dlc3Rv
bmRyaXZlci5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvd2VzdG9uZHJpdmVy
LnB5CkBAIC01Niw3ICs1NiwxOCBAQCBjbGFzcyBXZXN0b25Ecml2ZXIoRHJpdmVyKToKIAogICAg
IGRlZiBfc2V0dXBfZW52aXJvbl9mb3JfdGVzdChzZWxmKToKICAgICAgICAgZHJpdmVyX2Vudmly
b25tZW50ID0gc3VwZXIoV2VzdG9uRHJpdmVyLCBzZWxmKS5fc2V0dXBfZW52aXJvbl9mb3JfdGVz
dCgpCi0gICAgICAgIGRyaXZlcl9lbnZpcm9ubWVudFsnRElTUExBWSddID0gIjolZCIgJSBzZWxm
Ll94dmZiZHJpdmVyLl94dmZiX3J1bihkcml2ZXJfZW52aXJvbm1lbnQpCisgICAgICAgIHh2ZmJf
ZGlzcGxheV9pZCA9IHNlbGYuX3h2ZmJkcml2ZXIuX3h2ZmJfcnVuKGRyaXZlcl9lbnZpcm9ubWVu
dCkKKyAgICAgICAgZHJpdmVyX2Vudmlyb25tZW50WydESVNQTEFZJ10gPSAnOiVkJyAlIHh2ZmJf
ZGlzcGxheV9pZAorCisgICAgICAgICMgRW5zdXJlIHRoYXQgWHZmYiBpcyByZWFkeSBhbmQgcmVw
bHlpbmcgYW5kIGV4cGVjdGVkIGJlZm9yZSBjb250aW51aW5nLCBnaXZlIGl0IDMgdHJpZXMuCisg
ICAgICAgIGlmIG5vdCBzZWxmLl94dmZiZHJpdmVyLl94dmZiX2NoZWNrX2lmX3JlYWR5KHh2ZmJf
ZGlzcGxheV9pZCk6CisgICAgICAgICAgICBzZWxmLl94dmZiZHJpdmVyLl9jdXJyZW50X3JldHJ5
X3N0YXJ0X3h2ZmIgKz0gMQorICAgICAgICAgICAgaWYgc2VsZi5feHZmYmRyaXZlci5fY3VycmVu
dF9yZXRyeV9zdGFydF94dmZiID4gMzoKKyAgICAgICAgICAgICAgICBfbG9nLmVycm9yKCdGYWls
ZWQgdG8gc3RhcnQgWHZmYiBkaXNwbGF5IHNlcnZlciAuLi4gZ2l2aW5nIHVwIGFmdGVyIDMgcmV0
cmllcy4nKQorICAgICAgICAgICAgICAgIHJhaXNlIFJ1bnRpbWVFcnJvcignVW5hYmxlIHRvIHN0
YXJ0IFh2ZmIgZGlzcGxheSBzZXJ2ZXInKQorICAgICAgICAgICAgX2xvZy5lcnJvcignRmFpbGVk
IHRvIHN0YXJ0IFh2ZmIgZGlzcGxheSBzZXJ2ZXIgLi4uIHJldHJ5aW5nIFsgJXMgb2YgMyBdLicg
JSBzZWxmLl94dmZiZHJpdmVyLl9jdXJyZW50X3JldHJ5X3N0YXJ0X3h2ZmIpCisgICAgICAgICAg
ICByZXR1cm4gc2VsZi5fc2V0dXBfZW52aXJvbl9mb3JfdGVzdCgpCisKICAgICAgICAgd2VzdG9u
X3NvY2tldCA9ICdXS1Rlc3Rpbmctd2VzdG9uLSUwMzJ4JyAlIHJhbmRvbS5nZXRyYW5kYml0cygx
MjgpCiAgICAgICAgIHdlc3Rvbl9jb21tYW5kID0gWyd3ZXN0b24nLCAnLS1zb2NrZXQ9JXMnICUg
d2VzdG9uX3NvY2tldCwgJy0td2lkdGg9MTAyNCcsICctLWhlaWdodD03NjgnLCAnLS11c2UtcGl4
bWFuJ10KICAgICAgICAgaWYgc2VsZi5fcG9ydC5fc2hvdWxkX3VzZV9qaGJ1aWxkKCk6CmRpZmYg
LS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvd2VzdG9uZHJpdmVyX3VuaXR0ZXN0
LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L3dlc3RvbmRyaXZlcl91bml0dGVzdC5w
eQppbmRleCBmM2U2YjM0Njk0OWI0MTJlNjZmOGRkM2Y5NThjZTExZjQwNTc0MmU5Li44Yjg2OTU4
ZjdjNjkyYWRkNTY0ZDA4NGNmMWFhZjE3MThkZjZmM2UyIDEwMDY0NAotLS0gYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3BvcnQvd2VzdG9uZHJpdmVyX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvcG9ydC93ZXN0b25kcml2ZXJfdW5pdHRlc3QucHkKQEAgLTUwLDYgKzUw
LDkgQEAgY2xhc3MgV2VzdG9uWHZmYkRyaXZlckRpc3BsYXlUZXN0KCk6CiAgICAgZGVmIF94dmZi
X3J1bihzZWxmLCBlbnZpcm9ubWVudCk6CiAgICAgICAgIHJldHVybiBzZWxmLl9leHBlY3RlZF94
dmZiZGlzcGxheQogCisgICAgZGVmIF94dmZiX2NoZWNrX2lmX3JlYWR5KHNlbGYsIGRpc3BsYXlf
aWQpOgorICAgICAgICByZXR1cm4gVHJ1ZQorCiAKIGNsYXNzIFdlc3RvbkRyaXZlclRlc3QodW5p
dHRlc3QuVGVzdENhc2UpOgogICAgIGRlZiBtYWtlX2RyaXZlcihzZWxmKToKZGlmZiAtLWdpdCBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC94dmZiZHJpdmVyLnB5IGIvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9wb3J0L3h2ZmJkcml2ZXIucHkKaW5kZXggY2JkMDg2MDEyZjk0MjgwNTFmN2Yx
ZTgyNWUwYTU4MjQ5NTY1YmU3OS4uYmExZWE0N2IwYWFlODEyOThhNGM4MzlkYjFhNTczYjYzZDM4
MzU5YiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L3h2ZmJkcml2ZXIu
cHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L3h2ZmJkcml2ZXIucHkKQEAgLTEs
NSArMSw1IEBACiAjIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgotIyBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyMgQ29weXJpZ2h0IChD
KSAyMDE0LTIwMjEgSWdhbGlhIFMuTC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUK
QEAgLTMzLDYgKzMzLDE0IEBAIGltcG9ydCBzeXMKIGltcG9ydCByZQogaW1wb3J0IHRpbWUKIAor
aWYgc3lzLnZlcnNpb25faW5mb1swXSA8IDM6CisgICAgdHJ5OgorICAgICAgICBpbXBvcnQgc3Vi
cHJvY2VzczMyIGFzIHN1YnByb2Nlc3MKKyAgICBleGNlcHQgSW1wb3J0RXJyb3I6CisgICAgICAg
IGltcG9ydCBzdWJwcm9jZXNzCitlbHNlOgorICAgIGltcG9ydCBzdWJwcm9jZXNzCisKIGZyb20g
d2Via2l0Y29yZXB5IGltcG9ydCBzdHJpbmdfdXRpbHMKIGZyb20gd2Via2l0cHkucG9ydC5zZXJ2
ZXJfcHJvY2VzcyBpbXBvcnQgU2VydmVyUHJvY2VzcwogZnJvbSB3ZWJraXRweS5wb3J0LmRyaXZl
ciBpbXBvcnQgRHJpdmVyCkBAIC00MSw2ICs0OSwxMyBAQCBfbG9nID0gbG9nZ2luZy5nZXRMb2dn
ZXIoX19uYW1lX18pCiAKIAogY2xhc3MgWHZmYkRyaXZlcihEcml2ZXIpOgorCisgICAgZGVmIF9f
aW5pdF9fKHNlbGYsICphcmdzLCAqKmt3YXJncyk6CisgICAgICAgIERyaXZlci5fX2luaXRfXyhz
ZWxmLCAqYXJncywgKiprd2FyZ3MpCisgICAgICAgIHNlbGYuX3h2ZmJfcHJvY2VzcyA9IE5vbmUK
KyAgICAgICAgc2VsZi5fY3VycmVudF9yZXRyeV9zdGFydF94dmZiID0gMAorICAgICAgICBzZWxm
Ll9wcmludF9zY3JlZW5fc2l6ZV9wcm9jZXNzX2Zvcl90ZXN0aW5nID0gTm9uZSAgIyByZXF1aXJl
ZCBmb3IgdW5pdCB0ZXN0cworCiAgICAgQHN0YXRpY21ldGhvZAogICAgIGRlZiBjaGVja19kcml2
ZXIocG9ydCk6CiAgICAgICAgIHh2ZmJfZmluZGNtZCA9IFsnd2hpY2gnLCAnWHZmYiddCkBAIC00
OCw3ICs2Myw3IEBAIGNsYXNzIFh2ZmJEcml2ZXIoRHJpdmVyKToKICAgICAgICAgICAgICAgICB4
dmZiX2ZpbmRjbWQgPSBwb3J0Ll9qaGJ1aWxkX3dyYXBwZXIgKyB4dmZiX2ZpbmRjbWQKICAgICAg
ICAgeHZmYl9mb3VuZCA9IHBvcnQuaG9zdC5leGVjdXRpdmUucnVuX2NvbW1hbmQoeHZmYl9maW5k
Y21kLCByZXR1cm5fZXhpdF9jb2RlPVRydWUpID09IDAKICAgICAgICAgaWYgbm90IHh2ZmJfZm91
bmQ6Ci0gICAgICAgICAgICBfbG9nLmVycm9yKCJObyBYdmZiIGZvdW5kLiBDYW5ub3QgcnVuIGxh
eW91dCB0ZXN0cy4iKQorICAgICAgICAgICAgX2xvZy5lcnJvcignTm8gWHZmYiBmb3VuZC4gQ2Fu
bm90IHJ1biBsYXlvdXQgdGVzdHMuJykKICAgICAgICAgcmV0dXJuIHh2ZmJfZm91bmQKIAogICAg
IGRlZiBfeHZmYl9waXBlKHNlbGYpOgpAQCAtODYsMjEgKzEwMSw3OCBAQCBjbGFzcyBYdmZiRHJp
dmVyKERyaXZlcik6CiAKICAgICBkZWYgX3h2ZmJfcnVuKHNlbGYsIGVudmlyb25tZW50KToKICAg
ICAgICAgcmVhZF9mZCwgd3JpdGVfZmQgPSBzZWxmLl94dmZiX3BpcGUoKQotICAgICAgICBydW5f
eHZmYiA9IFsiWHZmYiIsICItZGlzcGxheWZkIiwgc3RyKHdyaXRlX2ZkKSwgIi1zY3JlZW4iLCAg
IjAiLCAiMTAyNHg3Njh4JXMiICUgc2VsZi5feHZmYl9zY3JlZW5fZGVwdGgoKSwgIi1ub2xpc3Rl
biIsICJ0Y3AiXQorICAgICAgICBydW5feHZmYiA9IFsnWHZmYicsICctZGlzcGxheWZkJywgc3Ry
KHdyaXRlX2ZkKSwgJy1ub2xpc3RlbicsICd0Y3AnLAorICAgICAgICAgICAgICAgICAgICAnK2V4
dGVuc2lvbicsICdHTFgnLCAnLWFjJywgJy1zY3JlZW4nLCAnMCcsCisgICAgICAgICAgICAgICAg
ICAgICclc3glcycgJSAoc2VsZi5feHZmYl9zY3JlZW5fc2l6ZSgpLCBzZWxmLl94dmZiX3NjcmVl
bl9kZXB0aCgpKV0KICAgICAgICAgaWYgc2VsZi5fcG9ydC5fc2hvdWxkX3VzZV9qaGJ1aWxkKCk6
CiAgICAgICAgICAgICBydW5feHZmYiA9IHNlbGYuX3BvcnQuX2poYnVpbGRfd3JhcHBlciArIHJ1
bl94dmZiCi0gICAgICAgIHdpdGggb3Blbihvcy5kZXZudWxsLCAndycpIGFzIGRldm51bGw6Ci0g
ICAgICAgICAgICAjIHB5dGhvbjMgd2lsbCB0cnkgdG8gY2xvc2UgdGhlIGZpbGUgZGVzY3JpcHRv
cnMgYnkgZGVmYXVsdAotICAgICAgICAgICAgc2VsZi5feHZmYl9wcm9jZXNzID0gc2VsZi5fcG9y
dC5ob3N0LmV4ZWN1dGl2ZS5wb3BlbihydW5feHZmYiwgc3RkZXJyPWRldm51bGwsIGVudj1lbnZp
cm9ubWVudCwgY2xvc2VfZmRzPUZhbHNlKQotICAgICAgICAgICAgZGlzcGxheV9pZCA9IHNlbGYu
X3h2ZmJfcmVhZF9kaXNwbGF5X2lkKHJlYWRfZmQpCi0KKyAgICAgICAgc2VsZi5feHZmYl9wcm9j
ZXNzID0gc2VsZi5fcG9ydC5ob3N0LmV4ZWN1dGl2ZS5wb3BlbihydW5feHZmYiwgc3Rkb3V0PXNl
bGYuX3BvcnQuaG9zdC5leGVjdXRpdmUuUElQRSwgc3RkZXJyPXNlbGYuX3BvcnQuaG9zdC5leGVj
dXRpdmUuU1RET1VULCBlbnY9ZW52aXJvbm1lbnQsIGNsb3NlX2Zkcz1GYWxzZSkKKyAgICAgICAg
ZGlzcGxheV9pZCA9IHNlbGYuX3h2ZmJfcmVhZF9kaXNwbGF5X2lkKHJlYWRfZmQpCiAgICAgICAg
IHNlbGYuX3h2ZmJfY2xvc2VfcGlwZSgocmVhZF9mZCwgd3JpdGVfZmQpKQotCiAgICAgICAgIHJl
dHVybiBkaXNwbGF5X2lkCiAKICAgICBkZWYgX3h2ZmJfc2NyZWVuX2RlcHRoKHNlbGYpOgogICAg
ICAgICByZXR1cm4gb3MuZW52aXJvbi5nZXQoJ1hWRkJfU0NSRUVOX0RFUFRIJywgJzI0JykKIAor
ICAgIGRlZiBfeHZmYl9zY3JlZW5fc2l6ZShzZWxmKToKKyAgICAgICAgcmV0dXJuIG9zLmVudmly
b24uZ2V0KCdYVkZCX1NDUkVFTl9TSVpFJywgJzEwMjR4NzY4JykKKworICAgIGRlZiBfeHZmYl9z
dG9wKHNlbGYpOgorICAgICAgICBpZiBzZWxmLl94dmZiX3Byb2Nlc3M6CisgICAgICAgICAgICBz
ZWxmLl9wb3J0Lmhvc3QuZXhlY3V0aXZlLmtpbGxfcHJvY2VzcyhzZWxmLl94dmZiX3Byb2Nlc3Mu
cGlkKQorICAgICAgICAgICAgc2VsZi5feHZmYl9wcm9jZXNzID0gTm9uZQorCisgICAgZGVmIF94
dmZiX2NoZWNrX2lmX3JlYWR5KHNlbGYsIGRpc3BsYXlfaWQpOgorICAgICAgICBlbnZpcm9ubWVu
dF9wcmludF9zY3JlZW5fc2l6ZV9wcm9jZXNzID0gc3VwZXIoWHZmYkRyaXZlciwgc2VsZikuX3Nl
dHVwX2Vudmlyb25fZm9yX3Rlc3QoKQorICAgICAgICBlbnZpcm9ubWVudF9wcmludF9zY3JlZW5f
c2l6ZV9wcm9jZXNzWydESVNQTEFZJ10gPSAnOiVkJyAlIGRpc3BsYXlfaWQKKyAgICAgICAgZW52
aXJvbm1lbnRfcHJpbnRfc2NyZWVuX3NpemVfcHJvY2Vzc1snR0RLX0JBQ0tFTkQnXSA9ICd4MTEn
CisgICAgICAgIHdhaXRlZF9zZWNvbmRzX2Zvcl94dmZiX3JlYWR5ID0gMAorICAgICAgICB4dmZi
X3NlcnZlcl9yZXBseWluZ19hc19leHBlY3RlZCA9IEZhbHNlCisgICAgICAgIHdoaWxlIFRydWU6
CisgICAgICAgICAgICB0aW1lb3V0X2V4cGlyZWQgPSBGYWxzZQorICAgICAgICAgICAgcXVlcnlf
ZmFpbGVkID0gRmFsc2UKKyAgICAgICAgICAgIHByaW50X3NjcmVlbl9zaXplX3Byb2Nlc3MgPSBz
ZWxmLl9wcmludF9zY3JlZW5fc2l6ZV9wcm9jZXNzX2Zvcl90ZXN0aW5nIGlmIHNlbGYuX3ByaW50
X3NjcmVlbl9zaXplX3Byb2Nlc3NfZm9yX3Rlc3RpbmcgZWxzZSBcCisgICAgICAgICAgICAgICAg
c3VicHJvY2Vzcy5Qb3Blbihbc2VsZi5fcG9ydC5wYXRoX2Zyb21fd2Via2l0X2Jhc2UoJ1Rvb2xz
JywgJ2d0aycsICdwcmludC1zY3JlZW4tc2l6ZScpXSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsIHN0ZGVycj1zdWJwcm9jZXNzLlNURE9V
VCwgZW52PWVudmlyb25tZW50X3ByaW50X3NjcmVlbl9zaXplX3Byb2Nlc3MpCisgICAgICAgICAg
ICAjIFB5dGhvbjIgc3RhbmRhcmQgc3VicHJvY2VzcyBkb24ndCBhbGxvd3Mgc2V0dGluZyBhIHRp
bWVvdXQKKyAgICAgICAgICAgIGlmIG5vdCBoYXNhdHRyKHN1YnByb2Nlc3MsICdUaW1lb3V0RXhw
aXJlZCcpOgorICAgICAgICAgICAgICAgIHN0ZG91dCwgc3RkZXJyID0gcHJpbnRfc2NyZWVuX3Np
emVfcHJvY2Vzcy5jb21tdW5pY2F0ZSgpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAg
ICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAgc3Rkb3V0LCBzdGRlcnIgPSBwcmludF9zY3Jl
ZW5fc2l6ZV9wcm9jZXNzLmNvbW11bmljYXRlKHRpbWVvdXQ9MikKKyAgICAgICAgICAgICAgICBl
eGNlcHQgc3VicHJvY2Vzcy5UaW1lb3V0RXhwaXJlZDoKKyAgICAgICAgICAgICAgICAgICAgX2xv
Zy5kZWJ1ZygnVGltZW91dCBleHBpcmVkIHRyeWluZyB0byBxdWVyeSB0aGUgWHZmYiBkaXNwbGF5
IHNlcnZlci4nKQorICAgICAgICAgICAgICAgICAgICB0aW1lb3V0X2V4cGlyZWQgPSBUcnVlCisg
ICAgICAgICAgICAgICAgICAgIHByaW50X3NjcmVlbl9zaXplX3Byb2Nlc3Mua2lsbCgpCisgICAg
ICAgICAgICAgICAgICAgIHN0ZG91dCwgc3RkZXJyID0gcHJpbnRfc2NyZWVuX3NpemVfcHJvY2Vz
cy5jb21tdW5pY2F0ZSgpCisgICAgICAgICAgICAgICAgICAgIHdhaXRlZF9zZWNvbmRzX2Zvcl94
dmZiX3JlYWR5ICs9IDIKKworICAgICAgICAgICAgaWYgbm90IHRpbWVvdXRfZXhwaXJlZDoKKyAg
ICAgICAgICAgICAgICBpZiBwcmludF9zY3JlZW5fc2l6ZV9wcm9jZXNzLnJldHVybmNvZGUgPT0g
MDoKKyAgICAgICAgICAgICAgICAgICAgcXVlcmllZF9zY3JlZW5fc2l6ZSA9IHN0ZG91dC5kZWNv
ZGUoJ1VURi04Jykuc3RyaXAoKQorICAgICAgICAgICAgICAgICAgICBpZiBxdWVyaWVkX3NjcmVl
bl9zaXplID09IHNlbGYuX3h2ZmJfc2NyZWVuX3NpemUoKToKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHh2ZmJfc2VydmVyX3JlcGx5aW5nX2FzX2V4cGVjdGVkID0gVHJ1ZQorICAgICAgICAgICAg
ICAgICAgICAgICAgX2xvZy5kZWJ1ZygnVGhlIFh2ZmIgZGlzcGxheSBzZXJ2ZXIgIjolZCIgaXMg
cmVhZHkgYW5kIHJlcGx5aW5nIGFzIGV4cGVjdGVkLicgJSBkaXNwbGF5X2lkKQorICAgICAgICAg
ICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAg
ICAgICAgICAgICAgICAgIF9sb2cud2FybmluZygnVGhlIHF1ZXJpZWQgWHZmYiBzY3JlZW4gc2l6
ZSAiJXMiIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RhdGlvbiAiJXMiLicgJSAocXVlcmllZF9z
Y3JlZW5fc2l6ZSwgc2VsZi5feHZmYl9zY3JlZW5fc2l6ZSgpKSkKKyAgICAgICAgICAgICAgICBl
bHNlOgorICAgICAgICAgICAgICAgICAgICBfbG9nLndhcm5pbmcoJ1RoZSBwcmludC1zY3JlZW4t
c2l6ZSB0b29sIHJldHVybmVkIG5vbi16ZXJvIHN0YXR1cy4gc3Rkb3V0IGlzICIlcyIgYW5kIHN0
ZGVyciBpcyAiJXMiJyAlIChzdGRvdXQsIHN0ZGVycikpCisgICAgICAgICAgICAgICAgICAgIHF1
ZXJ5X2ZhaWxlZCA9IFRydWUKKyAgICAgICAgICAgIGlmIHRpbWVvdXRfZXhwaXJlZCBvciBxdWVy
eV9mYWlsZWQ6CisgICAgICAgICAgICAgICAgaWYgc2VsZi5feHZmYl9wcm9jZXNzLnBvbGwoKToK
KyAgICAgICAgICAgICAgICAgICAgeHZmYl9zdGRvdXQsIHh2ZmJfc3RkZXJyID0gc2VsZi5feHZm
Yl9wcm9jZXNzLmNvbW11bmljYXRlKCkKKyAgICAgICAgICAgICAgICAgICAgX2xvZy5lcnJvcign
VGhlIFh2ZmIgZGlzcGxheSBzZXJ2ZXIgaGFzIGV4aXRlZCB1bmV4cGVjdGVkbHkgd2l0aCBhIHJl
dHVybiBjb2RlIG9mICVzLiBzdGRvdXQgaXMgIiVzIiBhbmQgc3RkZXJyIGlzICIlcyInICUgKHNl
bGYuX3h2ZmJfcHJvY2Vzcy5wb2xsKCksIHh2ZmJfc3Rkb3V0LCB4dmZiX3N0ZGVycikpCisgICAg
ICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICAgICBpZiB3YWl0ZWRfc2Vjb25kc19mb3Jf
eHZmYl9yZWFkeSA+IDU6CisgICAgICAgICAgICAgICAgX2xvZy5lcnJvcignVGltZW91dCByZWFj
aGVkIG1lYW53aGlsZSB3YWl0aW5nIGZvciB0aGUgWHZmYiBkaXNwbGF5IHNlcnZlciB0byBiZSBy
ZWFkeScpCisgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgIF9sb2cuZGVidWcoJ1dh
aXRpbmcgZm9yIFh2ZmIgZGlzcGxheSBzZXJ2ZXIgdG8gYmUgcmVhZHkuJykKKyAgICAgICAgICAg
IGlmIG5vdCBzZWxmLl9wcmludF9zY3JlZW5fc2l6ZV9wcm9jZXNzX2Zvcl90ZXN0aW5nOgorICAg
ICAgICAgICAgICAgIHRpbWUuc2xlZXAoMSkgICMgb25seSB3YWl0IHdoZW4gbm90IHJ1bm5pbmcg
dW5pdCB0ZXN0cworICAgICAgICAgICAgd2FpdGVkX3NlY29uZHNfZm9yX3h2ZmJfcmVhZHkgKz0g
MQorICAgICAgICByZXR1cm4geHZmYl9zZXJ2ZXJfcmVwbHlpbmdfYXNfZXhwZWN0ZWQKKwogICAg
IGRlZiBfc2V0dXBfZW52aXJvbl9mb3JfdGVzdChzZWxmKToKICAgICAgICAgcG9ydF9zZXJ2ZXJf
ZW52aXJvbm1lbnQgPSBzZWxmLl9wb3J0LnNldHVwX2Vudmlyb25fZm9yX3NlcnZlcihzZWxmLl9z
ZXJ2ZXJfbmFtZSkKICAgICAgICAgZHJpdmVyX2Vudmlyb25tZW50ID0gc3VwZXIoWHZmYkRyaXZl
ciwgc2VsZikuX3NldHVwX2Vudmlyb25fZm9yX3Rlc3QoKQpAQCAtMTExLDEwICsxODMsMjUgQEAg
Y2xhc3MgWHZmYkRyaXZlcihEcml2ZXIpOgogICAgICAgICBkcml2ZXJfZW52aXJvbm1lbnRbJ1VO
REVSX1hWRkInXSA9ICd5ZXMnCiAgICAgICAgIGRyaXZlcl9lbnZpcm9ubWVudFsnR0RLX0JBQ0tF
TkQnXSA9ICd4MTEnCiAgICAgICAgIGRyaXZlcl9lbnZpcm9ubWVudFsnTE9DQUxfUkVTT1VSQ0Vf
Uk9PVCddID0gc2VsZi5fcG9ydC5sYXlvdXRfdGVzdHNfZGlyKCkKKworICAgICAgICAjIEVuc3Vy
ZSB0aGF0IFh2ZmIgaXMgcmVhZHkgYW5kIHJlcGx5aW5nIGFuZCBleHBlY3RlZCBiZWZvcmUgY29u
dGludWluZywgZ2l2ZSBpdCAzIHRyaWVzLgorICAgICAgICBpZiBub3Qgc2VsZi5feHZmYl9jaGVj
a19pZl9yZWFkeShkaXNwbGF5X2lkKToKKyAgICAgICAgICAgIHNlbGYuX2N1cnJlbnRfcmV0cnlf
c3RhcnRfeHZmYiArPSAxCisgICAgICAgICAgICBpZiBzZWxmLl9jdXJyZW50X3JldHJ5X3N0YXJ0
X3h2ZmIgPiAzOgorICAgICAgICAgICAgICAgIF9sb2cuZXJyb3IoJ0ZhaWxlZCB0byBzdGFydCBY
dmZiIGRpc3BsYXkgc2VydmVyIC4uLiBnaXZpbmcgdXAgYWZ0ZXIgMyByZXRyaWVzLicpCisgICAg
ICAgICAgICAgICAgcmFpc2UgUnVudGltZUVycm9yKCdVbmFibGUgdG8gc3RhcnQgWHZmYiBkaXNw
bGF5IHNlcnZlcicpCisgICAgICAgICAgICBfbG9nLmVycm9yKCdGYWlsZWQgdG8gc3RhcnQgWHZm
YiBkaXNwbGF5IHNlcnZlciAuLi4gcmV0cnlpbmcgWyAlcyBvZiAzIF0uJyAlIHNlbGYuX2N1cnJl
bnRfcmV0cnlfc3RhcnRfeHZmYikKKyAgICAgICAgICAgIHJldHVybiBzZWxmLl9zZXR1cF9lbnZp
cm9uX2Zvcl90ZXN0KCkKKwogICAgICAgICByZXR1cm4gZHJpdmVyX2Vudmlyb25tZW50CiAKKyAg
ICBkZWYgaGFzX2NyYXNoZWQoc2VsZik6CisgICAgICAgIGlmIHNlbGYuX3h2ZmJfcHJvY2VzcyBh
bmQgc2VsZi5feHZmYl9wcm9jZXNzLnBvbGwoKToKKyAgICAgICAgICAgIHNlbGYuX2NyYXNoZWRf
cHJvY2Vzc19uYW1lID0gJ1h2ZmInCisgICAgICAgICAgICBzZWxmLl9jcmFzaGVkX3BpZCA9IHNl
bGYuX3h2ZmJfcHJvY2Vzcy5waWQKKyAgICAgICAgICAgIHJldHVybiBUcnVlCisgICAgICAgIHJl
dHVybiBzdXBlcihYdmZiRHJpdmVyLCBzZWxmKS5oYXNfY3Jhc2hlZCgpCisKICAgICBkZWYgc3Rv
cChzZWxmKToKICAgICAgICAgc3VwZXIoWHZmYkRyaXZlciwgc2VsZikuc3RvcCgpCi0gICAgICAg
IGlmIGdldGF0dHIoc2VsZiwgJ194dmZiX3Byb2Nlc3MnLCBOb25lKToKLSAgICAgICAgICAgIHNl
bGYuX3BvcnQuaG9zdC5leGVjdXRpdmUua2lsbF9wcm9jZXNzKHNlbGYuX3h2ZmJfcHJvY2Vzcy5w
aWQpCi0gICAgICAgICAgICBzZWxmLl94dmZiX3Byb2Nlc3MgPSBOb25lCisgICAgICAgIHNlbGYu
X3h2ZmJfc3RvcCgpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQveHZm
YmRyaXZlcl91bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC94dmZiZHJp
dmVyX3VuaXR0ZXN0LnB5CmluZGV4IDQ2NzRjODBlM2NlMDEzYmMwZTE2OTdlN2M4ZjI3OWVmMWEz
YTBjNWQuLjI3MjllOTk4OTAzMGQzNWNiNzYzM2FjNjk2YzJmN2QyMzBhMmUyYjEgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC94dmZiZHJpdmVyX3VuaXR0ZXN0LnB5Cisr
KyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC94dmZiZHJpdmVyX3VuaXR0ZXN0LnB5CkBA
IC0zMSw3ICszMSw3IEBAIGltcG9ydCBsb2dnaW5nCiBpbXBvcnQgdW5pdHRlc3QKIAogZnJvbSB3
ZWJraXRweS5jb21tb24uc3lzdGVtLmZpbGVzeXN0ZW1fbW9jayBpbXBvcnQgTW9ja0ZpbGVTeXN0
ZW0KLWZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5leGVjdXRpdmVfbW9jayBpbXBvcnQgTW9j
a0V4ZWN1dGl2ZTIKK2Zyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5leGVjdXRpdmVfbW9jayBp
bXBvcnQgTW9ja1Byb2Nlc3MKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5zeXN0ZW1ob3N0
X21vY2sgaW1wb3J0IE1vY2tTeXN0ZW1Ib3N0CiBmcm9tIHdlYmtpdHB5LnBvcnQgaW1wb3J0IFBv
cnQKIGZyb20gd2Via2l0cHkucG9ydC5zZXJ2ZXJfcHJvY2Vzc19tb2NrIGltcG9ydCBNb2NrU2Vy
dmVyUHJvY2VzcwpAQCAtNDQsNyArNDQsNyBAQCBfbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoX19u
YW1lX18pCiAKIAogY2xhc3MgWHZmYkRyaXZlclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgotICAg
IGRlZiBtYWtlX2RyaXZlcihzZWxmLCB3b3JrZXJfbnVtYmVyPTAsIHhvcmdfcnVubmluZz1GYWxz
ZSwgZXhlY3V0aXZlPU5vbmUpOgorICAgIGRlZiBtYWtlX2RyaXZlcihzZWxmLCB3b3JrZXJfbnVt
YmVyPTAsIHhvcmdfcnVubmluZz1GYWxzZSwgZXhlY3V0aXZlPU5vbmUsIHByaW50X3NjcmVlbl9z
aXplX3Byb2Nlc3M9Tm9uZSk6CiAgICAgICAgIHBvcnQgPSBQb3J0KE1vY2tTeXN0ZW1Ib3N0KGxv
Z19leGVjdXRpdmU9VHJ1ZSwgZXhlY3V0aXZlPWV4ZWN1dGl2ZSksICd4dmZiZHJpdmVydGVzdHBv
cnQnLCBvcHRpb25zPU1vY2tPcHRpb25zKGNvbmZpZ3VyYXRpb249J1JlbGVhc2UnKSkKICAgICAg
ICAgcG9ydC5fY29uZmlnLmJ1aWxkX2RpcmVjdG9yeSA9IGxhbWJkYSBjb25maWd1cmF0aW9uOiAi
L21vY2stYnVpbGQiCiAgICAgICAgIHBvcnQuX3Rlc3RfcnVubmVyX3Byb2Nlc3NfY29uc3RydWN0
b3IgPSBNb2NrU2VydmVyUHJvY2VzcwpAQCAtNTcsNiArNTcsNyBAQCBjbGFzcyBYdmZiRHJpdmVy
VGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIGRyaXZlci5feHZmYl9waXBlID0gbGFt
YmRhOiAoMywgNCkKICAgICAgICAgZHJpdmVyLl94dmZiX3JlYWRfZGlzcGxheV9pZCA9IGxhbWJk
YSB4OiAxCiAgICAgICAgIGRyaXZlci5feHZmYl9jbG9zZV9waXBlID0gbGFtYmRhIHA6IE5vbmUK
KyAgICAgICAgZHJpdmVyLl9wcmludF9zY3JlZW5fc2l6ZV9wcm9jZXNzX2Zvcl90ZXN0aW5nID0g
cHJpbnRfc2NyZWVuX3NpemVfcHJvY2VzcyBpZiBwcmludF9zY3JlZW5fc2l6ZV9wcm9jZXNzIGVs
c2UgTW9ja1Byb2Nlc3MoZHJpdmVyLl94dmZiX3NjcmVlbl9zaXplKCkpCiAgICAgICAgIGRyaXZl
ci5fcG9ydF9zZXJ2ZXJfZW52aXJvbm1lbnQgPSBwb3J0LnNldHVwX2Vudmlyb25fZm9yX3NlcnZl
cihwb3J0LmRyaXZlcl9uYW1lKCkpCiAgICAgICAgIHJldHVybiBkcml2ZXIKIApAQCAtNjcsNyAr
NjgsNyBAQCBjbGFzcyBYdmZiRHJpdmVyVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAg
IGRyaXZlci5feHZmYl9wcm9jZXNzID0gTm9uZQogCiAgICAgZGVmIGFzc2VydERyaXZlclN0YXJ0
U3VjY2Vzc2Z1bChzZWxmLCBkcml2ZXIsIGV4cGVjdGVkX2xvZ3MsIGV4cGVjdGVkX2Rpc3BsYXks
IHBpeGVsX3Rlc3RzPUZhbHNlKToKLSAgICAgICAgd2l0aCBPdXRwdXRDYXB0dXJlKGxldmVsPWxv
Z2dpbmcuSU5GTykgYXMgY2FwdHVyZWQ6CisgICAgICAgIHdpdGggT3V0cHV0Q2FwdHVyZShsZXZl
bD1sb2dnaW5nLkRFQlVHKSBhcyBjYXB0dXJlZDoKICAgICAgICAgICAgIGRyaXZlci5zdGFydChw
aXhlbF90ZXN0cywgW10pCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY2FwdHVyZWQucm9vdC5s
b2cuZ2V0dmFsdWUoKSwgZXhwZWN0ZWRfbG9ncykKIApAQCAtNzUsMTggKzc2LDM1IEBAIGNsYXNz
IFh2ZmJEcml2ZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChkcml2ZXIuX3NlcnZlcl9wcm9jZXNzLmVudlsnRElTUExBWSddLCBleHBlY3RlZF9kaXNw
bGF5KQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGRyaXZlci5fc2VydmVyX3Byb2Nlc3MuZW52
WydHREtfQkFDS0VORCddLCAneDExJykKIAotICAgIGRlZiB0ZXN0X3N0YXJ0KHNlbGYpOgorICAg
IGRlZiB0ZXN0X3h2ZmJfc3RhcnRfYW5kX3JlYWR5KHNlbGYpOgogICAgICAgICBkcml2ZXIgPSBz
ZWxmLm1ha2VfZHJpdmVyKCkKLSAgICAgICAgZXhwZWN0ZWRfbG9ncyA9ICgiTU9DSyBwb3Blbjog
WydYdmZiJywgJy1kaXNwbGF5ZmQnLCAnNCcsICctc2NyZWVuJywgJzAnLCAnMTAyNHg3Njh4MjQn
LCAnLW5vbGlzdGVuJywgJ3RjcCddLCBlbnY9JXNcbiIgJSBkcml2ZXIuX3BvcnRfc2VydmVyX2Vu
dmlyb25tZW50KQotICAgICAgICBzZWxmLmFzc2VydERyaXZlclN0YXJ0U3VjY2Vzc2Z1bChkcml2
ZXIsIGV4cGVjdGVkX2xvZ3M9ZXhwZWN0ZWRfbG9ncywgZXhwZWN0ZWRfZGlzcGxheT0iOjEiKQor
ICAgICAgICBleHBlY3RlZF9kaXNwbGF5ID0gJzoxJworICAgICAgICBleHBlY3RlZF9sb2dzID0g
KCJNT0NLIHBvcGVuOiBbJ1h2ZmInLCAnLWRpc3BsYXlmZCcsICc0JywgJy1ub2xpc3RlbicsICd0
Y3AnLCAnK2V4dGVuc2lvbicsICdHTFgnLCAnLWFjJywgJy1zY3JlZW4nLCAnMCcsICcxMDI0eDc2
OHgyNCddLCBlbnY9JXNcbiIgJSBkcml2ZXIuX3BvcnRfc2VydmVyX2Vudmlyb25tZW50KQorICAg
ICAgICBleHBlY3RlZF9sb2dzICs9ICgnVGhlIFh2ZmIgZGlzcGxheSBzZXJ2ZXIgIiVzIiBpcyBy
ZWFkeSBhbmQgcmVwbHlpbmcgYXMgZXhwZWN0ZWQuXG4nICUgZXhwZWN0ZWRfZGlzcGxheSkKKyAg
ICAgICAgc2VsZi5hc3NlcnREcml2ZXJTdGFydFN1Y2Nlc3NmdWwoZHJpdmVyLCBleHBlY3RlZF9s
b2dzPWV4cGVjdGVkX2xvZ3MsIGV4cGVjdGVkX2Rpc3BsYXk9ZXhwZWN0ZWRfZGlzcGxheSkKICAg
ICAgICAgc2VsZi5jbGVhbnVwX2RyaXZlcihkcml2ZXIpCiAKLSAgICBkZWYgdGVzdF9zdGFydF9h
cmJpdHJhcnlfd29ya2VyX251bWJlcihzZWxmKToKKyAgICBkZWYgdGVzdF94dmZiX3N0YXJ0X2Fy
Yml0cmFyeV93b3JrZXJfbnVtYmVyKHNlbGYpOgogICAgICAgICBkcml2ZXIgPSBzZWxmLm1ha2Vf
ZHJpdmVyKHdvcmtlcl9udW1iZXI9MTcpCi0gICAgICAgIGV4cGVjdGVkX2xvZ3MgPSAoIk1PQ0sg
cG9wZW46IFsnWHZmYicsICctZGlzcGxheWZkJywgJzQnLCAnLXNjcmVlbicsICcwJywgJzEwMjR4
NzY4eDI0JywgJy1ub2xpc3RlbicsICd0Y3AnXSwgZW52PSVzXG4iICUgZHJpdmVyLl9wb3J0X3Nl
cnZlcl9lbnZpcm9ubWVudCkKKyAgICAgICAgZXhwZWN0ZWRfZGlzcGxheSA9ICc6MScKKyAgICAg
ICAgZXhwZWN0ZWRfbG9ncyA9ICgiTU9DSyBwb3BlbjogWydYdmZiJywgJy1kaXNwbGF5ZmQnLCAn
NCcsICctbm9saXN0ZW4nLCAndGNwJywgJytleHRlbnNpb24nLCAnR0xYJywgJy1hYycsICctc2Ny
ZWVuJywgJzAnLCAnMTAyNHg3Njh4MjQnXSwgZW52PSVzXG4iICUgZHJpdmVyLl9wb3J0X3NlcnZl
cl9lbnZpcm9ubWVudCkKKyAgICAgICAgZXhwZWN0ZWRfbG9ncyArPSAoJ1RoZSBYdmZiIGRpc3Bs
YXkgc2VydmVyICIlcyIgaXMgcmVhZHkgYW5kIHJlcGx5aW5nIGFzIGV4cGVjdGVkLlxuJyAlIGV4
cGVjdGVkX2Rpc3BsYXkpCiAgICAgICAgIHNlbGYuYXNzZXJ0RHJpdmVyU3RhcnRTdWNjZXNzZnVs
KGRyaXZlciwgZXhwZWN0ZWRfbG9ncz1leHBlY3RlZF9sb2dzLCBleHBlY3RlZF9kaXNwbGF5PSI6
MSIsIHBpeGVsX3Rlc3RzPVRydWUpCiAgICAgICAgIHNlbGYuY2xlYW51cF9kcml2ZXIoZHJpdmVy
KQogCisgICAgZGVmIHRlc3RfeHZmYl9ub3RfcmVwbHlpbmcoc2VsZik6CisgICAgICAgIGZhaWxp
bmdfcHJpbnRfc2NyZWVuX3NpemVfcHJvY2VzcyA9IE1vY2tQcm9jZXNzKHJldHVybmNvZGU9MSkK
KyAgICAgICAgZHJpdmVyID0gc2VsZi5tYWtlX2RyaXZlcihwcmludF9zY3JlZW5fc2l6ZV9wcm9j
ZXNzPWZhaWxpbmdfcHJpbnRfc2NyZWVuX3NpemVfcHJvY2VzcykKKyAgICAgICAgd2l0aCBPdXRw
dXRDYXB0dXJlKGxldmVsPWxvZ2dpbmcuSU5GTykgYXMgY2FwdHVyZWQ6CisgICAgICAgICAgICBz
ZWxmLmFzc2VydFJhaXNlc1JlZ2V4cChSdW50aW1lRXJyb3IsICdVbmFibGUgdG8gc3RhcnQgWHZm
YiBkaXNwbGF5IHNlcnZlcicsIGRyaXZlci5zdGFydCwgRmFsc2UsIFtdKQorICAgICAgICAgICAg
Y2FwdHVyZWRfbG9nID0gY2FwdHVyZWQucm9vdC5sb2cuZ2V0dmFsdWUoKQorICAgICAgICAgICAg
Zm9yIHJldHJ5IGluIFsxLCAyLCAzXToKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUo
J0ZhaWxlZCB0byBzdGFydCBYdmZiIGRpc3BsYXkgc2VydmVyIC4uLiByZXRyeWluZyBbIHt9IG9m
IDMgXS4nLmZvcm1hdChyZXRyeSkgaW4gY2FwdHVyZWRfbG9nKQorICAgICAgICAgICAgICAgIHNl
bGYuYXNzZXJ0RmFsc2UoJ0ZhaWxlZCB0byBzdGFydCBYdmZiIGRpc3BsYXkgc2VydmVyIC4uLiBy
ZXRyeWluZyBbIDQgb2YgMyBdLicgaW4gY2FwdHVyZWRfbG9nKQorICAgICAgICAgICAgc2VsZi5h
c3NlcnRUcnVlKCdGYWlsZWQgdG8gc3RhcnQgWHZmYiBkaXNwbGF5IHNlcnZlciAuLi4gZ2l2aW5n
IHVwIGFmdGVyIDMgcmV0cmllcy4nIGluIGNhcHR1cmVkX2xvZykKKyAgICAgICAgICAgIHNlbGYu
YXNzZXJ0VHJ1ZSgnVGhlIHByaW50LXNjcmVlbi1zaXplIHRvb2wgcmV0dXJuZWQgbm9uLXplcm8g
c3RhdHVzJyBpbiBjYXB0dXJlZF9sb2cpCisgICAgICAgIHNlbGYuY2xlYW51cF9kcml2ZXIoZHJp
dmVyKQorCiAgICAgZGVmIHRlc3Rfc3RvcChzZWxmKToKICAgICAgICAgcG9ydCA9IFBvcnQoTW9j
a1N5c3RlbUhvc3QobG9nX2V4ZWN1dGl2ZT1UcnVlKSwgJ3h2ZmJkcml2ZXJ0ZXN0cG9ydCcsIG9w
dGlvbnM9TW9ja09wdGlvbnMoY29uZmlndXJhdGlvbj0nUmVsZWFzZScpKQogICAgICAgICBwb3J0
Ll9leGVjdXRpdmUua2lsbF9wcm9jZXNzID0gbGFtYmRhIHg6IF9sb2cuaW5mbygiTU9DSyBraWxs
X3Byb2Nlc3MgcGlkOiAiICsgc3RyKHgpKQpkaWZmIC0tZ2l0IGEvVG9vbHMvZ3RrL3ByaW50LXNj
cmVlbi1zaXplIGIvVG9vbHMvZ3RrL3ByaW50LXNjcmVlbi1zaXplCm5ldyBmaWxlIG1vZGUgMTAw
NzU1CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVkMGFh
NmE3NWNiNmIwMWE2Mjk3ZDQ1NDM1NjViYjMxNThjZmRiMWYKLS0tIC9kZXYvbnVsbAorKysgYi9U
b29scy9ndGsvcHJpbnQtc2NyZWVuLXNpemUKQEAgLTAsMCArMSw1NCBAQAorIyEvdXNyL2Jpbi9l
bnYgcHl0aG9uMworIworIyBDb3B5cmlnaHQgKEMpIDIwMjEgSWdhbGlhIFMuTC4KKyMKKyMgUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorIworIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsIHRoaXMK
KyMgICAgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisj
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0IG5vdGljZSwKKyMgICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbgorIyAgICBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRS
SUJVVE9SUyAiQVMgSVMiIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgT1dORVIg
T1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisj
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsKKyMgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisjIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisjIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitpbXBvcnQgYXJncGFyc2UK
K2ltcG9ydCBzeXMKK2ltcG9ydCBnaQorZ2kucmVxdWlyZV92ZXJzaW9uKCdHdGsnLCAnMy4wJykK
K2dpLnJlcXVpcmVfdmVyc2lvbignR2RrJywgJzMuMCcpCitmcm9tIGdpLnJlcG9zaXRvcnkgaW1w
b3J0IEd0aywgR2RrCisKKworZGVmIHByaW50X3NjcmVlbl9zaXplKG1vbml0b3JfaWQpOgorICAg
IGRpc3BsYXkgPSBHZGsuRGlzcGxheS5nZXRfZGVmYXVsdCgpCisgICAgaWYgbm90IGRpc3BsYXk6
CisgICAgICAgIHByaW50KCdVbmFibGUgdG8gZmluZCBhIGRpc3BsYXknKQorICAgICAgICByZXR1
cm4gMQorICAgIG1vbml0b3IgPSBkaXNwbGF5LmdldF9tb25pdG9yKG1vbml0b3JfaWQpCisgICAg
aWYgbm90IG1vbml0b3I6CisgICAgICAgIHByaW50KCdVbmFibGUgdG8gZmluZCBhIG1vbml0b3In
KQorICAgICAgICByZXR1cm4gMQorICAgIGdlb21ldHJ5ID0gbW9uaXRvci5nZXRfZ2VvbWV0cnko
KQorICAgIHByaW50KCd7fXh7fScuZm9ybWF0KGdlb21ldHJ5LndpZHRoLCAgZ2VvbWV0cnkuaGVp
Z2h0KSkKKyAgICByZXR1cm4gMAorCisKKyMgVGhpcyB0b29sIGlzIHVzZWQgZnJvbSB0aGUgbGF5
b3V0IHRlc3RzIHdoZW4gcnVubmluZyB3aXRoIHRoZSBYdmZiIGRyaXZlciwKKyMgaW4gb3JkZXIg
dG8gY2hlY2sgdGhhdCB0aGUgWHZmYiBzZXJ2ZXIgaXMgYWxpdmUgYW5kIGNvbmZpZ3VyZWQgYXMg
ZXhwZWN0ZWQuCisjIFBsZWFzZSwgZG9uJ3QgbW9kaWZ5IHRoaXMgdG9vbCB3aXRob3V0IGNoZWNr
aW5nIGZpcnN0IGhvdyBpdCBpcyB1c2VkIGF0IHdlYmtpdHB5L3BvcnQveHZmYmRyaXZlci5weQor
aWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKKyAgICBwYXJzZXIgPSBhcmdwYXJzZS5Bcmd1bWVu
dFBhcnNlcihkZXNjcmlwdGlvbj0nUHJpbnQgdGhlIGN1cnJlbnQgZGlzcGxheSBzaXplICh3aWR0
aHhoZWlnaHQpIG9mIGEgZ2l2ZW4gbW9uaXRvcicpCisgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgi
LW4iLCB0eXBlPWludCwgaGVscD0nTnVtYmVyIG9mIHRoZSBtb25pdG9yIHRoZSBxdWVyeScsIGRl
ZmF1bHQ9MCkKKyAgICBhcmdzID0gcGFyc2VyLnBhcnNlX2FyZ3MoKQorICAgIHN5cy5leGl0KHBy
aW50X3NjcmVlbl9zaXplKGFyZ3MubikpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>