<!DOCTYPE html><html><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body>
    <div class="markdown-here-wrapper" data-md-url="" style="" markdown-here-wrapper-content-modified="true">
      <p style="margin: 0px 0px 1.2em !important;">Hello Roland,</p>
      <p style="margin: 0px 0px 1.2em !important;"><br>
      </p>
      <p style="margin: 0px 0px 1.2em !important;">Thanks for the reply,
        and apologies for not including all relevant information.</p>
      <p style="margin: 0px 0px 1.2em !important;">One of the things is
        that I forgot to mention that conda (in this case, micromamba, a
        drop-in alternative that is fully compatible) sets some
        environmental variables by itself. Obviously, some of them are
        are the overwritten with whatever is on the <code style="font-family: Consolas, Inconsolata, Courier, monospace;margin: 0px 0.15em; padding: 0px 0.3em; white-space: pre-wrap; font-weight: 550; background-color: rgba(119, 119, 119, 0.3); border-radius: 3px; display: inline;">.cfg</code>
        file.</p>
      <p style="margin: 0px 0px 1.2em !important;">It turns out that
        micromamba sets <code style="font-family: Consolas, Inconsolata, Courier, monospace;margin: 0px 0.15em; padding: 0px 0.3em; white-space: pre-wrap; font-weight: 550; background-color: rgba(119, 119, 119, 0.3); border-radius: 3px; display: inline;">$LD</code>
        to point towards the <code style="font-family: Consolas, Inconsolata, Courier, monospace;margin: 0px 0.15em; padding: 0px 0.3em; white-space: pre-wrap; font-weight: 550; background-color: rgba(119, 119, 119, 0.3); border-radius: 3px; display: inline;">ld</code>
        binary provided by the virtual environment </p>
      <p style="margin: 0px 0px 1.2em !important;">Adding <code style="font-family: Consolas, Inconsolata, Courier, monospace;margin: 0px 0.15em; padding: 0px 0.3em; white-space: pre-wrap; font-weight: 550; background-color: rgba(119, 119, 119, 0.3); border-radius: 3px; display: inline;">LD = g++</code>
        as you suggested resulted in a slightly different error</p>
      <pre style="font-family: Consolas, Inconsolata, Courier, monospace;font-size: 1em; line-height: 1.2em;margin: 1.2em 0px;"><code style="font-family: Consolas, Inconsolata, Courier, monospace;margin: 0px 0.15em; padding: 0px 0.3em; white-space: pre-wrap; font-weight: 550; background-color: rgba(119, 119, 119, 0.3); border-radius: 3px; display: inline;white-space: pre; overflow: auto; border-radius: 3px; border: 1px solid rgb(204, 204, 204); padding: 0.5em 0.7em; display: block !important;">Creating cactus_empty in /home/undercover/projects/cactus/exe from
/home/undercover/.micromamba/envs/phd/bin/../lib/gcc/x86_64-conda-linux-gnu/11.4.0/../../../../x86_64-conda-linux-gnu/bin/ld: cannot find -lz: No such file or directory
collect2: error: ld returned 1 exit status
make[1]: *** [/home/undercover/projects/cactus/lib/make/make.configuration:150: /home/undercover/projects/cactus/exe/cactus_empty] Error 1
make: *** [Makefile:265: empty] Error 2
</code></pre>
      <p style="margin: 0px 0px 1.2em !important;"><br>
      </p>
      <p style="margin: 0px 0px 1.2em !important;">To avoid back and
        forth between e-mails, and to add some information that was
        previously missing, here are the steps that I take to reproduce
        the error</p>
      <ol style="margin: 1.2em 0px;padding-left: 2em;">
        <li style="margin: 0.5em 0px;">
          <p style="margin: 0px 0px 1.2em !important;margin: 0.5em 0px !important;">Create
            a new conda environment and activate it (in my machine it’s
            called “phd”)</p>
        </li>
        <li style="margin: 0.5em 0px;">
          <p style="margin: 0px 0px 1.2em !important;margin: 0.5em 0px !important;"><code style="font-family: Consolas, Inconsolata, Courier, monospace;margin: 0px 0.15em; padding: 0px 0.3em; white-space: pre-wrap; font-weight: 550; background-color: rgba(119, 119, 119, 0.3); border-radius: 3px; display: inline;">conda install gcc gxx gfortran openmpi openmpi-mpicc openmpi-mpicxx openmpi-mpifort binutils</code></p>
        </li>
        <li style="margin: 0.5em 0px;">
          <p style="margin: 0px 0px 1.2em !important;margin: 0.5em 0px !important;">Compile
            the toolkit with the thornlist <code style="font-family: Consolas, Inconsolata, Courier, monospace;margin: 0px 0.15em; padding: 0px 0.3em; white-space: pre-wrap; font-weight: 550; background-color: rgba(119, 119, 119, 0.3); border-radius: 3px; display: inline;">empty.th</code>
            and the options file <code style="font-family: Consolas, Inconsolata, Courier, monospace;margin: 0px 0.15em; padding: 0px 0.3em; white-space: pre-wrap; font-weight: 550; background-color: rgba(119, 119, 119, 0.3); border-radius: 3px; display: inline;">venv.cfg</code>,
            both attached again to this e-mail</p>
        </li>
        <li style="margin: 0.5em 0px;">
          <p style="margin: 0px 0px 1.2em !important;margin: 0.5em 0px !important;">Configuration
            is created without any issues, with the terminal output
            attached to <code style="font-family: Consolas, Inconsolata, Courier, monospace;margin: 0px 0.15em; padding: 0px 0.3em; white-space: pre-wrap; font-weight: 550; background-color: rgba(119, 119, 119, 0.3); border-radius: 3px; display: inline;">empty.log</code>
            (this file was missing in the previous e-mail), and get the
            error making the binary, with the terminal output attached
            in <code style="font-family: Consolas, Inconsolata, Courier, monospace;margin: 0px 0.15em; padding: 0px 0.3em; white-space: pre-wrap; font-weight: 550; background-color: rgba(119, 119, 119, 0.3); border-radius: 3px; display: inline;">cactus_empty.log</code></p>
        </li>
      </ol>
      <p style="margin: 0px 0px 1.2em !important;"><br>
      </p>
      <p style="margin: 0px 0px 1.2em !important;">Further relevant
        information about the running status of the machine:</p>
      <ul style="margin: 1.2em 0px;padding-left: 2em;">
        <li style="margin: 0.5em 0px;">
          <p style="margin: 0px 0px 1.2em !important;margin: 0.5em 0px !important;">Environmental
            variables: see file <code style="font-family: Consolas, Inconsolata, Courier, monospace;margin: 0px 0.15em; padding: 0px 0.3em; white-space: pre-wrap; font-weight: 550; background-color: rgba(119, 119, 119, 0.3); border-radius: 3px; display: inline;">env.txt</code>
            which includes a stripped down version of the environmental
            variables. For instance, you can see that <code style="font-family: Consolas, Inconsolata, Courier, monospace;margin: 0px 0.15em; padding: 0px 0.3em; white-space: pre-wrap; font-weight: 550; background-color: rgba(119, 119, 119, 0.3); border-radius: 3px; display: inline;">$LD</code>
            is set and carries on with its value during compilation, but
            <code style="font-family: Consolas, Inconsolata, Courier, monospace;margin: 0px 0.15em; padding: 0px 0.3em; white-space: pre-wrap; font-weight: 550; background-color: rgba(119, 119, 119, 0.3); border-radius: 3px; display: inline;">$LDFLAGS</code>,
            <code style="font-family: Consolas, Inconsolata, Courier, monospace;margin: 0px 0.15em; padding: 0px 0.3em; white-space: pre-wrap; font-weight: 550; background-color: rgba(119, 119, 119, 0.3); border-radius: 3px; display: inline;">$CFLAGS</code>
            and <code style="font-family: Consolas, Inconsolata, Courier, monospace;margin: 0px 0.15em; padding: 0px 0.3em; white-space: pre-wrap; font-weight: 550; background-color: rgba(119, 119, 119, 0.3); border-radius: 3px; display: inline;">$CXXFLAGS</code>
            are overwritten by whatever is in the <code style="font-family: Consolas, Inconsolata, Courier, monospace;margin: 0px 0.15em; padding: 0px 0.3em; white-space: pre-wrap; font-weight: 550; background-color: rgba(119, 119, 119, 0.3); border-radius: 3px; display: inline;">venv.cfg</code>.
            Even if I concatenate the environmental variables from the
            shell with the ones from the options file, it still doesn’t
            work. </p>
        </li>
        <li style="margin: 0.5em 0px;">
          <p style="margin: 0px 0px 1.2em !important;margin: 0.5em 0px !important;">OS:
            Manjaro</p>
        </li>
        <li style="margin: 0.5em 0px;">
          <p style="margin: 0px 0px 1.2em !important;margin: 0.5em 0px !important;">Kernel:
            Linux legion 5.10.218-1-MANJARO #1 SMP PREEMPT Mon May 27
            02:19:19 UTC 2024 x86_64 GNU/Linux</p>
        </li>
        <li style="margin: 0.5em 0px;">
          <p style="margin: 0px 0px 1.2em !important;margin: 0.5em 0px !important;">CPU:
            Intel(R) Core(TM) i5-7300HQ CPU @ 2.50GHz (quad core)</p>
        </li>
        <li style="margin: 0.5em 0px;">
          <p style="margin: 0px 0px 1.2em !important;margin: 0.5em 0px !important;">Package
            Manager: <a href="https://mamba.readthedocs.io/en/latest/user_guide/micromamba.html">Micromamba</a>
            using the <a href="https://conda-forge.org/packages/">conda-forge</a>
            repositories</p>
        </li>
      </ul>
      <p style="margin: 0px 0px 1.2em !important;"><br>
      </p>
      <p style="margin: 0px 0px 1.2em !important;">It should be noted
        that I am able of replicating this bug on my laptop (this
        machine) and two different desktops that are both running Arch
        Linux. </p>
      <p style="margin: 0px 0px 1.2em !important;">This is not totally
        unexpected considering they are very similar OS’s with the same
        versions of the software that is being used.<br>
      </p>
      <p style="margin: 0px 0px 1.2em !important;"><br>
      </p>
      <p style="margin: 0px 0px 1.2em !important;">I hope that I could
        make it as clear as possible.</p>
      <p style="margin: 0px 0px 1.2em !important;">Best regards,</p>
      <p style="margin: 0px 0px 1.2em !important;">José Ferreira<br>
      </p>
      <p style="margin: 0px 0px 1.2em !important;"><br>
      </p>
      <p style="margin: 0px 0px 1.2em !important;"></p>
      <div class="markdown-here-exclude">
        <div class="moz-cite-prefix">On 12/06/24 15:59, Roland Haas
          wrote:<br>
        </div>
      </div>
      <p style="margin: 0px 0px 1.2em !important;"></p>
      <p style="margin: 0px 0px 1.2em !important;"></p>
      <div class="markdown-here-exclude">
        <blockquote type="cite" cite="mid:20240612095905.05d45393@ekohaes8.ncsa.illinois.edu">
          <pre class="moz-quote-pre" wrap="">Hello Jose,

Cactus uses the C++ compiler to link things. 

This is controlled by the LD option list option.

In your option list (thank you for including it) you do not set it, so
it should default to the value of CXX.

However if there is an environment variable LD set, then this will
override the option list default (you'd see eg LD in the output of the
env command).

So as a first try, I'd add 

LD = g++

to your option list and recompile from scratch.

If that does not help, then more information will be required. Please
see:

<a class="moz-txt-link-freetext" href="http://einsteintoolkit.org/support.html#general-guidelines-for-questions">http://einsteintoolkit.org/support.html#general-guidelines-for-questions</a>

for what to include.

Yours,
Roland

On Wed, 12 Jun 2024 15:51:13 +0100, José Ferreira wrote:
</pre>
          <blockquote type="cite">
            <pre class="moz-quote-pre" wrap="">Dear toolkit users and developers,


With the latest update of GCC to version 14, there is a known error
that prevents the compilation from taking place, preventing me from
compiling the toolkit.

I’ve been trying to do something which I probably should have some
time ago to avoid this kind of issues, while also granting some
portability between machines, which is to setup a virtual environment
using Conda to compile the toolkit.


I am sending you this e-mail because I’ve failed to compile the
toolkit in a virtual environment, where I am currently stuck with an
error during the linking phase. Before the update to GCC 14, and
without the virtual environment, I was able of compiling the toolkit
without any issue.

Here are the steps that I have performed:

1.

Activate an empty virtual environment managed by a conda (or a
drop-in replacement) with the conda-forge repository configured

2.

|conda install gcc gxx gfortran openmpi openmpi-mpicc
openmpi-mpicxx openmpi-mpifort binutils|

3.

Compile the toolkit with an empty thornlist, attached in
|empty.th|, and an option file that points towards the virtual
environment that is activated, attached in |venv.cfg|

4.

Get the following error from |ld| (the full log for making the
config and the binary are attached in |cactus_empty.log|)

|Creating cactus_empty in /home/undercover/projects/cactus/exe from
/home/undercover/.micromamba/envs/phd/bin/x86_64-conda-linux-gnu-ld:
unrecognised emulation mode: arch=native Supported emulations:
elf_x86_64 elf32_x86_64 elf_i386 elf_iamcu make[1]: ***
[/home/undercover/projects/cactus/lib/make/make.configuration:150:
/home/undercover/projects/cactus/exe/cactus_empty] Error 1 make: ***
[Makefile:265: empty] Error 2 |


To me, the previous error indicates that something is passing the
wrong flags to |ld|, because even if the emulation mode was not
recognized it should give the error |ld: unrecognised emulation mode:
<something>| instead of |ld: unrecognised emulation mode:
arch=<something>|.

Removing the flag |-march=native| from the compilers confirms my
guess by revealing a different error at the same stage

|Creating cactus_empty in /home/undercover/projects/cactus/exe from
/home/undercover/.micromamba/envs/phd/bin/x86_64-conda-linux-gnu-ld:
unrecognized option '-DMPICH_IGNORE_CXX_SEEK'
/home/undercover/.micromamba/envs/phd/bin/x86_64-conda-linux-gnu-ld:
use the --help option for usage information make[1]: ***
[/home/undercover/projects/cactus/lib/make/make.configuration:150:
/home/undercover/projects/cactus/exe/cactus_empty] Error 1 make: ***
[Makefile:265: empty] Error 2 |

and if I were to remove the corresponding flag in the config file,
|ld| will complain about something else.

It really seems like something is passing the flags onto |ld| where
it shouldn’t, but I cannot tell who and where.


I should note that compiling very basic programs in C in the virtual
environment doesn’t raise any issues, although I haven’t tested it
very thoroughly.

Please do let me know if you have any issues in rendering this e-mail!


Best regards,

José Ferreira



</pre>
          </blockquote>
          <pre class="moz-quote-pre" wrap=""></pre>
        </blockquote>
      </div>
      <p style="margin: 0px 0px 1.2em !important;"></p>
      <div title="MDH:PHA+SGVsbG8gUm9sYW5kLDwvcD48cD48YnI+PC9wPjxwPlRoYW5rcyBmb3IgdGhlIHJlcGx5LCBh
bmQgYXBvbG9naWVzIGZvciBub3QgaW5jbHVkaW5nIHRoZSBpbmZvcm1hdGlvbiBvbiBteSBzeXN0
ZW0uPC9wPjxwPkkgYWxzbyBmb3Jnb3QgdG8gbWVudGlvbiB0aGF0IGNvbmRhIChpbiB0aGlzIGNh
c2UsIG1pY3JvbWFtYmEsIHdoaWNoIHNob3VsZCBiZSBjb21wbGV0ZWx5IGNvbXBhdGlibGUpIHNl
dHMgc29tZSBlbnZpcm9ubWVudGFsIHZhcmlhYmxlcywgdGhhdCBhcmUgdGhlIG92ZXJ3cml0dGVu
IHdpdGggd2hhdGV2ZXIgaXMgb24gdGhlIGAuY2ZnYCBmaWxlLjwvcD48cD5JIGRpZG4ndCBrbm93
IGAkTERgIGV4aXN0ZWQsIGFuZCBhZnRlciBjaGVja2luZywgaXQgdHVybnMgb3V0IHRoYXQgbWlj
cm9tYW1iYSBzZXRzIGl0IHRvIHBvaW50IHRvd2FyZHMgdGhlIGBsZGAgYmluYXJ5IHByb3ZpZGVk
IGJ5IHRoZSB2aXJ0dWFsIGVudmlyb25tZW50LiA8YnI+PC9wPjxwPjxicj48L3A+PHA+QWRkaW5n
IGBMRCA9IGcrK2AgYXMgeW91IHN1Z2dlc3RlZCByZXN1bHRlZCBpbiBhIHNsaWdodGx5IGRpZmZl
cmVudCBlcnJvcjwvcD48cD5gYGA8L3A+PHA+Q3JlYXRpbmcgY2FjdHVzX2VtcHR5IGluIC9ob21l
L3VuZGVyY292ZXIvcHJvamVjdHMvY2FjdHVzL2V4ZSBmcm9tPGJyPi9ob21lL3VuZGVyY292ZXIv
Lm1pY3JvbWFtYmEvZW52cy9waGQvYmluLy4uL2xpYi9nY2MveDg2XzY0LWNvbmRhLWxpbnV4LWdu
dS8xMS40LjAvLi4vLi4vLi4vLi4veDg2XzY0LWNvbmRhLWxpbnV4LWdudS9iaW4vbGQ6IGNhbm5v
dCBmaW5kIC1sejogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeTxicj5jb2xsZWN0MjogZXJyb3I6
IGxkIHJldHVybmVkIDEgZXhpdCBzdGF0dXM8YnI+bWFrZVsxXTogKioqIFsvaG9tZS91bmRlcmNv
dmVyL3Byb2plY3RzL2NhY3R1cy9saWIvbWFrZS9tYWtlLmNvbmZpZ3VyYXRpb246MTUwOiAvaG9t
ZS91bmRlcmNvdmVyL3Byb2plY3RzL2NhY3R1cy9leGUvY2FjdHVzX2VtcHR5XSBFcnJvciAxPGJy
Pm1ha2U6ICoqKiBbTWFrZWZpbGU6MjY1OiBlbXB0eV0gRXJyb3IgMjxicj48L3A+PHA+YGBgPC9w
PjxwPjxicj48L3A+PHA+VG8gYXZvaWQgYmFjayBhbmQgZm9ydGggYmV0d2VlbiBlLW1haWxzLCBh
bmQgdG8gYWRkIHNvbWUgaW5mb3JtYXRpb24gdGhhdCB3YXMgcHJldmlvdXNseSBtaXNzaW5nLCBo
ZXJlIGFyZSB0aGUgc3RlcHMgdGhhdCBJIHRha2UgdG8gcmVwcm9kdWNlIHRoZSBlcnJvcjwvcD48
cD4xLiBDcmVhdGUgYSBuZXcgY29uZGEgZW52aXJvbm1lbnQgYW5kIGFjdGl2YXRlIGl0IChpbiBt
eSBtYWNoaW5lIGl0J3MgY2FsbGVkICJwaGQiKTxicj48L3A+PHA+Mi4gYGNvbmRhIGluc3RhbGwg
Z2NjIGd4eCBnZm9ydHJhbiBvcGVubXBpIG9wZW5tcGktbXBpY2Mgb3Blbm1waS1tcGljeHggb3Bl
bm1waS1tcGlmb3J0IGJpbnV0aWxzYDwvcD48cD4zLiBDb21waWxlIHRoZSB0b29sa2l0IHRoZSB0
aG9ybmxpc3QgYGVtcHR5LnRoYCBhbmQgdGhlIG9wdGlvbnMgZmlsZSBgdmVudi5jZmdgLCBib3Ro
IGF0dGFjaGVkIGFnYWluIHRvIHRoaXMgZS1tYWlsPC9wPjxwPjQuIENvbmZpZ3VyYXRpb24gaXMg
Y3JlYXRlZCB3aXRob3V0IGFueSBpc3N1ZXMsIGFuZCB0aGUgb3V0cHV0IGlzIGF0dGFjaGVkIHRv
IGBlbXB0eS5sb2dgIChtaXNzaW5nIGluIHRoZSBwcmV2aW91cyBlLW1haWwpLCBhbmQgZ2V0IHRo
ZSBlcnJvciBtYWtpbmcgdGhlIGJpbmFyeSwgd2l0aCB0aGUgb3V0cHV0IGF0dGFjaGVkIGluIGBj
YWN0dXNfZW1wdHkubG9nYDwvcD48cD48YnI+PC9wPjxwPkZ1cnRoZXIgcmVsZXZhbnQgaW5mb3Jt
YXRpb24gYWJvdXQgdGhlIHJ1bm5pbmcgc3RhdHVzIG9mIHRoZSBtYWNoaW5lOjwvcD48cD4tIEVu
dmlyb25tZW50YWwgdmFyaWFibGVzOiBzZWUgZmlsZSBgZW52LnR4dGAgd2hpY2ggaW5jbHVkZXMg
dGhlIG1vcmUgcmVsZXZhbnQgZW52aXJvbm1lbnRhbCB2YXJpYWJsZXMgdGhhdCB3ZXJlIHNldCBi
eSB0aGUgdmlydHVhbCBlbnZpcm9ubWVudCAoZS5nLiBzZWUgdGhhdCBgTERgIGlzIHNldCwgYnV0
IHRoYXQgYExERkxBR1NgLCBgQ0ZMQUdTYCBhbmQgYENYWEZMQUdTYCBhcmUgb3ZlcndyaXR0ZW4g
Ynkgd2hhdGV2ZXIgaXMgaW4gdGhlIGB2ZW52LmNmZ2AsIGFuZCBldmVuIGlmIEkgY29uY2F0ZW5h
dGUgdGhlIHR3byB0b2dldGhlciBpdCBzdGlsbCBkb2Vzbid0IHdvcmspIDxicj48L3A+PHA+LSBP
UzogTWFuamFybzwvcD48cD4tIEtlcm5lbDogTGludXggbGVnaW9uIDUuMTAuMjE4LTEtTUFOSkFS
TyAjMSBTTVAgUFJFRU1QVCBNb24gTWF5IDI3IDAyOjE5OjE5IFVUQyAyMDI0IHg4Nl82NCBHTlUv
TGludXg8L3A+PHA+LSBDUFU6IEludGVsKFIpIENvcmUoVE0pIGk1LTczMDBIUSBDUFUgQCAyLjUw
R0h6IChxdWFkIGNvcmUpPC9wPjxwPi0gUGFja2FnZSBNYW5hZ2VyOiA8YSBocmVmPSJodHRwczov
L21hbWJhLnJlYWR0aGVkb2NzLmlvL2VuL2xhdGVzdC91c2VyX2d1aWRlL21pY3JvbWFtYmEuaHRt
bCI+TWljcm9tYW1iYTwvYT4gdXNpbmcgdGhlIDxhIGhyZWY9Imh0dHBzOi8vY29uZGEtZm9yZ2Uu
b3JnL3BhY2thZ2VzLyI+Y29uZGEtZm9yZ2U8L2E+IHJlcG9zaXRvcmllczwvcD48cD48YnI+PC9w
PjxwPkl0IHNob3VsZCBiZSBub3RlZCB0aGF0IEkgYW0gZmFjaW5nIGEgc2ltaWxhciBpc3N1ZSBv
biB0d28gZGVza3RvcCBjb21wdXRlcnMgdGhhdCBhcmUgcnVubmluZyBBcmNoIExpbnV4LCB3aGlj
aCBpcyBub3QgdG90YWxseSB1bmV4cGVjdGVkIGNvbnNpZGVyaW5nIHRoZXkgYXJlIHZlcnkgc2lt
aWxhciBPUydzLjxicj48L3A+PHA+PGJyPjwvcD48cD48YnI+PC9wPjxkaXYgY2xhc3M9Im1vei1j
aXRlLXByZWZpeCI+T24gMTIvMDYvMjQgMTU6NTksIFJvbGFuZCBIYWFzIHdyb3RlOjxicj48L2Rp
dj48YmxvY2txdW90ZSB0eXBlPSJjaXRlIiBjaXRlPSJtaWQ6MjAyNDA2MTIwOTU5MDUuMDVkNDUz
OTNAZWtvaGFlczgubmNzYS5pbGxpbm9pcy5lZHUiPjxwcmUgY2xhc3M9Im1vei1xdW90ZS1wcmUi
IHdyYXA9IiI+SGVsbG8gSm9zZSwKCkNhY3R1cyB1c2VzIHRoZSBDKysgY29tcGlsZXIgdG8gbGlu
ayB0aGluZ3MuIAoKVGhpcyBpcyBjb250cm9sbGVkIGJ5IHRoZSBMRCBvcHRpb24gbGlzdCBvcHRp
b24uCgpJbiB5b3VyIG9wdGlvbiBsaXN0ICh0aGFuayB5b3UgZm9yIGluY2x1ZGluZyBpdCkgeW91
IGRvIG5vdCBzZXQgaXQsIHNvCml0IHNob3VsZCBkZWZhdWx0IHRvIHRoZSB2YWx1ZSBvZiBDWFgu
CgpIb3dldmVyIGlmIHRoZXJlIGlzIGFuIGVudmlyb25tZW50IHZhcmlhYmxlIExEIHNldCwgdGhl
biB0aGlzIHdpbGwKb3ZlcnJpZGUgdGhlIG9wdGlvbiBsaXN0IGRlZmF1bHQgKHlvdSdkIHNlZSBl
ZyBMRCBpbiB0aGUgb3V0cHV0IG9mIHRoZQplbnYgY29tbWFuZCkuCgpTbyBhcyBhIGZpcnN0IHRy
eSwgSSdkIGFkZCAKCkxEID0gZysrCgp0byB5b3VyIG9wdGlvbiBsaXN0IGFuZCByZWNvbXBpbGUg
ZnJvbSBzY3JhdGNoLgoKSWYgdGhhdCBkb2VzIG5vdCBoZWxwLCB0aGVuIG1vcmUgaW5mb3JtYXRp
b24gd2lsbCBiZSByZXF1aXJlZC4gUGxlYXNlCnNlZToKCmh0dHA6Ly9laW5zdGVpbnRvb2xraXQu
b3JnL3N1cHBvcnQuaHRtbCNnZW5lcmFsLWd1aWRlbGluZXMtZm9yLXF1ZXN0aW9ucwoKZm9yIHdo
YXQgdG8gaW5jbHVkZS4KCllvdXJzLApSb2xhbmQKCk9uIFdlZCwgMTIgSnVuIDIwMjQgMTU6NTE6
MTMgKzAxMDAsIEpvc8OpIEZlcnJlaXJhIHdyb3RlOgo8L3ByZT48YmxvY2txdW90ZSB0eXBlPSJj
aXRlIj48cHJlIGNsYXNzPSJtb3otcXVvdGUtcHJlIiB3cmFwPSIiPkRlYXIgdG9vbGtpdCB1c2Vy
cyBhbmQgZGV2ZWxvcGVycywKCgpXaXRoIHRoZSBsYXRlc3QgdXBkYXRlIG9mIEdDQyB0byB2ZXJz
aW9uIDE0LCB0aGVyZSBpcyBhIGtub3duIGVycm9yCnRoYXQgcHJldmVudHMgdGhlIGNvbXBpbGF0
aW9uIGZyb20gdGFraW5nIHBsYWNlLCBwcmV2ZW50aW5nIG1lIGZyb20KY29tcGlsaW5nIHRoZSB0
b29sa2l0LgoKSeKAmXZlIGJlZW4gdHJ5aW5nIHRvIGRvIHNvbWV0aGluZyB3aGljaCBJIHByb2Jh
Ymx5IHNob3VsZCBoYXZlIHNvbWUKdGltZSBhZ28gdG8gYXZvaWQgdGhpcyBraW5kIG9mIGlzc3Vl
cywgd2hpbGUgYWxzbyBncmFudGluZyBzb21lCnBvcnRhYmlsaXR5IGJldHdlZW4gbWFjaGluZXMs
IHdoaWNoIGlzIHRvIHNldHVwIGEgdmlydHVhbCBlbnZpcm9ubWVudAp1c2luZyBDb25kYSB0byBj
b21waWxlIHRoZSB0b29sa2l0LgoKCkkgYW0gc2VuZGluZyB5b3UgdGhpcyBlLW1haWwgYmVjYXVz
ZSBJ4oCZdmUgZmFpbGVkIHRvIGNvbXBpbGUgdGhlCnRvb2xraXQgaW4gYSB2aXJ0dWFsIGVudmly
b25tZW50LCB3aGVyZSBJIGFtIGN1cnJlbnRseSBzdHVjayB3aXRoIGFuCmVycm9yIGR1cmluZyB0
aGUgbGlua2luZyBwaGFzZS4gQmVmb3JlIHRoZSB1cGRhdGUgdG8gR0NDIDE0LCBhbmQKd2l0aG91
dCB0aGUgdmlydHVhbCBlbnZpcm9ubWVudCwgSSB3YXMgYWJsZSBvZiBjb21waWxpbmcgdGhlIHRv
b2xraXQKd2l0aG91dCBhbnkgaXNzdWUuCgpIZXJlIGFyZSB0aGUgc3RlcHMgdGhhdCBJIGhhdmUg
cGVyZm9ybWVkOgoKIDEuCgogICAgQWN0aXZhdGUgYW4gZW1wdHkgdmlydHVhbCBlbnZpcm9ubWVu
dCBtYW5hZ2VkIGJ5IGEgY29uZGEgKG9yIGEKICAgIGRyb3AtaW4gcmVwbGFjZW1lbnQpIHdpdGgg
dGhlIGNvbmRhLWZvcmdlIHJlcG9zaXRvcnkgY29uZmlndXJlZAoKIDIuCgogICAgfGNvbmRhIGlu
c3RhbGwgZ2NjIGd4eCBnZm9ydHJhbiBvcGVubXBpIG9wZW5tcGktbXBpY2MKb3Blbm1waS1tcGlj
eHggb3Blbm1waS1tcGlmb3J0IGJpbnV0aWxzfAoKIDMuCgogICAgQ29tcGlsZSB0aGUgdG9vbGtp
dCB3aXRoIGFuIGVtcHR5IHRob3JubGlzdCwgYXR0YWNoZWQgaW4KfGVtcHR5LnRofCwgYW5kIGFu
IG9wdGlvbiBmaWxlIHRoYXQgcG9pbnRzIHRvd2FyZHMgdGhlIHZpcnR1YWwKZW52aXJvbm1lbnQg
dGhhdCBpcyBhY3RpdmF0ZWQsIGF0dGFjaGVkIGluIHx2ZW52LmNmZ3wKCiA0LgoKICAgIEdldCB0
aGUgZm9sbG93aW5nIGVycm9yIGZyb20gfGxkfCAodGhlIGZ1bGwgbG9nIGZvciBtYWtpbmcgdGhl
CiAgICBjb25maWcgYW5kIHRoZSBiaW5hcnkgYXJlIGF0dGFjaGVkIGluIHxjYWN0dXNfZW1wdHku
bG9nfCkKCnxDcmVhdGluZyBjYWN0dXNfZW1wdHkgaW4gL2hvbWUvdW5kZXJjb3Zlci9wcm9qZWN0
cy9jYWN0dXMvZXhlIGZyb20KL2hvbWUvdW5kZXJjb3Zlci8ubWljcm9tYW1iYS9lbnZzL3BoZC9i
aW4veDg2XzY0LWNvbmRhLWxpbnV4LWdudS1sZDoKdW5yZWNvZ25pc2VkIGVtdWxhdGlvbiBtb2Rl
OiBhcmNoPW5hdGl2ZSBTdXBwb3J0ZWQgZW11bGF0aW9uczoKZWxmX3g4Nl82NCBlbGYzMl94ODZf
NjQgZWxmX2kzODYgZWxmX2lhbWN1IG1ha2VbMV06ICoqKgpbL2hvbWUvdW5kZXJjb3Zlci9wcm9q
ZWN0cy9jYWN0dXMvbGliL21ha2UvbWFrZS5jb25maWd1cmF0aW9uOjE1MDoKL2hvbWUvdW5kZXJj
b3Zlci9wcm9qZWN0cy9jYWN0dXMvZXhlL2NhY3R1c19lbXB0eV0gRXJyb3IgMSBtYWtlOiAqKioK
W01ha2VmaWxlOjI2NTogZW1wdHldIEVycm9yIDIgfAoKClRvIG1lLCB0aGUgcHJldmlvdXMgZXJy
b3IgaW5kaWNhdGVzIHRoYXQgc29tZXRoaW5nIGlzIHBhc3NpbmcgdGhlCndyb25nIGZsYWdzIHRv
IHxsZHwsIGJlY2F1c2UgZXZlbiBpZiB0aGUgZW11bGF0aW9uIG1vZGUgd2FzIG5vdApyZWNvZ25p
emVkIGl0IHNob3VsZCBnaXZlIHRoZSBlcnJvciB8bGQ6IHVucmVjb2duaXNlZCBlbXVsYXRpb24g
bW9kZToKJmx0O3NvbWV0aGluZyZndDt8IGluc3RlYWQgb2YgfGxkOiB1bnJlY29nbmlzZWQgZW11
bGF0aW9uIG1vZGU6CmFyY2g9Jmx0O3NvbWV0aGluZyZndDt8LgoKUmVtb3ZpbmcgdGhlIGZsYWcg
fC1tYXJjaD1uYXRpdmV8IGZyb20gdGhlIGNvbXBpbGVycyBjb25maXJtcyBteQpndWVzcyBieSBy
ZXZlYWxpbmcgYSBkaWZmZXJlbnQgZXJyb3IgYXQgdGhlIHNhbWUgc3RhZ2UKCnxDcmVhdGluZyBj
YWN0dXNfZW1wdHkgaW4gL2hvbWUvdW5kZXJjb3Zlci9wcm9qZWN0cy9jYWN0dXMvZXhlIGZyb20K
L2hvbWUvdW5kZXJjb3Zlci8ubWljcm9tYW1iYS9lbnZzL3BoZC9iaW4veDg2XzY0LWNvbmRhLWxp
bnV4LWdudS1sZDoKdW5yZWNvZ25pemVkIG9wdGlvbiAnLURNUElDSF9JR05PUkVfQ1hYX1NFRUsn
Ci9ob21lL3VuZGVyY292ZXIvLm1pY3JvbWFtYmEvZW52cy9waGQvYmluL3g4Nl82NC1jb25kYS1s
aW51eC1nbnUtbGQ6CnVzZSB0aGUgLS1oZWxwIG9wdGlvbiBmb3IgdXNhZ2UgaW5mb3JtYXRpb24g
bWFrZVsxXTogKioqClsvaG9tZS91bmRlcmNvdmVyL3Byb2plY3RzL2NhY3R1cy9saWIvbWFrZS9t
YWtlLmNvbmZpZ3VyYXRpb246MTUwOgovaG9tZS91bmRlcmNvdmVyL3Byb2plY3RzL2NhY3R1cy9l
eGUvY2FjdHVzX2VtcHR5XSBFcnJvciAxIG1ha2U6ICoqKgpbTWFrZWZpbGU6MjY1OiBlbXB0eV0g
RXJyb3IgMiB8CgphbmQgaWYgSSB3ZXJlIHRvIHJlbW92ZSB0aGUgY29ycmVzcG9uZGluZyBmbGFn
IGluIHRoZSBjb25maWcgZmlsZSwKfGxkfCB3aWxsIGNvbXBsYWluIGFib3V0IHNvbWV0aGluZyBl
bHNlLgoKSXQgcmVhbGx5IHNlZW1zIGxpa2Ugc29tZXRoaW5nIGlzIHBhc3NpbmcgdGhlIGZsYWdz
IG9udG8gfGxkfCB3aGVyZQppdCBzaG91bGRu4oCZdCwgYnV0IEkgY2Fubm90IHRlbGwgd2hvIGFu
ZCB3aGVyZS4KCgpJIHNob3VsZCBub3RlIHRoYXQgY29tcGlsaW5nIHZlcnkgYmFzaWMgcHJvZ3Jh
bXMgaW4gQyBpbiB0aGUgdmlydHVhbAplbnZpcm9ubWVudCBkb2VzbuKAmXQgcmFpc2UgYW55IGlz
c3VlcywgYWx0aG91Z2ggSSBoYXZlbuKAmXQgdGVzdGVkIGl0CnZlcnkgdGhvcm91Z2hseS4KClBs
ZWFzZSBkbyBsZXQgbWUga25vdyBpZiB5b3UgaGF2ZSBhbnkgaXNzdWVzIGluIHJlbmRlcmluZyB0
aGlzIGUtbWFpbCEKCgpCZXN0IHJlZ2FyZHMsCgpKb3PDqSBGZXJyZWlyYQoKCuKAiwo8L3ByZT48
L2Jsb2NrcXVvdGU+PHByZSBjbGFzcz0ibW96LXF1b3RlLXByZSIgd3JhcD0iIj4KPC9wcmU+PC9i
bG9ja3F1b3RlPg==" aria-hidden="true" style="height:0;width:0;max-height:0;max-width:0;overflow:hidden;font-size:0;padding:0;margin:0;">​</div>
    </div>
  </body>
</html>