From mirageos-devel-bounces@lists.xenproject.org Tue Sep 01 07:28:03 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 01 Sep 2015 07:28:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZWfyx-0001is-Bk; Tue, 01 Sep 2015 07:27:51 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <tim@gfxmonk.net>) id 1ZWfyw-0001in-2F
	for MirageOS-devel@lists.xenproject.org; Tue, 01 Sep 2015 07:27:50 +0000
Received: from [85.158.137.68] by server-10.bemta-3.messagelabs.com id
	5B/C0-23203-57355E55; Tue, 01 Sep 2015 07:27:49 +0000
X-Env-Sender: tim@gfxmonk.net
X-Msg-Ref: server-7.tower-31.messagelabs.com!1441092467!39966862!1
X-Originating-IP: [209.85.213.173]
X-SpamReason: No, hits=0.8 required=7.0 tests=BODY_RANDOM_LONG,
  RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 28969 invoked from network); 1 Sep 2015 07:27:48 -0000
Received: from mail-ig0-f173.google.com (HELO mail-ig0-f173.google.com)
	(209.85.213.173)
	by server-7.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	1 Sep 2015 07:27:48 -0000
Received: by igbuu8 with SMTP id uu8so63416455igb.0
	for <MirageOS-devel@lists.xenproject.org>;
	Tue, 01 Sep 2015 00:27:47 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:mime-version:from:date:message-id:subject:to
	:content-type;
	bh=0pBL+BnjBH+rBK1LHP1Pm/wU8sDRAu1cOxI5lX5wpqw=;
	b=Qkxkxo7ddOnqTCr828t2t5Wax5j4A/WpFAbKwDW/gKzKOgCZ4YTlNQeV2GtGjENZ6F
	VV5xaCUByCi11IiK7V3r9LHy62R7+skoPDWPN3uLfJKGiYtl4mzr4chrlEegX9QpXDP9
	wT1WZxYVXXWBm0CVC0n+iK3feZk7JmwOIoCfX+oyf7kdEDNwk6EC4yb01E3vBtOzusux
	8XhKyEyeWRuj48SMCxyPOCm2LIT7Jg2nIKNgKcSdYRKr8SxE53zJZeskIY3eCCYtc3aF
	1SN0oJaimGPYLIgbSDxDdCM9Dgp0HYmz29LZlxd/zzAgFsgxsWBAIkzQ7RdnPwKAHFXJ
	kHBw==
X-Gm-Message-State: ALoCoQllDRMb7fooiVmj1PzH8IsFWBfjIikc0wxK4SUjUB3w6nzJUZyI5zN5qK6bcgL33KwVivlt
X-Received: by 10.50.43.197 with SMTP id y5mr1179704igl.89.1441092466850;
	Tue, 01 Sep 2015 00:27:46 -0700 (PDT)
Received: from mail-io0-f175.google.com (mail-io0-f175.google.com.
	[209.85.223.175]) by smtp.gmail.com with ESMTPSA id
	a142sm3073143ioe.1.2015.09.01.00.27.45
	for <MirageOS-devel@lists.xenproject.org>
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Tue, 01 Sep 2015 00:27:46 -0700 (PDT)
Received: by iods203 with SMTP id s203so185895914iod.0
	for <MirageOS-devel@lists.xenproject.org>;
	Tue, 01 Sep 2015 00:27:45 -0700 (PDT)
X-Received: by 10.107.4.210 with SMTP id 201mr27770717ioe.180.1441092465546;
	Tue, 01 Sep 2015 00:27:45 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.50.147.4 with HTTP; Tue, 1 Sep 2015 00:27:26 -0700 (PDT)
From: Tim Cuthbertson <tim@gfxmonk.net>
Date: Tue, 1 Sep 2015 17:27:26 +1000
Message-ID: <CAC-LLDhELEucM3vWySE=WyNXssiR9ozMYTaNiG466ngACYA0=Q@mail.gmail.com>
To: MirageOS-devel@lists.xenproject.org
Subject: [MirageOS-devel] Patches for building mirage libraries with
	`opam2nix`
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

Hi all,

A little while ago I managed to get mirage's xen libraries and
dependencies building in nix [0]. This worked, but I didn't fancy
keeping those packages up to date manually. So I also started working
on `opam2nix`[1], a tool which generates nix expressions from an opam
repository. It's still work in progress, but has managed to build most
things I've thrown at it so far.

The main problem is when build scripts assume that they'll be
installed into `opam config var prefix`/lib/<library>, or that
pkgconfig specs will be found in `opam config var
prefix`/lib/pkgconfig. In the case of `opam2nix`, dependencies can be
found via `ocamlfind query`, while the destination will be a
completely different path which is populated in $PREFIX,
$OCAMLFIND_DESTDIR and opam variables (like %{lib}% etc.)

I've made a number of changes to make these build scripts more lenient
- e.g. rather than always overriding $PKG_CONFIG_PATH, they'll only do
that if all needed dependencies aren't already present. And also
respecting $PREFIX if it's set (but falling back to `opam config var
prefix` if not):

--------

gmp-xen:
https://github.com/gfxmonk/opam-repository/commits/mirage-fixes

io-page:
https://github.com/gfxmonk/io-page/commits/master

mirage-platform:
https://github.com/gfxmonk/mirage-platform/commits/master
(note: the second of those two commits
[6121921ef6e666f021a61f3570840108927f90d8] removes something that I
_think_ was unnecessary, but it's worth verifying that with someone
who knows more about how the libraries depend on each other)

tcpip:
https://github.com/gfxmonk/mirage-tcpip/commits/master

zarith-xen:
I had to rewrite the zarith-xen build script, because I couldn't come
up with a simple enough change which would support both the `opam` and
`opam2nix` cases. So this is less of a patch than a note that it
doesn't currently work, and maybe someone will have better ideas about
how to make it work:
https://github.com/gfxmonk/opam2nix/blob/71887935dc30a744aa26f1f5af75678355d2d74e/src/nix/overrides/zarith-xen/install.sh

--------

It'd be great if the maintainers of these libraries are happy to merge
my changes, or otherwise discuss other ways of making these libraries
build in an I-can't-believe-it's-not-opam environment ;). I thought
I'd discuss it here rather than creating individual pull requests,
because this should provide a lot more context.

The main downside is that these changes make debugging a little
trickier, since the build scripts are slightly more complex. Also, it
might mean that a dependency could be picked up from a system package
rather than from `opam`.

It may also be a better idea in general to just feed more information
to the scripts directly from the `opam` file (via %{lib}% and friends)
rather than have them assume too much about how they'll be installed.
I didn't want to go down this route because it makes for more drastic
changes, but I'm happy to try it if you're game.

Cheers,
 - Tim.

[0]: http://nixos.org/nix/
[1]: https://github.com/gfxmonk/opam2nix/

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Tue Sep 01 07:28:03 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 01 Sep 2015 07:28:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZWfyx-0001is-Bk; Tue, 01 Sep 2015 07:27:51 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <tim@gfxmonk.net>) id 1ZWfyw-0001in-2F
	for MirageOS-devel@lists.xenproject.org; Tue, 01 Sep 2015 07:27:50 +0000
Received: from [85.158.137.68] by server-10.bemta-3.messagelabs.com id
	5B/C0-23203-57355E55; Tue, 01 Sep 2015 07:27:49 +0000
X-Env-Sender: tim@gfxmonk.net
X-Msg-Ref: server-7.tower-31.messagelabs.com!1441092467!39966862!1
X-Originating-IP: [209.85.213.173]
X-SpamReason: No, hits=0.8 required=7.0 tests=BODY_RANDOM_LONG,
  RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 28969 invoked from network); 1 Sep 2015 07:27:48 -0000
Received: from mail-ig0-f173.google.com (HELO mail-ig0-f173.google.com)
	(209.85.213.173)
	by server-7.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	1 Sep 2015 07:27:48 -0000
Received: by igbuu8 with SMTP id uu8so63416455igb.0
	for <MirageOS-devel@lists.xenproject.org>;
	Tue, 01 Sep 2015 00:27:47 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:mime-version:from:date:message-id:subject:to
	:content-type;
	bh=0pBL+BnjBH+rBK1LHP1Pm/wU8sDRAu1cOxI5lX5wpqw=;
	b=Qkxkxo7ddOnqTCr828t2t5Wax5j4A/WpFAbKwDW/gKzKOgCZ4YTlNQeV2GtGjENZ6F
	VV5xaCUByCi11IiK7V3r9LHy62R7+skoPDWPN3uLfJKGiYtl4mzr4chrlEegX9QpXDP9
	wT1WZxYVXXWBm0CVC0n+iK3feZk7JmwOIoCfX+oyf7kdEDNwk6EC4yb01E3vBtOzusux
	8XhKyEyeWRuj48SMCxyPOCm2LIT7Jg2nIKNgKcSdYRKr8SxE53zJZeskIY3eCCYtc3aF
	1SN0oJaimGPYLIgbSDxDdCM9Dgp0HYmz29LZlxd/zzAgFsgxsWBAIkzQ7RdnPwKAHFXJ
	kHBw==
X-Gm-Message-State: ALoCoQllDRMb7fooiVmj1PzH8IsFWBfjIikc0wxK4SUjUB3w6nzJUZyI5zN5qK6bcgL33KwVivlt
X-Received: by 10.50.43.197 with SMTP id y5mr1179704igl.89.1441092466850;
	Tue, 01 Sep 2015 00:27:46 -0700 (PDT)
Received: from mail-io0-f175.google.com (mail-io0-f175.google.com.
	[209.85.223.175]) by smtp.gmail.com with ESMTPSA id
	a142sm3073143ioe.1.2015.09.01.00.27.45
	for <MirageOS-devel@lists.xenproject.org>
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Tue, 01 Sep 2015 00:27:46 -0700 (PDT)
Received: by iods203 with SMTP id s203so185895914iod.0
	for <MirageOS-devel@lists.xenproject.org>;
	Tue, 01 Sep 2015 00:27:45 -0700 (PDT)
X-Received: by 10.107.4.210 with SMTP id 201mr27770717ioe.180.1441092465546;
	Tue, 01 Sep 2015 00:27:45 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.50.147.4 with HTTP; Tue, 1 Sep 2015 00:27:26 -0700 (PDT)
From: Tim Cuthbertson <tim@gfxmonk.net>
Date: Tue, 1 Sep 2015 17:27:26 +1000
Message-ID: <CAC-LLDhELEucM3vWySE=WyNXssiR9ozMYTaNiG466ngACYA0=Q@mail.gmail.com>
To: MirageOS-devel@lists.xenproject.org
Subject: [MirageOS-devel] Patches for building mirage libraries with
	`opam2nix`
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

Hi all,

A little while ago I managed to get mirage's xen libraries and
dependencies building in nix [0]. This worked, but I didn't fancy
keeping those packages up to date manually. So I also started working
on `opam2nix`[1], a tool which generates nix expressions from an opam
repository. It's still work in progress, but has managed to build most
things I've thrown at it so far.

The main problem is when build scripts assume that they'll be
installed into `opam config var prefix`/lib/<library>, or that
pkgconfig specs will be found in `opam config var
prefix`/lib/pkgconfig. In the case of `opam2nix`, dependencies can be
found via `ocamlfind query`, while the destination will be a
completely different path which is populated in $PREFIX,
$OCAMLFIND_DESTDIR and opam variables (like %{lib}% etc.)

I've made a number of changes to make these build scripts more lenient
- e.g. rather than always overriding $PKG_CONFIG_PATH, they'll only do
that if all needed dependencies aren't already present. And also
respecting $PREFIX if it's set (but falling back to `opam config var
prefix` if not):

--------

gmp-xen:
https://github.com/gfxmonk/opam-repository/commits/mirage-fixes

io-page:
https://github.com/gfxmonk/io-page/commits/master

mirage-platform:
https://github.com/gfxmonk/mirage-platform/commits/master
(note: the second of those two commits
[6121921ef6e666f021a61f3570840108927f90d8] removes something that I
_think_ was unnecessary, but it's worth verifying that with someone
who knows more about how the libraries depend on each other)

tcpip:
https://github.com/gfxmonk/mirage-tcpip/commits/master

zarith-xen:
I had to rewrite the zarith-xen build script, because I couldn't come
up with a simple enough change which would support both the `opam` and
`opam2nix` cases. So this is less of a patch than a note that it
doesn't currently work, and maybe someone will have better ideas about
how to make it work:
https://github.com/gfxmonk/opam2nix/blob/71887935dc30a744aa26f1f5af75678355d2d74e/src/nix/overrides/zarith-xen/install.sh

--------

It'd be great if the maintainers of these libraries are happy to merge
my changes, or otherwise discuss other ways of making these libraries
build in an I-can't-believe-it's-not-opam environment ;). I thought
I'd discuss it here rather than creating individual pull requests,
because this should provide a lot more context.

The main downside is that these changes make debugging a little
trickier, since the build scripts are slightly more complex. Also, it
might mean that a dependency could be picked up from a system package
rather than from `opam`.

It may also be a better idea in general to just feed more information
to the scripts directly from the `opam` file (via %{lib}% and friends)
rather than have them assume too much about how they'll be installed.
I didn't want to go down this route because it makes for more drastic
changes, but I'm happy to try it if you're game.

Cheers,
 - Tim.

[0]: http://nixos.org/nix/
[1]: https://github.com/gfxmonk/opam2nix/

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Tue Sep 01 08:47:41 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 01 Sep 2015 08:47:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZWhE6-0005ty-A8; Tue, 01 Sep 2015 08:47:34 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <anil@recoil.org>) id 1ZWhE0-0005tt-Es
	for MirageOS-devel@lists.xenproject.org; Tue, 01 Sep 2015 08:47:32 +0000
Received: from [85.158.139.211] by server-5.bemta-5.messagelabs.com id
	EA/05-03819-F1665E55; Tue, 01 Sep 2015 08:47:27 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-10.tower-206.messagelabs.com!1441097246!26569842!1
X-Originating-IP: [5.153.225.51]
X-SpamReason: No, hits=0.7 required=7.0 tests=BODY_RANDOM_LONG, RCVD_ILLEGAL_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 9079 invoked from network); 1 Sep 2015 08:47:26 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-10.tower-206.messagelabs.com with DHE-RSA-AES256-SHA
	encrypted SMTP; 1 Sep 2015 08:47:26 -0000
Received: from [192.168.1.86] (cpc7-cmbg14-2-0-cust238.5-4.cable.virginm.net
	[86.30.244.239])
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id 8ae7685c
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Tue, 1 Sep 2015 09:47:25 +0100 (BST)
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <CAC-LLDhELEucM3vWySE=WyNXssiR9ozMYTaNiG466ngACYA0=Q@mail.gmail.com>
Date: Tue, 1 Sep 2015 09:47:24 +0100
Message-Id: <46EA3BE9-A07F-4141-9512-E45B5F21121D@recoil.org>
References: <CAC-LLDhELEucM3vWySE=WyNXssiR9ozMYTaNiG466ngACYA0=Q@mail.gmail.com>
To: Tim Cuthbertson <tim@gfxmonk.net>
X-Mailer: Apple Mail (2.2104)
Cc: MirageOS-devel@lists.xenproject.org
Subject: Re: [MirageOS-devel] Patches for building mirage libraries with
	`opam2nix`
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On 1 Sep 2015, at 08:27, Tim Cuthbertson <tim@gfxmonk.net> wrote:
> 
> Hi all,
> 
> A little while ago I managed to get mirage's xen libraries and
> dependencies building in nix [0]. This worked, but I didn't fancy
> keeping those packages up to date manually. So I also started working
> on `opam2nix`[1], a tool which generates nix expressions from an opam
> repository. It's still work in progress, but has managed to build most
> things I've thrown at it so far.
> 
> The main problem is when build scripts assume that they'll be
> installed into `opam config var prefix`/lib/<library>, or that
> pkgconfig specs will be found in `opam config var
> prefix`/lib/pkgconfig. In the case of `opam2nix`, dependencies can be
> found via `ocamlfind query`, while the destination will be a
> completely different path which is populated in $PREFIX,
> $OCAMLFIND_DESTDIR and opam variables (like %{lib}% etc.)
> 
> I've made a number of changes to make these build scripts more lenient
> - e.g. rather than always overriding $PKG_CONFIG_PATH, they'll only do
> that if all needed dependencies aren't already present. And also
> respecting $PREFIX if it's set (but falling back to `opam config var
> prefix` if not):
> 
> --------
> 
> gmp-xen:
> https://github.com/gfxmonk/opam-repository/commits/mirage-fixes
> 
> io-page:
> https://github.com/gfxmonk/io-page/commits/master
> 
> mirage-platform:
> https://github.com/gfxmonk/mirage-platform/commits/master
> (note: the second of those two commits
> [6121921ef6e666f021a61f3570840108927f90d8] removes something that I
> _think_ was unnecessary, but it's worth verifying that with someone
> who knows more about how the libraries depend on each other)
> 
> tcpip:
> https://github.com/gfxmonk/mirage-tcpip/commits/master
> 
> zarith-xen:
> I had to rewrite the zarith-xen build script, because I couldn't come
> up with a simple enough change which would support both the `opam` and
> `opam2nix` cases. So this is less of a patch than a note that it
> doesn't currently work, and maybe someone will have better ideas about
> how to make it work:
> https://github.com/gfxmonk/opam2nix/blob/71887935dc30a744aa26f1f5af75678355d2d74e/src/nix/overrides/zarith-xen/install.sh
> 
> --------
> 
> It'd be great if the maintainers of these libraries are happy to merge
> my changes, or otherwise discuss other ways of making these libraries
> build in an I-can't-believe-it's-not-opam environment ;). I thought
> I'd discuss it here rather than creating individual pull requests,
> because this should provide a lot more context.

We should absolutely support a non-OPAM build environment.  That's
purely there because of "build laziness", but will also be a problem
when it comes to doing upstream packaging into Debian/*BSD/etc.

I haven't reviewed your changes above in detail as I'm about to fly
to Vancouver to ICFP, but please do send pull requests and we can
discuss them on the relevant GitHub repos.

Do you think it's worth putting a Nix repository build for Mirage
into the cron-based builds so that we can spot when it breaks against
trunk?

> 
> The main downside is that these changes make debugging a little
> trickier, since the build scripts are slightly more complex. Also, it
> might mean that a dependency could be picked up from a system package
> rather than from `opam`.
> 
> It may also be a better idea in general to just feed more information
> to the scripts directly from the `opam` file (via %{lib}% and friends)
> rather than have them assume too much about how they'll be installed.
> I didn't want to go down this route because it makes for more drastic
> changes, but I'm happy to try it if you're game.

There is an `opam-query` plugin which makes it easier to invoke from
shell scripts or Makefiles, so that it can be used as a default option
if an override isn't provided.  That might help...

cheers
Anil


_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Tue Sep 01 08:47:41 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 01 Sep 2015 08:47:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZWhE6-0005ty-A8; Tue, 01 Sep 2015 08:47:34 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <anil@recoil.org>) id 1ZWhE0-0005tt-Es
	for MirageOS-devel@lists.xenproject.org; Tue, 01 Sep 2015 08:47:32 +0000
Received: from [85.158.139.211] by server-5.bemta-5.messagelabs.com id
	EA/05-03819-F1665E55; Tue, 01 Sep 2015 08:47:27 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-10.tower-206.messagelabs.com!1441097246!26569842!1
X-Originating-IP: [5.153.225.51]
X-SpamReason: No, hits=0.7 required=7.0 tests=BODY_RANDOM_LONG, RCVD_ILLEGAL_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 9079 invoked from network); 1 Sep 2015 08:47:26 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-10.tower-206.messagelabs.com with DHE-RSA-AES256-SHA
	encrypted SMTP; 1 Sep 2015 08:47:26 -0000
Received: from [192.168.1.86] (cpc7-cmbg14-2-0-cust238.5-4.cable.virginm.net
	[86.30.244.239])
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id 8ae7685c
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Tue, 1 Sep 2015 09:47:25 +0100 (BST)
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <CAC-LLDhELEucM3vWySE=WyNXssiR9ozMYTaNiG466ngACYA0=Q@mail.gmail.com>
Date: Tue, 1 Sep 2015 09:47:24 +0100
Message-Id: <46EA3BE9-A07F-4141-9512-E45B5F21121D@recoil.org>
References: <CAC-LLDhELEucM3vWySE=WyNXssiR9ozMYTaNiG466ngACYA0=Q@mail.gmail.com>
To: Tim Cuthbertson <tim@gfxmonk.net>
X-Mailer: Apple Mail (2.2104)
Cc: MirageOS-devel@lists.xenproject.org
Subject: Re: [MirageOS-devel] Patches for building mirage libraries with
	`opam2nix`
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On 1 Sep 2015, at 08:27, Tim Cuthbertson <tim@gfxmonk.net> wrote:
> 
> Hi all,
> 
> A little while ago I managed to get mirage's xen libraries and
> dependencies building in nix [0]. This worked, but I didn't fancy
> keeping those packages up to date manually. So I also started working
> on `opam2nix`[1], a tool which generates nix expressions from an opam
> repository. It's still work in progress, but has managed to build most
> things I've thrown at it so far.
> 
> The main problem is when build scripts assume that they'll be
> installed into `opam config var prefix`/lib/<library>, or that
> pkgconfig specs will be found in `opam config var
> prefix`/lib/pkgconfig. In the case of `opam2nix`, dependencies can be
> found via `ocamlfind query`, while the destination will be a
> completely different path which is populated in $PREFIX,
> $OCAMLFIND_DESTDIR and opam variables (like %{lib}% etc.)
> 
> I've made a number of changes to make these build scripts more lenient
> - e.g. rather than always overriding $PKG_CONFIG_PATH, they'll only do
> that if all needed dependencies aren't already present. And also
> respecting $PREFIX if it's set (but falling back to `opam config var
> prefix` if not):
> 
> --------
> 
> gmp-xen:
> https://github.com/gfxmonk/opam-repository/commits/mirage-fixes
> 
> io-page:
> https://github.com/gfxmonk/io-page/commits/master
> 
> mirage-platform:
> https://github.com/gfxmonk/mirage-platform/commits/master
> (note: the second of those two commits
> [6121921ef6e666f021a61f3570840108927f90d8] removes something that I
> _think_ was unnecessary, but it's worth verifying that with someone
> who knows more about how the libraries depend on each other)
> 
> tcpip:
> https://github.com/gfxmonk/mirage-tcpip/commits/master
> 
> zarith-xen:
> I had to rewrite the zarith-xen build script, because I couldn't come
> up with a simple enough change which would support both the `opam` and
> `opam2nix` cases. So this is less of a patch than a note that it
> doesn't currently work, and maybe someone will have better ideas about
> how to make it work:
> https://github.com/gfxmonk/opam2nix/blob/71887935dc30a744aa26f1f5af75678355d2d74e/src/nix/overrides/zarith-xen/install.sh
> 
> --------
> 
> It'd be great if the maintainers of these libraries are happy to merge
> my changes, or otherwise discuss other ways of making these libraries
> build in an I-can't-believe-it's-not-opam environment ;). I thought
> I'd discuss it here rather than creating individual pull requests,
> because this should provide a lot more context.

We should absolutely support a non-OPAM build environment.  That's
purely there because of "build laziness", but will also be a problem
when it comes to doing upstream packaging into Debian/*BSD/etc.

I haven't reviewed your changes above in detail as I'm about to fly
to Vancouver to ICFP, but please do send pull requests and we can
discuss them on the relevant GitHub repos.

Do you think it's worth putting a Nix repository build for Mirage
into the cron-based builds so that we can spot when it breaks against
trunk?

> 
> The main downside is that these changes make debugging a little
> trickier, since the build scripts are slightly more complex. Also, it
> might mean that a dependency could be picked up from a system package
> rather than from `opam`.
> 
> It may also be a better idea in general to just feed more information
> to the scripts directly from the `opam` file (via %{lib}% and friends)
> rather than have them assume too much about how they'll be installed.
> I didn't want to go down this route because it makes for more drastic
> changes, but I'm happy to try it if you're game.

There is an `opam-query` plugin which makes it easier to invoke from
shell scripts or Makefiles, so that it can be used as a default option
if an override isn't provided.  That might help...

cheers
Anil


_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Tue Sep 01 11:34:01 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 01 Sep 2015 11:34:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZWjp2-0001fQ-Al; Tue, 01 Sep 2015 11:33:52 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <tim@gfxmonk.net>) id 1ZWjp0-0001fL-NF
	for MirageOS-devel@lists.xenproject.org; Tue, 01 Sep 2015 11:33:50 +0000
Received: from [85.158.139.211] by server-9.bemta-5.messagelabs.com id
	DE/65-30270-E1D85E55; Tue, 01 Sep 2015 11:33:50 +0000
X-Env-Sender: tim@gfxmonk.net
X-Msg-Ref: server-13.tower-206.messagelabs.com!1441107227!31888825!1
X-Originating-IP: [209.85.213.172]
X-SpamReason: No, hits=0.8 required=7.0 tests=BODY_RANDOM_LONG,
  RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 30783 invoked from network); 1 Sep 2015 11:33:48 -0000
Received: from mail-ig0-f172.google.com (HELO mail-ig0-f172.google.com)
	(209.85.213.172)
	by server-13.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
	1 Sep 2015 11:33:48 -0000
Received: by igui7 with SMTP id i7so76070150igu.1
	for <MirageOS-devel@lists.xenproject.org>;
	Tue, 01 Sep 2015 04:33:47 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:mime-version:in-reply-to:references:from:date
	:message-id:subject:to:cc:content-type;
	bh=Gzb6DWMdYn7gUg/Hg+V8lBUpp8Z6Zrogn08d7em9Nl4=;
	b=B7qaAeKYObDPVCs9Y0OMylriFZ6wDFC1dwGPSYMyJlVBC96tq4rQk3fgw6clDat4Ru
	HnTVIfxIEnCa460qvkQAoON6jpNLwxg5Jko3CYagAkLuZy/kLnnjCqtthmEYb4gkuFz5
	8v24xW4ZxyxZq5X6CIs/fDXFdsUn2qP6SufefkBhWuInjlAl47bU324fNoEXh5Mnrpga
	GhXO+e1Jk/cLXCWR6DEVpSJN/ooUQ5yyfth1tbheoLV40TFjJTujLv7RlM266Q9E7ozk
	g/8f+bhCQpmAeGx30fWfO6qE62TDK2GwkOS+VsOy2XwfmiMO0lEAQ/OzUfkyXxV/TmIW
	ZRPw==
X-Gm-Message-State: ALoCoQl2vjrRyVhBPN6nw0yd/9UbPhL1nW9Nlu812B2bfBjYEXtdTVxoOUCUcQfi9PnwT1Ky3Y9W
X-Received: by 10.50.93.34 with SMTP id cr2mr1708458igb.75.1441107227482;
	Tue, 01 Sep 2015 04:33:47 -0700 (PDT)
Received: from mail-ig0-f170.google.com (mail-ig0-f170.google.com.
	[209.85.213.170])
	by smtp.gmail.com with ESMTPSA id vk8sm1292138igb.4.2015.09.01.04.33.45
	for <MirageOS-devel@lists.xenproject.org>
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Tue, 01 Sep 2015 04:33:45 -0700 (PDT)
Received: by igbuu8 with SMTP id uu8so45618892igb.1
	for <MirageOS-devel@lists.xenproject.org>;
	Tue, 01 Sep 2015 04:33:45 -0700 (PDT)
X-Received: by 10.50.43.166 with SMTP id x6mr2023389igl.89.1441107225323; Tue,
	01 Sep 2015 04:33:45 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.50.147.4 with HTTP; Tue, 1 Sep 2015 04:33:25 -0700 (PDT)
In-Reply-To: <46EA3BE9-A07F-4141-9512-E45B5F21121D@recoil.org>
References: <CAC-LLDhELEucM3vWySE=WyNXssiR9ozMYTaNiG466ngACYA0=Q@mail.gmail.com>
	<46EA3BE9-A07F-4141-9512-E45B5F21121D@recoil.org>
From: Tim Cuthbertson <tim@gfxmonk.net>
Date: Tue, 1 Sep 2015 21:33:25 +1000
Message-ID: <CAC-LLDhmQ20Ds6u6f-dPHJyoq=rLnYUokugwVfPZhXud41MhQA@mail.gmail.com>
To: Anil Madhavapeddy <anil@recoil.org>
Cc: MirageOS-devel@lists.xenproject.org
Subject: Re: [MirageOS-devel] Patches for building mirage libraries with
	`opam2nix`
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On Tue, Sep 1, 2015 at 6:47 PM, Anil Madhavapeddy <anil@recoil.org> wrote:
> On 1 Sep 2015, at 08:27, Tim Cuthbertson <tim@gfxmonk.net> wrote:
>>
>> Hi all,
>>
>> A little while ago I managed to get mirage's xen libraries and
>> dependencies building in nix [0]. This worked, but I didn't fancy
>> keeping those packages up to date manually. So I also started working
>> on `opam2nix`[1], a tool which generates nix expressions from an opam
>> repository. It's still work in progress, but has managed to build most
>> things I've thrown at it so far.
>>
>> The main problem is when build scripts assume that they'll be
>> installed into `opam config var prefix`/lib/<library>, or that
>> pkgconfig specs will be found in `opam config var
>> prefix`/lib/pkgconfig. In the case of `opam2nix`, dependencies can be
>> found via `ocamlfind query`, while the destination will be a
>> completely different path which is populated in $PREFIX,
>> $OCAMLFIND_DESTDIR and opam variables (like %{lib}% etc.)
>>
>> I've made a number of changes to make these build scripts more lenient
>> - e.g. rather than always overriding $PKG_CONFIG_PATH, they'll only do
>> that if all needed dependencies aren't already present. And also
>> respecting $PREFIX if it's set (but falling back to `opam config var
>> prefix` if not):
>>
>> --------
>>
>> gmp-xen:
>> https://github.com/gfxmonk/opam-repository/commits/mirage-fixes
>>
>> io-page:
>> https://github.com/gfxmonk/io-page/commits/master
>>
>> mirage-platform:
>> https://github.com/gfxmonk/mirage-platform/commits/master
>> (note: the second of those two commits
>> [6121921ef6e666f021a61f3570840108927f90d8] removes something that I
>> _think_ was unnecessary, but it's worth verifying that with someone
>> who knows more about how the libraries depend on each other)
>>
>> tcpip:
>> https://github.com/gfxmonk/mirage-tcpip/commits/master
>>
>> zarith-xen:
>> I had to rewrite the zarith-xen build script, because I couldn't come
>> up with a simple enough change which would support both the `opam` and
>> `opam2nix` cases. So this is less of a patch than a note that it
>> doesn't currently work, and maybe someone will have better ideas about
>> how to make it work:
>> https://github.com/gfxmonk/opam2nix/blob/71887935dc30a744aa26f1f5af75678355d2d74e/src/nix/overrides/zarith-xen/install.sh
>>
>> --------
>>
>> It'd be great if the maintainers of these libraries are happy to merge
>> my changes, or otherwise discuss other ways of making these libraries
>> build in an I-can't-believe-it's-not-opam environment ;). I thought
>> I'd discuss it here rather than creating individual pull requests,
>> because this should provide a lot more context.
>
> We should absolutely support a non-OPAM build environment.  That's
> purely there because of "build laziness", but will also be a problem
> when it comes to doing upstream packaging into Debian/*BSD/etc.
>
> I haven't reviewed your changes above in detail as I'm about to fly
> to Vancouver to ICFP, but please do send pull requests and we can
> discuss them on the relevant GitHub repos.

Thanks, done :)

> Do you think it's worth putting a Nix repository build for Mirage
> into the cron-based builds so that we can spot when it breaks against
> trunk?

I don't know. It could be a lot of wasted work since (I think) it
should only really be breakable by buildscript changes, which I assume
are pretty rare compared to code changes.

Right now opam2nix is just something I'm working on, but I'm hoping to
roll it into nix proper one day - at which point I believe
http://hydra.nixos.org/ may take care of detecting broken releases.
That's probably good enough for a while, but certainly if mirage devs
(who themselves might prefer working on trunk) want to make sure the
nix expressions are always valid, we could look at setting up some
trunk integration.

>> The main downside is that these changes make debugging a little
>> trickier, since the build scripts are slightly more complex. Also, it
>> might mean that a dependency could be picked up from a system package
>> rather than from `opam`.
>>
>> It may also be a better idea in general to just feed more information
>> to the scripts directly from the `opam` file (via %{lib}% and friends)
>> rather than have them assume too much about how they'll be installed.
>> I didn't want to go down this route because it makes for more drastic
>> changes, but I'm happy to try it if you're game.
>
> There is an `opam-query` plugin which makes it easier to invoke from
> shell scripts or Makefiles, so that it can be used as a default option
> if an override isn't provided.  That might help...

Possibly, although the main knowledge required is "where is <x>
dependency installed", and "where should _I_ install myself". I don't
think `opam-query` will be able to resolve those kinds of questions,
and it's probably cleaner to inject this information into command line
arguments anyway, rather than the build script asking for it. opam2nix
can act just like opam already for most interpolated variables
(%{lib}% and friends), thanks to opam-lib - all that's needed is for
the build script to accept this information on the command line, or in
an env var.

Cheers,
 - Tim.

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Tue Sep 01 11:34:01 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 01 Sep 2015 11:34:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZWjp2-0001fQ-Al; Tue, 01 Sep 2015 11:33:52 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <tim@gfxmonk.net>) id 1ZWjp0-0001fL-NF
	for MirageOS-devel@lists.xenproject.org; Tue, 01 Sep 2015 11:33:50 +0000
Received: from [85.158.139.211] by server-9.bemta-5.messagelabs.com id
	DE/65-30270-E1D85E55; Tue, 01 Sep 2015 11:33:50 +0000
X-Env-Sender: tim@gfxmonk.net
X-Msg-Ref: server-13.tower-206.messagelabs.com!1441107227!31888825!1
X-Originating-IP: [209.85.213.172]
X-SpamReason: No, hits=0.8 required=7.0 tests=BODY_RANDOM_LONG,
  RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 30783 invoked from network); 1 Sep 2015 11:33:48 -0000
Received: from mail-ig0-f172.google.com (HELO mail-ig0-f172.google.com)
	(209.85.213.172)
	by server-13.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
	1 Sep 2015 11:33:48 -0000
Received: by igui7 with SMTP id i7so76070150igu.1
	for <MirageOS-devel@lists.xenproject.org>;
	Tue, 01 Sep 2015 04:33:47 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:mime-version:in-reply-to:references:from:date
	:message-id:subject:to:cc:content-type;
	bh=Gzb6DWMdYn7gUg/Hg+V8lBUpp8Z6Zrogn08d7em9Nl4=;
	b=B7qaAeKYObDPVCs9Y0OMylriFZ6wDFC1dwGPSYMyJlVBC96tq4rQk3fgw6clDat4Ru
	HnTVIfxIEnCa460qvkQAoON6jpNLwxg5Jko3CYagAkLuZy/kLnnjCqtthmEYb4gkuFz5
	8v24xW4ZxyxZq5X6CIs/fDXFdsUn2qP6SufefkBhWuInjlAl47bU324fNoEXh5Mnrpga
	GhXO+e1Jk/cLXCWR6DEVpSJN/ooUQ5yyfth1tbheoLV40TFjJTujLv7RlM266Q9E7ozk
	g/8f+bhCQpmAeGx30fWfO6qE62TDK2GwkOS+VsOy2XwfmiMO0lEAQ/OzUfkyXxV/TmIW
	ZRPw==
X-Gm-Message-State: ALoCoQl2vjrRyVhBPN6nw0yd/9UbPhL1nW9Nlu812B2bfBjYEXtdTVxoOUCUcQfi9PnwT1Ky3Y9W
X-Received: by 10.50.93.34 with SMTP id cr2mr1708458igb.75.1441107227482;
	Tue, 01 Sep 2015 04:33:47 -0700 (PDT)
Received: from mail-ig0-f170.google.com (mail-ig0-f170.google.com.
	[209.85.213.170])
	by smtp.gmail.com with ESMTPSA id vk8sm1292138igb.4.2015.09.01.04.33.45
	for <MirageOS-devel@lists.xenproject.org>
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Tue, 01 Sep 2015 04:33:45 -0700 (PDT)
Received: by igbuu8 with SMTP id uu8so45618892igb.1
	for <MirageOS-devel@lists.xenproject.org>;
	Tue, 01 Sep 2015 04:33:45 -0700 (PDT)
X-Received: by 10.50.43.166 with SMTP id x6mr2023389igl.89.1441107225323; Tue,
	01 Sep 2015 04:33:45 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.50.147.4 with HTTP; Tue, 1 Sep 2015 04:33:25 -0700 (PDT)
In-Reply-To: <46EA3BE9-A07F-4141-9512-E45B5F21121D@recoil.org>
References: <CAC-LLDhELEucM3vWySE=WyNXssiR9ozMYTaNiG466ngACYA0=Q@mail.gmail.com>
	<46EA3BE9-A07F-4141-9512-E45B5F21121D@recoil.org>
From: Tim Cuthbertson <tim@gfxmonk.net>
Date: Tue, 1 Sep 2015 21:33:25 +1000
Message-ID: <CAC-LLDhmQ20Ds6u6f-dPHJyoq=rLnYUokugwVfPZhXud41MhQA@mail.gmail.com>
To: Anil Madhavapeddy <anil@recoil.org>
Cc: MirageOS-devel@lists.xenproject.org
Subject: Re: [MirageOS-devel] Patches for building mirage libraries with
	`opam2nix`
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On Tue, Sep 1, 2015 at 6:47 PM, Anil Madhavapeddy <anil@recoil.org> wrote:
> On 1 Sep 2015, at 08:27, Tim Cuthbertson <tim@gfxmonk.net> wrote:
>>
>> Hi all,
>>
>> A little while ago I managed to get mirage's xen libraries and
>> dependencies building in nix [0]. This worked, but I didn't fancy
>> keeping those packages up to date manually. So I also started working
>> on `opam2nix`[1], a tool which generates nix expressions from an opam
>> repository. It's still work in progress, but has managed to build most
>> things I've thrown at it so far.
>>
>> The main problem is when build scripts assume that they'll be
>> installed into `opam config var prefix`/lib/<library>, or that
>> pkgconfig specs will be found in `opam config var
>> prefix`/lib/pkgconfig. In the case of `opam2nix`, dependencies can be
>> found via `ocamlfind query`, while the destination will be a
>> completely different path which is populated in $PREFIX,
>> $OCAMLFIND_DESTDIR and opam variables (like %{lib}% etc.)
>>
>> I've made a number of changes to make these build scripts more lenient
>> - e.g. rather than always overriding $PKG_CONFIG_PATH, they'll only do
>> that if all needed dependencies aren't already present. And also
>> respecting $PREFIX if it's set (but falling back to `opam config var
>> prefix` if not):
>>
>> --------
>>
>> gmp-xen:
>> https://github.com/gfxmonk/opam-repository/commits/mirage-fixes
>>
>> io-page:
>> https://github.com/gfxmonk/io-page/commits/master
>>
>> mirage-platform:
>> https://github.com/gfxmonk/mirage-platform/commits/master
>> (note: the second of those two commits
>> [6121921ef6e666f021a61f3570840108927f90d8] removes something that I
>> _think_ was unnecessary, but it's worth verifying that with someone
>> who knows more about how the libraries depend on each other)
>>
>> tcpip:
>> https://github.com/gfxmonk/mirage-tcpip/commits/master
>>
>> zarith-xen:
>> I had to rewrite the zarith-xen build script, because I couldn't come
>> up with a simple enough change which would support both the `opam` and
>> `opam2nix` cases. So this is less of a patch than a note that it
>> doesn't currently work, and maybe someone will have better ideas about
>> how to make it work:
>> https://github.com/gfxmonk/opam2nix/blob/71887935dc30a744aa26f1f5af75678355d2d74e/src/nix/overrides/zarith-xen/install.sh
>>
>> --------
>>
>> It'd be great if the maintainers of these libraries are happy to merge
>> my changes, or otherwise discuss other ways of making these libraries
>> build in an I-can't-believe-it's-not-opam environment ;). I thought
>> I'd discuss it here rather than creating individual pull requests,
>> because this should provide a lot more context.
>
> We should absolutely support a non-OPAM build environment.  That's
> purely there because of "build laziness", but will also be a problem
> when it comes to doing upstream packaging into Debian/*BSD/etc.
>
> I haven't reviewed your changes above in detail as I'm about to fly
> to Vancouver to ICFP, but please do send pull requests and we can
> discuss them on the relevant GitHub repos.

Thanks, done :)

> Do you think it's worth putting a Nix repository build for Mirage
> into the cron-based builds so that we can spot when it breaks against
> trunk?

I don't know. It could be a lot of wasted work since (I think) it
should only really be breakable by buildscript changes, which I assume
are pretty rare compared to code changes.

Right now opam2nix is just something I'm working on, but I'm hoping to
roll it into nix proper one day - at which point I believe
http://hydra.nixos.org/ may take care of detecting broken releases.
That's probably good enough for a while, but certainly if mirage devs
(who themselves might prefer working on trunk) want to make sure the
nix expressions are always valid, we could look at setting up some
trunk integration.

>> The main downside is that these changes make debugging a little
>> trickier, since the build scripts are slightly more complex. Also, it
>> might mean that a dependency could be picked up from a system package
>> rather than from `opam`.
>>
>> It may also be a better idea in general to just feed more information
>> to the scripts directly from the `opam` file (via %{lib}% and friends)
>> rather than have them assume too much about how they'll be installed.
>> I didn't want to go down this route because it makes for more drastic
>> changes, but I'm happy to try it if you're game.
>
> There is an `opam-query` plugin which makes it easier to invoke from
> shell scripts or Makefiles, so that it can be used as a default option
> if an override isn't provided.  That might help...

Possibly, although the main knowledge required is "where is <x>
dependency installed", and "where should _I_ install myself". I don't
think `opam-query` will be able to resolve those kinds of questions,
and it's probably cleaner to inject this information into command line
arguments anyway, rather than the build script asking for it. opam2nix
can act just like opam already for most interpolated variables
(%{lib}% and friends), thanks to opam-lib - all that's needed is for
the build script to accept this information on the command line, or in
an env var.

Cheers,
 - Tim.

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Tue Sep 01 17:51:45 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 01 Sep 2015 17:51:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZWpib-0002iT-T7; Tue, 01 Sep 2015 17:51:37 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <thomas.gazagnaire@gmail.com>) id 1ZWpia-0002iE-8m
	for mirageos-devel@lists.xenproject.org; Tue, 01 Sep 2015 17:51:36 +0000
Received: from [193.109.254.147] by server-2.bemta-14.messagelabs.com id
	7B/D1-12889-7A5E5E55; Tue, 01 Sep 2015 17:51:35 +0000
X-Env-Sender: thomas.gazagnaire@gmail.com
X-Msg-Ref: server-6.tower-27.messagelabs.com!1441129893!45892596!1
X-Originating-IP: [209.85.220.43]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 19118 invoked from network); 1 Sep 2015 17:51:34 -0000
Received: from mail-pa0-f43.google.com (HELO mail-pa0-f43.google.com)
	(209.85.220.43)
	by server-6.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	1 Sep 2015 17:51:34 -0000
Received: by padhy1 with SMTP id hy1so2873410pad.1
	for <mirageos-devel@lists.xenproject.org>;
	Tue, 01 Sep 2015 10:51:32 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=sender:content-type:mime-version:subject:from:in-reply-to:date:cc
	:content-transfer-encoding:message-id:references:to;
	bh=1ZE7Z+gQGjPd2XCO/IM6OESJBfie5CGFE/P1xN86O7w=;
	b=iEqvj5kXEnMaF8+xc4WNgaHdEQMU3EIsGZLN4vf8BoPRBHSR+mEmy/C1+XznT4WA1X
	3ydRQoqFjuGMBpxMqO9nhyiyivATMAx4UijnWDn6jpO9TKjDkyREpE90+b8MJzuwzysc
	A25k2pRBu40aOCUVN2jbZDvXOAZjjI+yv/lrv/VrFDdNWlVvzvTx7mAhHmReua6OJltg
	QdSS4/mC1Mb42MDGmScHGeVhhGKM1+TTy1VWATrft9S4EZmloOYbYFAv/pNDKSaYxFp2
	mgkkbf/xtpJRSLYQ3dDOOK2/AVhw+GpyB2tM2EWXG1ZkO+GhvmHAoibX9bORxkWL2L0z
	bCIg==
X-Received: by 10.66.226.12 with SMTP id ro12mr48912810pac.74.1441129892668;
	Tue, 01 Sep 2015 10:51:32 -0700 (PDT)
Received: from [192.168.255.25] (docker.static.monkeybrains.net.
	[162.245.20.130]) by smtp.gmail.com with ESMTPSA id
	ew13sm19022729pac.25.2015.09.01.10.51.30
	(version=TLS1 cipher=ECDHE-RSA-RC4-SHA bits=128/128);
	Tue, 01 Sep 2015 10:51:31 -0700 (PDT)
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\))
From: Thomas Gazagnaire <thomas@gazagnaire.org>
In-Reply-To: <CAG4opy8NcGYROxJZwL9KD0z4dxT=GXu+hhEeq7vraXBnjbNfvg@mail.gmail.com>
Date: Tue, 1 Sep 2015 10:51:29 -0700
Message-Id: <362CE0CB-96EE-4924-88B2-B3F904B77F28@gazagnaire.org>
References: <D881F4F5-3474-4E9E-BD0C-C947DD1B4499@gazagnaire.org>
	<CAG4opy-QbpOgfTjW-O4NV5zRsL+PJbFV2Wn45FcC5RYOc_5jnA@mail.gmail.com>
	<CAG4opy9EU6==cVSBQ_CfK5c6aFgiyecZ0Y0Cfcz5cQ+N2zB0_Q@mail.gmail.com>
	<CAG4opy8NcGYROxJZwL9KD0z4dxT=GXu+hhEeq7vraXBnjbNfvg@mail.gmail.com>
To: Thomas Leonard <talex5@gmail.com>
X-Mailer: Apple Mail (2.2104)
Cc: mirageos-devel <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Irmin API evolution
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

> I'm currently experimenting with adding a "connect" method to BC so
> that you connect to a repository first, and then use that to get
> additional branches:
> 
>  https://github.com/mirage/irmin/pull/275

I've added some comments to that issue. I'm mainly in favor of the change.

> One problem I have is with the task-maker functions that get passed
> around everywhere.
> 
> Currently, you specify the task-maker when you open a branch. You then
> pass a value of the appropriate type to the response to get the store,
> e.g.
> 
>  let task_of_msg x = Irmin.Task.create ... in
>  Store.create conf task_of_msg >>= fun store_maker ->
>  let store = store_maker "unused string" in
>  Store.read store ...
> 
> I think this API is pretty strange and confusing anyway, but it's a
> particular problem for sharing connections because we don't want to
> create a new connection every time the user wants a new commit
> message.
> 
> I know this design came out of previous discussions:
> 
> http://lists.xenproject.org/archives/html/mirageos-devel/2014-11/msg00154.html
> 
> But I'm not really clear on what the original aims were and whether
> the current design meets them (it looks like it was intended to convey
> some other context, but now it's just the commit message).
> 
> The problem is that my BC.connect method shouldn't take a task-maker
> argument, but internally it needs to create the various backing stores
> (contents, node, commit and tag) and these currently require a
> task-maker.

The trick to solve that problem by putting the connection in the closure. See https://github.com/mirage/irmin/blob/master/lib/git/irmin_git.ml#L157 for instance when the Git handler is created outside of the closure which is returned to the user, so this is shared on every invocation of `t`.

> [ And ideally, it would make more sense to me if you only specified
> the commit message when making a commit. The rest of the strings just
> get thrown away, I think. ]

The initial idea was to use that task to (i) populate an audit log on all the database operations (including reads) and (ii) attach the debug messages to the task, instead of throwing them on the error channel. None of these have been completed yet, but would be nice if they are still possible to do later.

Thomas
_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Tue Sep 01 17:51:45 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 01 Sep 2015 17:51:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZWpib-0002iT-T7; Tue, 01 Sep 2015 17:51:37 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <thomas.gazagnaire@gmail.com>) id 1ZWpia-0002iE-8m
	for mirageos-devel@lists.xenproject.org; Tue, 01 Sep 2015 17:51:36 +0000
Received: from [193.109.254.147] by server-2.bemta-14.messagelabs.com id
	7B/D1-12889-7A5E5E55; Tue, 01 Sep 2015 17:51:35 +0000
X-Env-Sender: thomas.gazagnaire@gmail.com
X-Msg-Ref: server-6.tower-27.messagelabs.com!1441129893!45892596!1
X-Originating-IP: [209.85.220.43]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 19118 invoked from network); 1 Sep 2015 17:51:34 -0000
Received: from mail-pa0-f43.google.com (HELO mail-pa0-f43.google.com)
	(209.85.220.43)
	by server-6.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	1 Sep 2015 17:51:34 -0000
Received: by padhy1 with SMTP id hy1so2873410pad.1
	for <mirageos-devel@lists.xenproject.org>;
	Tue, 01 Sep 2015 10:51:32 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=sender:content-type:mime-version:subject:from:in-reply-to:date:cc
	:content-transfer-encoding:message-id:references:to;
	bh=1ZE7Z+gQGjPd2XCO/IM6OESJBfie5CGFE/P1xN86O7w=;
	b=iEqvj5kXEnMaF8+xc4WNgaHdEQMU3EIsGZLN4vf8BoPRBHSR+mEmy/C1+XznT4WA1X
	3ydRQoqFjuGMBpxMqO9nhyiyivATMAx4UijnWDn6jpO9TKjDkyREpE90+b8MJzuwzysc
	A25k2pRBu40aOCUVN2jbZDvXOAZjjI+yv/lrv/VrFDdNWlVvzvTx7mAhHmReua6OJltg
	QdSS4/mC1Mb42MDGmScHGeVhhGKM1+TTy1VWATrft9S4EZmloOYbYFAv/pNDKSaYxFp2
	mgkkbf/xtpJRSLYQ3dDOOK2/AVhw+GpyB2tM2EWXG1ZkO+GhvmHAoibX9bORxkWL2L0z
	bCIg==
X-Received: by 10.66.226.12 with SMTP id ro12mr48912810pac.74.1441129892668;
	Tue, 01 Sep 2015 10:51:32 -0700 (PDT)
Received: from [192.168.255.25] (docker.static.monkeybrains.net.
	[162.245.20.130]) by smtp.gmail.com with ESMTPSA id
	ew13sm19022729pac.25.2015.09.01.10.51.30
	(version=TLS1 cipher=ECDHE-RSA-RC4-SHA bits=128/128);
	Tue, 01 Sep 2015 10:51:31 -0700 (PDT)
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\))
From: Thomas Gazagnaire <thomas@gazagnaire.org>
In-Reply-To: <CAG4opy8NcGYROxJZwL9KD0z4dxT=GXu+hhEeq7vraXBnjbNfvg@mail.gmail.com>
Date: Tue, 1 Sep 2015 10:51:29 -0700
Message-Id: <362CE0CB-96EE-4924-88B2-B3F904B77F28@gazagnaire.org>
References: <D881F4F5-3474-4E9E-BD0C-C947DD1B4499@gazagnaire.org>
	<CAG4opy-QbpOgfTjW-O4NV5zRsL+PJbFV2Wn45FcC5RYOc_5jnA@mail.gmail.com>
	<CAG4opy9EU6==cVSBQ_CfK5c6aFgiyecZ0Y0Cfcz5cQ+N2zB0_Q@mail.gmail.com>
	<CAG4opy8NcGYROxJZwL9KD0z4dxT=GXu+hhEeq7vraXBnjbNfvg@mail.gmail.com>
To: Thomas Leonard <talex5@gmail.com>
X-Mailer: Apple Mail (2.2104)
Cc: mirageos-devel <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Irmin API evolution
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

> I'm currently experimenting with adding a "connect" method to BC so
> that you connect to a repository first, and then use that to get
> additional branches:
> 
>  https://github.com/mirage/irmin/pull/275

I've added some comments to that issue. I'm mainly in favor of the change.

> One problem I have is with the task-maker functions that get passed
> around everywhere.
> 
> Currently, you specify the task-maker when you open a branch. You then
> pass a value of the appropriate type to the response to get the store,
> e.g.
> 
>  let task_of_msg x = Irmin.Task.create ... in
>  Store.create conf task_of_msg >>= fun store_maker ->
>  let store = store_maker "unused string" in
>  Store.read store ...
> 
> I think this API is pretty strange and confusing anyway, but it's a
> particular problem for sharing connections because we don't want to
> create a new connection every time the user wants a new commit
> message.
> 
> I know this design came out of previous discussions:
> 
> http://lists.xenproject.org/archives/html/mirageos-devel/2014-11/msg00154.html
> 
> But I'm not really clear on what the original aims were and whether
> the current design meets them (it looks like it was intended to convey
> some other context, but now it's just the commit message).
> 
> The problem is that my BC.connect method shouldn't take a task-maker
> argument, but internally it needs to create the various backing stores
> (contents, node, commit and tag) and these currently require a
> task-maker.

The trick to solve that problem by putting the connection in the closure. See https://github.com/mirage/irmin/blob/master/lib/git/irmin_git.ml#L157 for instance when the Git handler is created outside of the closure which is returned to the user, so this is shared on every invocation of `t`.

> [ And ideally, it would make more sense to me if you only specified
> the commit message when making a commit. The rest of the strings just
> get thrown away, I think. ]

The initial idea was to use that task to (i) populate an audit log on all the database operations (including reads) and (ii) attach the debug messages to the task, instead of throwing them on the error channel. None of these have been completed yet, but would be nice if they are still possible to do later.

Thomas
_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Wed Sep 02 20:38:15 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 02 Sep 2015 20:38:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZXEnE-0000rm-TX; Wed, 02 Sep 2015 20:38:04 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <anil@recoil.org>) id 1ZXEnD-0000rh-AO
	for MirageOS-devel@lists.xenproject.org; Wed, 02 Sep 2015 20:38:03 +0000
Received: from [85.158.139.211] by server-1.bemta-5.messagelabs.com id
	F0/1F-32615-A2E57E55; Wed, 02 Sep 2015 20:38:02 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-12.tower-206.messagelabs.com!1441226281!32330307!1
X-Originating-IP: [5.153.225.51]
X-SpamReason: No, hits=0.2 required=7.0 tests=RCVD_ILLEGAL_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 2099 invoked from network); 2 Sep 2015 20:38:01 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-12.tower-206.messagelabs.com with DHE-RSA-AES256-SHA
	encrypted SMTP; 2 Sep 2015 20:38:01 -0000
Received: from [172.16.7.154] (S0106000c429759cb.vc.shawcable.net
	[50.67.170.218])
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id bf206719
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Wed, 2 Sep 2015 21:38:01 +0100 (BST)
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <CAC-LLDhmQ20Ds6u6f-dPHJyoq=rLnYUokugwVfPZhXud41MhQA@mail.gmail.com>
Date: Wed, 2 Sep 2015 13:37:58 -0700
Message-Id: <5766D7B5-7B10-4123-AA33-FDC4F0D63753@recoil.org>
References: <CAC-LLDhELEucM3vWySE=WyNXssiR9ozMYTaNiG466ngACYA0=Q@mail.gmail.com>
	<46EA3BE9-A07F-4141-9512-E45B5F21121D@recoil.org>
	<CAC-LLDhmQ20Ds6u6f-dPHJyoq=rLnYUokugwVfPZhXud41MhQA@mail.gmail.com>
To: Tim Cuthbertson <tim@gfxmonk.net>
X-Mailer: Apple Mail (2.2104)
Cc: MirageOS-devel@lists.xenproject.org
Subject: Re: [MirageOS-devel] Patches for building mirage libraries with
	`opam2nix`
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On 1 Sep 2015, at 04:33, Tim Cuthbertson <tim@gfxmonk.net> wrote:
>> 
>> We should absolutely support a non-OPAM build environment.  That's
>> purely there because of "build laziness", but will also be a problem
>> when it comes to doing upstream packaging into Debian/*BSD/etc.
>> 
>> I haven't reviewed your changes above in detail as I'm about to fly
>> to Vancouver to ICFP, but please do send pull requests and we can
>> discuss them on the relevant GitHub repos.
> 
> Thanks, done :)

Great!

> 
>> Do you think it's worth putting a Nix repository build for Mirage
>> into the cron-based builds so that we can spot when it breaks against
>> trunk?
> 
> I don't know. It could be a lot of wasted work since (I think) it
> should only really be breakable by buildscript changes, which I assume
> are pretty rare compared to code changes.
> 
> Right now opam2nix is just something I'm working on, but I'm hoping to
> roll it into nix proper one day - at which point I believe
> http://hydra.nixos.org/ may take care of detecting broken releases.
> That's probably good enough for a while, but certainly if mirage devs
> (who themselves might prefer working on trunk) want to make sure the
> nix expressions are always valid, we could look at setting up some
> trunk integration.

I'm not sure -- I don't use Nix myself, but I always feel that I ought
to be :-)  Does anyone else on the list use it day-to-day?

What granularity do you see opam2nix working at?  It should be fairly
easy to get individual switches running under Nix by setting OPAMROOT
appropriately, but individual package translation would be more work.
Edwin Torok started looking at similar issues for Deb/RPM on the
OPAM wiki at: https://github.com/ocaml/opam/wiki/opam2%7Brpm,deb%7D

If you have any design thoughts or notes on Nix integration, feel
free to edit that wiki...

>>> The main downside is that these changes make debugging a little
>>> trickier, since the build scripts are slightly more complex. Also, it
>>> might mean that a dependency could be picked up from a system package
>>> rather than from `opam`.
>>> 
>>> It may also be a better idea in general to just feed more information
>>> to the scripts directly from the `opam` file (via %{lib}% and friends)
>>> rather than have them assume too much about how they'll be installed.
>>> I didn't want to go down this route because it makes for more drastic
>>> changes, but I'm happy to try it if you're game.
>> 
>> There is an `opam-query` plugin which makes it easier to invoke from
>> shell scripts or Makefiles, so that it can be used as a default option
>> if an override isn't provided.  That might help...
> 
> Possibly, although the main knowledge required is "where is <x>
> dependency installed", and "where should _I_ install myself". I don't
> think `opam-query` will be able to resolve those kinds of questions,
> and it's probably cleaner to inject this information into command line
> arguments anyway, rather than the build script asking for it. opam2nix
> can act just like opam already for most interpolated variables
> (%{lib}% and friends), thanks to opam-lib - all that's needed is for
> the build script to accept this information on the command line, or in
> an env var.

Yep, agreed.  The intention behind opam-query is to provide a default
when OPAM is in use, but still make it easy to expose a Makefile variable
that can be overridden from the command line.

-anil


_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Wed Sep 02 20:38:15 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 02 Sep 2015 20:38:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZXEnE-0000rm-TX; Wed, 02 Sep 2015 20:38:04 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <anil@recoil.org>) id 1ZXEnD-0000rh-AO
	for MirageOS-devel@lists.xenproject.org; Wed, 02 Sep 2015 20:38:03 +0000
Received: from [85.158.139.211] by server-1.bemta-5.messagelabs.com id
	F0/1F-32615-A2E57E55; Wed, 02 Sep 2015 20:38:02 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-12.tower-206.messagelabs.com!1441226281!32330307!1
X-Originating-IP: [5.153.225.51]
X-SpamReason: No, hits=0.2 required=7.0 tests=RCVD_ILLEGAL_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 2099 invoked from network); 2 Sep 2015 20:38:01 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-12.tower-206.messagelabs.com with DHE-RSA-AES256-SHA
	encrypted SMTP; 2 Sep 2015 20:38:01 -0000
Received: from [172.16.7.154] (S0106000c429759cb.vc.shawcable.net
	[50.67.170.218])
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id bf206719
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Wed, 2 Sep 2015 21:38:01 +0100 (BST)
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <CAC-LLDhmQ20Ds6u6f-dPHJyoq=rLnYUokugwVfPZhXud41MhQA@mail.gmail.com>
Date: Wed, 2 Sep 2015 13:37:58 -0700
Message-Id: <5766D7B5-7B10-4123-AA33-FDC4F0D63753@recoil.org>
References: <CAC-LLDhELEucM3vWySE=WyNXssiR9ozMYTaNiG466ngACYA0=Q@mail.gmail.com>
	<46EA3BE9-A07F-4141-9512-E45B5F21121D@recoil.org>
	<CAC-LLDhmQ20Ds6u6f-dPHJyoq=rLnYUokugwVfPZhXud41MhQA@mail.gmail.com>
To: Tim Cuthbertson <tim@gfxmonk.net>
X-Mailer: Apple Mail (2.2104)
Cc: MirageOS-devel@lists.xenproject.org
Subject: Re: [MirageOS-devel] Patches for building mirage libraries with
	`opam2nix`
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On 1 Sep 2015, at 04:33, Tim Cuthbertson <tim@gfxmonk.net> wrote:
>> 
>> We should absolutely support a non-OPAM build environment.  That's
>> purely there because of "build laziness", but will also be a problem
>> when it comes to doing upstream packaging into Debian/*BSD/etc.
>> 
>> I haven't reviewed your changes above in detail as I'm about to fly
>> to Vancouver to ICFP, but please do send pull requests and we can
>> discuss them on the relevant GitHub repos.
> 
> Thanks, done :)

Great!

> 
>> Do you think it's worth putting a Nix repository build for Mirage
>> into the cron-based builds so that we can spot when it breaks against
>> trunk?
> 
> I don't know. It could be a lot of wasted work since (I think) it
> should only really be breakable by buildscript changes, which I assume
> are pretty rare compared to code changes.
> 
> Right now opam2nix is just something I'm working on, but I'm hoping to
> roll it into nix proper one day - at which point I believe
> http://hydra.nixos.org/ may take care of detecting broken releases.
> That's probably good enough for a while, but certainly if mirage devs
> (who themselves might prefer working on trunk) want to make sure the
> nix expressions are always valid, we could look at setting up some
> trunk integration.

I'm not sure -- I don't use Nix myself, but I always feel that I ought
to be :-)  Does anyone else on the list use it day-to-day?

What granularity do you see opam2nix working at?  It should be fairly
easy to get individual switches running under Nix by setting OPAMROOT
appropriately, but individual package translation would be more work.
Edwin Torok started looking at similar issues for Deb/RPM on the
OPAM wiki at: https://github.com/ocaml/opam/wiki/opam2%7Brpm,deb%7D

If you have any design thoughts or notes on Nix integration, feel
free to edit that wiki...

>>> The main downside is that these changes make debugging a little
>>> trickier, since the build scripts are slightly more complex. Also, it
>>> might mean that a dependency could be picked up from a system package
>>> rather than from `opam`.
>>> 
>>> It may also be a better idea in general to just feed more information
>>> to the scripts directly from the `opam` file (via %{lib}% and friends)
>>> rather than have them assume too much about how they'll be installed.
>>> I didn't want to go down this route because it makes for more drastic
>>> changes, but I'm happy to try it if you're game.
>> 
>> There is an `opam-query` plugin which makes it easier to invoke from
>> shell scripts or Makefiles, so that it can be used as a default option
>> if an override isn't provided.  That might help...
> 
> Possibly, although the main knowledge required is "where is <x>
> dependency installed", and "where should _I_ install myself". I don't
> think `opam-query` will be able to resolve those kinds of questions,
> and it's probably cleaner to inject this information into command line
> arguments anyway, rather than the build script asking for it. opam2nix
> can act just like opam already for most interpolated variables
> (%{lib}% and friends), thanks to opam-lib - all that's needed is for
> the build script to accept this information on the command line, or in
> an env var.

Yep, agreed.  The intention behind opam-query is to provide a default
when OPAM is in use, but still make it easy to expose a Makefile variable
that can be overridden from the command line.

-anil


_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Wed Sep 02 22:11:12 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 02 Sep 2015 22:11:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZXGFE-0006eP-2h; Wed, 02 Sep 2015 22:11:04 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <anil@recoil.org>) id 1ZXGFC-0006eK-5g
	for mirageos-devel@lists.xenproject.org; Wed, 02 Sep 2015 22:11:02 +0000
Received: from [85.158.137.68] by server-5.bemta-3.messagelabs.com id
	55/B6-06021-5F377E55; Wed, 02 Sep 2015 22:11:01 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-11.tower-31.messagelabs.com!1441231860!40713412!1
X-Originating-IP: [5.153.225.51]
X-SpamReason: No, hits=0.7 required=7.0 tests=BODY_DONG,RCVD_ILLEGAL_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 25255 invoked from network); 2 Sep 2015 22:11:01 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-11.tower-31.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 2 Sep 2015 22:11:01 -0000
Received: from [172.16.7.154] (S0106000c429759cb.vc.shawcable.net
	[50.67.170.218])
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id 20285a93
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Wed, 2 Sep 2015 23:11:00 +0100 (BST)
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <F6B488B6-3129-4717-9344-9654E9322CC9@recoil.org>
Date: Wed, 2 Sep 2015 15:10:56 -0700
Message-Id: <232D7742-2C70-4EF7-998C-E905EA736B24@recoil.org>
References: <1436645919.1418292.321252433.0BBBABBF@webmail.messagingengine.com>
	<F6B488B6-3129-4717-9344-9654E9322CC9@recoil.org>
To: Carl Dong <dongcarl@fastmail.com>
X-Mailer: Apple Mail (2.2104)
Cc: mirageos-devel@lists.xenproject.org
Subject: Re: [MirageOS-devel] Problem installing mirage on FreeBSD
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On 11 Jul 2015, at 13:29, Anil Madhavapeddy <anil@recoil.org> wrote:
> 
> On 11 Jul 2015, at 21:18, Carl Dong <dongcarl@fastmail.com> wrote:
>> 
>> Hi all,
>> 
>> I started with a fresh install of FreeBSD 10.1 Release and installed
>> opam from FreeBSD's ports collection. I did `opam init` and ran `eval
>> (opam config env)` (I'm on fish shell). Then I ran `opam install mirage`
>> which resulted in the following log: http://pastebin.com/Zn5mQkvv
>> Any clue? Should I be asking in another mailing list?
> 
> Looks like a bug in the FreeBSD port of OPAM -- it should also depend
> on the "ocaml-camlp4" port as well as OCaml.  Try pkg_add'ing the
> ocaml-camlp4 package and retrying the installation.
> 
> Alternatively, you can workaround this by "opam switch 4.02.2" and
> it will compile a local version of camlp4 and let you continue.

Just to follow up on this, the FreeBSD OPAM port has now been fixed
so that it has a runtime dependency on ocaml-camlp4.  This means
that a "pkg install opam && opam init -y && opam install mirage"
should work out of the box on FreeBSD now.  Please let me know if
it doesn't...

-anil

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Wed Sep 02 22:11:12 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 02 Sep 2015 22:11:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZXGFE-0006eP-2h; Wed, 02 Sep 2015 22:11:04 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <anil@recoil.org>) id 1ZXGFC-0006eK-5g
	for mirageos-devel@lists.xenproject.org; Wed, 02 Sep 2015 22:11:02 +0000
Received: from [85.158.137.68] by server-5.bemta-3.messagelabs.com id
	55/B6-06021-5F377E55; Wed, 02 Sep 2015 22:11:01 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-11.tower-31.messagelabs.com!1441231860!40713412!1
X-Originating-IP: [5.153.225.51]
X-SpamReason: No, hits=0.7 required=7.0 tests=BODY_DONG,RCVD_ILLEGAL_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 25255 invoked from network); 2 Sep 2015 22:11:01 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-11.tower-31.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 2 Sep 2015 22:11:01 -0000
Received: from [172.16.7.154] (S0106000c429759cb.vc.shawcable.net
	[50.67.170.218])
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id 20285a93
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Wed, 2 Sep 2015 23:11:00 +0100 (BST)
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <F6B488B6-3129-4717-9344-9654E9322CC9@recoil.org>
Date: Wed, 2 Sep 2015 15:10:56 -0700
Message-Id: <232D7742-2C70-4EF7-998C-E905EA736B24@recoil.org>
References: <1436645919.1418292.321252433.0BBBABBF@webmail.messagingengine.com>
	<F6B488B6-3129-4717-9344-9654E9322CC9@recoil.org>
To: Carl Dong <dongcarl@fastmail.com>
X-Mailer: Apple Mail (2.2104)
Cc: mirageos-devel@lists.xenproject.org
Subject: Re: [MirageOS-devel] Problem installing mirage on FreeBSD
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On 11 Jul 2015, at 13:29, Anil Madhavapeddy <anil@recoil.org> wrote:
> 
> On 11 Jul 2015, at 21:18, Carl Dong <dongcarl@fastmail.com> wrote:
>> 
>> Hi all,
>> 
>> I started with a fresh install of FreeBSD 10.1 Release and installed
>> opam from FreeBSD's ports collection. I did `opam init` and ran `eval
>> (opam config env)` (I'm on fish shell). Then I ran `opam install mirage`
>> which resulted in the following log: http://pastebin.com/Zn5mQkvv
>> Any clue? Should I be asking in another mailing list?
> 
> Looks like a bug in the FreeBSD port of OPAM -- it should also depend
> on the "ocaml-camlp4" port as well as OCaml.  Try pkg_add'ing the
> ocaml-camlp4 package and retrying the installation.
> 
> Alternatively, you can workaround this by "opam switch 4.02.2" and
> it will compile a local version of camlp4 and let you continue.

Just to follow up on this, the FreeBSD OPAM port has now been fixed
so that it has a runtime dependency on ocaml-camlp4.  This means
that a "pkg install opam && opam init -y && opam install mirage"
should work out of the box on FreeBSD now.  Please let me know if
it doesn't...

-anil

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Thu Sep 03 03:31:59 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 03 Sep 2015 03:31:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZXLFf-0004yc-QK; Thu, 03 Sep 2015 03:31:51 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <dongcarl@fastmail.com>) id 1ZXLFd-0004yX-SF
	for mirageos-devel@lists.xenproject.org; Thu, 03 Sep 2015 03:31:50 +0000
Received: from [193.109.254.147] by server-2.bemta-14.messagelabs.com id
	B4/CB-12889-52FB7E55; Thu, 03 Sep 2015 03:31:49 +0000
X-Env-Sender: dongcarl@fastmail.com
X-Msg-Ref: server-7.tower-27.messagelabs.com!1441251108!46300796!1
X-Originating-IP: [66.111.4.29]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
	VHJ1c3RlZCBJUDogNjYuMTExLjQuMjkgPT4gNjQ0MA==\n
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 8353 invoked from network); 3 Sep 2015 03:31:48 -0000
Received: from out5-smtp.messagingengine.com (HELO
	out5-smtp.messagingengine.com) (66.111.4.29)
	by server-7.tower-27.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 3 Sep 2015 03:31:48 -0000
Received: from compute3.internal (compute3.nyi.internal [10.202.2.43])
	by mailout.nyi.internal (Postfix) with ESMTP id 8D65820771
	for <mirageos-devel@lists.xenproject.org>;
	Wed,  2 Sep 2015 23:31:47 -0400 (EDT)
Received: from web5 ([10.202.2.215])
	by compute3.internal (MEProxy); Wed, 02 Sep 2015 23:31:47 -0400
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=fastmail.com; h=cc
	:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to:x-sasl-enc
	:x-sasl-enc; s=mesmtp; bh=59MU9z5Oqpgp5GiOrazylYU7RII=; b=N7nThZ
	AbhlKhAtNMi00C+Er9NyLLmISncd4T0niRgd3khXeWwZsnZzIVOKJjc558ZvMWX0
	kmh9JuGSu1swfkAl8+7avpYqP0/pUiFx+NGI3YluNHPQx8yx6IXEs7vYD0dvkN2N
	m1l82ChgHiK4L+WEFLsqEwGaidTQS/spDkjus=
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:content-transfer-encoding:content-type
	:date:from:in-reply-to:message-id:mime-version:references
	:subject:to:x-sasl-enc:x-sasl-enc; s=smtpout; bh=59MU9z5Oqpgp5Gi
	OrazylYU7RII=; b=nup/PP1tMf6slYMPtd8z0p4Zedyp7fV4vnjtPPE7X2jCJsi
	A4F0gy+gkkW6BDzTy5kfgP8MnCu0u/F2aiQIR0l8A0eLV/32aucAnNdMDzNgj4H+
	/SnKAbcrqGQuK0rDVakQTiPDjO11cnYlo9ZVYX5P0SPqF4SxNwsFJWheVKSI=
Received: by web5.nyi.internal (Postfix, from userid 99)
	id 4AE96A613AD; Wed,  2 Sep 2015 23:31:47 -0400 (EDT)
Message-Id: <1441251107.3291273.373428289.6DB0A7E9@webmail.messagingengine.com>
X-Sasl-Enc: NH8gk7FhEfW5SSY0LS/iVago01dNEtSQWDwpfOQWvAq2 1441251107
From: Carl Dong <dongcarl@fastmail.com>
To: Anil Madhavapeddy <anil@recoil.org>
MIME-Version: 1.0
X-Mailer: MessagingEngine.com Webmail Interface - ajax-4500bf93
Date: Thu, 03 Sep 2015 11:31:47 +0800
In-Reply-To: <232D7742-2C70-4EF7-998C-E905EA736B24@recoil.org>
References: <1436645919.1418292.321252433.0BBBABBF@webmail.messagingengine.com>
	<F6B488B6-3129-4717-9344-9654E9322CC9@recoil.org>
	<232D7742-2C70-4EF7-998C-E905EA736B24@recoil.org>
Cc: mirageos-devel@lists.xenproject.org
Subject: Re: [MirageOS-devel] Problem installing mirage on FreeBSD
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

I'll test it out!

-- 
Carl Dong
dongcarl@fastmail.com
"I fight for the users"

On Thu, Sep 3, 2015, at 06:10 AM, Anil Madhavapeddy wrote:
> On 11 Jul 2015, at 13:29, Anil Madhavapeddy <anil@recoil.org> wrote:
> > 
> > On 11 Jul 2015, at 21:18, Carl Dong <dongcarl@fastmail.com> wrote:
> >> 
> >> Hi all,
> >> 
> >> I started with a fresh install of FreeBSD 10.1 Release and installed
> >> opam from FreeBSD's ports collection. I did `opam init` and ran `eval
> >> (opam config env)` (I'm on fish shell). Then I ran `opam install mirage`
> >> which resulted in the following log: http://pastebin.com/Zn5mQkvv
> >> Any clue? Should I be asking in another mailing list?
> > 
> > Looks like a bug in the FreeBSD port of OPAM -- it should also depend
> > on the "ocaml-camlp4" port as well as OCaml.  Try pkg_add'ing the
> > ocaml-camlp4 package and retrying the installation.
> > 
> > Alternatively, you can workaround this by "opam switch 4.02.2" and
> > it will compile a local version of camlp4 and let you continue.
> 
> Just to follow up on this, the FreeBSD OPAM port has now been fixed
> so that it has a runtime dependency on ocaml-camlp4.  This means
> that a "pkg install opam && opam init -y && opam install mirage"
> should work out of the box on FreeBSD now.  Please let me know if
> it doesn't...
> 
> -anil

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Thu Sep 03 03:31:59 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 03 Sep 2015 03:31:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZXLFf-0004yc-QK; Thu, 03 Sep 2015 03:31:51 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <dongcarl@fastmail.com>) id 1ZXLFd-0004yX-SF
	for mirageos-devel@lists.xenproject.org; Thu, 03 Sep 2015 03:31:50 +0000
Received: from [193.109.254.147] by server-2.bemta-14.messagelabs.com id
	B4/CB-12889-52FB7E55; Thu, 03 Sep 2015 03:31:49 +0000
X-Env-Sender: dongcarl@fastmail.com
X-Msg-Ref: server-7.tower-27.messagelabs.com!1441251108!46300796!1
X-Originating-IP: [66.111.4.29]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
	VHJ1c3RlZCBJUDogNjYuMTExLjQuMjkgPT4gNjQ0MA==\n
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 8353 invoked from network); 3 Sep 2015 03:31:48 -0000
Received: from out5-smtp.messagingengine.com (HELO
	out5-smtp.messagingengine.com) (66.111.4.29)
	by server-7.tower-27.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 3 Sep 2015 03:31:48 -0000
Received: from compute3.internal (compute3.nyi.internal [10.202.2.43])
	by mailout.nyi.internal (Postfix) with ESMTP id 8D65820771
	for <mirageos-devel@lists.xenproject.org>;
	Wed,  2 Sep 2015 23:31:47 -0400 (EDT)
Received: from web5 ([10.202.2.215])
	by compute3.internal (MEProxy); Wed, 02 Sep 2015 23:31:47 -0400
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=fastmail.com; h=cc
	:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to:x-sasl-enc
	:x-sasl-enc; s=mesmtp; bh=59MU9z5Oqpgp5GiOrazylYU7RII=; b=N7nThZ
	AbhlKhAtNMi00C+Er9NyLLmISncd4T0niRgd3khXeWwZsnZzIVOKJjc558ZvMWX0
	kmh9JuGSu1swfkAl8+7avpYqP0/pUiFx+NGI3YluNHPQx8yx6IXEs7vYD0dvkN2N
	m1l82ChgHiK4L+WEFLsqEwGaidTQS/spDkjus=
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:content-transfer-encoding:content-type
	:date:from:in-reply-to:message-id:mime-version:references
	:subject:to:x-sasl-enc:x-sasl-enc; s=smtpout; bh=59MU9z5Oqpgp5Gi
	OrazylYU7RII=; b=nup/PP1tMf6slYMPtd8z0p4Zedyp7fV4vnjtPPE7X2jCJsi
	A4F0gy+gkkW6BDzTy5kfgP8MnCu0u/F2aiQIR0l8A0eLV/32aucAnNdMDzNgj4H+
	/SnKAbcrqGQuK0rDVakQTiPDjO11cnYlo9ZVYX5P0SPqF4SxNwsFJWheVKSI=
Received: by web5.nyi.internal (Postfix, from userid 99)
	id 4AE96A613AD; Wed,  2 Sep 2015 23:31:47 -0400 (EDT)
Message-Id: <1441251107.3291273.373428289.6DB0A7E9@webmail.messagingengine.com>
X-Sasl-Enc: NH8gk7FhEfW5SSY0LS/iVago01dNEtSQWDwpfOQWvAq2 1441251107
From: Carl Dong <dongcarl@fastmail.com>
To: Anil Madhavapeddy <anil@recoil.org>
MIME-Version: 1.0
X-Mailer: MessagingEngine.com Webmail Interface - ajax-4500bf93
Date: Thu, 03 Sep 2015 11:31:47 +0800
In-Reply-To: <232D7742-2C70-4EF7-998C-E905EA736B24@recoil.org>
References: <1436645919.1418292.321252433.0BBBABBF@webmail.messagingengine.com>
	<F6B488B6-3129-4717-9344-9654E9322CC9@recoil.org>
	<232D7742-2C70-4EF7-998C-E905EA736B24@recoil.org>
Cc: mirageos-devel@lists.xenproject.org
Subject: Re: [MirageOS-devel] Problem installing mirage on FreeBSD
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

I'll test it out!

-- 
Carl Dong
dongcarl@fastmail.com
"I fight for the users"

On Thu, Sep 3, 2015, at 06:10 AM, Anil Madhavapeddy wrote:
> On 11 Jul 2015, at 13:29, Anil Madhavapeddy <anil@recoil.org> wrote:
> > 
> > On 11 Jul 2015, at 21:18, Carl Dong <dongcarl@fastmail.com> wrote:
> >> 
> >> Hi all,
> >> 
> >> I started with a fresh install of FreeBSD 10.1 Release and installed
> >> opam from FreeBSD's ports collection. I did `opam init` and ran `eval
> >> (opam config env)` (I'm on fish shell). Then I ran `opam install mirage`
> >> which resulted in the following log: http://pastebin.com/Zn5mQkvv
> >> Any clue? Should I be asking in another mailing list?
> > 
> > Looks like a bug in the FreeBSD port of OPAM -- it should also depend
> > on the "ocaml-camlp4" port as well as OCaml.  Try pkg_add'ing the
> > ocaml-camlp4 package and retrying the installation.
> > 
> > Alternatively, you can workaround this by "opam switch 4.02.2" and
> > it will compile a local version of camlp4 and let you continue.
> 
> Just to follow up on this, the FreeBSD OPAM port has now been fixed
> so that it has a runtime dependency on ocaml-camlp4.  This means
> that a "pkg install opam && opam init -y && opam install mirage"
> should work out of the box on FreeBSD now.  Please let me know if
> it doesn't...
> 
> -anil

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Thu Sep 03 17:55:05 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 03 Sep 2015 17:55:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZXYiw-0002hW-33; Thu, 03 Sep 2015 17:54:58 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <anil@recoil.org>) id 1ZXYiu-0002hH-A4
	for mirageos-devel@lists.xenproject.org; Thu, 03 Sep 2015 17:54:56 +0000
Received: from [193.109.254.147] by server-15.bemta-14.messagelabs.com id
	C2/BE-18886-F6988E55; Thu, 03 Sep 2015 17:54:55 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-5.tower-27.messagelabs.com!1441302892!35178106!1
X-Originating-IP: [5.153.225.51]
X-SpamReason: No, hits=0.2 required=7.0 tests=RCVD_ILLEGAL_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 9526 invoked from network); 3 Sep 2015 17:54:52 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-5.tower-27.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 3 Sep 2015 17:54:52 -0000
Received: from [10.20.21.240] (h72-2-55-21.bigpipeinc.com [72.2.55.21])
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id 03ac5efa
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Thu, 3 Sep 2015 18:54:51 +0100 (BST)
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\))
From: Anil Madhavapeddy <anil@recoil.org>
Date: Thu, 3 Sep 2015 10:54:49 -0700
Message-Id: <D36D3F44-1D42-4DFD-9127-67F6982733B6@recoil.org>
References: <55D4A4E5.1000001@iki.fi>
To: mirageos-devel <mirageos-devel@lists.xenproject.org>
X-Mailer: Apple Mail (2.2104)
Subject: [MirageOS-devel] Fwd: Amazon EC2 support now in Rumprun
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

>From the Rump lists -- it looks increasingly complex to boot a unikernel in EC2 when using non-S3 storage.

-anil

> Begin forwarded message:
> 
> From: Antti Kantee <pooka@iki.fi>
> Subject: Amazon EC2 support now in Rumprun
> Date: 19 August 2015 08:46:45 GMT-7
> To: rumpkernel-users <rumpkernel-users@freelists.org>
> Cc: Andrew Stuart <andrew.stuart@supercoders.com.au>
> Reply-To: pooka@iki.fi
> 
> Folks,
> 
> I added an "ec2" target to the rumprun utility.  What it does, is it creates a file system layout (including the config json and block device images) that you can then transfer to an Amazon EC2 volume.  A launchable machine image (AMI) can then be created from that volume, and launched.  What the rumprun utility does not do, is in any way attempt to create or launch the image.  So, like with the "iso" target, "rumprun ec2" doesn't actually run anything.  That makes the features largely complementary to Andrew Stuart's EC2 script [1].
> 
> 
> Use:
> First compile and bake your application for xen_pv as normal.  Then run rumprun as normal, of course with the exception of using "ec2" as the platform instead of "xen".  The value of -N is used as the target directory (or rumprun-appname by default), and in there you'll find the file system layout you need to transfer to Amazon.
> 
> Next, it gets tricky (but see below under "how to improve" if you think it gets too tricky).  Start any Linux instance on EC2.  Tar up the directory created above and copy the tarball to the Linux instance. Then, essentially follow Andrew's script [1] from the comment "this will be the root file system for the unikernel".  As a notable diversion, you need to format the file system as ext2, not ext4, or rumprun won't be able to mount it at runtime.  You can also use web point-and-click interfaces to create/attach/detach the volume.  After unmounting and detaching the volume, skip to "prepare the unikernel for booting on EC2" in the script.  Finally, launch the AMI.  You'll probably want to launch from the web console at least the first time so that you get security groups etc. correct.  Note, if you're using the AWS "free" tier and launch from the command line, make sure to include -t t1.micro in the ec2-run-instances command.  Apparently Amazon doesn't make it too hard to accidentally use non-free services (been there, done that).
> 
> So, in summary, to create the AMI you need:
> + ec2-create-volume
> + ec2-attach-volume
> + mke2fs
> + mount
> + tar
> + unmount
> + ec2-detach-volume
> + ec2-create-snapshot
> + ec2-register
> (see [1] for a rough idea of parameters, especially for ec2-register)
> 
> After having played with EC2 more now, I'm not convinced that we can solve the ec2 side with a one-size-fits-all script, considering the amounts of varying options that the ec2* commands take.  Though, if we get ec2ivol support working some day (see below), we might consider a "one script fits the default use case" approach.
> 
> 
> How to improve support:
> It would be better if the rumprun tool would create a disk image which you could transfer to Amazon with ec2ivol, and then you could proceed to do the snapshot-register-run dance without needing to launch a "preparation instance".  That's actually what I tried first.  After several hours of pvgrub dying in divide-by-zero, I decided to try following Andrew's instructions more literally.  Since following Andrew's instructions worked, I gave up on ec2ivol, and not only because running ec2ivol a few times for a 10MB fs image seems to eat up all of the AWS "free" tier S3 quota.  nb. the contents of the ec2ivol'd file system looked correct when examined from a "prep instance", so maybe something got confused when the file system wasn't the size of the entire partition?
> 
> A disk image also provides the advantage of being partitionable, and we could then include the data disk images (-b parameters to rumprun) as partitions instead of indirectly on the root file system like they're handled now.
> 
> 
> Impressions:
> EC2 doesn't seem to be particularly friendly towards unikernels.  I got the impression that it's oriented towards the scenario where you run a fullblown OS and then do tweaking from inside that OS.  Testing is painful since ec2 commands run for ages, so one iteration is easily several minutes.  It's possible that I'm missing something with a whole ~10h of EC2 experience under my belt, but if their goal was to create a first impression of a convenient/agile/fast system, they failed. Furthermore, 1h being the minimum charge for launching an instance and 1GB being the granularity of provisioning storage is way overkill for unikernels.  Seems like a good opportunity for a cloud provider to target and grab the unikernel market.  (If such a provider already exists, drop a note, I'd like to partner with them for hosting rumpkernel.org on a Rumprun unikernel.)
> 
> 
> Anyway, enjoy if you can and please send patches and bug reports if you're so inclined.  Huge thanks go to Andrew for figuring out the EC2 side of things -- if it weren't for his efforts, I'd be sending this mail with quite a bit more of EC2 experience.
> 
>  - antti
> 
> [1] https://www.freelists.org/post/rumpkernel-users/EC2-launch-script-feedback-valued
> 
> p.s. here's the "proof":
> http://52.2.126.166/
> (I'll probably take that offline eventually, so don't be surprised if it doesn't work at an arbitrary future date)
> 


_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Thu Sep 03 17:55:05 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 03 Sep 2015 17:55:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZXYiw-0002hW-33; Thu, 03 Sep 2015 17:54:58 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <anil@recoil.org>) id 1ZXYiu-0002hH-A4
	for mirageos-devel@lists.xenproject.org; Thu, 03 Sep 2015 17:54:56 +0000
Received: from [193.109.254.147] by server-15.bemta-14.messagelabs.com id
	C2/BE-18886-F6988E55; Thu, 03 Sep 2015 17:54:55 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-5.tower-27.messagelabs.com!1441302892!35178106!1
X-Originating-IP: [5.153.225.51]
X-SpamReason: No, hits=0.2 required=7.0 tests=RCVD_ILLEGAL_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 9526 invoked from network); 3 Sep 2015 17:54:52 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-5.tower-27.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 3 Sep 2015 17:54:52 -0000
Received: from [10.20.21.240] (h72-2-55-21.bigpipeinc.com [72.2.55.21])
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id 03ac5efa
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Thu, 3 Sep 2015 18:54:51 +0100 (BST)
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\))
From: Anil Madhavapeddy <anil@recoil.org>
Date: Thu, 3 Sep 2015 10:54:49 -0700
Message-Id: <D36D3F44-1D42-4DFD-9127-67F6982733B6@recoil.org>
References: <55D4A4E5.1000001@iki.fi>
To: mirageos-devel <mirageos-devel@lists.xenproject.org>
X-Mailer: Apple Mail (2.2104)
Subject: [MirageOS-devel] Fwd: Amazon EC2 support now in Rumprun
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

>From the Rump lists -- it looks increasingly complex to boot a unikernel in EC2 when using non-S3 storage.

-anil

> Begin forwarded message:
> 
> From: Antti Kantee <pooka@iki.fi>
> Subject: Amazon EC2 support now in Rumprun
> Date: 19 August 2015 08:46:45 GMT-7
> To: rumpkernel-users <rumpkernel-users@freelists.org>
> Cc: Andrew Stuart <andrew.stuart@supercoders.com.au>
> Reply-To: pooka@iki.fi
> 
> Folks,
> 
> I added an "ec2" target to the rumprun utility.  What it does, is it creates a file system layout (including the config json and block device images) that you can then transfer to an Amazon EC2 volume.  A launchable machine image (AMI) can then be created from that volume, and launched.  What the rumprun utility does not do, is in any way attempt to create or launch the image.  So, like with the "iso" target, "rumprun ec2" doesn't actually run anything.  That makes the features largely complementary to Andrew Stuart's EC2 script [1].
> 
> 
> Use:
> First compile and bake your application for xen_pv as normal.  Then run rumprun as normal, of course with the exception of using "ec2" as the platform instead of "xen".  The value of -N is used as the target directory (or rumprun-appname by default), and in there you'll find the file system layout you need to transfer to Amazon.
> 
> Next, it gets tricky (but see below under "how to improve" if you think it gets too tricky).  Start any Linux instance on EC2.  Tar up the directory created above and copy the tarball to the Linux instance. Then, essentially follow Andrew's script [1] from the comment "this will be the root file system for the unikernel".  As a notable diversion, you need to format the file system as ext2, not ext4, or rumprun won't be able to mount it at runtime.  You can also use web point-and-click interfaces to create/attach/detach the volume.  After unmounting and detaching the volume, skip to "prepare the unikernel for booting on EC2" in the script.  Finally, launch the AMI.  You'll probably want to launch from the web console at least the first time so that you get security groups etc. correct.  Note, if you're using the AWS "free" tier and launch from the command line, make sure to include -t t1.micro in the ec2-run-instances command.  Apparently Amazon doesn't make it too hard to accidentally use non-free services (been there, done that).
> 
> So, in summary, to create the AMI you need:
> + ec2-create-volume
> + ec2-attach-volume
> + mke2fs
> + mount
> + tar
> + unmount
> + ec2-detach-volume
> + ec2-create-snapshot
> + ec2-register
> (see [1] for a rough idea of parameters, especially for ec2-register)
> 
> After having played with EC2 more now, I'm not convinced that we can solve the ec2 side with a one-size-fits-all script, considering the amounts of varying options that the ec2* commands take.  Though, if we get ec2ivol support working some day (see below), we might consider a "one script fits the default use case" approach.
> 
> 
> How to improve support:
> It would be better if the rumprun tool would create a disk image which you could transfer to Amazon with ec2ivol, and then you could proceed to do the snapshot-register-run dance without needing to launch a "preparation instance".  That's actually what I tried first.  After several hours of pvgrub dying in divide-by-zero, I decided to try following Andrew's instructions more literally.  Since following Andrew's instructions worked, I gave up on ec2ivol, and not only because running ec2ivol a few times for a 10MB fs image seems to eat up all of the AWS "free" tier S3 quota.  nb. the contents of the ec2ivol'd file system looked correct when examined from a "prep instance", so maybe something got confused when the file system wasn't the size of the entire partition?
> 
> A disk image also provides the advantage of being partitionable, and we could then include the data disk images (-b parameters to rumprun) as partitions instead of indirectly on the root file system like they're handled now.
> 
> 
> Impressions:
> EC2 doesn't seem to be particularly friendly towards unikernels.  I got the impression that it's oriented towards the scenario where you run a fullblown OS and then do tweaking from inside that OS.  Testing is painful since ec2 commands run for ages, so one iteration is easily several minutes.  It's possible that I'm missing something with a whole ~10h of EC2 experience under my belt, but if their goal was to create a first impression of a convenient/agile/fast system, they failed. Furthermore, 1h being the minimum charge for launching an instance and 1GB being the granularity of provisioning storage is way overkill for unikernels.  Seems like a good opportunity for a cloud provider to target and grab the unikernel market.  (If such a provider already exists, drop a note, I'd like to partner with them for hosting rumpkernel.org on a Rumprun unikernel.)
> 
> 
> Anyway, enjoy if you can and please send patches and bug reports if you're so inclined.  Huge thanks go to Andrew for figuring out the EC2 side of things -- if it weren't for his efforts, I'd be sending this mail with quite a bit more of EC2 experience.
> 
>  - antti
> 
> [1] https://www.freelists.org/post/rumpkernel-users/EC2-launch-script-feedback-valued
> 
> p.s. here's the "proof":
> http://52.2.126.166/
> (I'll probably take that offline eventually, so don't be surprised if it doesn't work at an arbitrary future date)
> 


_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Thu Sep 03 18:56:13 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 03 Sep 2015 18:56:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZXZg6-0008RI-SR; Thu, 03 Sep 2015 18:56:06 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <prvs=681e679c8=Dave.Scott@citrix.com>)
	id 1ZXZg5-0008RD-AG
	for mirageos-devel@lists.xenproject.org; Thu, 03 Sep 2015 18:56:05 +0000
Received: from [85.158.137.68] by server-3.bemta-3.messagelabs.com id
	A9/84-01753-4C798E55; Thu, 03 Sep 2015 18:56:04 +0000
X-Env-Sender: prvs=681e679c8=Dave.Scott@citrix.com
X-Msg-Ref: server-3.tower-31.messagelabs.com!1441306563!41042661!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.0 required=7.0 tests=received_headers: No 
	Received headers
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 28333 invoked from network); 3 Sep 2015 18:56:03 -0000
Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
	by server-3.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	3 Sep 2015 18:56:03 -0000
X-IronPort-AV: E=Sophos;i="5.17,463,1437436800"; 
   d="scan'208";a="2445831"
From: Dave Scott <Dave.Scott@citrix.com>
To: Thomas Gazagnaire <thomas@gazagnaire.org>
Thread-Topic: [MirageOS-devel] deployment scripts: moving (e.g. mirage-www)
	away from crunch?
Thread-Index: AQHQzfhoqDtkwemum02Eo6Vx5MBtd54E6FqAgCZNyYA=
Date: Thu, 3 Sep 2015 18:53:19 +0000
Message-ID: <CA1024BE-104E-4E72-B146-423FCAA52EFB@citrix.com>
References: <3C1A9621-0838-430B-9F00-CCE9160E8C4F@citrix.com>
	<E300E70A-41DF-4B66-8893-6153785F5D3B@gazagnaire.org>
In-Reply-To: <E300E70A-41DF-4B66-8893-6153785F5D3B@gazagnaire.org>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Content-ID: <DC98DD8C205A034AA4BD08C507191A48@citrix.com>
MIME-Version: 1.0
X-DLP: AMS1
Cc: mirageos-devel <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] deployment scripts: moving (e.g. mirage-www)
 away from crunch?
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

DQpJIGNyZWF0ZWQgYW4gaXNzdWUgdG8gY2FwdHVyZSB0aGUgaWRlYXMgaW4gdGhpcyB0aHJlYWQ6
DQoNCmh0dHBzOi8vZ2l0aHViLmNvbS9taXJhZ2UvbWlyYWdlL2lzc3Vlcy80NDMNCg0KQ2hlZXJz
LA0KRGF2ZQ0KDQo+IE9uIDEwIEF1ZyAyMDE1LCBhdCAxMDo1NywgVGhvbWFzIEdhemFnbmFpcmUg
PHRob21hc0BnYXphZ25haXJlLm9yZz4gd3JvdGU6DQo+IA0KPiBIaSwNCj4gDQo+PiBJIGNhbiB0
aGluayBvZiAyIGdlbmVyYWwgYXBwcm9hY2hlczoNCj4+IA0KPj4gMS4gZHVyaW5nIHRoZSBleGlz
dGluZyBidWlsZCBwcm9jZXNzLCBidWlsZCBib3RoIGEga2VybmVsIGFuZCBhIHNlY29uZCBiaW5h
cnkgYmxvYiBjb250YWluaW5nIGRhdGEgd2hpY2ggd2lsbCBiZWNvbWUgYSBCTE9DSyBkZXZpY2Uu
IFRoZSBkZXBsb3ltZW50IHNjcmlwdHMgd291bGQgc2ltcGx5IGhhdmUgdG8gYXR0YWNoIHRoZSBC
TE9DSyBkZXZpY2VzIGluIHRoZSBWTSBjb25maWd1cmF0aW9uLg0KPj4gDQo+PiAyLiBjaGVjayBp
biB0aGUgZGF0YSBmaWxlcyBpbnRvIGEgc3ViZGlyZWN0b3J5IGluIHRoZSBkZXBsb3ltZW50IHRy
ZWUsIGFuZCBtYWtlIHRoZSBkZXBsb3ltZW50IHNjcmlwdHMgcGVyZm9ybSB0aGUgZmluYWwgY29u
dmVyc2lvbiAodG8gSXJtaW4sIEZBVCBvciB0YXIpLiBUaGlzIGhhcyB0aGUgZGlzYWR2YW50YWdl
IHRoYXQgaXQgbGVhdmVzIHNvbWUgb2YgdGhlIGZpbmFsIOKAmGxpbmtpbmfigJkgdG8gdGhlIGRl
cGxveW1lbnQgc2NyaXB0cyAod2hpY2ggYXJlIGN1cnJlbnRseSBvdXRzaWRlIHRoZSBzY29wZSBv
ZiB0aGUg4oCYbWlyYWdl4oCZIHRvb2wpIGJ1dCBpdCBoYXMgdGhlIGFkdmFudGFnZSB0aGF0IHRo
ZSBpbmRpdmlkdWFsIGRhdGEgZmlsZXMgc2hvdWxkIGJlIGRlLWR1cGVkIGJ5IGdpdC9Jcm1pbiwg
c2luY2UgdGhlaXIgc2hhMSBoYXNoZXMgc2hvdWxkIG1hdGNoLiBJZiB0aGlzIGZpbmFsIGFzc2Vt
Ymx5IHN0YWdlIGdldHMgbW9yZSBjb21wbGljYXRlZCwgc2hvdWxkIHRoZSDigJhtaXJhZ2XigJkg
dG9vbCBnYWluIHNvbWUgZXh0cmEgc3VwcG9ydCBmb3IgaXQgKG1pcmFnZSBjb25maWd1cmU7IG1p
cmFnZSBidWlsZDsg4oCmIGxhdGVyIG9uIGEgZGlmZmVyZW50IGhvc3Qg4oCmOyBtaXJhZ2UgZGVw
bG95PykNCj4gDQo+IEZvciBzaG9ydC10ZXJtIEkgYWN0dWFsbHkgSSBxdWl0ZSBsaWtlIDEuLi4g
aXQncyBzaW1wbGVyIGluIGEgZGVwbG95bWVudCBwZXJzcGVjdGl2ZTogeW91IGRvbid0IGhhdmUg
dG8gaW5zdGFsbCBhbmQgcmVseSBvbiBhbnl0aGluZyBvbiB0aGUgZGVwbG95bWVudCBob3N0IChq
dXN0IHNldC11cCB0aGUgcmlnaHQgZGlzayBwYXRoIGluIHRoZSBgLnhsYCBjb25maWd1cmF0aW9u
IGZpbGUpLiBCdXQgeWVzLCB3ZSBsb29zZSBkZWR1cCBhbmQgZmxleGliaWxpdHkgc28gd2UgZG9u
J3Qgd2FudCB0byBzdGF5IHRoZXJlIGZvcmV2ZXIuDQo+IA0KPiBBYm91dCBgbWlyYWdlIGRlcGxv
eWA6IEkgcmVtb3ZlZCByZWNlbnRseSBgbWlyYWdlIHJ1bmBbMV0gYmVjYXVzZSBpdCB3YXMgaW1w
b3NzaWJsZSB0byBrZWVwIGl0IHVwLXRvLWRhdGUgd2l0aCBhbGwgdGhlIGRlcGxveW1lbnQgYmFj
a2VuZHMgd2Ugd2FudGVkIGZvciBtaXJhZ2UuIEkgdGhpbmsgaXQgbWFrZSBzZW5zZSBpbnN0ZWFk
IHRvIGhhdmUgYmFja2VuZC1zcGVjaWZpYyBkZXBsb3ltZW50IHNjcmlwdHMgKHN0YXJ0aW5nIHdp
dGggeGwgYW5kIGVjMikgd2l0aG91dCB0cnlpbmcgdG9vIG11Y2ggdG8gbWFrZSB0aGVtIGxvb2sg
c2ltaWxhci4gVGhlIGRpZmZpY3VsdHkgaXMgdG8ga2VlcCBtYWtpbmcgdGhlbSB3b3JrIC4uLiBB
cyB3ZSBuZWVkIHRoaXMgdG8gZGVwbG95IG1pcmFnZS5pbyB1c2luZyB4bCwgSSB0aGluayBJJ2xs
IGJlIGhhcHB5IGlmIHdlIGp1c3QgaGF2ZSBhIG5pY2UgYG1pcmFnZS1kZXBsb3kteGxgIHNjcmlw
dCB3aGljaCB0YWtlcyBjYXJlIG9mIDIuDQo+IA0KPiBUaG9tYXMNCj4gDQo+IFsxXTogaHR0cHM6
Ly9naXRodWIuY29tL21pcmFnZS9taXJhZ2UvaXNzdWVzLzM0OA0KPiANCj4gDQo+PiANCj4+IFRo
ZXJl4oCZcyBhbHNvIHRoZSBpc3N1ZSBvZiBob3cgYmVzdCB0byBoYW5kbGUgc2VjcmV0IHZvbHVt
ZXMgc3VjaCBhcyB0aG9zZSBjb250YWluaW5nIGtleXMuDQo+PiANCj4+IFdoYXQgZG8geW91IHRo
aW5rPw0KPj4gDQo+PiBDaGVlcnMsDQo+PiBEYXZlDQo+PiANCj4+IA0KPj4gX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCj4+IE1pcmFnZU9TLWRldmVsIG1h
aWxpbmcgbGlzdA0KPj4gTWlyYWdlT1MtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcNCj4+IGh0
dHA6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vbWlyYWdl
b3MtZGV2ZWwNCj4gDQoNCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fCk1pcmFnZU9TLWRldmVsIG1haWxpbmcgbGlzdApNaXJhZ2VPUy1kZXZlbEBsaXN0cy54
ZW5wcm9qZWN0Lm9yZwpodHRwOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFu
L2xpc3RpbmZvL21pcmFnZW9zLWRldmVsCg==

From mirageos-devel-bounces@lists.xenproject.org Thu Sep 03 18:56:13 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 03 Sep 2015 18:56:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZXZg6-0008RI-SR; Thu, 03 Sep 2015 18:56:06 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <prvs=681e679c8=Dave.Scott@citrix.com>)
	id 1ZXZg5-0008RD-AG
	for mirageos-devel@lists.xenproject.org; Thu, 03 Sep 2015 18:56:05 +0000
Received: from [85.158.137.68] by server-3.bemta-3.messagelabs.com id
	A9/84-01753-4C798E55; Thu, 03 Sep 2015 18:56:04 +0000
X-Env-Sender: prvs=681e679c8=Dave.Scott@citrix.com
X-Msg-Ref: server-3.tower-31.messagelabs.com!1441306563!41042661!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.0 required=7.0 tests=received_headers: No 
	Received headers
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 28333 invoked from network); 3 Sep 2015 18:56:03 -0000
Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
	by server-3.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	3 Sep 2015 18:56:03 -0000
X-IronPort-AV: E=Sophos;i="5.17,463,1437436800"; 
   d="scan'208";a="2445831"
From: Dave Scott <Dave.Scott@citrix.com>
To: Thomas Gazagnaire <thomas@gazagnaire.org>
Thread-Topic: [MirageOS-devel] deployment scripts: moving (e.g. mirage-www)
	away from crunch?
Thread-Index: AQHQzfhoqDtkwemum02Eo6Vx5MBtd54E6FqAgCZNyYA=
Date: Thu, 3 Sep 2015 18:53:19 +0000
Message-ID: <CA1024BE-104E-4E72-B146-423FCAA52EFB@citrix.com>
References: <3C1A9621-0838-430B-9F00-CCE9160E8C4F@citrix.com>
	<E300E70A-41DF-4B66-8893-6153785F5D3B@gazagnaire.org>
In-Reply-To: <E300E70A-41DF-4B66-8893-6153785F5D3B@gazagnaire.org>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Content-ID: <DC98DD8C205A034AA4BD08C507191A48@citrix.com>
MIME-Version: 1.0
X-DLP: AMS1
Cc: mirageos-devel <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] deployment scripts: moving (e.g. mirage-www)
 away from crunch?
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

DQpJIGNyZWF0ZWQgYW4gaXNzdWUgdG8gY2FwdHVyZSB0aGUgaWRlYXMgaW4gdGhpcyB0aHJlYWQ6
DQoNCmh0dHBzOi8vZ2l0aHViLmNvbS9taXJhZ2UvbWlyYWdlL2lzc3Vlcy80NDMNCg0KQ2hlZXJz
LA0KRGF2ZQ0KDQo+IE9uIDEwIEF1ZyAyMDE1LCBhdCAxMDo1NywgVGhvbWFzIEdhemFnbmFpcmUg
PHRob21hc0BnYXphZ25haXJlLm9yZz4gd3JvdGU6DQo+IA0KPiBIaSwNCj4gDQo+PiBJIGNhbiB0
aGluayBvZiAyIGdlbmVyYWwgYXBwcm9hY2hlczoNCj4+IA0KPj4gMS4gZHVyaW5nIHRoZSBleGlz
dGluZyBidWlsZCBwcm9jZXNzLCBidWlsZCBib3RoIGEga2VybmVsIGFuZCBhIHNlY29uZCBiaW5h
cnkgYmxvYiBjb250YWluaW5nIGRhdGEgd2hpY2ggd2lsbCBiZWNvbWUgYSBCTE9DSyBkZXZpY2Uu
IFRoZSBkZXBsb3ltZW50IHNjcmlwdHMgd291bGQgc2ltcGx5IGhhdmUgdG8gYXR0YWNoIHRoZSBC
TE9DSyBkZXZpY2VzIGluIHRoZSBWTSBjb25maWd1cmF0aW9uLg0KPj4gDQo+PiAyLiBjaGVjayBp
biB0aGUgZGF0YSBmaWxlcyBpbnRvIGEgc3ViZGlyZWN0b3J5IGluIHRoZSBkZXBsb3ltZW50IHRy
ZWUsIGFuZCBtYWtlIHRoZSBkZXBsb3ltZW50IHNjcmlwdHMgcGVyZm9ybSB0aGUgZmluYWwgY29u
dmVyc2lvbiAodG8gSXJtaW4sIEZBVCBvciB0YXIpLiBUaGlzIGhhcyB0aGUgZGlzYWR2YW50YWdl
IHRoYXQgaXQgbGVhdmVzIHNvbWUgb2YgdGhlIGZpbmFsIOKAmGxpbmtpbmfigJkgdG8gdGhlIGRl
cGxveW1lbnQgc2NyaXB0cyAod2hpY2ggYXJlIGN1cnJlbnRseSBvdXRzaWRlIHRoZSBzY29wZSBv
ZiB0aGUg4oCYbWlyYWdl4oCZIHRvb2wpIGJ1dCBpdCBoYXMgdGhlIGFkdmFudGFnZSB0aGF0IHRo
ZSBpbmRpdmlkdWFsIGRhdGEgZmlsZXMgc2hvdWxkIGJlIGRlLWR1cGVkIGJ5IGdpdC9Jcm1pbiwg
c2luY2UgdGhlaXIgc2hhMSBoYXNoZXMgc2hvdWxkIG1hdGNoLiBJZiB0aGlzIGZpbmFsIGFzc2Vt
Ymx5IHN0YWdlIGdldHMgbW9yZSBjb21wbGljYXRlZCwgc2hvdWxkIHRoZSDigJhtaXJhZ2XigJkg
dG9vbCBnYWluIHNvbWUgZXh0cmEgc3VwcG9ydCBmb3IgaXQgKG1pcmFnZSBjb25maWd1cmU7IG1p
cmFnZSBidWlsZDsg4oCmIGxhdGVyIG9uIGEgZGlmZmVyZW50IGhvc3Qg4oCmOyBtaXJhZ2UgZGVw
bG95PykNCj4gDQo+IEZvciBzaG9ydC10ZXJtIEkgYWN0dWFsbHkgSSBxdWl0ZSBsaWtlIDEuLi4g
aXQncyBzaW1wbGVyIGluIGEgZGVwbG95bWVudCBwZXJzcGVjdGl2ZTogeW91IGRvbid0IGhhdmUg
dG8gaW5zdGFsbCBhbmQgcmVseSBvbiBhbnl0aGluZyBvbiB0aGUgZGVwbG95bWVudCBob3N0IChq
dXN0IHNldC11cCB0aGUgcmlnaHQgZGlzayBwYXRoIGluIHRoZSBgLnhsYCBjb25maWd1cmF0aW9u
IGZpbGUpLiBCdXQgeWVzLCB3ZSBsb29zZSBkZWR1cCBhbmQgZmxleGliaWxpdHkgc28gd2UgZG9u
J3Qgd2FudCB0byBzdGF5IHRoZXJlIGZvcmV2ZXIuDQo+IA0KPiBBYm91dCBgbWlyYWdlIGRlcGxv
eWA6IEkgcmVtb3ZlZCByZWNlbnRseSBgbWlyYWdlIHJ1bmBbMV0gYmVjYXVzZSBpdCB3YXMgaW1w
b3NzaWJsZSB0byBrZWVwIGl0IHVwLXRvLWRhdGUgd2l0aCBhbGwgdGhlIGRlcGxveW1lbnQgYmFj
a2VuZHMgd2Ugd2FudGVkIGZvciBtaXJhZ2UuIEkgdGhpbmsgaXQgbWFrZSBzZW5zZSBpbnN0ZWFk
IHRvIGhhdmUgYmFja2VuZC1zcGVjaWZpYyBkZXBsb3ltZW50IHNjcmlwdHMgKHN0YXJ0aW5nIHdp
dGggeGwgYW5kIGVjMikgd2l0aG91dCB0cnlpbmcgdG9vIG11Y2ggdG8gbWFrZSB0aGVtIGxvb2sg
c2ltaWxhci4gVGhlIGRpZmZpY3VsdHkgaXMgdG8ga2VlcCBtYWtpbmcgdGhlbSB3b3JrIC4uLiBB
cyB3ZSBuZWVkIHRoaXMgdG8gZGVwbG95IG1pcmFnZS5pbyB1c2luZyB4bCwgSSB0aGluayBJJ2xs
IGJlIGhhcHB5IGlmIHdlIGp1c3QgaGF2ZSBhIG5pY2UgYG1pcmFnZS1kZXBsb3kteGxgIHNjcmlw
dCB3aGljaCB0YWtlcyBjYXJlIG9mIDIuDQo+IA0KPiBUaG9tYXMNCj4gDQo+IFsxXTogaHR0cHM6
Ly9naXRodWIuY29tL21pcmFnZS9taXJhZ2UvaXNzdWVzLzM0OA0KPiANCj4gDQo+PiANCj4+IFRo
ZXJl4oCZcyBhbHNvIHRoZSBpc3N1ZSBvZiBob3cgYmVzdCB0byBoYW5kbGUgc2VjcmV0IHZvbHVt
ZXMgc3VjaCBhcyB0aG9zZSBjb250YWluaW5nIGtleXMuDQo+PiANCj4+IFdoYXQgZG8geW91IHRo
aW5rPw0KPj4gDQo+PiBDaGVlcnMsDQo+PiBEYXZlDQo+PiANCj4+IA0KPj4gX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCj4+IE1pcmFnZU9TLWRldmVsIG1h
aWxpbmcgbGlzdA0KPj4gTWlyYWdlT1MtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcNCj4+IGh0
dHA6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vbWlyYWdl
b3MtZGV2ZWwNCj4gDQoNCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fCk1pcmFnZU9TLWRldmVsIG1haWxpbmcgbGlzdApNaXJhZ2VPUy1kZXZlbEBsaXN0cy54
ZW5wcm9qZWN0Lm9yZwpodHRwOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFu
L2xpc3RpbmZvL21pcmFnZW9zLWRldmVsCg==

From mirageos-devel-bounces@lists.xenproject.org Thu Sep 03 22:02:52 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 03 Sep 2015 22:02:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZXcai-0006hz-0V; Thu, 03 Sep 2015 22:02:44 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <andrew.stuart@supercoders.com.au>)
	id 1ZXcah-0006hu-2M
	for mirageos-devel@lists.xenproject.org; Thu, 03 Sep 2015 22:02:43 +0000
Received: from [85.158.137.68] by server-5.bemta-3.messagelabs.com id
	17/5D-06021-283C8E55; Thu, 03 Sep 2015 22:02:42 +0000
X-Env-Sender: andrew.stuart@supercoders.com.au
X-Msg-Ref: server-12.tower-31.messagelabs.com!1441317761!41029065!1
X-Originating-IP: [54.215.13.78]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 4910 invoked from network); 3 Sep 2015 22:02:41 -0000
Received: from mail.supercoders.com.au (HELO mail.supercoders.com.au)
	(54.215.13.78) by server-12.tower-31.messagelabs.com with SMTP;
	3 Sep 2015 22:02:41 -0000
Received: from [192.168.1.100] (CPE-124-189-108-248.gziz1.win.bigpond.net.au
	[124.189.108.248])
	by mail.supercoders.com.au (Postfix) with ESMTPS id 3D44C600A7;
	Thu,  3 Sep 2015 22:02:40 +0000 (UTC)
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2102\))
From: Andrew Stuart <andrew.stuart@supercoders.com.au>
In-Reply-To: <D36D3F44-1D42-4DFD-9127-67F6982733B6@recoil.org>
Date: Fri, 4 Sep 2015 08:02:37 +1000
Message-Id: <9BB0F74A-57EB-4DC0-9DEB-A0031FCFC0C4@supercoders.com.au>
References: <55D4A4E5.1000001@iki.fi>
	<D36D3F44-1D42-4DFD-9127-67F6982733B6@recoil.org>
To: Anil Madhavapeddy <anil@recoil.org>
X-Mailer: Apple Mail (2.2102)
Cc: mirageos-devel <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Fwd: Amazon EC2 support now in Rumprun
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

Cgo+PiBGcm9tIHRoZSBSdW1wIGxpc3RzIC0tIGl0IGxvb2tzIGluY3JlYXNpbmdseSBjb21wbGV4
IHRvIGJvb3QgYSB1bmlrZXJuZWwgaW4gRUMyIHdoZW4gdXNpbmcgbm9uLVMzIHN0b3JhZ2UuCgpJ
4oCZbSBnb2luZyB0byBzZWUgaWYgSSBjYW4gZG8gYW55dGhpbmcgdG8gbWFrZSBib290aW5nIG9u
IEVDMiBlYXNpZXIuCgpPbmUgaW1wb3J0YW50IHRoaW5nIGFib3V0IHRoZSBFQzIgYnVpbGQgZnVu
Y3Rpb25hbGl0eSB0aGF0IEFudHRpIGltcGxlbWVudGVkIGludG8gcnVtcHJ1buKApi4uICBoZSBh
cHBlYXJzIHRvIGhhdmUgaW5jbHVkZWQgYSBjb25maWd1cmF0aW9uIGZpbGUgZm9yIHRoZSBydW1w
a2VybmVsIGFuZCBhbHNvIGluY2x1ZGVkIGlzbzk2NjAgZmlsZXMgaW4gdGhlIHZvbHVtZSB0aGF0
IGJvb3RzIHRoZSBrZXJuZWwuICBJdCBhcHBlYXJzIHNvbWVob3cgdGhhdCB0aGUga2VybmVsIHBp
Y2tzIHVwIHRoaXMgY29uZmlnIGZpbGUgYW5kIHJhdGhlciBjbGV2ZXJseSBhbHNvIHBpY2tzIHVw
IGFuZCBtb3VudHMgdGhlIGluY2x1ZGVkIGlzbyA5NjYwIGltYWdlcy4gIAoKVGhpcyBpcyBhIHJh
dGhlciBlbGVnYW50IHNvbHV0aW9uIHRvIHRoZSBwcm9ibGVtIG9mIGluY2x1ZGluZyBzdGF0aWMg
ZmlsZXMgd2l0aCB0aGUgdW5pa2VybmVsLCBzaWRlc3RlcHMgdGhlIG5lZWQgdG8gaW5jbHVkZSBz
dGF0aWMgZmlsZXMgaW4gdGhlIHVuaWtlcm5lbCBhcyBwYXJ0IG9mIHRoZSBjb21wbGlhdGlvbiBw
cm9jZXNzLCBhbmQgeWV0IHBhY2thZ2VzIHRoZSB3aG9sZSB0aGluZyBpbnRvIGEgc2luZ2xlIEVD
MiBFQlMgYm9vdCB2b2x1bWUuCgpJIGRvbuKAmXQga25vdyBhIHdob2xlIGxvdCBhYm91dCBNaXJh
Z2VPUyBidXQgSeKAmW0gd29uZGVyaW5nIGlmIGl0IGNhbiBkbyB0aGUgc2FtZSB0aGluZz8gIElm
IG5vdCwgaXQgaXMgd29ydGggY29uc2lkZXJpbmcgYWRkaW5nIHRvIE1pcmFnZU9TIGFzIHRoZSBw
cm9ibGVtIG9mIGluY2x1ZGluZyBzdGF0aWMgZmlsZXMgd2l0aCB0aGUgdW5pa2VybmVsIHdpdGhv
dXQgY29tcGlsaW5nIGFuZCB3aXRob3V0IG5lZWQgZm9yIGFuIGV4dGVybmFsIGJsb2NrIGRldmlj
ZSBpcyBhIHNpZ25pZmljYW50IG9uZS4gIEFudHRpIHNlZW1zIHRvIGhhdmUgc29sdmVkIGl0IGhl
cmUgYXQgbGVhc3QgZm9yIHVzZSBjYXNlcyB0aGF0IHdvcmsgd2l0aCBhbiBJU08gOTY2MCBmaWxl
IHN5c3RlbS4gSSBtaWdodCBiZSB3cm9uZyBjYXVzZSBJIGhhdmVu4oCZdCBwbGF5ZWQgd2l0aCBp
dCB0b28gbXVjaCB5ZXQgYnV0IHRoYXTigJlzIG15IGN1cnJlbnQgdW5kZXJzdGFuZGluZy4KCkFu
eW9uZSBhdCBNaXJhZ2VPUyBrbm93IGlmIHlvdXIgc3lzdGVtIGNhbiBkbyB0aGUgc2FtZSB0aGlu
Zz8KCmFzCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K
TWlyYWdlT1MtZGV2ZWwgbWFpbGluZyBsaXN0Ck1pcmFnZU9TLWRldmVsQGxpc3RzLnhlbnByb2pl
Y3Qub3JnCmh0dHA6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGlu
Zm8vbWlyYWdlb3MtZGV2ZWwK

From mirageos-devel-bounces@lists.xenproject.org Thu Sep 03 22:02:52 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 03 Sep 2015 22:02:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZXcai-0006hz-0V; Thu, 03 Sep 2015 22:02:44 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <andrew.stuart@supercoders.com.au>)
	id 1ZXcah-0006hu-2M
	for mirageos-devel@lists.xenproject.org; Thu, 03 Sep 2015 22:02:43 +0000
Received: from [85.158.137.68] by server-5.bemta-3.messagelabs.com id
	17/5D-06021-283C8E55; Thu, 03 Sep 2015 22:02:42 +0000
X-Env-Sender: andrew.stuart@supercoders.com.au
X-Msg-Ref: server-12.tower-31.messagelabs.com!1441317761!41029065!1
X-Originating-IP: [54.215.13.78]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 4910 invoked from network); 3 Sep 2015 22:02:41 -0000
Received: from mail.supercoders.com.au (HELO mail.supercoders.com.au)
	(54.215.13.78) by server-12.tower-31.messagelabs.com with SMTP;
	3 Sep 2015 22:02:41 -0000
Received: from [192.168.1.100] (CPE-124-189-108-248.gziz1.win.bigpond.net.au
	[124.189.108.248])
	by mail.supercoders.com.au (Postfix) with ESMTPS id 3D44C600A7;
	Thu,  3 Sep 2015 22:02:40 +0000 (UTC)
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2102\))
From: Andrew Stuart <andrew.stuart@supercoders.com.au>
In-Reply-To: <D36D3F44-1D42-4DFD-9127-67F6982733B6@recoil.org>
Date: Fri, 4 Sep 2015 08:02:37 +1000
Message-Id: <9BB0F74A-57EB-4DC0-9DEB-A0031FCFC0C4@supercoders.com.au>
References: <55D4A4E5.1000001@iki.fi>
	<D36D3F44-1D42-4DFD-9127-67F6982733B6@recoil.org>
To: Anil Madhavapeddy <anil@recoil.org>
X-Mailer: Apple Mail (2.2102)
Cc: mirageos-devel <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Fwd: Amazon EC2 support now in Rumprun
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

Cgo+PiBGcm9tIHRoZSBSdW1wIGxpc3RzIC0tIGl0IGxvb2tzIGluY3JlYXNpbmdseSBjb21wbGV4
IHRvIGJvb3QgYSB1bmlrZXJuZWwgaW4gRUMyIHdoZW4gdXNpbmcgbm9uLVMzIHN0b3JhZ2UuCgpJ
4oCZbSBnb2luZyB0byBzZWUgaWYgSSBjYW4gZG8gYW55dGhpbmcgdG8gbWFrZSBib290aW5nIG9u
IEVDMiBlYXNpZXIuCgpPbmUgaW1wb3J0YW50IHRoaW5nIGFib3V0IHRoZSBFQzIgYnVpbGQgZnVu
Y3Rpb25hbGl0eSB0aGF0IEFudHRpIGltcGxlbWVudGVkIGludG8gcnVtcHJ1buKApi4uICBoZSBh
cHBlYXJzIHRvIGhhdmUgaW5jbHVkZWQgYSBjb25maWd1cmF0aW9uIGZpbGUgZm9yIHRoZSBydW1w
a2VybmVsIGFuZCBhbHNvIGluY2x1ZGVkIGlzbzk2NjAgZmlsZXMgaW4gdGhlIHZvbHVtZSB0aGF0
IGJvb3RzIHRoZSBrZXJuZWwuICBJdCBhcHBlYXJzIHNvbWVob3cgdGhhdCB0aGUga2VybmVsIHBp
Y2tzIHVwIHRoaXMgY29uZmlnIGZpbGUgYW5kIHJhdGhlciBjbGV2ZXJseSBhbHNvIHBpY2tzIHVw
IGFuZCBtb3VudHMgdGhlIGluY2x1ZGVkIGlzbyA5NjYwIGltYWdlcy4gIAoKVGhpcyBpcyBhIHJh
dGhlciBlbGVnYW50IHNvbHV0aW9uIHRvIHRoZSBwcm9ibGVtIG9mIGluY2x1ZGluZyBzdGF0aWMg
ZmlsZXMgd2l0aCB0aGUgdW5pa2VybmVsLCBzaWRlc3RlcHMgdGhlIG5lZWQgdG8gaW5jbHVkZSBz
dGF0aWMgZmlsZXMgaW4gdGhlIHVuaWtlcm5lbCBhcyBwYXJ0IG9mIHRoZSBjb21wbGlhdGlvbiBw
cm9jZXNzLCBhbmQgeWV0IHBhY2thZ2VzIHRoZSB3aG9sZSB0aGluZyBpbnRvIGEgc2luZ2xlIEVD
MiBFQlMgYm9vdCB2b2x1bWUuCgpJIGRvbuKAmXQga25vdyBhIHdob2xlIGxvdCBhYm91dCBNaXJh
Z2VPUyBidXQgSeKAmW0gd29uZGVyaW5nIGlmIGl0IGNhbiBkbyB0aGUgc2FtZSB0aGluZz8gIElm
IG5vdCwgaXQgaXMgd29ydGggY29uc2lkZXJpbmcgYWRkaW5nIHRvIE1pcmFnZU9TIGFzIHRoZSBw
cm9ibGVtIG9mIGluY2x1ZGluZyBzdGF0aWMgZmlsZXMgd2l0aCB0aGUgdW5pa2VybmVsIHdpdGhv
dXQgY29tcGlsaW5nIGFuZCB3aXRob3V0IG5lZWQgZm9yIGFuIGV4dGVybmFsIGJsb2NrIGRldmlj
ZSBpcyBhIHNpZ25pZmljYW50IG9uZS4gIEFudHRpIHNlZW1zIHRvIGhhdmUgc29sdmVkIGl0IGhl
cmUgYXQgbGVhc3QgZm9yIHVzZSBjYXNlcyB0aGF0IHdvcmsgd2l0aCBhbiBJU08gOTY2MCBmaWxl
IHN5c3RlbS4gSSBtaWdodCBiZSB3cm9uZyBjYXVzZSBJIGhhdmVu4oCZdCBwbGF5ZWQgd2l0aCBp
dCB0b28gbXVjaCB5ZXQgYnV0IHRoYXTigJlzIG15IGN1cnJlbnQgdW5kZXJzdGFuZGluZy4KCkFu
eW9uZSBhdCBNaXJhZ2VPUyBrbm93IGlmIHlvdXIgc3lzdGVtIGNhbiBkbyB0aGUgc2FtZSB0aGlu
Zz8KCmFzCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K
TWlyYWdlT1MtZGV2ZWwgbWFpbGluZyBsaXN0Ck1pcmFnZU9TLWRldmVsQGxpc3RzLnhlbnByb2pl
Y3Qub3JnCmh0dHA6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGlu
Zm8vbWlyYWdlb3MtZGV2ZWwK

From mirageos-devel-bounces@lists.xenproject.org Fri Sep 04 10:23:10 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 04 Sep 2015 10:23:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZXo99-0002LB-Bj; Fri, 04 Sep 2015 10:23:03 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <talex5@gmail.com>) id 1ZXo97-0002L6-HJ
	for MirageOS-devel@lists.xenproject.org; Fri, 04 Sep 2015 10:23:02 +0000
Received: from [85.158.137.68] by server-4.bemta-3.messagelabs.com id
	EC/FE-09570-40179E55; Fri, 04 Sep 2015 10:23:00 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-7.tower-31.messagelabs.com!1441362178!41259722!1
X-Originating-IP: [209.85.213.54]
X-SpamReason: No, hits=0.8 required=7.0 tests=BODY_RANDOM_LONG,
  RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 24876 invoked from network); 4 Sep 2015 10:22:59 -0000
Received: from mail-vk0-f54.google.com (HELO mail-vk0-f54.google.com)
	(209.85.213.54)
	by server-7.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	4 Sep 2015 10:22:59 -0000
Received: by vkbf67 with SMTP id f67so8942329vkb.0
	for <MirageOS-devel@lists.xenproject.org>;
	Fri, 04 Sep 2015 03:22:58 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:in-reply-to:references:date:message-id:subject:from:to
	:cc:content-type;
	bh=kmMH+IkdPJCP9Jm7yCIbme+nFPicoop46UZ+PbcFR50=;
	b=KiJsfFSgfdUDpBFohw1SvtCRqXGxCPeh8XkE1c1fvg8+9/f5qN6y4F18yLnwlW96tG
	zUT8rB4NgDLToy+UMCJChawjumCRfx2uKMGqgAivNJ9lSqtsD3lVgvi2o7246YDSTUYe
	y70IXz+PqsyEX9tr/mS+U0TrwmDXTlsO8xxSCnSwJpprNTMRUEIi/rtHmqHyauet/Kgy
	dr2h8sjbIVdJ0tDhlpF5850mINUCe3BlNRnKeTvTGnRc1LGQQOVSA6l+sLc+fMd6nCbk
	ST6p5JASKw5FgrwsugH5/Kp3jdHCYkoPKFY8ZW8pYtEs2KvyEWR/pGp8dDwP/OL/vjgd
	NNvQ==
MIME-Version: 1.0
X-Received: by 10.52.141.113 with SMTP id rn17mr3812270vdb.87.1441362178010;
	Fri, 04 Sep 2015 03:22:58 -0700 (PDT)
Received: by 10.31.61.11 with HTTP; Fri, 4 Sep 2015 03:22:57 -0700 (PDT)
In-Reply-To: <CAC-LLDhELEucM3vWySE=WyNXssiR9ozMYTaNiG466ngACYA0=Q@mail.gmail.com>
References: <CAC-LLDhELEucM3vWySE=WyNXssiR9ozMYTaNiG466ngACYA0=Q@mail.gmail.com>
Date: Fri, 4 Sep 2015 11:22:57 +0100
Message-ID: <CAG4opy9BjUUfCo9X+2q40dKSFgH9A-1dM03BFOTkD2yqG04EiA@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: Tim Cuthbertson <tim@gfxmonk.net>
Cc: "mirageos-devel@lists.xenproject.org" <MirageOS-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Patches for building mirage libraries with
	`opam2nix`
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On 1 September 2015 at 08:27, Tim Cuthbertson <tim@gfxmonk.net> wrote:
> Hi all,
>
> A little while ago I managed to get mirage's xen libraries and
> dependencies building in nix [0]. This worked, but I didn't fancy
> keeping those packages up to date manually. So I also started working
> on `opam2nix`[1], a tool which generates nix expressions from an opam
> repository. It's still work in progress, but has managed to build most
> things I've thrown at it so far.
>
> The main problem is when build scripts assume that they'll be
> installed into `opam config var prefix`/lib/<library>, or that
> pkgconfig specs will be found in `opam config var
> prefix`/lib/pkgconfig. In the case of `opam2nix`, dependencies can be
> found via `ocamlfind query`, while the destination will be a
> completely different path which is populated in $PREFIX,
> $OCAMLFIND_DESTDIR and opam variables (like %{lib}% etc.)
>
> I've made a number of changes to make these build scripts more lenient
> - e.g. rather than always overriding $PKG_CONFIG_PATH, they'll only do
> that if all needed dependencies aren't already present. And also
> respecting $PREFIX if it's set (but falling back to `opam config var
> prefix` if not):
>
> --------
>
> gmp-xen:
> https://github.com/gfxmonk/opam-repository/commits/mirage-fixes
>
> io-page:
> https://github.com/gfxmonk/io-page/commits/master
>
> mirage-platform:
> https://github.com/gfxmonk/mirage-platform/commits/master
> (note: the second of those two commits
> [6121921ef6e666f021a61f3570840108927f90d8] removes something that I
> _think_ was unnecessary, but it's worth verifying that with someone
> who knows more about how the libraries depend on each other)
>
> tcpip:
> https://github.com/gfxmonk/mirage-tcpip/commits/master
>
> zarith-xen:
> I had to rewrite the zarith-xen build script, because I couldn't come
> up with a simple enough change which would support both the `opam` and
> `opam2nix` cases. So this is less of a patch than a note that it
> doesn't currently work, and maybe someone will have better ideas about
> how to make it work:
> https://github.com/gfxmonk/opam2nix/blob/71887935dc30a744aa26f1f5af75678355d2d74e/src/nix/overrides/zarith-xen/install.sh
>
> --------
>
> It'd be great if the maintainers of these libraries are happy to merge
> my changes, or otherwise discuss other ways of making these libraries
> build in an I-can't-believe-it's-not-opam environment ;). I thought
> I'd discuss it here rather than creating individual pull requests,
> because this should provide a lot more context.
>
> The main downside is that these changes make debugging a little
> trickier, since the build scripts are slightly more complex. Also, it
> might mean that a dependency could be picked up from a system package
> rather than from `opam`.
>
> It may also be a better idea in general to just feed more information
> to the scripts directly from the `opam` file (via %{lib}% and friends)
> rather than have them assume too much about how they'll be installed.
> I didn't want to go down this route because it makes for more drastic
> changes, but I'm happy to try it if you're game.

Yeah, it is a bit concerning that system packages will override the
current opam switch's packages. The problem is that local builds of
OCaml programs are typically started by simply running "make", so
there's no way to know whether the user wants to use opam or not.

I agree that build scripts shouldn't be calling back into opam
explicitly (as these do currently).

Can we get "opam config env" to set PKG_CONFIG_PATH (as it does for
e.g. MANPATH already)? Then we assume that a user who initialises opam
in their login script prefers to use opam's build environment (which
is already true for other aspects of the environment). If you build a
Nix package in this environment, would it build that in a clean
environment?

> Cheers,
>  - Tim.
>
> [0]: http://nixos.org/nix/
> [1]: https://github.com/gfxmonk/opam2nix/
>
> _______________________________________________
> MirageOS-devel mailing list
> MirageOS-devel@lists.xenproject.org
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel



-- 
Dr Thomas Leonard        http://roscidus.com/blog/
GPG: DA98 25AE CAD0 8975 7CDA  BD8E 0713 3F96 CA74 D8BA

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Fri Sep 04 10:23:10 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 04 Sep 2015 10:23:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZXo99-0002LB-Bj; Fri, 04 Sep 2015 10:23:03 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <talex5@gmail.com>) id 1ZXo97-0002L6-HJ
	for MirageOS-devel@lists.xenproject.org; Fri, 04 Sep 2015 10:23:02 +0000
Received: from [85.158.137.68] by server-4.bemta-3.messagelabs.com id
	EC/FE-09570-40179E55; Fri, 04 Sep 2015 10:23:00 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-7.tower-31.messagelabs.com!1441362178!41259722!1
X-Originating-IP: [209.85.213.54]
X-SpamReason: No, hits=0.8 required=7.0 tests=BODY_RANDOM_LONG,
  RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 24876 invoked from network); 4 Sep 2015 10:22:59 -0000
Received: from mail-vk0-f54.google.com (HELO mail-vk0-f54.google.com)
	(209.85.213.54)
	by server-7.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	4 Sep 2015 10:22:59 -0000
Received: by vkbf67 with SMTP id f67so8942329vkb.0
	for <MirageOS-devel@lists.xenproject.org>;
	Fri, 04 Sep 2015 03:22:58 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:in-reply-to:references:date:message-id:subject:from:to
	:cc:content-type;
	bh=kmMH+IkdPJCP9Jm7yCIbme+nFPicoop46UZ+PbcFR50=;
	b=KiJsfFSgfdUDpBFohw1SvtCRqXGxCPeh8XkE1c1fvg8+9/f5qN6y4F18yLnwlW96tG
	zUT8rB4NgDLToy+UMCJChawjumCRfx2uKMGqgAivNJ9lSqtsD3lVgvi2o7246YDSTUYe
	y70IXz+PqsyEX9tr/mS+U0TrwmDXTlsO8xxSCnSwJpprNTMRUEIi/rtHmqHyauet/Kgy
	dr2h8sjbIVdJ0tDhlpF5850mINUCe3BlNRnKeTvTGnRc1LGQQOVSA6l+sLc+fMd6nCbk
	ST6p5JASKw5FgrwsugH5/Kp3jdHCYkoPKFY8ZW8pYtEs2KvyEWR/pGp8dDwP/OL/vjgd
	NNvQ==
MIME-Version: 1.0
X-Received: by 10.52.141.113 with SMTP id rn17mr3812270vdb.87.1441362178010;
	Fri, 04 Sep 2015 03:22:58 -0700 (PDT)
Received: by 10.31.61.11 with HTTP; Fri, 4 Sep 2015 03:22:57 -0700 (PDT)
In-Reply-To: <CAC-LLDhELEucM3vWySE=WyNXssiR9ozMYTaNiG466ngACYA0=Q@mail.gmail.com>
References: <CAC-LLDhELEucM3vWySE=WyNXssiR9ozMYTaNiG466ngACYA0=Q@mail.gmail.com>
Date: Fri, 4 Sep 2015 11:22:57 +0100
Message-ID: <CAG4opy9BjUUfCo9X+2q40dKSFgH9A-1dM03BFOTkD2yqG04EiA@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: Tim Cuthbertson <tim@gfxmonk.net>
Cc: "mirageos-devel@lists.xenproject.org" <MirageOS-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Patches for building mirage libraries with
	`opam2nix`
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On 1 September 2015 at 08:27, Tim Cuthbertson <tim@gfxmonk.net> wrote:
> Hi all,
>
> A little while ago I managed to get mirage's xen libraries and
> dependencies building in nix [0]. This worked, but I didn't fancy
> keeping those packages up to date manually. So I also started working
> on `opam2nix`[1], a tool which generates nix expressions from an opam
> repository. It's still work in progress, but has managed to build most
> things I've thrown at it so far.
>
> The main problem is when build scripts assume that they'll be
> installed into `opam config var prefix`/lib/<library>, or that
> pkgconfig specs will be found in `opam config var
> prefix`/lib/pkgconfig. In the case of `opam2nix`, dependencies can be
> found via `ocamlfind query`, while the destination will be a
> completely different path which is populated in $PREFIX,
> $OCAMLFIND_DESTDIR and opam variables (like %{lib}% etc.)
>
> I've made a number of changes to make these build scripts more lenient
> - e.g. rather than always overriding $PKG_CONFIG_PATH, they'll only do
> that if all needed dependencies aren't already present. And also
> respecting $PREFIX if it's set (but falling back to `opam config var
> prefix` if not):
>
> --------
>
> gmp-xen:
> https://github.com/gfxmonk/opam-repository/commits/mirage-fixes
>
> io-page:
> https://github.com/gfxmonk/io-page/commits/master
>
> mirage-platform:
> https://github.com/gfxmonk/mirage-platform/commits/master
> (note: the second of those two commits
> [6121921ef6e666f021a61f3570840108927f90d8] removes something that I
> _think_ was unnecessary, but it's worth verifying that with someone
> who knows more about how the libraries depend on each other)
>
> tcpip:
> https://github.com/gfxmonk/mirage-tcpip/commits/master
>
> zarith-xen:
> I had to rewrite the zarith-xen build script, because I couldn't come
> up with a simple enough change which would support both the `opam` and
> `opam2nix` cases. So this is less of a patch than a note that it
> doesn't currently work, and maybe someone will have better ideas about
> how to make it work:
> https://github.com/gfxmonk/opam2nix/blob/71887935dc30a744aa26f1f5af75678355d2d74e/src/nix/overrides/zarith-xen/install.sh
>
> --------
>
> It'd be great if the maintainers of these libraries are happy to merge
> my changes, or otherwise discuss other ways of making these libraries
> build in an I-can't-believe-it's-not-opam environment ;). I thought
> I'd discuss it here rather than creating individual pull requests,
> because this should provide a lot more context.
>
> The main downside is that these changes make debugging a little
> trickier, since the build scripts are slightly more complex. Also, it
> might mean that a dependency could be picked up from a system package
> rather than from `opam`.
>
> It may also be a better idea in general to just feed more information
> to the scripts directly from the `opam` file (via %{lib}% and friends)
> rather than have them assume too much about how they'll be installed.
> I didn't want to go down this route because it makes for more drastic
> changes, but I'm happy to try it if you're game.

Yeah, it is a bit concerning that system packages will override the
current opam switch's packages. The problem is that local builds of
OCaml programs are typically started by simply running "make", so
there's no way to know whether the user wants to use opam or not.

I agree that build scripts shouldn't be calling back into opam
explicitly (as these do currently).

Can we get "opam config env" to set PKG_CONFIG_PATH (as it does for
e.g. MANPATH already)? Then we assume that a user who initialises opam
in their login script prefers to use opam's build environment (which
is already true for other aspects of the environment). If you build a
Nix package in this environment, would it build that in a clean
environment?

> Cheers,
>  - Tim.
>
> [0]: http://nixos.org/nix/
> [1]: https://github.com/gfxmonk/opam2nix/
>
> _______________________________________________
> MirageOS-devel mailing list
> MirageOS-devel@lists.xenproject.org
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel



-- 
Dr Thomas Leonard        http://roscidus.com/blog/
GPG: DA98 25AE CAD0 8975 7CDA  BD8E 0713 3F96 CA74 D8BA

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Fri Sep 04 10:55:49 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 04 Sep 2015 10:55:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZXoeo-0004h2-Bo; Fri, 04 Sep 2015 10:55:46 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <talex5@gmail.com>) id 1ZXoen-0004gx-9g
	for mirageos-devel@lists.xenproject.org; Fri, 04 Sep 2015 10:55:45 +0000
Received: from [85.158.137.68] by server-2.bemta-3.messagelabs.com id
	73/C2-03652-0B879E55; Fri, 04 Sep 2015 10:55:44 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-3.tower-31.messagelabs.com!1441364142!41259037!1
X-Originating-IP: [209.85.213.44]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 22494 invoked from network); 4 Sep 2015 10:55:43 -0000
Received: from mail-vk0-f44.google.com (HELO mail-vk0-f44.google.com)
	(209.85.213.44)
	by server-3.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	4 Sep 2015 10:55:43 -0000
Received: by vkbc123 with SMTP id c123so9212589vkb.3
	for <mirageos-devel@lists.xenproject.org>;
	Fri, 04 Sep 2015 03:55:42 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:in-reply-to:references:date:message-id:subject:from:to
	:cc:content-type:content-transfer-encoding;
	bh=FZmsVuRevqBHLWCLR4/TCrb2znETxhNBGsBkSe3FcLU=;
	b=TsS7mXgSdk5ZhMJBjdnHCY7CPKfmMCY4055ywuUc1QJCVTWxUhB8XAXkw76VYIiZRz
	JFNEg+Acpj4yfC13sTcY9sff/uCHatjBRjPiRWreE82YmBlUS3Wvm9ErTtESvc4/4226
	2hMCxFkivMJ1K8fdJEHQj5sCBmvG9asvgHOmTdTKwAUX3lc79vWIDAYgGLKF2irY5WNs
	msPleWX9+v0QgDqLrYX/4dmECFt8H/6fz9v0mf40UAnofAk7YPR778LltX8BE+Dc0ODj
	Mb0yKrPjcqnzi/jBqXrcjFM49poYV1wV85M0Zw9OtCot/jjIa0oj5RIllmalJkyw81o/
	inbg==
MIME-Version: 1.0
X-Received: by 10.52.227.105 with SMTP id rz9mr4125899vdc.54.1441364142201;
	Fri, 04 Sep 2015 03:55:42 -0700 (PDT)
Received: by 10.31.61.11 with HTTP; Fri, 4 Sep 2015 03:55:42 -0700 (PDT)
In-Reply-To: <362CE0CB-96EE-4924-88B2-B3F904B77F28@gazagnaire.org>
References: <D881F4F5-3474-4E9E-BD0C-C947DD1B4499@gazagnaire.org>
	<CAG4opy-QbpOgfTjW-O4NV5zRsL+PJbFV2Wn45FcC5RYOc_5jnA@mail.gmail.com>
	<CAG4opy9EU6==cVSBQ_CfK5c6aFgiyecZ0Y0Cfcz5cQ+N2zB0_Q@mail.gmail.com>
	<CAG4opy8NcGYROxJZwL9KD0z4dxT=GXu+hhEeq7vraXBnjbNfvg@mail.gmail.com>
	<362CE0CB-96EE-4924-88B2-B3F904B77F28@gazagnaire.org>
Date: Fri, 4 Sep 2015 11:55:42 +0100
Message-ID: <CAG4opy8YR+ENpJK5TL_SyD0Xtiv-xXieCR34pf54qSzXFpjmdQ@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: Thomas Gazagnaire <thomas@gazagnaire.org>
Cc: mirageos-devel <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Irmin API evolution
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On 1 September 2015 at 18:51, Thomas Gazagnaire <thomas@gazagnaire.org> wrote:
>> I'm currently experimenting with adding a "connect" method to BC so
>> that you connect to a repository first, and then use that to get
>> additional branches:
>>
>>  https://github.com/mirage/irmin/pull/275
>
> I've added some comments to that issue. I'm mainly in favor of the change.

To answer them here:

> why do you need to remove the create function from AO? the BC store can just redefine the function.
> it is not totally clear by reading the API why you gain by doing the change. I understand the rational (caching repository connection) but I think we should find a way to expose it a bit better. Maybe going further and having separate Repo and Branch modules would make sense. Would make sense to rename Tag as the same time :-)

"create" was originally in RO, so redefining it in BC would mean that
BC wasn't a store.

As you say, we might not want BC to be a store anyway. We could have
BC represent a repository, with Branch and Commit submodules. I'm
happy to do that, but was just aiming to minimise changes in these
patches.

However, I think we should remove "create" from the store interfaces
anyway. In Irmin-IndexedDB, I want to pass database connections to the
internal RW and AO stores, not a config. It looks like I can attach
arbitrary data to config objects, but doing this loses compile-time
type checking (it would be possible to call it without providing a
connection).

As another example, in the filesystem backend we really want a path
but have to cope if it's missing:

  let get_path config =
    match Irmin.Private.Conf.get config root_key with
    | None   -> IO.getcwd ()
    | Some p -> Lwt.return p

This is ugly (and maybe dangerous), and requires the caller to
implement getcwd just for this case.

In Mirage, this would be more awkward, because you'd want to pass the
FS.t somehow and there's no useful default.

More generally, I just dislike having constructors in interfaces.
Constructor arguments tend to be specific to a particular
implementation.

>> One problem I have is with the task-maker functions that get passed
>> around everywhere.
>>
>> Currently, you specify the task-maker when you open a branch. You then
>> pass a value of the appropriate type to the response to get the store,
>> e.g.
>>
>>  let task_of_msg x = Irmin.Task.create ... in
>>  Store.create conf task_of_msg >>= fun store_maker ->
>>  let store = store_maker "unused string" in
>>  Store.read store ...
>>
>> I think this API is pretty strange and confusing anyway, but it's a
>> particular problem for sharing connections because we don't want to
>> create a new connection every time the user wants a new commit
>> message.
>>
>> I know this design came out of previous discussions:
>>
>> http://lists.xenproject.org/archives/html/mirageos-devel/2014-11/msg00154.html
>>
>> But I'm not really clear on what the original aims were and whether
>> the current design meets them (it looks like it was intended to convey
>> some other context, but now it's just the commit message).
>>
>> The problem is that my BC.connect method shouldn't take a task-maker
>> argument, but internally it needs to create the various backing stores
>> (contents, node, commit and tag) and these currently require a
>> task-maker.
>
> The trick to solve that problem by putting the connection in the closure. See https://github.com/mirage/irmin/blob/master/lib/git/irmin_git.ml#L157 for instance when the Git handler is created outside of the closure which is returned to the user, so this is shared on every invocation of `t`.

Currently, I have:

      let connect config [task] =
        Contents.create config task >>= fun contents ->
        Node.create config task     >>= fun node ->
        Commit.create config task   >>= fun commit ->
        Tag.create config task      >>= fun tag ->
        Lwt.return {config; contents; node; commit; tag}

It's not clear how to modify this so that e.g. Contents.create is
called when just the "config" argument is passed.

If we remove "create" from the interface then I think the whole
problem goes away, because none of these stores use the task argument
for anything anyway and we could just remove it.

>> [ And ideally, it would make more sense to me if you only specified
>> the commit message when making a commit. The rest of the strings just
>> get thrown away, I think. ]
>
> The initial idea was to use that task to (i) populate an audit log on all the database operations (including reads) and (ii) attach the debug messages to the task, instead of throwing them on the error channel. None of these have been completed yet, but would be nice if they are still possible to do later.

These things don't sound very Irmin-specific, or connected to the Git
log message. Perhaps we could provide a wrapper for logging?

module AuditedStore (S : BC.STORE) : sig
  include BC.STORE
  val create : Logger.t -> S.t -> t
  ...
end


-- 
Dr Thomas Leonard        http://roscidus.com/blog/
GPG: DA98 25AE CAD0 8975 7CDA  BD8E 0713 3F96 CA74 D8BA

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Fri Sep 04 10:55:49 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 04 Sep 2015 10:55:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZXoeo-0004h2-Bo; Fri, 04 Sep 2015 10:55:46 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <talex5@gmail.com>) id 1ZXoen-0004gx-9g
	for mirageos-devel@lists.xenproject.org; Fri, 04 Sep 2015 10:55:45 +0000
Received: from [85.158.137.68] by server-2.bemta-3.messagelabs.com id
	73/C2-03652-0B879E55; Fri, 04 Sep 2015 10:55:44 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-3.tower-31.messagelabs.com!1441364142!41259037!1
X-Originating-IP: [209.85.213.44]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 22494 invoked from network); 4 Sep 2015 10:55:43 -0000
Received: from mail-vk0-f44.google.com (HELO mail-vk0-f44.google.com)
	(209.85.213.44)
	by server-3.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	4 Sep 2015 10:55:43 -0000
Received: by vkbc123 with SMTP id c123so9212589vkb.3
	for <mirageos-devel@lists.xenproject.org>;
	Fri, 04 Sep 2015 03:55:42 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:in-reply-to:references:date:message-id:subject:from:to
	:cc:content-type:content-transfer-encoding;
	bh=FZmsVuRevqBHLWCLR4/TCrb2znETxhNBGsBkSe3FcLU=;
	b=TsS7mXgSdk5ZhMJBjdnHCY7CPKfmMCY4055ywuUc1QJCVTWxUhB8XAXkw76VYIiZRz
	JFNEg+Acpj4yfC13sTcY9sff/uCHatjBRjPiRWreE82YmBlUS3Wvm9ErTtESvc4/4226
	2hMCxFkivMJ1K8fdJEHQj5sCBmvG9asvgHOmTdTKwAUX3lc79vWIDAYgGLKF2irY5WNs
	msPleWX9+v0QgDqLrYX/4dmECFt8H/6fz9v0mf40UAnofAk7YPR778LltX8BE+Dc0ODj
	Mb0yKrPjcqnzi/jBqXrcjFM49poYV1wV85M0Zw9OtCot/jjIa0oj5RIllmalJkyw81o/
	inbg==
MIME-Version: 1.0
X-Received: by 10.52.227.105 with SMTP id rz9mr4125899vdc.54.1441364142201;
	Fri, 04 Sep 2015 03:55:42 -0700 (PDT)
Received: by 10.31.61.11 with HTTP; Fri, 4 Sep 2015 03:55:42 -0700 (PDT)
In-Reply-To: <362CE0CB-96EE-4924-88B2-B3F904B77F28@gazagnaire.org>
References: <D881F4F5-3474-4E9E-BD0C-C947DD1B4499@gazagnaire.org>
	<CAG4opy-QbpOgfTjW-O4NV5zRsL+PJbFV2Wn45FcC5RYOc_5jnA@mail.gmail.com>
	<CAG4opy9EU6==cVSBQ_CfK5c6aFgiyecZ0Y0Cfcz5cQ+N2zB0_Q@mail.gmail.com>
	<CAG4opy8NcGYROxJZwL9KD0z4dxT=GXu+hhEeq7vraXBnjbNfvg@mail.gmail.com>
	<362CE0CB-96EE-4924-88B2-B3F904B77F28@gazagnaire.org>
Date: Fri, 4 Sep 2015 11:55:42 +0100
Message-ID: <CAG4opy8YR+ENpJK5TL_SyD0Xtiv-xXieCR34pf54qSzXFpjmdQ@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: Thomas Gazagnaire <thomas@gazagnaire.org>
Cc: mirageos-devel <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Irmin API evolution
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On 1 September 2015 at 18:51, Thomas Gazagnaire <thomas@gazagnaire.org> wrote:
>> I'm currently experimenting with adding a "connect" method to BC so
>> that you connect to a repository first, and then use that to get
>> additional branches:
>>
>>  https://github.com/mirage/irmin/pull/275
>
> I've added some comments to that issue. I'm mainly in favor of the change.

To answer them here:

> why do you need to remove the create function from AO? the BC store can just redefine the function.
> it is not totally clear by reading the API why you gain by doing the change. I understand the rational (caching repository connection) but I think we should find a way to expose it a bit better. Maybe going further and having separate Repo and Branch modules would make sense. Would make sense to rename Tag as the same time :-)

"create" was originally in RO, so redefining it in BC would mean that
BC wasn't a store.

As you say, we might not want BC to be a store anyway. We could have
BC represent a repository, with Branch and Commit submodules. I'm
happy to do that, but was just aiming to minimise changes in these
patches.

However, I think we should remove "create" from the store interfaces
anyway. In Irmin-IndexedDB, I want to pass database connections to the
internal RW and AO stores, not a config. It looks like I can attach
arbitrary data to config objects, but doing this loses compile-time
type checking (it would be possible to call it without providing a
connection).

As another example, in the filesystem backend we really want a path
but have to cope if it's missing:

  let get_path config =
    match Irmin.Private.Conf.get config root_key with
    | None   -> IO.getcwd ()
    | Some p -> Lwt.return p

This is ugly (and maybe dangerous), and requires the caller to
implement getcwd just for this case.

In Mirage, this would be more awkward, because you'd want to pass the
FS.t somehow and there's no useful default.

More generally, I just dislike having constructors in interfaces.
Constructor arguments tend to be specific to a particular
implementation.

>> One problem I have is with the task-maker functions that get passed
>> around everywhere.
>>
>> Currently, you specify the task-maker when you open a branch. You then
>> pass a value of the appropriate type to the response to get the store,
>> e.g.
>>
>>  let task_of_msg x = Irmin.Task.create ... in
>>  Store.create conf task_of_msg >>= fun store_maker ->
>>  let store = store_maker "unused string" in
>>  Store.read store ...
>>
>> I think this API is pretty strange and confusing anyway, but it's a
>> particular problem for sharing connections because we don't want to
>> create a new connection every time the user wants a new commit
>> message.
>>
>> I know this design came out of previous discussions:
>>
>> http://lists.xenproject.org/archives/html/mirageos-devel/2014-11/msg00154.html
>>
>> But I'm not really clear on what the original aims were and whether
>> the current design meets them (it looks like it was intended to convey
>> some other context, but now it's just the commit message).
>>
>> The problem is that my BC.connect method shouldn't take a task-maker
>> argument, but internally it needs to create the various backing stores
>> (contents, node, commit and tag) and these currently require a
>> task-maker.
>
> The trick to solve that problem by putting the connection in the closure. See https://github.com/mirage/irmin/blob/master/lib/git/irmin_git.ml#L157 for instance when the Git handler is created outside of the closure which is returned to the user, so this is shared on every invocation of `t`.

Currently, I have:

      let connect config [task] =
        Contents.create config task >>= fun contents ->
        Node.create config task     >>= fun node ->
        Commit.create config task   >>= fun commit ->
        Tag.create config task      >>= fun tag ->
        Lwt.return {config; contents; node; commit; tag}

It's not clear how to modify this so that e.g. Contents.create is
called when just the "config" argument is passed.

If we remove "create" from the interface then I think the whole
problem goes away, because none of these stores use the task argument
for anything anyway and we could just remove it.

>> [ And ideally, it would make more sense to me if you only specified
>> the commit message when making a commit. The rest of the strings just
>> get thrown away, I think. ]
>
> The initial idea was to use that task to (i) populate an audit log on all the database operations (including reads) and (ii) attach the debug messages to the task, instead of throwing them on the error channel. None of these have been completed yet, but would be nice if they are still possible to do later.

These things don't sound very Irmin-specific, or connected to the Git
log message. Perhaps we could provide a wrapper for logging?

module AuditedStore (S : BC.STORE) : sig
  include BC.STORE
  val create : Logger.t -> S.t -> t
  ...
end


-- 
Dr Thomas Leonard        http://roscidus.com/blog/
GPG: DA98 25AE CAD0 8975 7CDA  BD8E 0713 3F96 CA74 D8BA

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Fri Sep 04 11:08:33 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 04 Sep 2015 11:08:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZXorA-00078u-83; Fri, 04 Sep 2015 11:08:32 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <scott.dj@gmail.com>) id 1ZXor8-00078p-8g
	for mirageos-devel@lists.xenproject.org; Fri, 04 Sep 2015 11:08:30 +0000
Received: from [85.158.137.68] by server-1.bemta-3.messagelabs.com id
	47/41-01421-DAB79E55; Fri, 04 Sep 2015 11:08:29 +0000
X-Env-Sender: scott.dj@gmail.com
X-Msg-Ref: server-4.tower-31.messagelabs.com!1441364908!40021145!1
X-Originating-IP: [209.85.212.170]
X-SpamReason: No, hits=0.4 required=7.0 tests=HTML_30_40,HTML_MESSAGE,
	RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 25837 invoked from network); 4 Sep 2015 11:08:28 -0000
Received: from mail-wi0-f170.google.com (HELO mail-wi0-f170.google.com)
	(209.85.212.170)
	by server-4.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	4 Sep 2015 11:08:28 -0000
Received: by wicfx3 with SMTP id fx3so14141376wic.0
	for <mirageos-devel@lists.xenproject.org>;
	Fri, 04 Sep 2015 04:08:28 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:in-reply-to:references:date:message-id:subject:from:to
	:cc:content-type;
	bh=28CEPQb4IVWmSCDVt+jfUC+3+JjUT8BmO/+ID8eeXTc=;
	b=oUpHdyrpmWatNFNd5gK2tmQ8qavFv1x0sec0qHZp3Y9XRPGphMNCJ4JNNztURvEEZG
	kjon3mLXck8N9Qm0vOYsTMURtiORH5N2Q1ZjtQNU5dkXQZbnV7XPtL1pId1x0ukiaYgj
	hnSs8pzKEmqUsKyz3kRrUji9kY/gv/9qv8vXuLcbFzlu1XyiIndrwQiGwiok5f7pq4FS
	DhsvSaFdfSBZN+4+XYLKJpl3yM+MTdGV7SgDlRyQAphbj/IMv4BHTKVYLQLDzx+Mk5lV
	X54E02NYEMEnUvqgpcOnQgfnoEUXR7iaNTbfavV/MdM50BbFfl2bc5G8l7YeBECHJ4/c
	HBKQ==
MIME-Version: 1.0
X-Received: by 10.194.24.196 with SMTP id w4mr6100028wjf.137.1441364908263;
	Fri, 04 Sep 2015 04:08:28 -0700 (PDT)
Received: by 10.28.89.3 with HTTP; Fri, 4 Sep 2015 04:08:28 -0700 (PDT)
In-Reply-To: <9BB0F74A-57EB-4DC0-9DEB-A0031FCFC0C4@supercoders.com.au>
References: <55D4A4E5.1000001@iki.fi>
	<D36D3F44-1D42-4DFD-9127-67F6982733B6@recoil.org>
	<9BB0F74A-57EB-4DC0-9DEB-A0031FCFC0C4@supercoders.com.au>
Date: Fri, 4 Sep 2015 12:08:28 +0100
Message-ID: <CAG_esB1wjSnsjza2mYT0ZytqcESv2C9KWbuPLKapR5q=9ttCOA@mail.gmail.com>
From: David Scott <scott.dj@gmail.com>
To: Andrew Stuart <andrew.stuart@supercoders.com.au>
Cc: mirageos-devel <mirageos-devel@lists.xenproject.org>,
	Anil Madhavapeddy <anil@recoil.org>
Subject: Re: [MirageOS-devel] Fwd: Amazon EC2 support now in Rumprun
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============0651446826401114580=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============0651446826401114580==
Content-Type: multipart/alternative; boundary=047d7b450b10594f0d051ee9ebcb

--047d7b450b10594f0d051ee9ebcb
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

On Thu, Sep 3, 2015 at 11:02 PM, Andrew Stuart <
andrew.stuart@supercoders.com.au> wrote:

>
>
> >> From the Rump lists -- it looks increasingly complex to boot a
> unikernel in EC2 when using non-S3 storage.
>
> I=E2=80=99m going to see if I can do anything to make booting on EC2 easi=
er.
>
> One important thing about the EC2 build functionality that Antti
> implemented into rumprun=E2=80=A6..  he appears to have included a config=
uration
> file for the rumpkernel and also included iso9660 files in the volume tha=
t
> boots the kernel.  It appears somehow that the kernel picks up this confi=
g
> file and rather cleverly also picks up and mounts the included iso 9660
> images.
>
> This is a rather elegant solution to the problem of including static file=
s
> with the unikernel, sidesteps the need to include static files in the
> unikernel as part of the compliation process, and yet packages the whole
> thing into a single EC2 EBS boot volume.
>
> I don=E2=80=99t know a whole lot about MirageOS but I=E2=80=99m wondering=
 if it can do the
> same thing?  If not, it is worth considering adding to MirageOS as the
> problem of including static files with the unikernel without compiling an=
d
> without need for an external block device is a significant one.


That does sound like an interesting idea.


>   Antti seems to have solved it here at least for use cases that work wit=
h
> an ISO 9660 file system. I might be wrong cause I haven=E2=80=99t played =
with it
> too much yet but that=E2=80=99s my current understanding.
>
> Anyone at MirageOS know if your system can do the same thing?
>

At the moment MirageOS doesn't have ISO 9660 support -- we'd have to write
a little library for that. It might not be too bad though.

Cheers,
Dave Scott

--047d7b450b10594f0d051ee9ebcb
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><br><div class=3D"gmail_extra"><br><div class=3D"gmail_quo=
te">On Thu, Sep 3, 2015 at 11:02 PM, Andrew Stuart <span dir=3D"ltr">&lt;<a=
 href=3D"mailto:andrew.stuart@supercoders.com.au" target=3D"_blank">andrew.=
stuart@supercoders.com.au</a>&gt;</span> wrote:<br><blockquote class=3D"gma=
il_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left-width:1px;border-le=
ft-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><span c=
lass=3D""><br>
<br>
&gt;&gt; From the Rump lists -- it looks increasingly complex to boot a uni=
kernel in EC2 when using non-S3 storage.<br>
<br>
</span>I=E2=80=99m going to see if I can do anything to make booting on EC2=
 easier.<br>
<br>
One important thing about the EC2 build functionality that Antti implemente=
d into rumprun=E2=80=A6..=C2=A0 he appears to have included a configuration=
 file for the rumpkernel and also included iso9660 files in the volume that=
 boots the kernel.=C2=A0 It appears somehow that the kernel picks up this c=
onfig file and rather cleverly also picks up and mounts the included iso 96=
60 images.<br>
<br>
This is a rather elegant solution to the problem of including static files =
with the unikernel, sidesteps the need to include static files in the unike=
rnel as part of the compliation process, and yet packages the whole thing i=
nto a single EC2 EBS boot volume.<br>
<br>
I don=E2=80=99t know a whole lot about MirageOS but I=E2=80=99m wondering i=
f it can do the same thing?=C2=A0 If not, it is worth considering adding to=
 MirageOS as the problem of including static files with the unikernel witho=
ut compiling and without need for an external block device is a significant=
 one.</blockquote><div><br></div><div>That does sound like an interesting i=
dea.</div><div>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"margi=
n:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204=
);border-left-style:solid;padding-left:1ex">=C2=A0 Antti seems to have solv=
ed it here at least for use cases that work with an ISO 9660 file system. I=
 might be wrong cause I haven=E2=80=99t played with it too much yet but tha=
t=E2=80=99s my current understanding.<br>
<br>
Anyone at MirageOS know if your system can do the same thing?<br></blockquo=
te><div><br></div><div>At the moment MirageOS doesn&#39;t have ISO 9660 sup=
port -- we&#39;d have to write a little library for that. It might not be t=
oo bad though.</div><div><br></div><div>Cheers,</div><div>Dave Scott</div><=
/div>
</div></div>

--047d7b450b10594f0d051ee9ebcb--


--===============0651446826401114580==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

--===============0651446826401114580==--


From mirageos-devel-bounces@lists.xenproject.org Fri Sep 04 11:08:33 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 04 Sep 2015 11:08:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZXorA-00078u-83; Fri, 04 Sep 2015 11:08:32 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <scott.dj@gmail.com>) id 1ZXor8-00078p-8g
	for mirageos-devel@lists.xenproject.org; Fri, 04 Sep 2015 11:08:30 +0000
Received: from [85.158.137.68] by server-1.bemta-3.messagelabs.com id
	47/41-01421-DAB79E55; Fri, 04 Sep 2015 11:08:29 +0000
X-Env-Sender: scott.dj@gmail.com
X-Msg-Ref: server-4.tower-31.messagelabs.com!1441364908!40021145!1
X-Originating-IP: [209.85.212.170]
X-SpamReason: No, hits=0.4 required=7.0 tests=HTML_30_40,HTML_MESSAGE,
	RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 25837 invoked from network); 4 Sep 2015 11:08:28 -0000
Received: from mail-wi0-f170.google.com (HELO mail-wi0-f170.google.com)
	(209.85.212.170)
	by server-4.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	4 Sep 2015 11:08:28 -0000
Received: by wicfx3 with SMTP id fx3so14141376wic.0
	for <mirageos-devel@lists.xenproject.org>;
	Fri, 04 Sep 2015 04:08:28 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:in-reply-to:references:date:message-id:subject:from:to
	:cc:content-type;
	bh=28CEPQb4IVWmSCDVt+jfUC+3+JjUT8BmO/+ID8eeXTc=;
	b=oUpHdyrpmWatNFNd5gK2tmQ8qavFv1x0sec0qHZp3Y9XRPGphMNCJ4JNNztURvEEZG
	kjon3mLXck8N9Qm0vOYsTMURtiORH5N2Q1ZjtQNU5dkXQZbnV7XPtL1pId1x0ukiaYgj
	hnSs8pzKEmqUsKyz3kRrUji9kY/gv/9qv8vXuLcbFzlu1XyiIndrwQiGwiok5f7pq4FS
	DhsvSaFdfSBZN+4+XYLKJpl3yM+MTdGV7SgDlRyQAphbj/IMv4BHTKVYLQLDzx+Mk5lV
	X54E02NYEMEnUvqgpcOnQgfnoEUXR7iaNTbfavV/MdM50BbFfl2bc5G8l7YeBECHJ4/c
	HBKQ==
MIME-Version: 1.0
X-Received: by 10.194.24.196 with SMTP id w4mr6100028wjf.137.1441364908263;
	Fri, 04 Sep 2015 04:08:28 -0700 (PDT)
Received: by 10.28.89.3 with HTTP; Fri, 4 Sep 2015 04:08:28 -0700 (PDT)
In-Reply-To: <9BB0F74A-57EB-4DC0-9DEB-A0031FCFC0C4@supercoders.com.au>
References: <55D4A4E5.1000001@iki.fi>
	<D36D3F44-1D42-4DFD-9127-67F6982733B6@recoil.org>
	<9BB0F74A-57EB-4DC0-9DEB-A0031FCFC0C4@supercoders.com.au>
Date: Fri, 4 Sep 2015 12:08:28 +0100
Message-ID: <CAG_esB1wjSnsjza2mYT0ZytqcESv2C9KWbuPLKapR5q=9ttCOA@mail.gmail.com>
From: David Scott <scott.dj@gmail.com>
To: Andrew Stuart <andrew.stuart@supercoders.com.au>
Cc: mirageos-devel <mirageos-devel@lists.xenproject.org>,
	Anil Madhavapeddy <anil@recoil.org>
Subject: Re: [MirageOS-devel] Fwd: Amazon EC2 support now in Rumprun
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============0651446826401114580=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============0651446826401114580==
Content-Type: multipart/alternative; boundary=047d7b450b10594f0d051ee9ebcb

--047d7b450b10594f0d051ee9ebcb
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

On Thu, Sep 3, 2015 at 11:02 PM, Andrew Stuart <
andrew.stuart@supercoders.com.au> wrote:

>
>
> >> From the Rump lists -- it looks increasingly complex to boot a
> unikernel in EC2 when using non-S3 storage.
>
> I=E2=80=99m going to see if I can do anything to make booting on EC2 easi=
er.
>
> One important thing about the EC2 build functionality that Antti
> implemented into rumprun=E2=80=A6..  he appears to have included a config=
uration
> file for the rumpkernel and also included iso9660 files in the volume tha=
t
> boots the kernel.  It appears somehow that the kernel picks up this confi=
g
> file and rather cleverly also picks up and mounts the included iso 9660
> images.
>
> This is a rather elegant solution to the problem of including static file=
s
> with the unikernel, sidesteps the need to include static files in the
> unikernel as part of the compliation process, and yet packages the whole
> thing into a single EC2 EBS boot volume.
>
> I don=E2=80=99t know a whole lot about MirageOS but I=E2=80=99m wondering=
 if it can do the
> same thing?  If not, it is worth considering adding to MirageOS as the
> problem of including static files with the unikernel without compiling an=
d
> without need for an external block device is a significant one.


That does sound like an interesting idea.


>   Antti seems to have solved it here at least for use cases that work wit=
h
> an ISO 9660 file system. I might be wrong cause I haven=E2=80=99t played =
with it
> too much yet but that=E2=80=99s my current understanding.
>
> Anyone at MirageOS know if your system can do the same thing?
>

At the moment MirageOS doesn't have ISO 9660 support -- we'd have to write
a little library for that. It might not be too bad though.

Cheers,
Dave Scott

--047d7b450b10594f0d051ee9ebcb
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><br><div class=3D"gmail_extra"><br><div class=3D"gmail_quo=
te">On Thu, Sep 3, 2015 at 11:02 PM, Andrew Stuart <span dir=3D"ltr">&lt;<a=
 href=3D"mailto:andrew.stuart@supercoders.com.au" target=3D"_blank">andrew.=
stuart@supercoders.com.au</a>&gt;</span> wrote:<br><blockquote class=3D"gma=
il_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left-width:1px;border-le=
ft-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><span c=
lass=3D""><br>
<br>
&gt;&gt; From the Rump lists -- it looks increasingly complex to boot a uni=
kernel in EC2 when using non-S3 storage.<br>
<br>
</span>I=E2=80=99m going to see if I can do anything to make booting on EC2=
 easier.<br>
<br>
One important thing about the EC2 build functionality that Antti implemente=
d into rumprun=E2=80=A6..=C2=A0 he appears to have included a configuration=
 file for the rumpkernel and also included iso9660 files in the volume that=
 boots the kernel.=C2=A0 It appears somehow that the kernel picks up this c=
onfig file and rather cleverly also picks up and mounts the included iso 96=
60 images.<br>
<br>
This is a rather elegant solution to the problem of including static files =
with the unikernel, sidesteps the need to include static files in the unike=
rnel as part of the compliation process, and yet packages the whole thing i=
nto a single EC2 EBS boot volume.<br>
<br>
I don=E2=80=99t know a whole lot about MirageOS but I=E2=80=99m wondering i=
f it can do the same thing?=C2=A0 If not, it is worth considering adding to=
 MirageOS as the problem of including static files with the unikernel witho=
ut compiling and without need for an external block device is a significant=
 one.</blockquote><div><br></div><div>That does sound like an interesting i=
dea.</div><div>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"margi=
n:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204=
);border-left-style:solid;padding-left:1ex">=C2=A0 Antti seems to have solv=
ed it here at least for use cases that work with an ISO 9660 file system. I=
 might be wrong cause I haven=E2=80=99t played with it too much yet but tha=
t=E2=80=99s my current understanding.<br>
<br>
Anyone at MirageOS know if your system can do the same thing?<br></blockquo=
te><div><br></div><div>At the moment MirageOS doesn&#39;t have ISO 9660 sup=
port -- we&#39;d have to write a little library for that. It might not be t=
oo bad though.</div><div><br></div><div>Cheers,</div><div>Dave Scott</div><=
/div>
</div></div>

--047d7b450b10594f0d051ee9ebcb--


--===============0651446826401114580==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

--===============0651446826401114580==--


From mirageos-devel-bounces@lists.xenproject.org Fri Sep 04 11:30:29 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 04 Sep 2015 11:30:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZXpCL-0000E8-0h; Fri, 04 Sep 2015 11:30:25 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <tim@gfxmonk.net>) id 1ZXpCJ-0000E3-FB
	for MirageOS-devel@lists.xenproject.org; Fri, 04 Sep 2015 11:30:23 +0000
Received: from [193.109.254.147] by server-2.bemta-14.messagelabs.com id
	2D/00-12889-EC089E55; Fri, 04 Sep 2015 11:30:22 +0000
X-Env-Sender: tim@gfxmonk.net
X-Msg-Ref: server-7.tower-27.messagelabs.com!1441366220!46795773!1
X-Originating-IP: [209.85.213.169]
X-SpamReason: No, hits=0.8 required=7.0 tests=BODY_RANDOM_LONG,
  RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 787 invoked from network); 4 Sep 2015 11:30:21 -0000
Received: from mail-ig0-f169.google.com (HELO mail-ig0-f169.google.com)
	(209.85.213.169)
	by server-7.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	4 Sep 2015 11:30:21 -0000
Received: by igbkq10 with SMTP id kq10so14179604igb.0
	for <MirageOS-devel@lists.xenproject.org>;
	Fri, 04 Sep 2015 04:30:20 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:mime-version:in-reply-to:references:from:date
	:message-id:subject:to:cc:content-type;
	bh=E4NEoc5One33keQ9rhJPaoZEJztKi5xATl+s0Riptu8=;
	b=JGzdB5K8yDvi6MpQ7AhBh61ftGbaOQV3g16+jDalrtcw7//K0LL1tHHoQL5dx2rP6+
	UZxRhTOCZkzDfL8alDwhdHrgPhrDHyaUW3AxYpaN5TbF86XggIi40Gan6E5GdwJrlBnT
	gNqPnfvQDH/aEAirRhCPQJhMselKLC2d2YRxbOAAVSz9m3hDj+fW+vxqrLPkzaVXJlbb
	IndNMHi1nc53NvmegqES6p+iQ0IXUf/D/xgeNYZWV1+4hOJTXLtY0sY5jrXpOJOi1OAN
	NzxIH6yk+G9vnIO4KnS9XBknNj/ZLw9KlAwsbvAuIxHeOI+hR1D/kkhOybOPEt0nmfJl
	HpRQ==
X-Gm-Message-State: ALoCoQl7IJDm8Oa2H1hR2XLibAFOhmth3HaRfZhoXv6ZKutGoEyYJwrxhkAVRXLLnqhRhsnro8kF
X-Received: by 10.50.73.41 with SMTP id i9mr6522029igv.14.1441366220439;
	Fri, 04 Sep 2015 04:30:20 -0700 (PDT)
Received: from mail-ig0-f176.google.com (mail-ig0-f176.google.com.
	[209.85.213.176])
	by smtp.gmail.com with ESMTPSA id p5sm1313889ige.1.2015.09.04.04.30.18
	for <MirageOS-devel@lists.xenproject.org>
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Fri, 04 Sep 2015 04:30:18 -0700 (PDT)
Received: by igcpb10 with SMTP id pb10so14171411igc.1
	for <MirageOS-devel@lists.xenproject.org>;
	Fri, 04 Sep 2015 04:30:18 -0700 (PDT)
X-Received: by 10.50.62.46 with SMTP id v14mr6244798igr.79.1441366218460; Fri,
	04 Sep 2015 04:30:18 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.50.147.4 with HTTP; Fri, 4 Sep 2015 04:29:58 -0700 (PDT)
In-Reply-To: <CAG4opy9BjUUfCo9X+2q40dKSFgH9A-1dM03BFOTkD2yqG04EiA@mail.gmail.com>
References: <CAC-LLDhELEucM3vWySE=WyNXssiR9ozMYTaNiG466ngACYA0=Q@mail.gmail.com>
	<CAG4opy9BjUUfCo9X+2q40dKSFgH9A-1dM03BFOTkD2yqG04EiA@mail.gmail.com>
From: Tim Cuthbertson <tim@gfxmonk.net>
Date: Fri, 4 Sep 2015 21:29:58 +1000
Message-ID: <CAC-LLDgPpW0xkMzUhUq7s2-oC+qBL1TgRJg3gsgUcZMoQ3gsxw@mail.gmail.com>
To: Thomas Leonard <talex5@gmail.com>
Cc: "mirageos-devel@lists.xenproject.org" <MirageOS-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Patches for building mirage libraries with
	`opam2nix`
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On Fri, Sep 4, 2015 at 8:22 PM, Thomas Leonard <talex5@gmail.com> wrote:
> On 1 September 2015 at 08:27, Tim Cuthbertson <tim@gfxmonk.net> wrote:
>> Hi all,
>>
>> A little while ago I managed to get mirage's xen libraries and
>> dependencies building in nix [0]. This worked, but I didn't fancy
>> keeping those packages up to date manually. So I also started working
>> on `opam2nix`[1], a tool which generates nix expressions from an opam
>> repository. It's still work in progress, but has managed to build most
>> things I've thrown at it so far.
>>
>> The main problem is when build scripts assume that they'll be
>> installed into `opam config var prefix`/lib/<library>, or that
>> pkgconfig specs will be found in `opam config var
>> prefix`/lib/pkgconfig. In the case of `opam2nix`, dependencies can be
>> found via `ocamlfind query`, while the destination will be a
>> completely different path which is populated in $PREFIX,
>> $OCAMLFIND_DESTDIR and opam variables (like %{lib}% etc.)
>>
>> I've made a number of changes to make these build scripts more lenient
>> - e.g. rather than always overriding $PKG_CONFIG_PATH, they'll only do
>> that if all needed dependencies aren't already present. And also
>> respecting $PREFIX if it's set (but falling back to `opam config var
>> prefix` if not):
>>
>> --------
>>
>> gmp-xen:
>> https://github.com/gfxmonk/opam-repository/commits/mirage-fixes
>>
>> io-page:
>> https://github.com/gfxmonk/io-page/commits/master
>>
>> mirage-platform:
>> https://github.com/gfxmonk/mirage-platform/commits/master
>> (note: the second of those two commits
>> [6121921ef6e666f021a61f3570840108927f90d8] removes something that I
>> _think_ was unnecessary, but it's worth verifying that with someone
>> who knows more about how the libraries depend on each other)
>>
>> tcpip:
>> https://github.com/gfxmonk/mirage-tcpip/commits/master
>>
>> zarith-xen:
>> I had to rewrite the zarith-xen build script, because I couldn't come
>> up with a simple enough change which would support both the `opam` and
>> `opam2nix` cases. So this is less of a patch than a note that it
>> doesn't currently work, and maybe someone will have better ideas about
>> how to make it work:
>> https://github.com/gfxmonk/opam2nix/blob/71887935dc30a744aa26f1f5af75678355d2d74e/src/nix/overrides/zarith-xen/install.sh
>>
>> --------
>>
>> It'd be great if the maintainers of these libraries are happy to merge
>> my changes, or otherwise discuss other ways of making these libraries
>> build in an I-can't-believe-it's-not-opam environment ;). I thought
>> I'd discuss it here rather than creating individual pull requests,
>> because this should provide a lot more context.
>>
>> The main downside is that these changes make debugging a little
>> trickier, since the build scripts are slightly more complex. Also, it
>> might mean that a dependency could be picked up from a system package
>> rather than from `opam`.
>>
>> It may also be a better idea in general to just feed more information
>> to the scripts directly from the `opam` file (via %{lib}% and friends)
>> rather than have them assume too much about how they'll be installed.
>> I didn't want to go down this route because it makes for more drastic
>> changes, but I'm happy to try it if you're game.
>
> Yeah, it is a bit concerning that system packages will override the
> current opam switch's packages. The problem is that local builds of
> OCaml programs are typically started by simply running "make", so
> there's no way to know whether the user wants to use opam or not.
>
> I agree that build scripts shouldn't be calling back into opam
> explicitly (as these do currently).
>
> Can we get "opam config env" to set PKG_CONFIG_PATH (as it does for
> e.g. MANPATH already)? Then we assume that a user who initialises opam
> in their login script prefers to use opam's build environment (which
> is already true for other aspects of the environment).

That sounds good to me. And opam's build process would need to set
this as well, right? i.e. I'm assuming all of these should work:

1) user is in `opam config env` shell, runs `make` -> only uses opam deps
2) user is in system shell, runs `make` -> system deps
3) user is in system shell, runs `opam install this-local-package` ->
only uses opam deps

Hopefully the same opam code path can cover both (1) and (3).

> If you build a
> Nix package in this environment, would it build that in a clean
> environment?

Yep, nix builds are in a clean environment, so PKG_CONFIG_PATH during
a nix build contains only your (transitive) build dependencies.

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Fri Sep 04 11:30:29 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 04 Sep 2015 11:30:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZXpCL-0000E8-0h; Fri, 04 Sep 2015 11:30:25 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <tim@gfxmonk.net>) id 1ZXpCJ-0000E3-FB
	for MirageOS-devel@lists.xenproject.org; Fri, 04 Sep 2015 11:30:23 +0000
Received: from [193.109.254.147] by server-2.bemta-14.messagelabs.com id
	2D/00-12889-EC089E55; Fri, 04 Sep 2015 11:30:22 +0000
X-Env-Sender: tim@gfxmonk.net
X-Msg-Ref: server-7.tower-27.messagelabs.com!1441366220!46795773!1
X-Originating-IP: [209.85.213.169]
X-SpamReason: No, hits=0.8 required=7.0 tests=BODY_RANDOM_LONG,
  RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 787 invoked from network); 4 Sep 2015 11:30:21 -0000
Received: from mail-ig0-f169.google.com (HELO mail-ig0-f169.google.com)
	(209.85.213.169)
	by server-7.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	4 Sep 2015 11:30:21 -0000
Received: by igbkq10 with SMTP id kq10so14179604igb.0
	for <MirageOS-devel@lists.xenproject.org>;
	Fri, 04 Sep 2015 04:30:20 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:mime-version:in-reply-to:references:from:date
	:message-id:subject:to:cc:content-type;
	bh=E4NEoc5One33keQ9rhJPaoZEJztKi5xATl+s0Riptu8=;
	b=JGzdB5K8yDvi6MpQ7AhBh61ftGbaOQV3g16+jDalrtcw7//K0LL1tHHoQL5dx2rP6+
	UZxRhTOCZkzDfL8alDwhdHrgPhrDHyaUW3AxYpaN5TbF86XggIi40Gan6E5GdwJrlBnT
	gNqPnfvQDH/aEAirRhCPQJhMselKLC2d2YRxbOAAVSz9m3hDj+fW+vxqrLPkzaVXJlbb
	IndNMHi1nc53NvmegqES6p+iQ0IXUf/D/xgeNYZWV1+4hOJTXLtY0sY5jrXpOJOi1OAN
	NzxIH6yk+G9vnIO4KnS9XBknNj/ZLw9KlAwsbvAuIxHeOI+hR1D/kkhOybOPEt0nmfJl
	HpRQ==
X-Gm-Message-State: ALoCoQl7IJDm8Oa2H1hR2XLibAFOhmth3HaRfZhoXv6ZKutGoEyYJwrxhkAVRXLLnqhRhsnro8kF
X-Received: by 10.50.73.41 with SMTP id i9mr6522029igv.14.1441366220439;
	Fri, 04 Sep 2015 04:30:20 -0700 (PDT)
Received: from mail-ig0-f176.google.com (mail-ig0-f176.google.com.
	[209.85.213.176])
	by smtp.gmail.com with ESMTPSA id p5sm1313889ige.1.2015.09.04.04.30.18
	for <MirageOS-devel@lists.xenproject.org>
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Fri, 04 Sep 2015 04:30:18 -0700 (PDT)
Received: by igcpb10 with SMTP id pb10so14171411igc.1
	for <MirageOS-devel@lists.xenproject.org>;
	Fri, 04 Sep 2015 04:30:18 -0700 (PDT)
X-Received: by 10.50.62.46 with SMTP id v14mr6244798igr.79.1441366218460; Fri,
	04 Sep 2015 04:30:18 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.50.147.4 with HTTP; Fri, 4 Sep 2015 04:29:58 -0700 (PDT)
In-Reply-To: <CAG4opy9BjUUfCo9X+2q40dKSFgH9A-1dM03BFOTkD2yqG04EiA@mail.gmail.com>
References: <CAC-LLDhELEucM3vWySE=WyNXssiR9ozMYTaNiG466ngACYA0=Q@mail.gmail.com>
	<CAG4opy9BjUUfCo9X+2q40dKSFgH9A-1dM03BFOTkD2yqG04EiA@mail.gmail.com>
From: Tim Cuthbertson <tim@gfxmonk.net>
Date: Fri, 4 Sep 2015 21:29:58 +1000
Message-ID: <CAC-LLDgPpW0xkMzUhUq7s2-oC+qBL1TgRJg3gsgUcZMoQ3gsxw@mail.gmail.com>
To: Thomas Leonard <talex5@gmail.com>
Cc: "mirageos-devel@lists.xenproject.org" <MirageOS-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Patches for building mirage libraries with
	`opam2nix`
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On Fri, Sep 4, 2015 at 8:22 PM, Thomas Leonard <talex5@gmail.com> wrote:
> On 1 September 2015 at 08:27, Tim Cuthbertson <tim@gfxmonk.net> wrote:
>> Hi all,
>>
>> A little while ago I managed to get mirage's xen libraries and
>> dependencies building in nix [0]. This worked, but I didn't fancy
>> keeping those packages up to date manually. So I also started working
>> on `opam2nix`[1], a tool which generates nix expressions from an opam
>> repository. It's still work in progress, but has managed to build most
>> things I've thrown at it so far.
>>
>> The main problem is when build scripts assume that they'll be
>> installed into `opam config var prefix`/lib/<library>, or that
>> pkgconfig specs will be found in `opam config var
>> prefix`/lib/pkgconfig. In the case of `opam2nix`, dependencies can be
>> found via `ocamlfind query`, while the destination will be a
>> completely different path which is populated in $PREFIX,
>> $OCAMLFIND_DESTDIR and opam variables (like %{lib}% etc.)
>>
>> I've made a number of changes to make these build scripts more lenient
>> - e.g. rather than always overriding $PKG_CONFIG_PATH, they'll only do
>> that if all needed dependencies aren't already present. And also
>> respecting $PREFIX if it's set (but falling back to `opam config var
>> prefix` if not):
>>
>> --------
>>
>> gmp-xen:
>> https://github.com/gfxmonk/opam-repository/commits/mirage-fixes
>>
>> io-page:
>> https://github.com/gfxmonk/io-page/commits/master
>>
>> mirage-platform:
>> https://github.com/gfxmonk/mirage-platform/commits/master
>> (note: the second of those two commits
>> [6121921ef6e666f021a61f3570840108927f90d8] removes something that I
>> _think_ was unnecessary, but it's worth verifying that with someone
>> who knows more about how the libraries depend on each other)
>>
>> tcpip:
>> https://github.com/gfxmonk/mirage-tcpip/commits/master
>>
>> zarith-xen:
>> I had to rewrite the zarith-xen build script, because I couldn't come
>> up with a simple enough change which would support both the `opam` and
>> `opam2nix` cases. So this is less of a patch than a note that it
>> doesn't currently work, and maybe someone will have better ideas about
>> how to make it work:
>> https://github.com/gfxmonk/opam2nix/blob/71887935dc30a744aa26f1f5af75678355d2d74e/src/nix/overrides/zarith-xen/install.sh
>>
>> --------
>>
>> It'd be great if the maintainers of these libraries are happy to merge
>> my changes, or otherwise discuss other ways of making these libraries
>> build in an I-can't-believe-it's-not-opam environment ;). I thought
>> I'd discuss it here rather than creating individual pull requests,
>> because this should provide a lot more context.
>>
>> The main downside is that these changes make debugging a little
>> trickier, since the build scripts are slightly more complex. Also, it
>> might mean that a dependency could be picked up from a system package
>> rather than from `opam`.
>>
>> It may also be a better idea in general to just feed more information
>> to the scripts directly from the `opam` file (via %{lib}% and friends)
>> rather than have them assume too much about how they'll be installed.
>> I didn't want to go down this route because it makes for more drastic
>> changes, but I'm happy to try it if you're game.
>
> Yeah, it is a bit concerning that system packages will override the
> current opam switch's packages. The problem is that local builds of
> OCaml programs are typically started by simply running "make", so
> there's no way to know whether the user wants to use opam or not.
>
> I agree that build scripts shouldn't be calling back into opam
> explicitly (as these do currently).
>
> Can we get "opam config env" to set PKG_CONFIG_PATH (as it does for
> e.g. MANPATH already)? Then we assume that a user who initialises opam
> in their login script prefers to use opam's build environment (which
> is already true for other aspects of the environment).

That sounds good to me. And opam's build process would need to set
this as well, right? i.e. I'm assuming all of these should work:

1) user is in `opam config env` shell, runs `make` -> only uses opam deps
2) user is in system shell, runs `make` -> system deps
3) user is in system shell, runs `opam install this-local-package` ->
only uses opam deps

Hopefully the same opam code path can cover both (1) and (3).

> If you build a
> Nix package in this environment, would it build that in a clean
> environment?

Yep, nix builds are in a clean environment, so PKG_CONFIG_PATH during
a nix build contains only your (transitive) build dependencies.

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Sat Sep 05 09:54:17 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sat, 05 Sep 2015 09:54:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZYAAf-0004Wj-Nz; Sat, 05 Sep 2015 09:54:05 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <talex5@gmail.com>) id 1ZYAAe-0004We-Ax
	for MirageOS-devel@lists.xenproject.org; Sat, 05 Sep 2015 09:54:04 +0000
Received: from [85.158.139.211] by server-16.bemta-5.messagelabs.com id
	15/33-14422-BBBBAE55; Sat, 05 Sep 2015 09:54:03 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-2.tower-206.messagelabs.com!1441446841!32966016!1
X-Originating-IP: [209.85.213.51]
X-SpamReason: No, hits=0.8 required=7.0 tests=BODY_RANDOM_LONG,
  RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 27458 invoked from network); 5 Sep 2015 09:54:02 -0000
Received: from mail-vk0-f51.google.com (HELO mail-vk0-f51.google.com)
	(209.85.213.51)
	by server-2.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
	5 Sep 2015 09:54:02 -0000
Received: by vkhf67 with SMTP id f67so23192267vkh.1
	for <MirageOS-devel@lists.xenproject.org>;
	Sat, 05 Sep 2015 02:54:01 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:in-reply-to:references:date:message-id:subject:from:to
	:cc:content-type;
	bh=lf4ap+p+4U0NwVeuJJlinZ5/FGd1bN2Gz9yfTMwOV+o=;
	b=IGJFGAUBFoYDRzq797DFaJagzCHovJmCT8KG0m/nhPGWQ7EiDgPIjfTygrJXgkLkAT
	rrZC0ayseaB/T4ArIEyHhWTi7wm9j+6pcDUspkACeWeqXnlHPIgZRH1dTPbgN0WnxpDY
	qV+gmWyDxGcyNX0gy0nLAWMcWRwGXu9xVy9NJiln4BLLxDWeuSrzDxrQ5dM4IJ7ctO5J
	PTUF2NmdAFGUvagBWvLUuQaPL2GKLXvtv58+Pe6sIqTqFi/BWpR/HXKGqAxCx+f67uH5
	7d0SNwnsQTKpJgmZ0RJBBcc8aE9CirY9yaomGERg5BHOesHzWTwOvkUlUOZGXAzFuYYX
	Hv2g==
MIME-Version: 1.0
X-Received: by 10.52.114.196 with SMTP id ji4mr11351732vdb.24.1441446841444;
	Sat, 05 Sep 2015 02:54:01 -0700 (PDT)
Received: by 10.31.61.11 with HTTP; Sat, 5 Sep 2015 02:54:01 -0700 (PDT)
In-Reply-To: <CAC-LLDgPpW0xkMzUhUq7s2-oC+qBL1TgRJg3gsgUcZMoQ3gsxw@mail.gmail.com>
References: <CAC-LLDhELEucM3vWySE=WyNXssiR9ozMYTaNiG466ngACYA0=Q@mail.gmail.com>
	<CAG4opy9BjUUfCo9X+2q40dKSFgH9A-1dM03BFOTkD2yqG04EiA@mail.gmail.com>
	<CAC-LLDgPpW0xkMzUhUq7s2-oC+qBL1TgRJg3gsgUcZMoQ3gsxw@mail.gmail.com>
Date: Sat, 5 Sep 2015 10:54:01 +0100
Message-ID: <CAG4opy9yZBqdq-6sBwNw3ccoLasZXQGEc2gwPL-LvaR_pzO_OQ@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: Tim Cuthbertson <tim@gfxmonk.net>
Cc: "mirageos-devel@lists.xenproject.org" <MirageOS-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Patches for building mirage libraries with
	`opam2nix`
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On 4 September 2015 at 12:29, Tim Cuthbertson <tim@gfxmonk.net> wrote:
> On Fri, Sep 4, 2015 at 8:22 PM, Thomas Leonard <talex5@gmail.com> wrote:
>> On 1 September 2015 at 08:27, Tim Cuthbertson <tim@gfxmonk.net> wrote:
>>> Hi all,
>>>
>>> A little while ago I managed to get mirage's xen libraries and
>>> dependencies building in nix [0]. This worked, but I didn't fancy
>>> keeping those packages up to date manually. So I also started working
>>> on `opam2nix`[1], a tool which generates nix expressions from an opam
>>> repository. It's still work in progress, but has managed to build most
>>> things I've thrown at it so far.
>>>
>>> The main problem is when build scripts assume that they'll be
>>> installed into `opam config var prefix`/lib/<library>, or that
>>> pkgconfig specs will be found in `opam config var
>>> prefix`/lib/pkgconfig. In the case of `opam2nix`, dependencies can be
>>> found via `ocamlfind query`, while the destination will be a
>>> completely different path which is populated in $PREFIX,
>>> $OCAMLFIND_DESTDIR and opam variables (like %{lib}% etc.)
>>>
>>> I've made a number of changes to make these build scripts more lenient
>>> - e.g. rather than always overriding $PKG_CONFIG_PATH, they'll only do
>>> that if all needed dependencies aren't already present. And also
>>> respecting $PREFIX if it's set (but falling back to `opam config var
>>> prefix` if not):
>>>
>>> --------
>>>
>>> gmp-xen:
>>> https://github.com/gfxmonk/opam-repository/commits/mirage-fixes
>>>
>>> io-page:
>>> https://github.com/gfxmonk/io-page/commits/master
>>>
>>> mirage-platform:
>>> https://github.com/gfxmonk/mirage-platform/commits/master
>>> (note: the second of those two commits
>>> [6121921ef6e666f021a61f3570840108927f90d8] removes something that I
>>> _think_ was unnecessary, but it's worth verifying that with someone
>>> who knows more about how the libraries depend on each other)
>>>
>>> tcpip:
>>> https://github.com/gfxmonk/mirage-tcpip/commits/master
>>>
>>> zarith-xen:
>>> I had to rewrite the zarith-xen build script, because I couldn't come
>>> up with a simple enough change which would support both the `opam` and
>>> `opam2nix` cases. So this is less of a patch than a note that it
>>> doesn't currently work, and maybe someone will have better ideas about
>>> how to make it work:
>>> https://github.com/gfxmonk/opam2nix/blob/71887935dc30a744aa26f1f5af75678355d2d74e/src/nix/overrides/zarith-xen/install.sh
>>>
>>> --------
>>>
>>> It'd be great if the maintainers of these libraries are happy to merge
>>> my changes, or otherwise discuss other ways of making these libraries
>>> build in an I-can't-believe-it's-not-opam environment ;). I thought
>>> I'd discuss it here rather than creating individual pull requests,
>>> because this should provide a lot more context.
>>>
>>> The main downside is that these changes make debugging a little
>>> trickier, since the build scripts are slightly more complex. Also, it
>>> might mean that a dependency could be picked up from a system package
>>> rather than from `opam`.
>>>
>>> It may also be a better idea in general to just feed more information
>>> to the scripts directly from the `opam` file (via %{lib}% and friends)
>>> rather than have them assume too much about how they'll be installed.
>>> I didn't want to go down this route because it makes for more drastic
>>> changes, but I'm happy to try it if you're game.
>>
>> Yeah, it is a bit concerning that system packages will override the
>> current opam switch's packages. The problem is that local builds of
>> OCaml programs are typically started by simply running "make", so
>> there's no way to know whether the user wants to use opam or not.
>>
>> I agree that build scripts shouldn't be calling back into opam
>> explicitly (as these do currently).
>>
>> Can we get "opam config env" to set PKG_CONFIG_PATH (as it does for
>> e.g. MANPATH already)? Then we assume that a user who initialises opam
>> in their login script prefers to use opam's build environment (which
>> is already true for other aspects of the environment).
>
> That sounds good to me. And opam's build process would need to set
> this as well, right? i.e. I'm assuming all of these should work:
>
> 1) user is in `opam config env` shell, runs `make` -> only uses opam deps
> 2) user is in system shell, runs `make` -> system deps
> 3) user is in system shell, runs `opam install this-local-package` ->
> only uses opam deps
>
> Hopefully the same opam code path can cover both (1) and (3).

Yes, I think it does this automatically.

>> If you build a
>> Nix package in this environment, would it build that in a clean
>> environment?
>
> Yep, nix builds are in a clean environment, so PKG_CONFIG_PATH during
> a nix build contains only your (transitive) build dependencies.



-- 
Dr Thomas Leonard        http://roscidus.com/blog/
GPG: DA98 25AE CAD0 8975 7CDA  BD8E 0713 3F96 CA74 D8BA

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Sat Sep 05 09:54:17 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sat, 05 Sep 2015 09:54:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZYAAf-0004Wj-Nz; Sat, 05 Sep 2015 09:54:05 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <talex5@gmail.com>) id 1ZYAAe-0004We-Ax
	for MirageOS-devel@lists.xenproject.org; Sat, 05 Sep 2015 09:54:04 +0000
Received: from [85.158.139.211] by server-16.bemta-5.messagelabs.com id
	15/33-14422-BBBBAE55; Sat, 05 Sep 2015 09:54:03 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-2.tower-206.messagelabs.com!1441446841!32966016!1
X-Originating-IP: [209.85.213.51]
X-SpamReason: No, hits=0.8 required=7.0 tests=BODY_RANDOM_LONG,
  RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 27458 invoked from network); 5 Sep 2015 09:54:02 -0000
Received: from mail-vk0-f51.google.com (HELO mail-vk0-f51.google.com)
	(209.85.213.51)
	by server-2.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
	5 Sep 2015 09:54:02 -0000
Received: by vkhf67 with SMTP id f67so23192267vkh.1
	for <MirageOS-devel@lists.xenproject.org>;
	Sat, 05 Sep 2015 02:54:01 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:in-reply-to:references:date:message-id:subject:from:to
	:cc:content-type;
	bh=lf4ap+p+4U0NwVeuJJlinZ5/FGd1bN2Gz9yfTMwOV+o=;
	b=IGJFGAUBFoYDRzq797DFaJagzCHovJmCT8KG0m/nhPGWQ7EiDgPIjfTygrJXgkLkAT
	rrZC0ayseaB/T4ArIEyHhWTi7wm9j+6pcDUspkACeWeqXnlHPIgZRH1dTPbgN0WnxpDY
	qV+gmWyDxGcyNX0gy0nLAWMcWRwGXu9xVy9NJiln4BLLxDWeuSrzDxrQ5dM4IJ7ctO5J
	PTUF2NmdAFGUvagBWvLUuQaPL2GKLXvtv58+Pe6sIqTqFi/BWpR/HXKGqAxCx+f67uH5
	7d0SNwnsQTKpJgmZ0RJBBcc8aE9CirY9yaomGERg5BHOesHzWTwOvkUlUOZGXAzFuYYX
	Hv2g==
MIME-Version: 1.0
X-Received: by 10.52.114.196 with SMTP id ji4mr11351732vdb.24.1441446841444;
	Sat, 05 Sep 2015 02:54:01 -0700 (PDT)
Received: by 10.31.61.11 with HTTP; Sat, 5 Sep 2015 02:54:01 -0700 (PDT)
In-Reply-To: <CAC-LLDgPpW0xkMzUhUq7s2-oC+qBL1TgRJg3gsgUcZMoQ3gsxw@mail.gmail.com>
References: <CAC-LLDhELEucM3vWySE=WyNXssiR9ozMYTaNiG466ngACYA0=Q@mail.gmail.com>
	<CAG4opy9BjUUfCo9X+2q40dKSFgH9A-1dM03BFOTkD2yqG04EiA@mail.gmail.com>
	<CAC-LLDgPpW0xkMzUhUq7s2-oC+qBL1TgRJg3gsgUcZMoQ3gsxw@mail.gmail.com>
Date: Sat, 5 Sep 2015 10:54:01 +0100
Message-ID: <CAG4opy9yZBqdq-6sBwNw3ccoLasZXQGEc2gwPL-LvaR_pzO_OQ@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: Tim Cuthbertson <tim@gfxmonk.net>
Cc: "mirageos-devel@lists.xenproject.org" <MirageOS-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Patches for building mirage libraries with
	`opam2nix`
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On 4 September 2015 at 12:29, Tim Cuthbertson <tim@gfxmonk.net> wrote:
> On Fri, Sep 4, 2015 at 8:22 PM, Thomas Leonard <talex5@gmail.com> wrote:
>> On 1 September 2015 at 08:27, Tim Cuthbertson <tim@gfxmonk.net> wrote:
>>> Hi all,
>>>
>>> A little while ago I managed to get mirage's xen libraries and
>>> dependencies building in nix [0]. This worked, but I didn't fancy
>>> keeping those packages up to date manually. So I also started working
>>> on `opam2nix`[1], a tool which generates nix expressions from an opam
>>> repository. It's still work in progress, but has managed to build most
>>> things I've thrown at it so far.
>>>
>>> The main problem is when build scripts assume that they'll be
>>> installed into `opam config var prefix`/lib/<library>, or that
>>> pkgconfig specs will be found in `opam config var
>>> prefix`/lib/pkgconfig. In the case of `opam2nix`, dependencies can be
>>> found via `ocamlfind query`, while the destination will be a
>>> completely different path which is populated in $PREFIX,
>>> $OCAMLFIND_DESTDIR and opam variables (like %{lib}% etc.)
>>>
>>> I've made a number of changes to make these build scripts more lenient
>>> - e.g. rather than always overriding $PKG_CONFIG_PATH, they'll only do
>>> that if all needed dependencies aren't already present. And also
>>> respecting $PREFIX if it's set (but falling back to `opam config var
>>> prefix` if not):
>>>
>>> --------
>>>
>>> gmp-xen:
>>> https://github.com/gfxmonk/opam-repository/commits/mirage-fixes
>>>
>>> io-page:
>>> https://github.com/gfxmonk/io-page/commits/master
>>>
>>> mirage-platform:
>>> https://github.com/gfxmonk/mirage-platform/commits/master
>>> (note: the second of those two commits
>>> [6121921ef6e666f021a61f3570840108927f90d8] removes something that I
>>> _think_ was unnecessary, but it's worth verifying that with someone
>>> who knows more about how the libraries depend on each other)
>>>
>>> tcpip:
>>> https://github.com/gfxmonk/mirage-tcpip/commits/master
>>>
>>> zarith-xen:
>>> I had to rewrite the zarith-xen build script, because I couldn't come
>>> up with a simple enough change which would support both the `opam` and
>>> `opam2nix` cases. So this is less of a patch than a note that it
>>> doesn't currently work, and maybe someone will have better ideas about
>>> how to make it work:
>>> https://github.com/gfxmonk/opam2nix/blob/71887935dc30a744aa26f1f5af75678355d2d74e/src/nix/overrides/zarith-xen/install.sh
>>>
>>> --------
>>>
>>> It'd be great if the maintainers of these libraries are happy to merge
>>> my changes, or otherwise discuss other ways of making these libraries
>>> build in an I-can't-believe-it's-not-opam environment ;). I thought
>>> I'd discuss it here rather than creating individual pull requests,
>>> because this should provide a lot more context.
>>>
>>> The main downside is that these changes make debugging a little
>>> trickier, since the build scripts are slightly more complex. Also, it
>>> might mean that a dependency could be picked up from a system package
>>> rather than from `opam`.
>>>
>>> It may also be a better idea in general to just feed more information
>>> to the scripts directly from the `opam` file (via %{lib}% and friends)
>>> rather than have them assume too much about how they'll be installed.
>>> I didn't want to go down this route because it makes for more drastic
>>> changes, but I'm happy to try it if you're game.
>>
>> Yeah, it is a bit concerning that system packages will override the
>> current opam switch's packages. The problem is that local builds of
>> OCaml programs are typically started by simply running "make", so
>> there's no way to know whether the user wants to use opam or not.
>>
>> I agree that build scripts shouldn't be calling back into opam
>> explicitly (as these do currently).
>>
>> Can we get "opam config env" to set PKG_CONFIG_PATH (as it does for
>> e.g. MANPATH already)? Then we assume that a user who initialises opam
>> in their login script prefers to use opam's build environment (which
>> is already true for other aspects of the environment).
>
> That sounds good to me. And opam's build process would need to set
> this as well, right? i.e. I'm assuming all of these should work:
>
> 1) user is in `opam config env` shell, runs `make` -> only uses opam deps
> 2) user is in system shell, runs `make` -> system deps
> 3) user is in system shell, runs `opam install this-local-package` ->
> only uses opam deps
>
> Hopefully the same opam code path can cover both (1) and (3).

Yes, I think it does this automatically.

>> If you build a
>> Nix package in this environment, would it build that in a clean
>> environment?
>
> Yep, nix builds are in a clean environment, so PKG_CONFIG_PATH during
> a nix build contains only your (transitive) build dependencies.



-- 
Dr Thomas Leonard        http://roscidus.com/blog/
GPG: DA98 25AE CAD0 8975 7CDA  BD8E 0713 3F96 CA74 D8BA

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Sun Sep 06 11:11:15 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sun, 06 Sep 2015 11:11:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZYXqk-0003az-3b; Sun, 06 Sep 2015 11:11:06 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <gareth@morethanseven.net>) id 1ZYXqi-0003au-5l
	for MirageOS-devel@lists.xenproject.org; Sun, 06 Sep 2015 11:11:04 +0000
Received: from [85.158.137.68] by server-8.bemta-3.messagelabs.com id
	84/72-31069-74F1CE55; Sun, 06 Sep 2015 11:11:03 +0000
X-Env-Sender: gareth@morethanseven.net
X-Msg-Ref: server-8.tower-31.messagelabs.com!1441537860!41668100!1
X-Originating-IP: [209.85.213.170]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 26488 invoked from network); 6 Sep 2015 11:11:00 -0000
Received: from mail-ig0-f170.google.com (HELO mail-ig0-f170.google.com)
	(209.85.213.170)
	by server-8.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	6 Sep 2015 11:11:00 -0000
Received: by igbni9 with SMTP id ni9so41294632igb.0
	for <MirageOS-devel@lists.xenproject.org>;
	Sun, 06 Sep 2015 04:10:59 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:mime-version:date:message-id:subject:from:to
	:content-type:content-transfer-encoding;
	bh=XDZ4+psJ8stOsPRUDO0yGDzUbIyvCFMPRxyMQWwgk/g=;
	b=iYVuf8so5z9iZK81ZF9bbZioU7RRjRxpEhl4HiPePQE+9oXXicCt/HG5IkiiA4W9D/
	DRKNWpJUuHJ8IbilfTNF8HPVfb1lA4tK3acdjF7Z/llPSf2PAmai0iVm2Ldi363oIt7u
	F7srR0q2x7l7VwXf9MEH5VuhQkXCndZXCFduuEUahImWiZ+2DB+IHdCA3CIV/JyTuVl2
	+KL3sS+kg8ILAhElIz6yHnu/8kG7cfkdcsC8+OX8eeMHV9ghU2hi2dyNz00FIh7hnm+P
	LJtiJZQO0FnwZLz4oUGKqjKzokKTvMJ8xsi+RLu+agMH9ODyY+/iV7/3n999PhZv0uA3
	Bp3w==
X-Gm-Message-State: ALoCoQnLHyAAQ8g70W6aa9s50MchEfhUf1cQB4QqxghsHZhz8jd56kqP6wG5KHo49tzltbTb889b
MIME-Version: 1.0
X-Received: by 10.50.124.4 with SMTP id me4mr22216139igb.34.1441537859636;
	Sun, 06 Sep 2015 04:10:59 -0700 (PDT)
Received: by 10.107.131.167 with HTTP; Sun, 6 Sep 2015 04:10:59 -0700 (PDT)
Date: Sun, 6 Sep 2015 12:10:59 +0100
Message-ID: <CAFi_6yK_CFMEkhFCeXmh+LDRtLTBDibcE9q9owwQKpRf7CfWRw@mail.gmail.com>
From: Gareth Rushgrove <gareth@morethanseven.net>
To: mirageos-devel <MirageOS-devel@lists.xenproject.org>
Subject: [MirageOS-devel] Xen network for mirage
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

SGkKCkkgaGF2ZSBhIHZhZ3VlIHBsYW4gb2YgYXV0b21hdGluZyB0aGUgYnVpbGQtb3V0IG9mIGEg
Ym94IHRvIHJ1biBtYW55CnVuaWtlcm5lbHMsIHByb2JhYmx5IG9uIFBhY2tldCouCgpEb2VzIGFu
eW9uZSBoYXZlIGFuIHVwLXRvLWRhdGUgc2V0IG9mIHN0ZXBzIGZvciBpbnN0YWxsaW5nIFhlbiwK
aW5jbHVkaW5nIHdpdGggYSBzdWl0YWJsZSBuZXR3b3JrIHNldHVwIGFuZCB0aGF0IGRvZXNuJ3Qg
cmVxdWlyZQpwaHlzaWNhbCBhY2Nlc3M/CgpBc2tpbmcgaGVyZSBhcyBhIHNvbWV3aGF0IGJyaWVm
IGxvb2sgYXJvdW5kIHR1cm5zIHVwIGluc3RydWN0dXRpb25zCnRoYXQgcmVxdWlyZSB5b3UgdG8g
a2lsbCB0aGUgbmV0d29yayB3aGlsZSB5b3UncmUgY29ubmVjdGVkLCBpZ25vcmUKdGhlIG5ldHdv
cmsgc2V0dXAsIHVzZSBhIHZlcnkgb2xkIHZlcnNpb24gb2YgWGVuIG9yIHVzZSBhIHZlcnkgb2xk
CnZlcnNpb24gb2YgYW4gb3BlcmF0aW5nIHN5c3RlbS4KCkkndmUgaGVhcmQgcnVtb3VycyBvZiB0
aGUgYm94IHRoYXQgcnVucyB0aGUgdGhlIGh0dHBzOi8vbWlyYWdlLmlvLwpzaXRlLiBJZiBzb21l
b25lIGhhcyB0aGUgaW5zdGFsbGF0aW9uIHN0ZXBzIGRvY3VtZW50ZWQgZm9yIHRoYXQgdGhvc2UK
d291bGQgYmUgcGVyZmVjdC4KCkNoZWVycwoKR2FyZXRoCgoqIGh0dHBzOi8vd3d3LnBhY2tldC5u
ZXQvLiBBUEkgcHJvdmlzaW9uZWQgYmFyZSBtZXRhbCBtYWNoaW5lcyB3aXRoCnRoZSByZWxldmFu
dCB2aXJ0dWFsaXNhdGlvbiBzdXBwb3J0LCAxNkdCIGZvciBhYm91dCDCozE4MCBhIG1vbnRoIChh
bmQKYmlsbGVkIGJ5IHRoZSBob3VyKS4KCi0tIApHYXJldGggUnVzaGdyb3ZlCkBnYXJldGhyCgpk
ZXZvcHN3ZWVrbHkuY29tCm1vcmV0aGFuc2V2ZW4ubmV0CmdhcmV0aHJ1c2hncm92ZS5jb20KCl9f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk1pcmFnZU9TLWRl
dmVsIG1haWxpbmcgbGlzdApNaXJhZ2VPUy1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRw
Oi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL21pcmFnZW9z
LWRldmVsCg==

From mirageos-devel-bounces@lists.xenproject.org Sun Sep 06 11:11:15 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sun, 06 Sep 2015 11:11:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZYXqk-0003az-3b; Sun, 06 Sep 2015 11:11:06 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <gareth@morethanseven.net>) id 1ZYXqi-0003au-5l
	for MirageOS-devel@lists.xenproject.org; Sun, 06 Sep 2015 11:11:04 +0000
Received: from [85.158.137.68] by server-8.bemta-3.messagelabs.com id
	84/72-31069-74F1CE55; Sun, 06 Sep 2015 11:11:03 +0000
X-Env-Sender: gareth@morethanseven.net
X-Msg-Ref: server-8.tower-31.messagelabs.com!1441537860!41668100!1
X-Originating-IP: [209.85.213.170]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 26488 invoked from network); 6 Sep 2015 11:11:00 -0000
Received: from mail-ig0-f170.google.com (HELO mail-ig0-f170.google.com)
	(209.85.213.170)
	by server-8.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	6 Sep 2015 11:11:00 -0000
Received: by igbni9 with SMTP id ni9so41294632igb.0
	for <MirageOS-devel@lists.xenproject.org>;
	Sun, 06 Sep 2015 04:10:59 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:mime-version:date:message-id:subject:from:to
	:content-type:content-transfer-encoding;
	bh=XDZ4+psJ8stOsPRUDO0yGDzUbIyvCFMPRxyMQWwgk/g=;
	b=iYVuf8so5z9iZK81ZF9bbZioU7RRjRxpEhl4HiPePQE+9oXXicCt/HG5IkiiA4W9D/
	DRKNWpJUuHJ8IbilfTNF8HPVfb1lA4tK3acdjF7Z/llPSf2PAmai0iVm2Ldi363oIt7u
	F7srR0q2x7l7VwXf9MEH5VuhQkXCndZXCFduuEUahImWiZ+2DB+IHdCA3CIV/JyTuVl2
	+KL3sS+kg8ILAhElIz6yHnu/8kG7cfkdcsC8+OX8eeMHV9ghU2hi2dyNz00FIh7hnm+P
	LJtiJZQO0FnwZLz4oUGKqjKzokKTvMJ8xsi+RLu+agMH9ODyY+/iV7/3n999PhZv0uA3
	Bp3w==
X-Gm-Message-State: ALoCoQnLHyAAQ8g70W6aa9s50MchEfhUf1cQB4QqxghsHZhz8jd56kqP6wG5KHo49tzltbTb889b
MIME-Version: 1.0
X-Received: by 10.50.124.4 with SMTP id me4mr22216139igb.34.1441537859636;
	Sun, 06 Sep 2015 04:10:59 -0700 (PDT)
Received: by 10.107.131.167 with HTTP; Sun, 6 Sep 2015 04:10:59 -0700 (PDT)
Date: Sun, 6 Sep 2015 12:10:59 +0100
Message-ID: <CAFi_6yK_CFMEkhFCeXmh+LDRtLTBDibcE9q9owwQKpRf7CfWRw@mail.gmail.com>
From: Gareth Rushgrove <gareth@morethanseven.net>
To: mirageos-devel <MirageOS-devel@lists.xenproject.org>
Subject: [MirageOS-devel] Xen network for mirage
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

SGkKCkkgaGF2ZSBhIHZhZ3VlIHBsYW4gb2YgYXV0b21hdGluZyB0aGUgYnVpbGQtb3V0IG9mIGEg
Ym94IHRvIHJ1biBtYW55CnVuaWtlcm5lbHMsIHByb2JhYmx5IG9uIFBhY2tldCouCgpEb2VzIGFu
eW9uZSBoYXZlIGFuIHVwLXRvLWRhdGUgc2V0IG9mIHN0ZXBzIGZvciBpbnN0YWxsaW5nIFhlbiwK
aW5jbHVkaW5nIHdpdGggYSBzdWl0YWJsZSBuZXR3b3JrIHNldHVwIGFuZCB0aGF0IGRvZXNuJ3Qg
cmVxdWlyZQpwaHlzaWNhbCBhY2Nlc3M/CgpBc2tpbmcgaGVyZSBhcyBhIHNvbWV3aGF0IGJyaWVm
IGxvb2sgYXJvdW5kIHR1cm5zIHVwIGluc3RydWN0dXRpb25zCnRoYXQgcmVxdWlyZSB5b3UgdG8g
a2lsbCB0aGUgbmV0d29yayB3aGlsZSB5b3UncmUgY29ubmVjdGVkLCBpZ25vcmUKdGhlIG5ldHdv
cmsgc2V0dXAsIHVzZSBhIHZlcnkgb2xkIHZlcnNpb24gb2YgWGVuIG9yIHVzZSBhIHZlcnkgb2xk
CnZlcnNpb24gb2YgYW4gb3BlcmF0aW5nIHN5c3RlbS4KCkkndmUgaGVhcmQgcnVtb3VycyBvZiB0
aGUgYm94IHRoYXQgcnVucyB0aGUgdGhlIGh0dHBzOi8vbWlyYWdlLmlvLwpzaXRlLiBJZiBzb21l
b25lIGhhcyB0aGUgaW5zdGFsbGF0aW9uIHN0ZXBzIGRvY3VtZW50ZWQgZm9yIHRoYXQgdGhvc2UK
d291bGQgYmUgcGVyZmVjdC4KCkNoZWVycwoKR2FyZXRoCgoqIGh0dHBzOi8vd3d3LnBhY2tldC5u
ZXQvLiBBUEkgcHJvdmlzaW9uZWQgYmFyZSBtZXRhbCBtYWNoaW5lcyB3aXRoCnRoZSByZWxldmFu
dCB2aXJ0dWFsaXNhdGlvbiBzdXBwb3J0LCAxNkdCIGZvciBhYm91dCDCozE4MCBhIG1vbnRoIChh
bmQKYmlsbGVkIGJ5IHRoZSBob3VyKS4KCi0tIApHYXJldGggUnVzaGdyb3ZlCkBnYXJldGhyCgpk
ZXZvcHN3ZWVrbHkuY29tCm1vcmV0aGFuc2V2ZW4ubmV0CmdhcmV0aHJ1c2hncm92ZS5jb20KCl9f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk1pcmFnZU9TLWRl
dmVsIG1haWxpbmcgbGlzdApNaXJhZ2VPUy1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRw
Oi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL21pcmFnZW9z
LWRldmVsCg==

From mirageos-devel-bounces@lists.xenproject.org Sun Sep 06 11:31:12 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sun, 06 Sep 2015 11:31:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZYYA9-000565-Os; Sun, 06 Sep 2015 11:31:09 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <talex5@gmail.com>) id 1ZYYA7-000560-H5
	for MirageOS-devel@lists.xenproject.org; Sun, 06 Sep 2015 11:31:07 +0000
Received: from [193.109.254.147] by server-5.bemta-14.messagelabs.com id
	DF/2B-00475-AF32CE55; Sun, 06 Sep 2015 11:31:06 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-6.tower-27.messagelabs.com!1441539065!47225173!1
X-Originating-IP: [209.85.213.46]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 13568 invoked from network); 6 Sep 2015 11:31:05 -0000
Received: from mail-vk0-f46.google.com (HELO mail-vk0-f46.google.com)
	(209.85.213.46)
	by server-6.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	6 Sep 2015 11:31:05 -0000
Received: by vkbf67 with SMTP id f67so31115975vkb.0
	for <MirageOS-devel@lists.xenproject.org>;
	Sun, 06 Sep 2015 04:31:04 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:in-reply-to:references:date:message-id:subject:from:to
	:cc:content-type:content-transfer-encoding;
	bh=cxnOEpSEeQpSZ2V/KYv6I9eg2heA4qg368sLD8b1Jbw=;
	b=V3GPwP4ADjjhHX6SpghmpBihuAs2KpqOcMzIu/mhFslWXJyLjfY+LpbnQsLaUbW7Qb
	BQmA6TbYE1kXc17xjmkcWe2Y18ECC4SjRNIadxEeMskutRHlZ0zBX10HrTW8gcdNVoTh
	9aVq/KH/4TC/rPrl/BeHbEQWkD3TtOmFd5kNx3KnDvGGYdf9NGX/vivhIC4H6Gx01E5M
	F3ISLmlN6b6sfjTrRrKRMzdlTgWD1g5bqLiBGUuiHZYY9GaOantlyn/sgsTU2uzTkDLO
	b5IC/nuPavKBETyaCzY81d7NnkdDwf9ab1uBHJEh9y6CCuxMcOROdP4xkQpxoi8CYVkt
	KZww==
MIME-Version: 1.0
X-Received: by 10.53.13.193 with SMTP id fa1mr19409277vdd.9.1441539064754;
	Sun, 06 Sep 2015 04:31:04 -0700 (PDT)
Received: by 10.31.69.4 with HTTP; Sun, 6 Sep 2015 04:31:04 -0700 (PDT)
In-Reply-To: <CAFi_6yK_CFMEkhFCeXmh+LDRtLTBDibcE9q9owwQKpRf7CfWRw@mail.gmail.com>
References: <CAFi_6yK_CFMEkhFCeXmh+LDRtLTBDibcE9q9owwQKpRf7CfWRw@mail.gmail.com>
Date: Sun, 6 Sep 2015 12:31:04 +0100
Message-ID: <CAG4opy8e1yxjY170SMH4ihcp1ocJYhPOYoLxuG04H3SXmYkRUg@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: Gareth Rushgrove <gareth@morethanseven.net>
Cc: mirageos-devel <MirageOS-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Xen network for mirage
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

T24gNiBTZXB0ZW1iZXIgMjAxNSBhdCAxMjoxMCwgR2FyZXRoIFJ1c2hncm92ZSA8Z2FyZXRoQG1v
cmV0aGFuc2V2ZW4ubmV0PiB3cm90ZToKPiBIaQo+Cj4gSSBoYXZlIGEgdmFndWUgcGxhbiBvZiBh
dXRvbWF0aW5nIHRoZSBidWlsZC1vdXQgb2YgYSBib3ggdG8gcnVuIG1hbnkKPiB1bmlrZXJuZWxz
LCBwcm9iYWJseSBvbiBQYWNrZXQqLgo+Cj4gRG9lcyBhbnlvbmUgaGF2ZSBhbiB1cC10by1kYXRl
IHNldCBvZiBzdGVwcyBmb3IgaW5zdGFsbGluZyBYZW4sCj4gaW5jbHVkaW5nIHdpdGggYSBzdWl0
YWJsZSBuZXR3b3JrIHNldHVwIGFuZCB0aGF0IGRvZXNuJ3QgcmVxdWlyZQo+IHBoeXNpY2FsIGFj
Y2Vzcz8KPgo+IEFza2luZyBoZXJlIGFzIGEgc29tZXdoYXQgYnJpZWYgbG9vayBhcm91bmQgdHVy
bnMgdXAgaW5zdHJ1Y3R1dGlvbnMKPiB0aGF0IHJlcXVpcmUgeW91IHRvIGtpbGwgdGhlIG5ldHdv
cmsgd2hpbGUgeW91J3JlIGNvbm5lY3RlZCwgaWdub3JlCj4gdGhlIG5ldHdvcmsgc2V0dXAsIHVz
ZSBhIHZlcnkgb2xkIHZlcnNpb24gb2YgWGVuIG9yIHVzZSBhIHZlcnkgb2xkCj4gdmVyc2lvbiBv
ZiBhbiBvcGVyYXRpbmcgc3lzdGVtLgoKR2VuZXJhbGx5LCBpdCBzaG91bGQganVzdCBiZSBhIGNh
c2Ugb2Y6CgoxLiBpbnN0YWxsIGFzIG5vcm1hbAoyLiBhcHQtZ2V0IGluc3RhbGwgeGVuLWxpbnV4
LXN5c3RlbQozLiByZWJvb3QKCmh0dHBzOi8vd2lraS5kZWJpYW4ub3JnL1hlbgoKV2hlbiBhZGRp
bmcgYSBicmlkZ2UgcmVtb3RlbHkgb24gYSBsaXZlIHN5c3RlbSwgcmVtZW1iZXIgdG8gc2V0IHRo
ZSBJUAphZGRyZXNzLCBldGMsIG9uIHRoZSBicmlkZ2UgKmJlZm9yZSogY29ubmVjdGluZyB0aGUg
cGh5c2ljYWwgZGV2aWNlLiBJCmFzc3VtZSBQYWNrZXQgcHJvdmlkZXMgYSB3YXkgdG8gcmVtb3Rl
bHkgcmVib290IGludG8gYSByZWNvdmVyeSBzeXN0ZW0KaWYgaXQgYWxsIGdvZXMgd3JvbmcuIE9y
IG1heWJlIGV2ZW4gYSBjb25zb2xlIHNlcnZpY2U/Cgo+IEkndmUgaGVhcmQgcnVtb3VycyBvZiB0
aGUgYm94IHRoYXQgcnVucyB0aGUgdGhlIGh0dHBzOi8vbWlyYWdlLmlvLwo+IHNpdGUuIElmIHNv
bWVvbmUgaGFzIHRoZSBpbnN0YWxsYXRpb24gc3RlcHMgZG9jdW1lbnRlZCBmb3IgdGhhdCB0aG9z
ZQo+IHdvdWxkIGJlIHBlcmZlY3QuCj4KPiBDaGVlcnMKPgo+IEdhcmV0aAo+Cj4gKiBodHRwczov
L3d3dy5wYWNrZXQubmV0Ly4gQVBJIHByb3Zpc2lvbmVkIGJhcmUgbWV0YWwgbWFjaGluZXMgd2l0
aAo+IHRoZSByZWxldmFudCB2aXJ0dWFsaXNhdGlvbiBzdXBwb3J0LCAxNkdCIGZvciBhYm91dCDC
ozE4MCBhIG1vbnRoIChhbmQKPiBiaWxsZWQgYnkgdGhlIGhvdXIpLgoKCi0tIApEciBUaG9tYXMg
TGVvbmFyZCAgICAgICAgaHR0cDovL3Jvc2NpZHVzLmNvbS9ibG9nLwpHUEc6IERBOTggMjVBRSBD
QUQwIDg5NzUgN0NEQSAgQkQ4RSAwNzEzIDNGOTYgQ0E3NCBEOEJBCgpfX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpNaXJhZ2VPUy1kZXZlbCBtYWlsaW5nIGxp
c3QKTWlyYWdlT1MtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cDovL2xpc3RzLnhlbnBy
b2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby9taXJhZ2Vvcy1kZXZlbAo=

From mirageos-devel-bounces@lists.xenproject.org Sun Sep 06 11:31:12 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sun, 06 Sep 2015 11:31:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZYYA9-000565-Os; Sun, 06 Sep 2015 11:31:09 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <talex5@gmail.com>) id 1ZYYA7-000560-H5
	for MirageOS-devel@lists.xenproject.org; Sun, 06 Sep 2015 11:31:07 +0000
Received: from [193.109.254.147] by server-5.bemta-14.messagelabs.com id
	DF/2B-00475-AF32CE55; Sun, 06 Sep 2015 11:31:06 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-6.tower-27.messagelabs.com!1441539065!47225173!1
X-Originating-IP: [209.85.213.46]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 13568 invoked from network); 6 Sep 2015 11:31:05 -0000
Received: from mail-vk0-f46.google.com (HELO mail-vk0-f46.google.com)
	(209.85.213.46)
	by server-6.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	6 Sep 2015 11:31:05 -0000
Received: by vkbf67 with SMTP id f67so31115975vkb.0
	for <MirageOS-devel@lists.xenproject.org>;
	Sun, 06 Sep 2015 04:31:04 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:in-reply-to:references:date:message-id:subject:from:to
	:cc:content-type:content-transfer-encoding;
	bh=cxnOEpSEeQpSZ2V/KYv6I9eg2heA4qg368sLD8b1Jbw=;
	b=V3GPwP4ADjjhHX6SpghmpBihuAs2KpqOcMzIu/mhFslWXJyLjfY+LpbnQsLaUbW7Qb
	BQmA6TbYE1kXc17xjmkcWe2Y18ECC4SjRNIadxEeMskutRHlZ0zBX10HrTW8gcdNVoTh
	9aVq/KH/4TC/rPrl/BeHbEQWkD3TtOmFd5kNx3KnDvGGYdf9NGX/vivhIC4H6Gx01E5M
	F3ISLmlN6b6sfjTrRrKRMzdlTgWD1g5bqLiBGUuiHZYY9GaOantlyn/sgsTU2uzTkDLO
	b5IC/nuPavKBETyaCzY81d7NnkdDwf9ab1uBHJEh9y6CCuxMcOROdP4xkQpxoi8CYVkt
	KZww==
MIME-Version: 1.0
X-Received: by 10.53.13.193 with SMTP id fa1mr19409277vdd.9.1441539064754;
	Sun, 06 Sep 2015 04:31:04 -0700 (PDT)
Received: by 10.31.69.4 with HTTP; Sun, 6 Sep 2015 04:31:04 -0700 (PDT)
In-Reply-To: <CAFi_6yK_CFMEkhFCeXmh+LDRtLTBDibcE9q9owwQKpRf7CfWRw@mail.gmail.com>
References: <CAFi_6yK_CFMEkhFCeXmh+LDRtLTBDibcE9q9owwQKpRf7CfWRw@mail.gmail.com>
Date: Sun, 6 Sep 2015 12:31:04 +0100
Message-ID: <CAG4opy8e1yxjY170SMH4ihcp1ocJYhPOYoLxuG04H3SXmYkRUg@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: Gareth Rushgrove <gareth@morethanseven.net>
Cc: mirageos-devel <MirageOS-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Xen network for mirage
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

T24gNiBTZXB0ZW1iZXIgMjAxNSBhdCAxMjoxMCwgR2FyZXRoIFJ1c2hncm92ZSA8Z2FyZXRoQG1v
cmV0aGFuc2V2ZW4ubmV0PiB3cm90ZToKPiBIaQo+Cj4gSSBoYXZlIGEgdmFndWUgcGxhbiBvZiBh
dXRvbWF0aW5nIHRoZSBidWlsZC1vdXQgb2YgYSBib3ggdG8gcnVuIG1hbnkKPiB1bmlrZXJuZWxz
LCBwcm9iYWJseSBvbiBQYWNrZXQqLgo+Cj4gRG9lcyBhbnlvbmUgaGF2ZSBhbiB1cC10by1kYXRl
IHNldCBvZiBzdGVwcyBmb3IgaW5zdGFsbGluZyBYZW4sCj4gaW5jbHVkaW5nIHdpdGggYSBzdWl0
YWJsZSBuZXR3b3JrIHNldHVwIGFuZCB0aGF0IGRvZXNuJ3QgcmVxdWlyZQo+IHBoeXNpY2FsIGFj
Y2Vzcz8KPgo+IEFza2luZyBoZXJlIGFzIGEgc29tZXdoYXQgYnJpZWYgbG9vayBhcm91bmQgdHVy
bnMgdXAgaW5zdHJ1Y3R1dGlvbnMKPiB0aGF0IHJlcXVpcmUgeW91IHRvIGtpbGwgdGhlIG5ldHdv
cmsgd2hpbGUgeW91J3JlIGNvbm5lY3RlZCwgaWdub3JlCj4gdGhlIG5ldHdvcmsgc2V0dXAsIHVz
ZSBhIHZlcnkgb2xkIHZlcnNpb24gb2YgWGVuIG9yIHVzZSBhIHZlcnkgb2xkCj4gdmVyc2lvbiBv
ZiBhbiBvcGVyYXRpbmcgc3lzdGVtLgoKR2VuZXJhbGx5LCBpdCBzaG91bGQganVzdCBiZSBhIGNh
c2Ugb2Y6CgoxLiBpbnN0YWxsIGFzIG5vcm1hbAoyLiBhcHQtZ2V0IGluc3RhbGwgeGVuLWxpbnV4
LXN5c3RlbQozLiByZWJvb3QKCmh0dHBzOi8vd2lraS5kZWJpYW4ub3JnL1hlbgoKV2hlbiBhZGRp
bmcgYSBicmlkZ2UgcmVtb3RlbHkgb24gYSBsaXZlIHN5c3RlbSwgcmVtZW1iZXIgdG8gc2V0IHRo
ZSBJUAphZGRyZXNzLCBldGMsIG9uIHRoZSBicmlkZ2UgKmJlZm9yZSogY29ubmVjdGluZyB0aGUg
cGh5c2ljYWwgZGV2aWNlLiBJCmFzc3VtZSBQYWNrZXQgcHJvdmlkZXMgYSB3YXkgdG8gcmVtb3Rl
bHkgcmVib290IGludG8gYSByZWNvdmVyeSBzeXN0ZW0KaWYgaXQgYWxsIGdvZXMgd3JvbmcuIE9y
IG1heWJlIGV2ZW4gYSBjb25zb2xlIHNlcnZpY2U/Cgo+IEkndmUgaGVhcmQgcnVtb3VycyBvZiB0
aGUgYm94IHRoYXQgcnVucyB0aGUgdGhlIGh0dHBzOi8vbWlyYWdlLmlvLwo+IHNpdGUuIElmIHNv
bWVvbmUgaGFzIHRoZSBpbnN0YWxsYXRpb24gc3RlcHMgZG9jdW1lbnRlZCBmb3IgdGhhdCB0aG9z
ZQo+IHdvdWxkIGJlIHBlcmZlY3QuCj4KPiBDaGVlcnMKPgo+IEdhcmV0aAo+Cj4gKiBodHRwczov
L3d3dy5wYWNrZXQubmV0Ly4gQVBJIHByb3Zpc2lvbmVkIGJhcmUgbWV0YWwgbWFjaGluZXMgd2l0
aAo+IHRoZSByZWxldmFudCB2aXJ0dWFsaXNhdGlvbiBzdXBwb3J0LCAxNkdCIGZvciBhYm91dCDC
ozE4MCBhIG1vbnRoIChhbmQKPiBiaWxsZWQgYnkgdGhlIGhvdXIpLgoKCi0tIApEciBUaG9tYXMg
TGVvbmFyZCAgICAgICAgaHR0cDovL3Jvc2NpZHVzLmNvbS9ibG9nLwpHUEc6IERBOTggMjVBRSBD
QUQwIDg5NzUgN0NEQSAgQkQ4RSAwNzEzIDNGOTYgQ0E3NCBEOEJBCgpfX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpNaXJhZ2VPUy1kZXZlbCBtYWlsaW5nIGxp
c3QKTWlyYWdlT1MtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cDovL2xpc3RzLnhlbnBy
b2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby9taXJhZ2Vvcy1kZXZlbAo=

From mirageos-devel-bounces@lists.xenproject.org Sun Sep 06 12:42:24 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sun, 06 Sep 2015 12:42:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZYZGy-0001gd-3o; Sun, 06 Sep 2015 12:42:16 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <justin@specialbusservice.com>) id 1ZYZGw-0001gY-QP
	for MirageOS-devel@lists.xenproject.org; Sun, 06 Sep 2015 12:42:14 +0000
Received: from [85.158.137.68] by server-2.bemta-3.messagelabs.com id
	37/6C-03652-5A43CE55; Sun, 06 Sep 2015 12:42:13 +0000
X-Env-Sender: justin@specialbusservice.com
X-Msg-Ref: server-12.tower-31.messagelabs.com!1441543333!41643046!1
X-Originating-IP: [209.85.212.176]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 4558 invoked from network); 6 Sep 2015 12:42:13 -0000
Received: from mail-wi0-f176.google.com (HELO mail-wi0-f176.google.com)
	(209.85.212.176)
	by server-12.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	6 Sep 2015 12:42:13 -0000
Received: by wicge5 with SMTP id ge5so57294638wic.0
	for <MirageOS-devel@lists.xenproject.org>;
	Sun, 06 Sep 2015 05:42:12 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=specialbusservice.com; s=google;
	h=mime-version:in-reply-to:references:date:message-id:subject:from:to
	:cc:content-type;
	bh=gcBlbQSJ66O8l43WFg3Byw3tTuAisKdE4+X64W45osE=;
	b=l/OVZ144aMrfhVJ7rP+5GgERVpArpRtXKed+Y/EbRA159tN4K7SCF6Jz+PhKLhNVfZ
	7JEE7fxv8uEWm2f4HB0fWsFTgIt/0xb1M3vdELsULodk6h7thAZ1G8uqgK0PETstTVMO
	GerM8c8D7xrkTX+mw6D20qSYybxynxVSxKTUY=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:mime-version:in-reply-to:references:date
	:message-id:subject:from:to:cc:content-type;
	bh=gcBlbQSJ66O8l43WFg3Byw3tTuAisKdE4+X64W45osE=;
	b=ah5UtiJ+ny9uly3c6X6xwHC5p1VKcST7IxGd3sPcBIYdnweJq+tJlIoh7n/mYtUjdr
	KUPiZR15Dpt8yZed1aH3D7iiORfakKLZIc+0O+BUrj9Oi1adfvX14p8DRtTGdGjisRoo
	xK/Yby+Mvj6abiC//fyXdGmU43IhQ5S5hSaRvZP3oYnvG7OFFlWDGvf6fHW8LlUWeMzs
	R/BX4VvhwdXDL5hJIIyyL035FkpNfrvyEDDIDhJQaQak9ZVxI+ia1xHe/dPiY9aZm+k7
	GIVVD/o53VZdJPyIXIvORMA9ELoU0XzkRA4Fl38kl6SXf2iFlXCbsaYSvC661BqXADV1
	c2Og==
X-Gm-Message-State: ALoCoQnqsiSHOAoVF12ldqm9oTV1y43kVv4giCZtRpFIbG1JFkPgggp6nWgKYfFCJn3bW7E2X3YM
MIME-Version: 1.0
X-Received: by 10.180.90.107 with SMTP id bv11mr25949253wib.69.1441543332629; 
	Sun, 06 Sep 2015 05:42:12 -0700 (PDT)
Received: by 10.28.176.131 with HTTP; Sun, 6 Sep 2015 05:42:12 -0700 (PDT)
In-Reply-To: <CAFi_6yK_CFMEkhFCeXmh+LDRtLTBDibcE9q9owwQKpRf7CfWRw@mail.gmail.com>
References: <CAFi_6yK_CFMEkhFCeXmh+LDRtLTBDibcE9q9owwQKpRf7CfWRw@mail.gmail.com>
Date: Sun, 6 Sep 2015 13:42:12 +0100
Message-ID: <CAK4o1WyLXTZ-cxL-zhqw3hdPaA2n=Hr66FUpCHfFBaGEGRF6Jg@mail.gmail.com>
From: Justin Cormack <justin@specialbusservice.com>
To: Gareth Rushgrove <gareth@morethanseven.net>
Cc: mirageos-devel <MirageOS-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Xen network for mirage
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On 6 September 2015 at 12:10, Gareth Rushgrove <gareth@morethanseven.net> wrote:
> Hi
>
> I have a vague plan of automating the build-out of a box to run many
> unikernels, probably on Packet*.
>
> Does anyone have an up-to-date set of steps for installing Xen,
> including with a suitable network setup and that doesn't require
> physical access?
>
> Asking here as a somewhat brief look around turns up instructutions
> that require you to kill the network while you're connected, ignore
> the network setup, use a very old version of Xen or use a very old
> version of an operating system.
>
> I've heard rumours of the box that runs the the https://mirage.io/
> site. If someone has the installation steps documented for that those
> would be perfect.

For networking, it depends rather on how many IP addresses you have, I
tend to NAT for ipv4 and give my VMs real ipv6 addresses, so I leave
the eth0 config unchanged other than changing the ipv6 netmask to /128
so there is little chance of breaking your connection (v6 and v4 might
give you two ways in anyway). This is on Hetzner.

# Loopback device:
auto lo
iface lo inet loopback

# device: eth0
auto  eth0
iface eth0 inet static
  address   148.251.66.45
  broadcast 148.251.66.63
  netmask   255.255.255.224
  gateway   148.251.66.33
  # default route to access subnet
  up route add -net 148.251.66.32 netmask 255.255.255.224 gw 148.251.66.33 eth0

iface eth0 inet6 static
  address 2a01:4f8:202:302c::2
  netmask 128
  gateway fe80::1

auto dummy0
iface dummy0 inet static
  address 0.0.0.0
  netmask 0.0.0.0

auto br0
iface br0 inet static
  address   192.168.23.1
  broadcast 192.168.23.255
  netmask 255.255.255.0
  bridge_ports dummy0

iface br0 inet6 static
  address 2a01:4f8:202:302c::2
  netmask 64

(I add a dummy network as the bridge has no network ports attached
otherwise as eth0 is not on the bridge and Debian doesnt like bringing
up a bridge with no ports).

I then run ipv4 dhcp and radvd on the bridge to auto assign addresses to VMs.

As Thomas says the xen install is pretty easy; I really ought to
automate my setup; this machine was converted form a non Xen machine
some time back.

Justin

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Sun Sep 06 12:42:24 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sun, 06 Sep 2015 12:42:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZYZGy-0001gd-3o; Sun, 06 Sep 2015 12:42:16 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <justin@specialbusservice.com>) id 1ZYZGw-0001gY-QP
	for MirageOS-devel@lists.xenproject.org; Sun, 06 Sep 2015 12:42:14 +0000
Received: from [85.158.137.68] by server-2.bemta-3.messagelabs.com id
	37/6C-03652-5A43CE55; Sun, 06 Sep 2015 12:42:13 +0000
X-Env-Sender: justin@specialbusservice.com
X-Msg-Ref: server-12.tower-31.messagelabs.com!1441543333!41643046!1
X-Originating-IP: [209.85.212.176]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 4558 invoked from network); 6 Sep 2015 12:42:13 -0000
Received: from mail-wi0-f176.google.com (HELO mail-wi0-f176.google.com)
	(209.85.212.176)
	by server-12.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	6 Sep 2015 12:42:13 -0000
Received: by wicge5 with SMTP id ge5so57294638wic.0
	for <MirageOS-devel@lists.xenproject.org>;
	Sun, 06 Sep 2015 05:42:12 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=specialbusservice.com; s=google;
	h=mime-version:in-reply-to:references:date:message-id:subject:from:to
	:cc:content-type;
	bh=gcBlbQSJ66O8l43WFg3Byw3tTuAisKdE4+X64W45osE=;
	b=l/OVZ144aMrfhVJ7rP+5GgERVpArpRtXKed+Y/EbRA159tN4K7SCF6Jz+PhKLhNVfZ
	7JEE7fxv8uEWm2f4HB0fWsFTgIt/0xb1M3vdELsULodk6h7thAZ1G8uqgK0PETstTVMO
	GerM8c8D7xrkTX+mw6D20qSYybxynxVSxKTUY=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:mime-version:in-reply-to:references:date
	:message-id:subject:from:to:cc:content-type;
	bh=gcBlbQSJ66O8l43WFg3Byw3tTuAisKdE4+X64W45osE=;
	b=ah5UtiJ+ny9uly3c6X6xwHC5p1VKcST7IxGd3sPcBIYdnweJq+tJlIoh7n/mYtUjdr
	KUPiZR15Dpt8yZed1aH3D7iiORfakKLZIc+0O+BUrj9Oi1adfvX14p8DRtTGdGjisRoo
	xK/Yby+Mvj6abiC//fyXdGmU43IhQ5S5hSaRvZP3oYnvG7OFFlWDGvf6fHW8LlUWeMzs
	R/BX4VvhwdXDL5hJIIyyL035FkpNfrvyEDDIDhJQaQak9ZVxI+ia1xHe/dPiY9aZm+k7
	GIVVD/o53VZdJPyIXIvORMA9ELoU0XzkRA4Fl38kl6SXf2iFlXCbsaYSvC661BqXADV1
	c2Og==
X-Gm-Message-State: ALoCoQnqsiSHOAoVF12ldqm9oTV1y43kVv4giCZtRpFIbG1JFkPgggp6nWgKYfFCJn3bW7E2X3YM
MIME-Version: 1.0
X-Received: by 10.180.90.107 with SMTP id bv11mr25949253wib.69.1441543332629; 
	Sun, 06 Sep 2015 05:42:12 -0700 (PDT)
Received: by 10.28.176.131 with HTTP; Sun, 6 Sep 2015 05:42:12 -0700 (PDT)
In-Reply-To: <CAFi_6yK_CFMEkhFCeXmh+LDRtLTBDibcE9q9owwQKpRf7CfWRw@mail.gmail.com>
References: <CAFi_6yK_CFMEkhFCeXmh+LDRtLTBDibcE9q9owwQKpRf7CfWRw@mail.gmail.com>
Date: Sun, 6 Sep 2015 13:42:12 +0100
Message-ID: <CAK4o1WyLXTZ-cxL-zhqw3hdPaA2n=Hr66FUpCHfFBaGEGRF6Jg@mail.gmail.com>
From: Justin Cormack <justin@specialbusservice.com>
To: Gareth Rushgrove <gareth@morethanseven.net>
Cc: mirageos-devel <MirageOS-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Xen network for mirage
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On 6 September 2015 at 12:10, Gareth Rushgrove <gareth@morethanseven.net> wrote:
> Hi
>
> I have a vague plan of automating the build-out of a box to run many
> unikernels, probably on Packet*.
>
> Does anyone have an up-to-date set of steps for installing Xen,
> including with a suitable network setup and that doesn't require
> physical access?
>
> Asking here as a somewhat brief look around turns up instructutions
> that require you to kill the network while you're connected, ignore
> the network setup, use a very old version of Xen or use a very old
> version of an operating system.
>
> I've heard rumours of the box that runs the the https://mirage.io/
> site. If someone has the installation steps documented for that those
> would be perfect.

For networking, it depends rather on how many IP addresses you have, I
tend to NAT for ipv4 and give my VMs real ipv6 addresses, so I leave
the eth0 config unchanged other than changing the ipv6 netmask to /128
so there is little chance of breaking your connection (v6 and v4 might
give you two ways in anyway). This is on Hetzner.

# Loopback device:
auto lo
iface lo inet loopback

# device: eth0
auto  eth0
iface eth0 inet static
  address   148.251.66.45
  broadcast 148.251.66.63
  netmask   255.255.255.224
  gateway   148.251.66.33
  # default route to access subnet
  up route add -net 148.251.66.32 netmask 255.255.255.224 gw 148.251.66.33 eth0

iface eth0 inet6 static
  address 2a01:4f8:202:302c::2
  netmask 128
  gateway fe80::1

auto dummy0
iface dummy0 inet static
  address 0.0.0.0
  netmask 0.0.0.0

auto br0
iface br0 inet static
  address   192.168.23.1
  broadcast 192.168.23.255
  netmask 255.255.255.0
  bridge_ports dummy0

iface br0 inet6 static
  address 2a01:4f8:202:302c::2
  netmask 64

(I add a dummy network as the bridge has no network ports attached
otherwise as eth0 is not on the bridge and Debian doesnt like bringing
up a bridge with no ports).

I then run ipv4 dhcp and radvd on the bridge to auto assign addresses to VMs.

As Thomas says the xen install is pretty easy; I really ought to
automate my setup; this machine was converted form a non Xen machine
some time back.

Justin

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Sun Sep 06 13:27:09 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sun, 06 Sep 2015 13:27:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZYZyL-0004WD-GK; Sun, 06 Sep 2015 13:27:05 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <prvs=6846f72c6=Dave.Scott@citrix.com>)
	id 1ZYZyJ-0004W8-Ve
	for MirageOS-devel@lists.xenproject.org; Sun, 06 Sep 2015 13:27:04 +0000
Received: from [193.109.254.147] by server-10.bemta-14.messagelabs.com id
	E7/74-01143-72F3CE55; Sun, 06 Sep 2015 13:27:03 +0000
X-Env-Sender: prvs=6846f72c6=Dave.Scott@citrix.com
X-Msg-Ref: server-7.tower-27.messagelabs.com!1441546022!47200650!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.0 required=7.0 tests=received_headers: No 
	Received headers
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 30825 invoked from network); 6 Sep 2015 13:27:02 -0000
Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
	by server-7.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	6 Sep 2015 13:27:02 -0000
X-IronPort-AV: E=Sophos;i="5.17,479,1437436800"; 
   d="scan'208";a="2483816"
From: Dave Scott <Dave.Scott@citrix.com>
To: Gareth Rushgrove <gareth@morethanseven.net>
Thread-Topic: [MirageOS-devel] Xen network for mirage
Thread-Index: AQHQ6JTZgOrzZ/fm50WJz6m2puNzXp4vXLmA
Date: Sun, 6 Sep 2015 13:26:59 +0000
Message-ID: <A6EE1B89-4D33-4D57-8FF1-C8AD110B2348@citrix.com>
References: <CAFi_6yK_CFMEkhFCeXmh+LDRtLTBDibcE9q9owwQKpRf7CfWRw@mail.gmail.com>
In-Reply-To: <CAFi_6yK_CFMEkhFCeXmh+LDRtLTBDibcE9q9owwQKpRf7CfWRw@mail.gmail.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Content-ID: <3F01B632810AFC4A9C44C329EFEB4BFD@citrix.com>
MIME-Version: 1.0
X-DLP: AMS1
Cc: mirageos-devel <MirageOS-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Xen network for mirage
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

DQo+IE9uIDYgU2VwIDIwMTUsIGF0IDEyOjEwLCBHYXJldGggUnVzaGdyb3ZlIDxnYXJldGhAbW9y
ZXRoYW5zZXZlbi5uZXQ+IHdyb3RlOg0KPiANCj4gSGkNCj4gDQo+IEkgaGF2ZSBhIHZhZ3VlIHBs
YW4gb2YgYXV0b21hdGluZyB0aGUgYnVpbGQtb3V0IG9mIGEgYm94IHRvIHJ1biBtYW55DQo+IHVu
aWtlcm5lbHMsIHByb2JhYmx5IG9uIFBhY2tldCouDQo+IA0KPiBEb2VzIGFueW9uZSBoYXZlIGFu
IHVwLXRvLWRhdGUgc2V0IG9mIHN0ZXBzIGZvciBpbnN0YWxsaW5nIFhlbiwNCj4gaW5jbHVkaW5n
IHdpdGggYSBzdWl0YWJsZSBuZXR3b3JrIHNldHVwIGFuZCB0aGF0IGRvZXNuJ3QgcmVxdWlyZQ0K
PiBwaHlzaWNhbCBhY2Nlc3M/DQo+IA0KPiBBc2tpbmcgaGVyZSBhcyBhIHNvbWV3aGF0IGJyaWVm
IGxvb2sgYXJvdW5kIHR1cm5zIHVwIGluc3RydWN0dXRpb25zDQo+IHRoYXQgcmVxdWlyZSB5b3Ug
dG8ga2lsbCB0aGUgbmV0d29yayB3aGlsZSB5b3UncmUgY29ubmVjdGVkLCBpZ25vcmUNCj4gdGhl
IG5ldHdvcmsgc2V0dXAsIHVzZSBhIHZlcnkgb2xkIHZlcnNpb24gb2YgWGVuIG9yIHVzZSBhIHZl
cnkgb2xkDQo+IHZlcnNpb24gb2YgYW4gb3BlcmF0aW5nIHN5c3RlbS4NCj4gDQo+IEkndmUgaGVh
cmQgcnVtb3VycyBvZiB0aGUgYm94IHRoYXQgcnVucyB0aGUgdGhlIGh0dHBzOi8vbWlyYWdlLmlv
Lw0KPiBzaXRlLiBJZiBzb21lb25lIGhhcyB0aGUgaW5zdGFsbGF0aW9uIHN0ZXBzIGRvY3VtZW50
ZWQgZm9yIHRoYXQgdGhvc2UNCj4gd291bGQgYmUgcGVyZmVjdC4NCg0KSeKAmW0gZXhwZXJpbWVu
dGluZyB3aXRoIGEgQ2VudE9TIDcgYm94IChmcm9tIGJ5dGVtYXJrKS4gU28gZmFyIEnigJl2ZSBo
YWQgdG86DQoNCltEaXNjbGFpbWVyLCB0aGlzIGlzIGZyb20gbWVtb3J5IGFuZCBteSBiYXNoIGhp
c3RvcnkuIEkgZ3Vlc3MgSSBzaG91bGQgd3JpdGUgdGhpcyBkb3duIHNvbWV3aGVyZSFdDQoNCi0g
aW5zdGFsbCBieXRlbWFyaydzIGNhbm5lZCBDZW50T1MgNyBpbWFnZQ0KDQotIGluc3RhbGwgdGhl
IFhlbjRDZW50T1M3IHJlcG86DQoNCnl1bSBpbnN0YWxsIGNlbnRvcy1yZWxlYXNlLXhlbg0KDQot
IGluc3RhbGwgWGVuLTQuNA0KDQp5dW0gLS1lbmFibGVyZXBvPXZpcnQteGVuLTQ0LXRlc3Rpbmcg
aW5zdGFsbCB4ZW4NCg0KLSBmaXggbXkgL2V0Yy9kZWZhdWx0L2dydWI6DQoNCmRpZmYgLXUgL3Jv
b3QvZ3J1Yi5vcmlnIC9ldGMvZGVmYXVsdC9ncnViIA0KLS0tIC9yb290L2dydWIub3JpZwkyMDE1
LTA5LTA2IDEzOjM0OjA0LjAwMDAwMDAwMCArMDEwMA0KKysrIC9ldGMvZGVmYXVsdC9ncnViCTIw
MTUtMDktMDYgMTM6MzE6NDMuMDAwMDAwMDAwICswMTAwDQpAQCAtOCw1ICs4LDUgQEANCiAjIyBT
ZXJpYWwgY29uc29sZQ0KIEdSVUJfVEVSTUlOQUw9ImNvbnNvbGUgc2VyaWFsIg0KIEdSVUJfU0VS
SUFMX0NPTU1BTkQ9InNlcmlhbCAtLXNwZWVkPTExNTIwMCAtLXVuaXQ9MCAtLXdvcmQ9OCAtLXBh
cml0eT1ubyAtLXN0b3A9MSAtLXBvcnQ9MHgzZjgiDQotR1JVQl9DTURMSU5FX0xJTlVYX1hFTl9S
RVBMQUNFX0RFRkFVTFQ9ImNvbnNvbGU9aHZjMCBlYXJseXByaW50az14ZW4gbm9tb2Rlc2V0Ig0K
K0dSVUJfQ01ETElORV9MSU5VWF9YRU5fUkVQTEFDRV9ERUZBVUxUPSJjb25zb2xlPWh2YzAgZWFy
bHlwcmludGs9eGVuIG5vbW9kZXNldCBiaW9zZGV2bmFtZT0wIG5ldC5pZm5hbWVzPTAgcmQuYXV0
byINCiBHUlVCX0NNRExJTkVfWEVOX0RFRkFVTFQ9ImRvbTBfbWVtPTEwMjRNLG1heDoxMDI0TSBj
cHVpbmZvIGNvbTE9MTE1MjAwLDhuMSBjb25zb2xlPWNvbTEsdHR5IGxvZ2x2bD1hbGwgZ3Vlc3Rf
bG9nbHZsPWFsbOKAnQ0KDQpJbiBwYXJ0aWN1bGFyIHRoZSBsYWNrIG9mIOKAmHJkLmF1dG/igJkg
YnJva2UgdGhlIGJvb3QgYmVjYXVzZSByb290IGlzIG9uIGEgL2Rldi9tZCBkZXZpY2UuDQoNCi0g
cmVnZW5lcmF0ZSB0aGUgZ3J1Yi5jZmcNCg0KZ3J1YjItbWtjb25maWcgLW8gL2Jvb3QvZ3J1YjIv
Z3J1Yi5jZmcNCg0KLSBjcmVhdGUgYSBicmlkZ2UgY29uZmlnIGluIC9ldGMvc3lzY29uZmlnL25l
dHdvcmstc2NyaXB0cy4gSSBjb3BpZWQgdGhlIGZyYWdtZW50cyBoZXJlOiBodHRwOi8vd2lraS54
ZW5wcm9qZWN0Lm9yZy93aWtpL05ldHdvcmtfQ29uZmlndXJhdGlvbl9FeGFtcGxlc18oWGVuXzQu
MSUyQikuIE5vdGUgdGhhdCB0aGUg4oCYc2VydmljZSBuZXR3b3JrIHJlc3RhcnTigJkgZGlkbuKA
mXQgbWFuYWdlIHRvIGNsZWFubHkgZXJhc2UgdGhlIG9sZCBjb25maWd1cmF0aW9uIGFuZCBJIGVu
ZGVkIHVwIHdpdGggYSBkb2RneSByb3V0aW5nIHRhYmxlLiBJdCB3YXMgYmV0dGVyIHRvIHJ1biDi
gJhpZmRvd24gZXRoMDsgaWZ1cCB4ZW5icjA7IGlmdXAgZXRoMOKAmSBteXNlbGYuDQoNCkF0IHRo
aXMgcG9pbnQgbXkgYm94IGlzIGFibGUgdG8gcnVuIGRvbWFpbnMgd2l0aCBicmlkZ2VkIG5ldHdv
cmtpbmcuIEnigJltIHBsYW5uaW5nIG9uIGJ1aWxkaW5nIGFuZCBpbnN0YWxsaW5nIHRoZSBSUE1z
IGZvciB0aGUgeGFwaSB0b29sc3RhY2sgKGFzIHVzZWQgaW4gWGVuU2VydmVyKSBhbmQgc2V0dGlu
ZyB1cCBqaXRzdSBuZXh0Lg0KDQpDaGVlcnMsDQpEYXZlDQoNCg0KPiANCj4gQ2hlZXJzDQo+IA0K
PiBHYXJldGgNCj4gDQo+ICogaHR0cHM6Ly93d3cucGFja2V0Lm5ldC8uIEFQSSBwcm92aXNpb25l
ZCBiYXJlIG1ldGFsIG1hY2hpbmVzIHdpdGgNCj4gdGhlIHJlbGV2YW50IHZpcnR1YWxpc2F0aW9u
IHN1cHBvcnQsIDE2R0IgZm9yIGFib3V0IMKjMTgwIGEgbW9udGggKGFuZA0KPiBiaWxsZWQgYnkg
dGhlIGhvdXIpLg0KPiANCj4gLS0gDQo+IEdhcmV0aCBSdXNoZ3JvdmUNCj4gQGdhcmV0aHINCj4g
DQo+IGRldm9wc3dlZWtseS5jb20NCj4gbW9yZXRoYW5zZXZlbi5uZXQNCj4gZ2FyZXRocnVzaGdy
b3ZlLmNvbQ0KPiANCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX18NCj4gTWlyYWdlT1MtZGV2ZWwgbWFpbGluZyBsaXN0DQo+IE1pcmFnZU9TLWRldmVsQGxp
c3RzLnhlbnByb2plY3Qub3JnDQo+IGh0dHA6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmlu
L21haWxtYW4vbGlzdGluZm8vbWlyYWdlb3MtZGV2ZWwNCg0KX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX18KTWlyYWdlT1MtZGV2ZWwgbWFpbGluZyBsaXN0Ck1p
cmFnZU9TLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHA6Ly9saXN0cy54ZW5wcm9qZWN0
Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vbWlyYWdlb3MtZGV2ZWwK

From mirageos-devel-bounces@lists.xenproject.org Sun Sep 06 13:27:09 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sun, 06 Sep 2015 13:27:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZYZyL-0004WD-GK; Sun, 06 Sep 2015 13:27:05 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <prvs=6846f72c6=Dave.Scott@citrix.com>)
	id 1ZYZyJ-0004W8-Ve
	for MirageOS-devel@lists.xenproject.org; Sun, 06 Sep 2015 13:27:04 +0000
Received: from [193.109.254.147] by server-10.bemta-14.messagelabs.com id
	E7/74-01143-72F3CE55; Sun, 06 Sep 2015 13:27:03 +0000
X-Env-Sender: prvs=6846f72c6=Dave.Scott@citrix.com
X-Msg-Ref: server-7.tower-27.messagelabs.com!1441546022!47200650!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.0 required=7.0 tests=received_headers: No 
	Received headers
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 30825 invoked from network); 6 Sep 2015 13:27:02 -0000
Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
	by server-7.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	6 Sep 2015 13:27:02 -0000
X-IronPort-AV: E=Sophos;i="5.17,479,1437436800"; 
   d="scan'208";a="2483816"
From: Dave Scott <Dave.Scott@citrix.com>
To: Gareth Rushgrove <gareth@morethanseven.net>
Thread-Topic: [MirageOS-devel] Xen network for mirage
Thread-Index: AQHQ6JTZgOrzZ/fm50WJz6m2puNzXp4vXLmA
Date: Sun, 6 Sep 2015 13:26:59 +0000
Message-ID: <A6EE1B89-4D33-4D57-8FF1-C8AD110B2348@citrix.com>
References: <CAFi_6yK_CFMEkhFCeXmh+LDRtLTBDibcE9q9owwQKpRf7CfWRw@mail.gmail.com>
In-Reply-To: <CAFi_6yK_CFMEkhFCeXmh+LDRtLTBDibcE9q9owwQKpRf7CfWRw@mail.gmail.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Content-ID: <3F01B632810AFC4A9C44C329EFEB4BFD@citrix.com>
MIME-Version: 1.0
X-DLP: AMS1
Cc: mirageos-devel <MirageOS-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Xen network for mirage
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

DQo+IE9uIDYgU2VwIDIwMTUsIGF0IDEyOjEwLCBHYXJldGggUnVzaGdyb3ZlIDxnYXJldGhAbW9y
ZXRoYW5zZXZlbi5uZXQ+IHdyb3RlOg0KPiANCj4gSGkNCj4gDQo+IEkgaGF2ZSBhIHZhZ3VlIHBs
YW4gb2YgYXV0b21hdGluZyB0aGUgYnVpbGQtb3V0IG9mIGEgYm94IHRvIHJ1biBtYW55DQo+IHVu
aWtlcm5lbHMsIHByb2JhYmx5IG9uIFBhY2tldCouDQo+IA0KPiBEb2VzIGFueW9uZSBoYXZlIGFu
IHVwLXRvLWRhdGUgc2V0IG9mIHN0ZXBzIGZvciBpbnN0YWxsaW5nIFhlbiwNCj4gaW5jbHVkaW5n
IHdpdGggYSBzdWl0YWJsZSBuZXR3b3JrIHNldHVwIGFuZCB0aGF0IGRvZXNuJ3QgcmVxdWlyZQ0K
PiBwaHlzaWNhbCBhY2Nlc3M/DQo+IA0KPiBBc2tpbmcgaGVyZSBhcyBhIHNvbWV3aGF0IGJyaWVm
IGxvb2sgYXJvdW5kIHR1cm5zIHVwIGluc3RydWN0dXRpb25zDQo+IHRoYXQgcmVxdWlyZSB5b3Ug
dG8ga2lsbCB0aGUgbmV0d29yayB3aGlsZSB5b3UncmUgY29ubmVjdGVkLCBpZ25vcmUNCj4gdGhl
IG5ldHdvcmsgc2V0dXAsIHVzZSBhIHZlcnkgb2xkIHZlcnNpb24gb2YgWGVuIG9yIHVzZSBhIHZl
cnkgb2xkDQo+IHZlcnNpb24gb2YgYW4gb3BlcmF0aW5nIHN5c3RlbS4NCj4gDQo+IEkndmUgaGVh
cmQgcnVtb3VycyBvZiB0aGUgYm94IHRoYXQgcnVucyB0aGUgdGhlIGh0dHBzOi8vbWlyYWdlLmlv
Lw0KPiBzaXRlLiBJZiBzb21lb25lIGhhcyB0aGUgaW5zdGFsbGF0aW9uIHN0ZXBzIGRvY3VtZW50
ZWQgZm9yIHRoYXQgdGhvc2UNCj4gd291bGQgYmUgcGVyZmVjdC4NCg0KSeKAmW0gZXhwZXJpbWVu
dGluZyB3aXRoIGEgQ2VudE9TIDcgYm94IChmcm9tIGJ5dGVtYXJrKS4gU28gZmFyIEnigJl2ZSBo
YWQgdG86DQoNCltEaXNjbGFpbWVyLCB0aGlzIGlzIGZyb20gbWVtb3J5IGFuZCBteSBiYXNoIGhp
c3RvcnkuIEkgZ3Vlc3MgSSBzaG91bGQgd3JpdGUgdGhpcyBkb3duIHNvbWV3aGVyZSFdDQoNCi0g
aW5zdGFsbCBieXRlbWFyaydzIGNhbm5lZCBDZW50T1MgNyBpbWFnZQ0KDQotIGluc3RhbGwgdGhl
IFhlbjRDZW50T1M3IHJlcG86DQoNCnl1bSBpbnN0YWxsIGNlbnRvcy1yZWxlYXNlLXhlbg0KDQot
IGluc3RhbGwgWGVuLTQuNA0KDQp5dW0gLS1lbmFibGVyZXBvPXZpcnQteGVuLTQ0LXRlc3Rpbmcg
aW5zdGFsbCB4ZW4NCg0KLSBmaXggbXkgL2V0Yy9kZWZhdWx0L2dydWI6DQoNCmRpZmYgLXUgL3Jv
b3QvZ3J1Yi5vcmlnIC9ldGMvZGVmYXVsdC9ncnViIA0KLS0tIC9yb290L2dydWIub3JpZwkyMDE1
LTA5LTA2IDEzOjM0OjA0LjAwMDAwMDAwMCArMDEwMA0KKysrIC9ldGMvZGVmYXVsdC9ncnViCTIw
MTUtMDktMDYgMTM6MzE6NDMuMDAwMDAwMDAwICswMTAwDQpAQCAtOCw1ICs4LDUgQEANCiAjIyBT
ZXJpYWwgY29uc29sZQ0KIEdSVUJfVEVSTUlOQUw9ImNvbnNvbGUgc2VyaWFsIg0KIEdSVUJfU0VS
SUFMX0NPTU1BTkQ9InNlcmlhbCAtLXNwZWVkPTExNTIwMCAtLXVuaXQ9MCAtLXdvcmQ9OCAtLXBh
cml0eT1ubyAtLXN0b3A9MSAtLXBvcnQ9MHgzZjgiDQotR1JVQl9DTURMSU5FX0xJTlVYX1hFTl9S
RVBMQUNFX0RFRkFVTFQ9ImNvbnNvbGU9aHZjMCBlYXJseXByaW50az14ZW4gbm9tb2Rlc2V0Ig0K
K0dSVUJfQ01ETElORV9MSU5VWF9YRU5fUkVQTEFDRV9ERUZBVUxUPSJjb25zb2xlPWh2YzAgZWFy
bHlwcmludGs9eGVuIG5vbW9kZXNldCBiaW9zZGV2bmFtZT0wIG5ldC5pZm5hbWVzPTAgcmQuYXV0
byINCiBHUlVCX0NNRExJTkVfWEVOX0RFRkFVTFQ9ImRvbTBfbWVtPTEwMjRNLG1heDoxMDI0TSBj
cHVpbmZvIGNvbTE9MTE1MjAwLDhuMSBjb25zb2xlPWNvbTEsdHR5IGxvZ2x2bD1hbGwgZ3Vlc3Rf
bG9nbHZsPWFsbOKAnQ0KDQpJbiBwYXJ0aWN1bGFyIHRoZSBsYWNrIG9mIOKAmHJkLmF1dG/igJkg
YnJva2UgdGhlIGJvb3QgYmVjYXVzZSByb290IGlzIG9uIGEgL2Rldi9tZCBkZXZpY2UuDQoNCi0g
cmVnZW5lcmF0ZSB0aGUgZ3J1Yi5jZmcNCg0KZ3J1YjItbWtjb25maWcgLW8gL2Jvb3QvZ3J1YjIv
Z3J1Yi5jZmcNCg0KLSBjcmVhdGUgYSBicmlkZ2UgY29uZmlnIGluIC9ldGMvc3lzY29uZmlnL25l
dHdvcmstc2NyaXB0cy4gSSBjb3BpZWQgdGhlIGZyYWdtZW50cyBoZXJlOiBodHRwOi8vd2lraS54
ZW5wcm9qZWN0Lm9yZy93aWtpL05ldHdvcmtfQ29uZmlndXJhdGlvbl9FeGFtcGxlc18oWGVuXzQu
MSUyQikuIE5vdGUgdGhhdCB0aGUg4oCYc2VydmljZSBuZXR3b3JrIHJlc3RhcnTigJkgZGlkbuKA
mXQgbWFuYWdlIHRvIGNsZWFubHkgZXJhc2UgdGhlIG9sZCBjb25maWd1cmF0aW9uIGFuZCBJIGVu
ZGVkIHVwIHdpdGggYSBkb2RneSByb3V0aW5nIHRhYmxlLiBJdCB3YXMgYmV0dGVyIHRvIHJ1biDi
gJhpZmRvd24gZXRoMDsgaWZ1cCB4ZW5icjA7IGlmdXAgZXRoMOKAmSBteXNlbGYuDQoNCkF0IHRo
aXMgcG9pbnQgbXkgYm94IGlzIGFibGUgdG8gcnVuIGRvbWFpbnMgd2l0aCBicmlkZ2VkIG5ldHdv
cmtpbmcuIEnigJltIHBsYW5uaW5nIG9uIGJ1aWxkaW5nIGFuZCBpbnN0YWxsaW5nIHRoZSBSUE1z
IGZvciB0aGUgeGFwaSB0b29sc3RhY2sgKGFzIHVzZWQgaW4gWGVuU2VydmVyKSBhbmQgc2V0dGlu
ZyB1cCBqaXRzdSBuZXh0Lg0KDQpDaGVlcnMsDQpEYXZlDQoNCg0KPiANCj4gQ2hlZXJzDQo+IA0K
PiBHYXJldGgNCj4gDQo+ICogaHR0cHM6Ly93d3cucGFja2V0Lm5ldC8uIEFQSSBwcm92aXNpb25l
ZCBiYXJlIG1ldGFsIG1hY2hpbmVzIHdpdGgNCj4gdGhlIHJlbGV2YW50IHZpcnR1YWxpc2F0aW9u
IHN1cHBvcnQsIDE2R0IgZm9yIGFib3V0IMKjMTgwIGEgbW9udGggKGFuZA0KPiBiaWxsZWQgYnkg
dGhlIGhvdXIpLg0KPiANCj4gLS0gDQo+IEdhcmV0aCBSdXNoZ3JvdmUNCj4gQGdhcmV0aHINCj4g
DQo+IGRldm9wc3dlZWtseS5jb20NCj4gbW9yZXRoYW5zZXZlbi5uZXQNCj4gZ2FyZXRocnVzaGdy
b3ZlLmNvbQ0KPiANCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX18NCj4gTWlyYWdlT1MtZGV2ZWwgbWFpbGluZyBsaXN0DQo+IE1pcmFnZU9TLWRldmVsQGxp
c3RzLnhlbnByb2plY3Qub3JnDQo+IGh0dHA6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmlu
L21haWxtYW4vbGlzdGluZm8vbWlyYWdlb3MtZGV2ZWwNCg0KX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX18KTWlyYWdlT1MtZGV2ZWwgbWFpbGluZyBsaXN0Ck1p
cmFnZU9TLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHA6Ly9saXN0cy54ZW5wcm9qZWN0
Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vbWlyYWdlb3MtZGV2ZWwK

From mirageos-devel-bounces@lists.xenproject.org Mon Sep 07 09:57:00 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 07 Sep 2015 09:57:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZYtAQ-00077Z-3r; Mon, 07 Sep 2015 09:56:50 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <thomas.gazagnaire@gmail.com>) id 1ZYtAO-00075Z-Ql
	for mirageos-devel@lists.xenproject.org; Mon, 07 Sep 2015 09:56:48 +0000
Received: from [193.109.254.147] by server-3.bemta-14.messagelabs.com id
	1C/5A-25435-06F5DE55; Mon, 07 Sep 2015 09:56:48 +0000
X-Env-Sender: thomas.gazagnaire@gmail.com
X-Msg-Ref: server-2.tower-27.messagelabs.com!1441619806!47412953!1
X-Originating-IP: [209.85.212.172]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 5584 invoked from network); 7 Sep 2015 09:56:47 -0000
Received: from mail-wi0-f172.google.com (HELO mail-wi0-f172.google.com)
	(209.85.212.172)
	by server-2.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	7 Sep 2015 09:56:47 -0000
Received: by wicge5 with SMTP id ge5so77616895wic.0
	for <mirageos-devel@lists.xenproject.org>;
	Mon, 07 Sep 2015 02:56:46 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=sender:content-type:mime-version:subject:from:in-reply-to:date:cc
	:content-transfer-encoding:message-id:references:to;
	bh=DikOJlyWF80cVRoSdEWLeV367qPS9sNumhlKRdeDhI8=;
	b=mIF+4fh63MmusEZY4IUEgs58MWoWG9V1unyP7hCCIn1KSDR7RTXs4AH3sdZLFZWFMJ
	PKZO0t2GrWFXCezJB+H3DJtvZLOCqTx7NHQHSuk5BGL8Yl3f5+iyfeUQPIBRRq/SuGuX
	XTdFf1sEyks3P8wZxtZzSr05ya9OwXKlbdB16SymRXHSqEVWugzXZfVRR0DW8uNULSVK
	Q96DnMpStyEcDvT/0Q0x1Yn3wJaPCpCGXRAnNOHSipe/xG3z4xJKQI43vF8xr+wn8EO8
	tA44/iaeSQRO5Pp7LxcA8qBtvQOXog3JK9x0HyaYJg7/dj+Jv0GlDb2bE0bPLamtSyAS
	G7Gg==
X-Received: by 10.180.100.74 with SMTP id ew10mr33904397wib.12.1441619806642; 
	Mon, 07 Sep 2015 02:56:46 -0700 (PDT)
Received: from piana.mac.cl.cam.ac.uk (piana.mac.cl.cam.ac.uk. [128.232.56.38])
	by smtp.gmail.com with ESMTPSA id
	x11sm19456092wia.19.2015.09.07.02.56.45
	(version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128);
	Mon, 07 Sep 2015 02:56:45 -0700 (PDT)
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\))
From: Thomas Gazagnaire <thomas@gazagnaire.org>
In-Reply-To: <CAG4opy8YR+ENpJK5TL_SyD0Xtiv-xXieCR34pf54qSzXFpjmdQ@mail.gmail.com>
Date: Mon, 7 Sep 2015 10:56:45 +0100
Message-Id: <916479F0-FA36-46BF-AE9C-418D780F55B3@gazagnaire.org>
References: <D881F4F5-3474-4E9E-BD0C-C947DD1B4499@gazagnaire.org>
	<CAG4opy-QbpOgfTjW-O4NV5zRsL+PJbFV2Wn45FcC5RYOc_5jnA@mail.gmail.com>
	<CAG4opy9EU6==cVSBQ_CfK5c6aFgiyecZ0Y0Cfcz5cQ+N2zB0_Q@mail.gmail.com>
	<CAG4opy8NcGYROxJZwL9KD0z4dxT=GXu+hhEeq7vraXBnjbNfvg@mail.gmail.com>
	<362CE0CB-96EE-4924-88B2-B3F904B77F28@gazagnaire.org>
	<CAG4opy8YR+ENpJK5TL_SyD0Xtiv-xXieCR34pf54qSzXFpjmdQ@mail.gmail.com>
To: Thomas Leonard <talex5@gmail.com>
X-Mailer: Apple Mail (2.2104)
Cc: mirageos-devel <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Irmin API evolution
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

> However, I think we should remove "create" from the store interfaces
> anyway. In Irmin-IndexedDB, I want to pass database connections to the
> internal RW and AO stores, not a config. It looks like I can attach
> arbitrary data to config objects, but doing this loses compile-time
> type checking (it would be possible to call it without providing a
> connection).

I agree. Your examples are convincing, and I think having the high-level and low-level stores having a different interface makes sense as it will allow to make the best design choices at each layer.

>>> [ And ideally, it would make more sense to me if you only specified
>>> the commit message when making a commit. The rest of the strings just
>>> get thrown away, I think. ]
>> 
>> The initial idea was to use that task to (i) populate an audit log on all the database operations (including reads) and (ii) attach the debug messages to the task, instead of throwing them on the error channel. None of these have been completed yet, but would be nice if they are still possible to do later.
> 
> These things don't sound very Irmin-specific, or connected to the Git
> log message. Perhaps we could provide a wrapper for logging?
> 
> module AuditedStore (S : BC.STORE) : sig
>  include BC.STORE
>  val create : Logger.t -> S.t -> t
>  ...
> end

What if you want to commit on every read (costly, but it'd be possible to do now by passing a flag in the config)?

Also, my initial idea for logging was to pass a store handle (and its task) to the Log.debug functions, so that the log line is appended in the task's commit message (that's why there is a `Task.add`). By doing so, we could have all the debug message for a specific high-level command appears in the commit message. Not sure how practical is it, but I though it could be a nice feature.

I'm not sure how you can do that if you remove the task from all the read operations.

On the other hand, having immutable, simple read-operations is very useful when designing the API. Currently, the HTTP "REST" [1] API doesn't require a client task for read operations. Would be good to have a consistent API across all backends, so that could be an argument for dropping the task for high-level reads.


About the wrapper: it's a good idea, we could have a default "audit" branch to store this log.

Thomas

[1] https://github.com/mirage/irmin/issues/282#issuecomment-136806513
_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Mon Sep 07 09:57:00 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 07 Sep 2015 09:57:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZYtAQ-00077Z-3r; Mon, 07 Sep 2015 09:56:50 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <thomas.gazagnaire@gmail.com>) id 1ZYtAO-00075Z-Ql
	for mirageos-devel@lists.xenproject.org; Mon, 07 Sep 2015 09:56:48 +0000
Received: from [193.109.254.147] by server-3.bemta-14.messagelabs.com id
	1C/5A-25435-06F5DE55; Mon, 07 Sep 2015 09:56:48 +0000
X-Env-Sender: thomas.gazagnaire@gmail.com
X-Msg-Ref: server-2.tower-27.messagelabs.com!1441619806!47412953!1
X-Originating-IP: [209.85.212.172]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 5584 invoked from network); 7 Sep 2015 09:56:47 -0000
Received: from mail-wi0-f172.google.com (HELO mail-wi0-f172.google.com)
	(209.85.212.172)
	by server-2.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	7 Sep 2015 09:56:47 -0000
Received: by wicge5 with SMTP id ge5so77616895wic.0
	for <mirageos-devel@lists.xenproject.org>;
	Mon, 07 Sep 2015 02:56:46 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=sender:content-type:mime-version:subject:from:in-reply-to:date:cc
	:content-transfer-encoding:message-id:references:to;
	bh=DikOJlyWF80cVRoSdEWLeV367qPS9sNumhlKRdeDhI8=;
	b=mIF+4fh63MmusEZY4IUEgs58MWoWG9V1unyP7hCCIn1KSDR7RTXs4AH3sdZLFZWFMJ
	PKZO0t2GrWFXCezJB+H3DJtvZLOCqTx7NHQHSuk5BGL8Yl3f5+iyfeUQPIBRRq/SuGuX
	XTdFf1sEyks3P8wZxtZzSr05ya9OwXKlbdB16SymRXHSqEVWugzXZfVRR0DW8uNULSVK
	Q96DnMpStyEcDvT/0Q0x1Yn3wJaPCpCGXRAnNOHSipe/xG3z4xJKQI43vF8xr+wn8EO8
	tA44/iaeSQRO5Pp7LxcA8qBtvQOXog3JK9x0HyaYJg7/dj+Jv0GlDb2bE0bPLamtSyAS
	G7Gg==
X-Received: by 10.180.100.74 with SMTP id ew10mr33904397wib.12.1441619806642; 
	Mon, 07 Sep 2015 02:56:46 -0700 (PDT)
Received: from piana.mac.cl.cam.ac.uk (piana.mac.cl.cam.ac.uk. [128.232.56.38])
	by smtp.gmail.com with ESMTPSA id
	x11sm19456092wia.19.2015.09.07.02.56.45
	(version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128);
	Mon, 07 Sep 2015 02:56:45 -0700 (PDT)
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\))
From: Thomas Gazagnaire <thomas@gazagnaire.org>
In-Reply-To: <CAG4opy8YR+ENpJK5TL_SyD0Xtiv-xXieCR34pf54qSzXFpjmdQ@mail.gmail.com>
Date: Mon, 7 Sep 2015 10:56:45 +0100
Message-Id: <916479F0-FA36-46BF-AE9C-418D780F55B3@gazagnaire.org>
References: <D881F4F5-3474-4E9E-BD0C-C947DD1B4499@gazagnaire.org>
	<CAG4opy-QbpOgfTjW-O4NV5zRsL+PJbFV2Wn45FcC5RYOc_5jnA@mail.gmail.com>
	<CAG4opy9EU6==cVSBQ_CfK5c6aFgiyecZ0Y0Cfcz5cQ+N2zB0_Q@mail.gmail.com>
	<CAG4opy8NcGYROxJZwL9KD0z4dxT=GXu+hhEeq7vraXBnjbNfvg@mail.gmail.com>
	<362CE0CB-96EE-4924-88B2-B3F904B77F28@gazagnaire.org>
	<CAG4opy8YR+ENpJK5TL_SyD0Xtiv-xXieCR34pf54qSzXFpjmdQ@mail.gmail.com>
To: Thomas Leonard <talex5@gmail.com>
X-Mailer: Apple Mail (2.2104)
Cc: mirageos-devel <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Irmin API evolution
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

> However, I think we should remove "create" from the store interfaces
> anyway. In Irmin-IndexedDB, I want to pass database connections to the
> internal RW and AO stores, not a config. It looks like I can attach
> arbitrary data to config objects, but doing this loses compile-time
> type checking (it would be possible to call it without providing a
> connection).

I agree. Your examples are convincing, and I think having the high-level and low-level stores having a different interface makes sense as it will allow to make the best design choices at each layer.

>>> [ And ideally, it would make more sense to me if you only specified
>>> the commit message when making a commit. The rest of the strings just
>>> get thrown away, I think. ]
>> 
>> The initial idea was to use that task to (i) populate an audit log on all the database operations (including reads) and (ii) attach the debug messages to the task, instead of throwing them on the error channel. None of these have been completed yet, but would be nice if they are still possible to do later.
> 
> These things don't sound very Irmin-specific, or connected to the Git
> log message. Perhaps we could provide a wrapper for logging?
> 
> module AuditedStore (S : BC.STORE) : sig
>  include BC.STORE
>  val create : Logger.t -> S.t -> t
>  ...
> end

What if you want to commit on every read (costly, but it'd be possible to do now by passing a flag in the config)?

Also, my initial idea for logging was to pass a store handle (and its task) to the Log.debug functions, so that the log line is appended in the task's commit message (that's why there is a `Task.add`). By doing so, we could have all the debug message for a specific high-level command appears in the commit message. Not sure how practical is it, but I though it could be a nice feature.

I'm not sure how you can do that if you remove the task from all the read operations.

On the other hand, having immutable, simple read-operations is very useful when designing the API. Currently, the HTTP "REST" [1] API doesn't require a client task for read operations. Would be good to have a consistent API across all backends, so that could be an argument for dropping the task for high-level reads.


About the wrapper: it's a good idea, we could have a default "audit" branch to store this log.

Thomas

[1] https://github.com/mirage/irmin/issues/282#issuecomment-136806513
_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Wed Sep 09 08:00:40 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 09 Sep 2015 08:00:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZZaIx-000523-JR; Wed, 09 Sep 2015 08:00:31 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <amc79@cam.ac.uk>) id 1ZZaIv-00051n-SR
	for mirageos-devel@lists.xenproject.org; Wed, 09 Sep 2015 08:00:30 +0000
Received: from [193.109.254.147] by server-7.bemta-14.messagelabs.com id
	97/5F-28221-C17EFE55; Wed, 09 Sep 2015 08:00:28 +0000
X-Env-Sender: amc79@cam.ac.uk
X-Msg-Ref: server-3.tower-27.messagelabs.com!1441785627!48022019!1
X-Originating-IP: [131.111.8.140]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 17709 invoked from network); 9 Sep 2015 08:00:27 -0000
Received: from ppsw-40.csi.cam.ac.uk (HELO ppsw-40.csi.cam.ac.uk)
	(131.111.8.140)
	by server-3.tower-27.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 9 Sep 2015 08:00:27 -0000
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: http://www.cam.ac.uk/cs/email/scanner/
Received: from cpc21-cmbg14-2-0-cust311.5-4.cable.virginm.net
	([86.6.27.56]:48289 helo=[10.0.1.8])
	by ppsw-40.csi.cam.ac.uk (smtp.hermes.cam.ac.uk [131.111.8.156]:465)
	with esmtpsa (PLAIN:amc79) (TLSv1:ECDHE-RSA-AES256-SHA:256)
	id 1ZZaIs-0002fL-mN (Exim 4.86_36-e07b163) for
	mirageos-devel@lists.xenproject.org
	(return-path <amc79@cam.ac.uk>); Wed, 09 Sep 2015 09:00:27 +0100
From: Amir Chaudhry <amc79@cam.ac.uk>
Message-Id: <9B4400B2-819A-4D95-B8F9-9C5DE95007B0@cam.ac.uk>
Date: Wed, 9 Sep 2015 09:00:26 +0100
To: mirageos-devel <mirageos-devel@lists.xenproject.org>
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\))
X-Mailer: Apple Mail (2.2104)
Subject: [MirageOS-devel] MirageOS fortnightly call - Wednesday 9th (today)
	at 4pm BST
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

SGkgZm9sa3MsCgpUaGUgbmV4dCBNaXJhZ2VPUyBjYWxsIHdpbGwgdGFrZSBwbGFjZSB0aGlzIGFm
dGVybm9vbiBhdCA0cG0gQlNUIGFuZCBpcyBvcGVuIHRvIGFsbC4gIFdlJ2xsIGJlIG9uIEdvVG9N
ZWV0aW5nLgoKSWYgdGhlcmUgYXJlIGFueSBoaWNjdXBzL2RlbGF5cyB0aGVuIEknbGwgc3dpdGNo
IHRvIGEgcHVibGljIEdvb2dsZSBIYW5nb3V0LiAgSWYgdGhhdCBoYXBwZW5zLCBJJ2xsIHBvc3Qg
dGhlIGxpbmsgaGVyZSBhbmQgYWxzbyBpbiB0aGUgSVJDIGNoYW5uZWwgKCNtaXJhZ2Ugb24gZnJl
ZW5vZGUpLgoKTm90ZXMgZnJvbSBsYXN0IHRpbWUgYXJlIGF2YWlsYWJsZSBhdDogaHR0cHM6Ly9t
aXJhZ2UuaW8vd2lraS93ZWVrbHktMjAxNS0wOC0yNgpJZiB5b3UgaGF2ZSB0aGluZ3MgdG8gYWRk
L2VkaXQgdG8gdGhlIGFnZW5kYSwgcGxlYXNlIGRvIHNvIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9t
aXJhZ2UvbWlyYWdlLXd3dy93aWtpL0NhbGwtQWdlbmRhCgpKb2luIHVzIGF0IDRwbSBCU1QgdG9k
YXkhCgrigKIgSm9pbiB0aGUgbWVldGluZyBmcm9tIHlvdXIgY29tcHV0ZXIsIHRhYmxldCBvciBz
bWFydHBob25lLgpodHRwczovL2dsb2JhbC5nb3RvbWVldGluZy5jb20vam9pbi8yNTA0NDIwNzcK
CuKAoiBZb3UgY2FuIGFsc28gZGlhbCBpbiB1c2luZyB5b3VyIHBob25lLgpVSzogKzQ0ICgwKSAz
MzAgMjIxIDAwODgKVVM6ICsxICg2NDYpIDc0OS0zMTI5CkFjY2VzcyBDb2RlOiAyNTAtNDQyLTA3
NyAKTW9yZSBwaG9uZSBudW1iZXJzOiBodHRwczovL2dsb2JhbC5nb3RvbWVldGluZy5jb20vMjUw
NDQyMDc3L251bWJlcnNkaXNwbGF5Lmh0bWwKCkJlc3Qgd2lzaGVzLApBbWlyCgpfX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpNaXJhZ2VPUy1kZXZlbCBtYWls
aW5nIGxpc3QKTWlyYWdlT1MtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cDovL2xpc3Rz
LnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby9taXJhZ2Vvcy1kZXZlbAo=

From mirageos-devel-bounces@lists.xenproject.org Wed Sep 09 08:00:40 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 09 Sep 2015 08:00:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZZaIx-000523-JR; Wed, 09 Sep 2015 08:00:31 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <amc79@cam.ac.uk>) id 1ZZaIv-00051n-SR
	for mirageos-devel@lists.xenproject.org; Wed, 09 Sep 2015 08:00:30 +0000
Received: from [193.109.254.147] by server-7.bemta-14.messagelabs.com id
	97/5F-28221-C17EFE55; Wed, 09 Sep 2015 08:00:28 +0000
X-Env-Sender: amc79@cam.ac.uk
X-Msg-Ref: server-3.tower-27.messagelabs.com!1441785627!48022019!1
X-Originating-IP: [131.111.8.140]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 17709 invoked from network); 9 Sep 2015 08:00:27 -0000
Received: from ppsw-40.csi.cam.ac.uk (HELO ppsw-40.csi.cam.ac.uk)
	(131.111.8.140)
	by server-3.tower-27.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 9 Sep 2015 08:00:27 -0000
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: http://www.cam.ac.uk/cs/email/scanner/
Received: from cpc21-cmbg14-2-0-cust311.5-4.cable.virginm.net
	([86.6.27.56]:48289 helo=[10.0.1.8])
	by ppsw-40.csi.cam.ac.uk (smtp.hermes.cam.ac.uk [131.111.8.156]:465)
	with esmtpsa (PLAIN:amc79) (TLSv1:ECDHE-RSA-AES256-SHA:256)
	id 1ZZaIs-0002fL-mN (Exim 4.86_36-e07b163) for
	mirageos-devel@lists.xenproject.org
	(return-path <amc79@cam.ac.uk>); Wed, 09 Sep 2015 09:00:27 +0100
From: Amir Chaudhry <amc79@cam.ac.uk>
Message-Id: <9B4400B2-819A-4D95-B8F9-9C5DE95007B0@cam.ac.uk>
Date: Wed, 9 Sep 2015 09:00:26 +0100
To: mirageos-devel <mirageos-devel@lists.xenproject.org>
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\))
X-Mailer: Apple Mail (2.2104)
Subject: [MirageOS-devel] MirageOS fortnightly call - Wednesday 9th (today)
	at 4pm BST
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

SGkgZm9sa3MsCgpUaGUgbmV4dCBNaXJhZ2VPUyBjYWxsIHdpbGwgdGFrZSBwbGFjZSB0aGlzIGFm
dGVybm9vbiBhdCA0cG0gQlNUIGFuZCBpcyBvcGVuIHRvIGFsbC4gIFdlJ2xsIGJlIG9uIEdvVG9N
ZWV0aW5nLgoKSWYgdGhlcmUgYXJlIGFueSBoaWNjdXBzL2RlbGF5cyB0aGVuIEknbGwgc3dpdGNo
IHRvIGEgcHVibGljIEdvb2dsZSBIYW5nb3V0LiAgSWYgdGhhdCBoYXBwZW5zLCBJJ2xsIHBvc3Qg
dGhlIGxpbmsgaGVyZSBhbmQgYWxzbyBpbiB0aGUgSVJDIGNoYW5uZWwgKCNtaXJhZ2Ugb24gZnJl
ZW5vZGUpLgoKTm90ZXMgZnJvbSBsYXN0IHRpbWUgYXJlIGF2YWlsYWJsZSBhdDogaHR0cHM6Ly9t
aXJhZ2UuaW8vd2lraS93ZWVrbHktMjAxNS0wOC0yNgpJZiB5b3UgaGF2ZSB0aGluZ3MgdG8gYWRk
L2VkaXQgdG8gdGhlIGFnZW5kYSwgcGxlYXNlIGRvIHNvIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9t
aXJhZ2UvbWlyYWdlLXd3dy93aWtpL0NhbGwtQWdlbmRhCgpKb2luIHVzIGF0IDRwbSBCU1QgdG9k
YXkhCgrigKIgSm9pbiB0aGUgbWVldGluZyBmcm9tIHlvdXIgY29tcHV0ZXIsIHRhYmxldCBvciBz
bWFydHBob25lLgpodHRwczovL2dsb2JhbC5nb3RvbWVldGluZy5jb20vam9pbi8yNTA0NDIwNzcK
CuKAoiBZb3UgY2FuIGFsc28gZGlhbCBpbiB1c2luZyB5b3VyIHBob25lLgpVSzogKzQ0ICgwKSAz
MzAgMjIxIDAwODgKVVM6ICsxICg2NDYpIDc0OS0zMTI5CkFjY2VzcyBDb2RlOiAyNTAtNDQyLTA3
NyAKTW9yZSBwaG9uZSBudW1iZXJzOiBodHRwczovL2dsb2JhbC5nb3RvbWVldGluZy5jb20vMjUw
NDQyMDc3L251bWJlcnNkaXNwbGF5Lmh0bWwKCkJlc3Qgd2lzaGVzLApBbWlyCgpfX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpNaXJhZ2VPUy1kZXZlbCBtYWls
aW5nIGxpc3QKTWlyYWdlT1MtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cDovL2xpc3Rz
LnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby9taXJhZ2Vvcy1kZXZlbAo=

From mirageos-devel-bounces@lists.xenproject.org Wed Sep 09 19:19:45 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 09 Sep 2015 19:19:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZZku6-0005Qr-Oe; Wed, 09 Sep 2015 19:19:34 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <richard.mortier@gmail.com>) id 1ZZku6-0005Qm-59
	for MirageOS-devel@lists.xenproject.org; Wed, 09 Sep 2015 19:19:34 +0000
Received: from [85.158.137.68] by server-3.bemta-3.messagelabs.com id
	2D/81-01753-54680F55; Wed, 09 Sep 2015 19:19:33 +0000
X-Env-Sender: richard.mortier@gmail.com
X-Msg-Ref: server-8.tower-31.messagelabs.com!1441826367!42905802!1
X-Originating-IP: [209.85.212.181]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 12445 invoked from network); 9 Sep 2015 19:19:27 -0000
Received: from mail-wi0-f181.google.com (HELO mail-wi0-f181.google.com)
	(209.85.212.181)
	by server-8.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	9 Sep 2015 19:19:27 -0000
Received: by wiclk2 with SMTP id lk2so2954531wic.0
	for <MirageOS-devel@lists.xenproject.org>;
	Wed, 09 Sep 2015 12:19:26 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=mime-version:date:message-id:subject:from:to:content-type;
	bh=Jy17Mh5e4Zy2N8/fxtkz4ahULnYG9JHnFTwkJRZ5AkY=;
	b=fu6VtuIpnmJkUlIX+tbpTQcTwTjPWbDwMUHy9muR1kniU8jdEF62/EwoYRURJECG08
	QhIa+3odYc2paKyG+C9J2nNGlEP/KDRFdF7/1qQR1ZYT/hsYHCPQh7wM1mD0EBfbw6ET
	QHQ8PLIfGamwMLG9p/AVshTDP/HyLEgrUp7s4CO+t+t/tUCSnKHuTqLdmCNUboMq0X4s
	11YbbAPWJ9UaMrIJHtGzxdClcmlpG6t9f1wHqU2EvDml1ITa7lwX+qSFoRe/rT2g8pAa
	wlBK4DrYf98K6RU5ev2gd69auy6dla0csGF4pcMSCOVCCkIU0cIS3botrZYEBFG9YsLM
	Cf4g==
X-Received: by 10.194.103.71 with SMTP id fu7mr40911610wjb.90.1441826366611;
	Wed, 09 Sep 2015 12:19:26 -0700 (PDT)
Received: from mail-wi0-f170.google.com (mail-wi0-f170.google.com.
	[209.85.212.170])
	by smtp.gmail.com with ESMTPSA id c3sm11747950wja.3.2015.09.09.12.19.25
	for <MirageOS-devel@lists.xenproject.org>
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Wed, 09 Sep 2015 12:19:26 -0700 (PDT)
Received: by wiclk2 with SMTP id lk2so33202806wic.1
	for <MirageOS-devel@lists.xenproject.org>;
	Wed, 09 Sep 2015 12:19:25 -0700 (PDT)
MIME-Version: 1.0
X-Received: by 10.194.123.4 with SMTP id lw4mr59631608wjb.94.1441826365132;
	Wed, 09 Sep 2015 12:19:25 -0700 (PDT)
Received: by 10.28.130.67 with HTTP; Wed, 9 Sep 2015 12:19:25 -0700 (PDT)
Date: Wed, 9 Sep 2015 20:19:25 +0100
Message-ID: <CAN2Hq07LTrw1Xpcos3v0NByayNqcQsn06FK-LYC+xy=MkOzbQQ@mail.gmail.com>
From: Richard Mortier <richard.mortier@cl.cam.ac.uk>
To: mirageos-devel <MirageOS-devel@lists.xenproject.org>
Subject: [MirageOS-devel] Versioning
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

All; This came up and after some discussion was then deferred in the
call today. I think it's worth thinking about this a bit before we hit
the next round of omg-we're-about-to-release panic :)

There are currently several things that a "version of Mirage" might refer to:

1. `mirage --version`, ie., the version reported by the CLI tool which
is (now) tied to the version of the `mirage` package in OPAM. This
appears to be, de facto, what users think of as the "version of
Mirage". Currently 2.6.1 as of Dave's latest merge I believe.

2. The set of package constraints output by `opam info mirage`, ie.,
the package versions that the code auto-generated by the CLI tool
requires. This is intimately tied to 1 as it changes when packages
changes requiring the code autogenerated by the CLI tool needs to
change. But it's currently not quite identical to 1, as OPAM metadata
for a package may be (and has been?) updated without revving the
package version.

3. The `1` in `V1_LWT` in `mirage-types`.

4. The version number that we announce when we claim a release. I
believe the next one is due to be "v3".

5. (Coming Soon!) The version of `functoria`, per @drup, the backend
for code generation which will soon be separate from the specific
combinators implemented in the CLI tool itself.

I think this situation is confusing, and I think it is only going to
get more confusing as time passes unless we make some conscious
decisions about what a "version of Mirage" means. In particular,
changes to 1/3/5 may require users' `config.ml` files to change; and
changes to 2 may require their unikernel code to change. 4 is a
publicity thing as far as I can tell and, to a large extent,
dissociated from the others.

For a specific case where this might matter, per the call today, it
seems that there will be some (minor) breakage of users' `config.ml`
syntax when the functoria PR is merged into `mirage`. The two main
proposals seemed to be:

+ we update the CLI tool to 3.0.0 as that will clearly signal to users
that their `config.ml` may be broken; or
+ we update the CLI tool to 2.7.0 as we're not ready to release
"Mirage v3" (ie., an increment of 4 in the list above).

(Either way we update the "breaking changes" page on the website.)

On reflection my own strawman would be that we tie 1,2,4 together by
revving the major version on an "announced release", revving the minor
version every time the CLI tool changes, and revving the point release
when the package constraints change; we deal with 5 by making it just
a pacakge constraint a la 2, and we simply stick with "V1_LWT" for now
just in case we ever want to support more than one set of types.

At this point I'm throwing the floor open. Does anyone have any views
/ opinions on this?  Think it's not a problem?  Got proposals for
solutions?  etc...

-- 
Richard Mortier
richard.mortier@cl.cam.ac.uk

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Wed Sep 09 19:19:45 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 09 Sep 2015 19:19:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZZku6-0005Qr-Oe; Wed, 09 Sep 2015 19:19:34 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <richard.mortier@gmail.com>) id 1ZZku6-0005Qm-59
	for MirageOS-devel@lists.xenproject.org; Wed, 09 Sep 2015 19:19:34 +0000
Received: from [85.158.137.68] by server-3.bemta-3.messagelabs.com id
	2D/81-01753-54680F55; Wed, 09 Sep 2015 19:19:33 +0000
X-Env-Sender: richard.mortier@gmail.com
X-Msg-Ref: server-8.tower-31.messagelabs.com!1441826367!42905802!1
X-Originating-IP: [209.85.212.181]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 12445 invoked from network); 9 Sep 2015 19:19:27 -0000
Received: from mail-wi0-f181.google.com (HELO mail-wi0-f181.google.com)
	(209.85.212.181)
	by server-8.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	9 Sep 2015 19:19:27 -0000
Received: by wiclk2 with SMTP id lk2so2954531wic.0
	for <MirageOS-devel@lists.xenproject.org>;
	Wed, 09 Sep 2015 12:19:26 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=mime-version:date:message-id:subject:from:to:content-type;
	bh=Jy17Mh5e4Zy2N8/fxtkz4ahULnYG9JHnFTwkJRZ5AkY=;
	b=fu6VtuIpnmJkUlIX+tbpTQcTwTjPWbDwMUHy9muR1kniU8jdEF62/EwoYRURJECG08
	QhIa+3odYc2paKyG+C9J2nNGlEP/KDRFdF7/1qQR1ZYT/hsYHCPQh7wM1mD0EBfbw6ET
	QHQ8PLIfGamwMLG9p/AVshTDP/HyLEgrUp7s4CO+t+t/tUCSnKHuTqLdmCNUboMq0X4s
	11YbbAPWJ9UaMrIJHtGzxdClcmlpG6t9f1wHqU2EvDml1ITa7lwX+qSFoRe/rT2g8pAa
	wlBK4DrYf98K6RU5ev2gd69auy6dla0csGF4pcMSCOVCCkIU0cIS3botrZYEBFG9YsLM
	Cf4g==
X-Received: by 10.194.103.71 with SMTP id fu7mr40911610wjb.90.1441826366611;
	Wed, 09 Sep 2015 12:19:26 -0700 (PDT)
Received: from mail-wi0-f170.google.com (mail-wi0-f170.google.com.
	[209.85.212.170])
	by smtp.gmail.com with ESMTPSA id c3sm11747950wja.3.2015.09.09.12.19.25
	for <MirageOS-devel@lists.xenproject.org>
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Wed, 09 Sep 2015 12:19:26 -0700 (PDT)
Received: by wiclk2 with SMTP id lk2so33202806wic.1
	for <MirageOS-devel@lists.xenproject.org>;
	Wed, 09 Sep 2015 12:19:25 -0700 (PDT)
MIME-Version: 1.0
X-Received: by 10.194.123.4 with SMTP id lw4mr59631608wjb.94.1441826365132;
	Wed, 09 Sep 2015 12:19:25 -0700 (PDT)
Received: by 10.28.130.67 with HTTP; Wed, 9 Sep 2015 12:19:25 -0700 (PDT)
Date: Wed, 9 Sep 2015 20:19:25 +0100
Message-ID: <CAN2Hq07LTrw1Xpcos3v0NByayNqcQsn06FK-LYC+xy=MkOzbQQ@mail.gmail.com>
From: Richard Mortier <richard.mortier@cl.cam.ac.uk>
To: mirageos-devel <MirageOS-devel@lists.xenproject.org>
Subject: [MirageOS-devel] Versioning
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

All; This came up and after some discussion was then deferred in the
call today. I think it's worth thinking about this a bit before we hit
the next round of omg-we're-about-to-release panic :)

There are currently several things that a "version of Mirage" might refer to:

1. `mirage --version`, ie., the version reported by the CLI tool which
is (now) tied to the version of the `mirage` package in OPAM. This
appears to be, de facto, what users think of as the "version of
Mirage". Currently 2.6.1 as of Dave's latest merge I believe.

2. The set of package constraints output by `opam info mirage`, ie.,
the package versions that the code auto-generated by the CLI tool
requires. This is intimately tied to 1 as it changes when packages
changes requiring the code autogenerated by the CLI tool needs to
change. But it's currently not quite identical to 1, as OPAM metadata
for a package may be (and has been?) updated without revving the
package version.

3. The `1` in `V1_LWT` in `mirage-types`.

4. The version number that we announce when we claim a release. I
believe the next one is due to be "v3".

5. (Coming Soon!) The version of `functoria`, per @drup, the backend
for code generation which will soon be separate from the specific
combinators implemented in the CLI tool itself.

I think this situation is confusing, and I think it is only going to
get more confusing as time passes unless we make some conscious
decisions about what a "version of Mirage" means. In particular,
changes to 1/3/5 may require users' `config.ml` files to change; and
changes to 2 may require their unikernel code to change. 4 is a
publicity thing as far as I can tell and, to a large extent,
dissociated from the others.

For a specific case where this might matter, per the call today, it
seems that there will be some (minor) breakage of users' `config.ml`
syntax when the functoria PR is merged into `mirage`. The two main
proposals seemed to be:

+ we update the CLI tool to 3.0.0 as that will clearly signal to users
that their `config.ml` may be broken; or
+ we update the CLI tool to 2.7.0 as we're not ready to release
"Mirage v3" (ie., an increment of 4 in the list above).

(Either way we update the "breaking changes" page on the website.)

On reflection my own strawman would be that we tie 1,2,4 together by
revving the major version on an "announced release", revving the minor
version every time the CLI tool changes, and revving the point release
when the package constraints change; we deal with 5 by making it just
a pacakge constraint a la 2, and we simply stick with "V1_LWT" for now
just in case we ever want to support more than one set of types.

At this point I'm throwing the floor open. Does anyone have any views
/ opinions on this?  Think it's not a problem?  Got proposals for
solutions?  etc...

-- 
Richard Mortier
richard.mortier@cl.cam.ac.uk

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Thu Sep 10 16:39:19 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 10 Sep 2015 16:39:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1Za4sG-0007Zj-MX; Thu, 10 Sep 2015 16:39:00 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <christiano.fh@gmail.com>) id 1Za4sF-0007Za-LU
	for mirageos-devel@lists.xenproject.org; Thu, 10 Sep 2015 16:38:59 +0000
Received: from [85.158.137.68] by server-1.bemta-3.messagelabs.com id
	B2/1E-01421-222B1F55; Thu, 10 Sep 2015 16:38:58 +0000
X-Env-Sender: christiano.fh@gmail.com
X-Msg-Ref: server-11.tower-31.messagelabs.com!1441903138!43311342!1
X-Originating-IP: [209.85.215.50]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 8048 invoked from network); 10 Sep 2015 16:38:58 -0000
Received: from mail-la0-f50.google.com (HELO mail-la0-f50.google.com)
	(209.85.215.50)
	by server-11.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	10 Sep 2015 16:38:58 -0000
Received: by lamp12 with SMTP id p12so31213296lam.0
	for <mirageos-devel@lists.xenproject.org>;
	Thu, 10 Sep 2015 09:38:57 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:sender:in-reply-to:references:date:message-id:subject
	:from:to:content-type;
	bh=jaWHUNmhPom1E8zyg57TtEo9g4K4E+9RI/JM2E4FO5o=;
	b=Grtv+PtGDJCZTaHcN3IUfzhNhUamjbd89p2tBSE/NtadXbp/3R9KmmBUza4/KaP2RA
	RHSgcIJQXGax1KaSyTdUETlu4H2lzKedXt5xqBexswmOyXzBcGYuyx4DD0WD7jo/JNYp
	wdoUNmitcAfEtspPR3l56VjTlSe3zNulzxr490oOewYbzZgNTGSbIe/Hpk9qGrEweX9S
	PBrQZteFhmg65EnDifNeD3QDqUyjmQI2cDlYSwM1+5fFA14le6RNINGwbKYDfzy5PS44
	vH3n9YagyBr4HNgzX1iUiUN54Oa8MBFzRge4NPvofkvows7/RRIk/rT+fyPdPzWNYOXP
	ecww==
MIME-Version: 1.0
X-Received: by 10.152.36.101 with SMTP id p5mr21646707laj.123.1441903137550;
	Thu, 10 Sep 2015 09:38:57 -0700 (PDT)
Received: by 10.112.228.194 with HTTP; Thu, 10 Sep 2015 09:38:57 -0700 (PDT)
In-Reply-To: <CAPvuBUvzaPgqW-eJ8Cs2vuaoSQ2AqfCuGAWmD0UnCwpYp-6h1g@mail.gmail.com>
References: <CAPvuBUtcKRCRA1NyMy38ose=Syo_rs93cAWygTAS5=MniZ9NEA@mail.gmail.com>
	<DCE8E2A1-3BDF-466C-91AA-1868B2962413@recoil.org>
	<CAPvuBUu_ez4dHptRATCUdRE5mTpPf7+uHxmm-ZJHgsAjEAJvSQ@mail.gmail.com>
	<66062035-633B-455A-8D0E-2F063B419806@recoil.org>
	<1439889317.157887.359064729.5D1542B2@webmail.messagingengine.com>
	<CAPvuBUt3VYx9+43wkhvVTkUMLRAKp0iBWMkLQ_kNxXDnnApfGw@mail.gmail.com>
	<CAPvuBUvzaPgqW-eJ8Cs2vuaoSQ2AqfCuGAWmD0UnCwpYp-6h1g@mail.gmail.com>
Date: Thu, 10 Sep 2015 18:38:57 +0200
X-Google-Sender-Auth: PkHemkWQxFEbGUtv8gSlEHFUnOo
Message-ID: <CAPvuBUv5BF7bKXkizAuURVoMRW6tULyFtWhb0j2ggX=HL6ZLEg@mail.gmail.com>
From: "Christiano F. Haesbaert" <haesbaert@haesbaert.org>
To: mirageos-devel <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] hdhcpd working.
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

So I got it to work :D, I have a working xen image, the unix version
has been serving my home for the past week.

So basically there is:

https://github.com/haesbaert/charrua-core (core server and dhcp logic)
https://github.com/haesbaert/charrua-mirage (a mirage image skeleton,
like the ones in mirage-skeleton)

It needs a lot of polishing now but it should be releasable by in the weekend.

I have this annoying thing with printing under xen:

C.log c (green "listener got packet with %d len\nTESTELALA\nLEROLERO" len);
produces:
listener got packet with 215 len
                                TESTELALA
                                         LEROLERO

TERM is set to screen, but I've tried others too, for the same avail.
The color has nothing to do with it, the effects are the same.
I assume someone experienced this already ?

On 25 August 2015 at 16:11, Christiano F. Haesbaert
<haesbaert@haesbaert.org> wrote:
>
>
> On Wednesday, August 19, 2015, Christiano F. Haesbaert
> <haesbaert@haesbaert.org> wrote:
>>
>> On 18 August 2015 at 11:15, Magnus Skjegstad <magnus@v0.no> wrote:
>> > On Tue, 18 Aug 2015, at 08:50, Anil Madhavapeddy wrote:
>> >> > * Pass the configuration to the VM somehow, I think I read on the
>> >> > key/value module that converts the file into an ml file, that would
>> >> > be
>> >> > ok.
>> >>
>> >> I need to look up the latest on this, but the OS.Env module should
>> >> do key/value maps via the unikernel command line.  Thomas/Magnus,
>> >> what did you end up deciding to use in Jitsu for unikernel arg parsing?
>> >
>> > I still use mirage-bootvar-xen [0] to pass parameters via the "extra"
>> > option in libxl (or cmdline in libvirt). Eventually it would be great to
>> > be able to use OS.Env + Cmdliner, but it hasn't been implemented yet for
>> > Xen [1] :-)
>> >
>> >
>> > 0. https://github.com/mirage/mirage-bootvar-xen
>> > 1. https://github.com/mirage/mirage-platform/blob/master/xen/lib/env.ml
>>
>> After converting, I guess there won't be any parameters except
>> verbosity to be passed (not considering the interfaces), but I do need
>> to pass the configuration file somehow.
>> Since I'm still not saving the lease database to disk, which I do
>> intend to do with irmin, the only thing I'd need is passing this
>> configuration file.
>
>
> So I released rawlink on opam and hdhcp should work now.
>
> I had started to convert the code to mirage and I have some questions.
>
> How exactly should the distribution be ? Should I release a package in opam
> that exports a "dhcp server module" ? Should I include something like a
> unikernel config.ml skeleton and friends ? Should it be included inside an
> existing mirage library ?
>
> My idea so far was to release hdhcp as a library, having a Dhcp_server
> module, and another package with a mirage usage of this module as a functor.
> Basically it needs to be specialized on how to send/receive packets and
> read/write to disk.
>
> I'm up for suggestions.

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Thu Sep 10 16:39:19 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 10 Sep 2015 16:39:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1Za4sG-0007Zj-MX; Thu, 10 Sep 2015 16:39:00 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <christiano.fh@gmail.com>) id 1Za4sF-0007Za-LU
	for mirageos-devel@lists.xenproject.org; Thu, 10 Sep 2015 16:38:59 +0000
Received: from [85.158.137.68] by server-1.bemta-3.messagelabs.com id
	B2/1E-01421-222B1F55; Thu, 10 Sep 2015 16:38:58 +0000
X-Env-Sender: christiano.fh@gmail.com
X-Msg-Ref: server-11.tower-31.messagelabs.com!1441903138!43311342!1
X-Originating-IP: [209.85.215.50]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 8048 invoked from network); 10 Sep 2015 16:38:58 -0000
Received: from mail-la0-f50.google.com (HELO mail-la0-f50.google.com)
	(209.85.215.50)
	by server-11.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	10 Sep 2015 16:38:58 -0000
Received: by lamp12 with SMTP id p12so31213296lam.0
	for <mirageos-devel@lists.xenproject.org>;
	Thu, 10 Sep 2015 09:38:57 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:sender:in-reply-to:references:date:message-id:subject
	:from:to:content-type;
	bh=jaWHUNmhPom1E8zyg57TtEo9g4K4E+9RI/JM2E4FO5o=;
	b=Grtv+PtGDJCZTaHcN3IUfzhNhUamjbd89p2tBSE/NtadXbp/3R9KmmBUza4/KaP2RA
	RHSgcIJQXGax1KaSyTdUETlu4H2lzKedXt5xqBexswmOyXzBcGYuyx4DD0WD7jo/JNYp
	wdoUNmitcAfEtspPR3l56VjTlSe3zNulzxr490oOewYbzZgNTGSbIe/Hpk9qGrEweX9S
	PBrQZteFhmg65EnDifNeD3QDqUyjmQI2cDlYSwM1+5fFA14le6RNINGwbKYDfzy5PS44
	vH3n9YagyBr4HNgzX1iUiUN54Oa8MBFzRge4NPvofkvows7/RRIk/rT+fyPdPzWNYOXP
	ecww==
MIME-Version: 1.0
X-Received: by 10.152.36.101 with SMTP id p5mr21646707laj.123.1441903137550;
	Thu, 10 Sep 2015 09:38:57 -0700 (PDT)
Received: by 10.112.228.194 with HTTP; Thu, 10 Sep 2015 09:38:57 -0700 (PDT)
In-Reply-To: <CAPvuBUvzaPgqW-eJ8Cs2vuaoSQ2AqfCuGAWmD0UnCwpYp-6h1g@mail.gmail.com>
References: <CAPvuBUtcKRCRA1NyMy38ose=Syo_rs93cAWygTAS5=MniZ9NEA@mail.gmail.com>
	<DCE8E2A1-3BDF-466C-91AA-1868B2962413@recoil.org>
	<CAPvuBUu_ez4dHptRATCUdRE5mTpPf7+uHxmm-ZJHgsAjEAJvSQ@mail.gmail.com>
	<66062035-633B-455A-8D0E-2F063B419806@recoil.org>
	<1439889317.157887.359064729.5D1542B2@webmail.messagingengine.com>
	<CAPvuBUt3VYx9+43wkhvVTkUMLRAKp0iBWMkLQ_kNxXDnnApfGw@mail.gmail.com>
	<CAPvuBUvzaPgqW-eJ8Cs2vuaoSQ2AqfCuGAWmD0UnCwpYp-6h1g@mail.gmail.com>
Date: Thu, 10 Sep 2015 18:38:57 +0200
X-Google-Sender-Auth: PkHemkWQxFEbGUtv8gSlEHFUnOo
Message-ID: <CAPvuBUv5BF7bKXkizAuURVoMRW6tULyFtWhb0j2ggX=HL6ZLEg@mail.gmail.com>
From: "Christiano F. Haesbaert" <haesbaert@haesbaert.org>
To: mirageos-devel <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] hdhcpd working.
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

So I got it to work :D, I have a working xen image, the unix version
has been serving my home for the past week.

So basically there is:

https://github.com/haesbaert/charrua-core (core server and dhcp logic)
https://github.com/haesbaert/charrua-mirage (a mirage image skeleton,
like the ones in mirage-skeleton)

It needs a lot of polishing now but it should be releasable by in the weekend.

I have this annoying thing with printing under xen:

C.log c (green "listener got packet with %d len\nTESTELALA\nLEROLERO" len);
produces:
listener got packet with 215 len
                                TESTELALA
                                         LEROLERO

TERM is set to screen, but I've tried others too, for the same avail.
The color has nothing to do with it, the effects are the same.
I assume someone experienced this already ?

On 25 August 2015 at 16:11, Christiano F. Haesbaert
<haesbaert@haesbaert.org> wrote:
>
>
> On Wednesday, August 19, 2015, Christiano F. Haesbaert
> <haesbaert@haesbaert.org> wrote:
>>
>> On 18 August 2015 at 11:15, Magnus Skjegstad <magnus@v0.no> wrote:
>> > On Tue, 18 Aug 2015, at 08:50, Anil Madhavapeddy wrote:
>> >> > * Pass the configuration to the VM somehow, I think I read on the
>> >> > key/value module that converts the file into an ml file, that would
>> >> > be
>> >> > ok.
>> >>
>> >> I need to look up the latest on this, but the OS.Env module should
>> >> do key/value maps via the unikernel command line.  Thomas/Magnus,
>> >> what did you end up deciding to use in Jitsu for unikernel arg parsing?
>> >
>> > I still use mirage-bootvar-xen [0] to pass parameters via the "extra"
>> > option in libxl (or cmdline in libvirt). Eventually it would be great to
>> > be able to use OS.Env + Cmdliner, but it hasn't been implemented yet for
>> > Xen [1] :-)
>> >
>> >
>> > 0. https://github.com/mirage/mirage-bootvar-xen
>> > 1. https://github.com/mirage/mirage-platform/blob/master/xen/lib/env.ml
>>
>> After converting, I guess there won't be any parameters except
>> verbosity to be passed (not considering the interfaces), but I do need
>> to pass the configuration file somehow.
>> Since I'm still not saving the lease database to disk, which I do
>> intend to do with irmin, the only thing I'd need is passing this
>> configuration file.
>
>
> So I released rawlink on opam and hdhcp should work now.
>
> I had started to convert the code to mirage and I have some questions.
>
> How exactly should the distribution be ? Should I release a package in opam
> that exports a "dhcp server module" ? Should I include something like a
> unikernel config.ml skeleton and friends ? Should it be included inside an
> existing mirage library ?
>
> My idea so far was to release hdhcp as a library, having a Dhcp_server
> module, and another package with a mirage usage of this module as a functor.
> Basically it needs to be specialized on how to send/receive packets and
> read/write to disk.
>
> I'm up for suggestions.

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Thu Sep 10 16:45:58 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 10 Sep 2015 16:45:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1Za4ys-0008Jp-Qj; Thu, 10 Sep 2015 16:45:50 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <christiano.fh@gmail.com>) id 1Za4ys-0008Jk-8h
	for mirageos-devel@lists.xenproject.org; Thu, 10 Sep 2015 16:45:50 +0000
Received: from [85.158.137.68] by server-8.bemta-3.messagelabs.com id
	FB/59-31069-DB3B1F55; Thu, 10 Sep 2015 16:45:49 +0000
X-Env-Sender: christiano.fh@gmail.com
X-Msg-Ref: server-4.tower-31.messagelabs.com!1441903546!42021326!1
X-Originating-IP: [209.85.215.44]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 11689 invoked from network); 10 Sep 2015 16:45:46 -0000
Received: from mail-la0-f44.google.com (HELO mail-la0-f44.google.com)
	(209.85.215.44)
	by server-4.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	10 Sep 2015 16:45:46 -0000
Received: by lanb10 with SMTP id b10so31541827lan.3
	for <mirageos-devel@lists.xenproject.org>;
	Thu, 10 Sep 2015 09:45:46 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:sender:in-reply-to:references:date:message-id:subject
	:from:to:content-type;
	bh=0nM6eoKFpVDonVxEb0dKk3xU7/91q8dC7rpb+drW2Y4=;
	b=VyuGPsG3CCTlpTp6pcz7CEcILjQ3b0/cONkwXjIu+2aKjNaaP09keVyRGT4hJw2jbS
	ALMriCl7WHvqzvte4/QqlkZYK7Xp0u2bsD0oCTKE7pNbaicGIJ3PGj0XItmUss6r0Rhw
	ycw2MmNgtpLWRV5JaSY9RED5BVE0KizDretQTiTJ4ghVPvxZHbJYsEx4VCH9O4JoNKFU
	OJrcqO0nwMITXRgh2K7OuLbTVFLTLNIIz+HSTUhgbpuJ+mupKYV3+dXwGhbNA0s8AeLp
	5ikwn0BmA8LwIgokDyUEauWZNDwMteJRUvlhbBcZaTXR00LvGMLJJ6rwteu53WgNga/i
	0GRA==
MIME-Version: 1.0
X-Received: by 10.152.3.1 with SMTP id 1mr38025748lay.12.1441903546070; Thu,
	10 Sep 2015 09:45:46 -0700 (PDT)
Received: by 10.112.228.194 with HTTP; Thu, 10 Sep 2015 09:45:45 -0700 (PDT)
In-Reply-To: <CAPvuBUv5BF7bKXkizAuURVoMRW6tULyFtWhb0j2ggX=HL6ZLEg@mail.gmail.com>
References: <CAPvuBUtcKRCRA1NyMy38ose=Syo_rs93cAWygTAS5=MniZ9NEA@mail.gmail.com>
	<DCE8E2A1-3BDF-466C-91AA-1868B2962413@recoil.org>
	<CAPvuBUu_ez4dHptRATCUdRE5mTpPf7+uHxmm-ZJHgsAjEAJvSQ@mail.gmail.com>
	<66062035-633B-455A-8D0E-2F063B419806@recoil.org>
	<1439889317.157887.359064729.5D1542B2@webmail.messagingengine.com>
	<CAPvuBUt3VYx9+43wkhvVTkUMLRAKp0iBWMkLQ_kNxXDnnApfGw@mail.gmail.com>
	<CAPvuBUvzaPgqW-eJ8Cs2vuaoSQ2AqfCuGAWmD0UnCwpYp-6h1g@mail.gmail.com>
	<CAPvuBUv5BF7bKXkizAuURVoMRW6tULyFtWhb0j2ggX=HL6ZLEg@mail.gmail.com>
Date: Thu, 10 Sep 2015 18:45:45 +0200
X-Google-Sender-Auth: 9YIEI96rMnWqK_1Ll3KFuJshr-w
Message-ID: <CAPvuBUvzXst8JVhTqQ6yh0ODSMu1vG6-D=waJE3ULcFcVnwcUw@mail.gmail.com>
From: "Christiano F. Haesbaert" <haesbaert@haesbaert.org>
To: mirageos-devel <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] hdhcpd working.
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On 10 September 2015 at 18:38, Christiano F. Haesbaert
<haesbaert@haesbaert.org> wrote:
> So I got it to work :D, I have a working xen image, the unix version
> has been serving my home for the past week.
>
> So basically there is:
>
> https://github.com/haesbaert/charrua-core (core server and dhcp logic)
> https://github.com/haesbaert/charrua-mirage (a mirage image skeleton,
> like the ones in mirage-skeleton)
>
> It needs a lot of polishing now but it should be releasable by in the weekend.
>
> I have this annoying thing with printing under xen:
>
> C.log c (green "listener got packet with %d len\nTESTELALA\nLEROLERO" len);
> produces:
> listener got packet with 215 len
>                                 TESTELALA
>                                          LEROLERO
>
> TERM is set to screen, but I've tried others too, for the same avail.
> The color has nothing to do with it, the effects are the same.
> I assume someone experienced this already ?
>

Ah I get it, it want's a \r first :P.

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Thu Sep 10 16:45:58 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 10 Sep 2015 16:45:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1Za4ys-0008Jp-Qj; Thu, 10 Sep 2015 16:45:50 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <christiano.fh@gmail.com>) id 1Za4ys-0008Jk-8h
	for mirageos-devel@lists.xenproject.org; Thu, 10 Sep 2015 16:45:50 +0000
Received: from [85.158.137.68] by server-8.bemta-3.messagelabs.com id
	FB/59-31069-DB3B1F55; Thu, 10 Sep 2015 16:45:49 +0000
X-Env-Sender: christiano.fh@gmail.com
X-Msg-Ref: server-4.tower-31.messagelabs.com!1441903546!42021326!1
X-Originating-IP: [209.85.215.44]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 11689 invoked from network); 10 Sep 2015 16:45:46 -0000
Received: from mail-la0-f44.google.com (HELO mail-la0-f44.google.com)
	(209.85.215.44)
	by server-4.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	10 Sep 2015 16:45:46 -0000
Received: by lanb10 with SMTP id b10so31541827lan.3
	for <mirageos-devel@lists.xenproject.org>;
	Thu, 10 Sep 2015 09:45:46 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:sender:in-reply-to:references:date:message-id:subject
	:from:to:content-type;
	bh=0nM6eoKFpVDonVxEb0dKk3xU7/91q8dC7rpb+drW2Y4=;
	b=VyuGPsG3CCTlpTp6pcz7CEcILjQ3b0/cONkwXjIu+2aKjNaaP09keVyRGT4hJw2jbS
	ALMriCl7WHvqzvte4/QqlkZYK7Xp0u2bsD0oCTKE7pNbaicGIJ3PGj0XItmUss6r0Rhw
	ycw2MmNgtpLWRV5JaSY9RED5BVE0KizDretQTiTJ4ghVPvxZHbJYsEx4VCH9O4JoNKFU
	OJrcqO0nwMITXRgh2K7OuLbTVFLTLNIIz+HSTUhgbpuJ+mupKYV3+dXwGhbNA0s8AeLp
	5ikwn0BmA8LwIgokDyUEauWZNDwMteJRUvlhbBcZaTXR00LvGMLJJ6rwteu53WgNga/i
	0GRA==
MIME-Version: 1.0
X-Received: by 10.152.3.1 with SMTP id 1mr38025748lay.12.1441903546070; Thu,
	10 Sep 2015 09:45:46 -0700 (PDT)
Received: by 10.112.228.194 with HTTP; Thu, 10 Sep 2015 09:45:45 -0700 (PDT)
In-Reply-To: <CAPvuBUv5BF7bKXkizAuURVoMRW6tULyFtWhb0j2ggX=HL6ZLEg@mail.gmail.com>
References: <CAPvuBUtcKRCRA1NyMy38ose=Syo_rs93cAWygTAS5=MniZ9NEA@mail.gmail.com>
	<DCE8E2A1-3BDF-466C-91AA-1868B2962413@recoil.org>
	<CAPvuBUu_ez4dHptRATCUdRE5mTpPf7+uHxmm-ZJHgsAjEAJvSQ@mail.gmail.com>
	<66062035-633B-455A-8D0E-2F063B419806@recoil.org>
	<1439889317.157887.359064729.5D1542B2@webmail.messagingengine.com>
	<CAPvuBUt3VYx9+43wkhvVTkUMLRAKp0iBWMkLQ_kNxXDnnApfGw@mail.gmail.com>
	<CAPvuBUvzaPgqW-eJ8Cs2vuaoSQ2AqfCuGAWmD0UnCwpYp-6h1g@mail.gmail.com>
	<CAPvuBUv5BF7bKXkizAuURVoMRW6tULyFtWhb0j2ggX=HL6ZLEg@mail.gmail.com>
Date: Thu, 10 Sep 2015 18:45:45 +0200
X-Google-Sender-Auth: 9YIEI96rMnWqK_1Ll3KFuJshr-w
Message-ID: <CAPvuBUvzXst8JVhTqQ6yh0ODSMu1vG6-D=waJE3ULcFcVnwcUw@mail.gmail.com>
From: "Christiano F. Haesbaert" <haesbaert@haesbaert.org>
To: mirageos-devel <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] hdhcpd working.
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On 10 September 2015 at 18:38, Christiano F. Haesbaert
<haesbaert@haesbaert.org> wrote:
> So I got it to work :D, I have a working xen image, the unix version
> has been serving my home for the past week.
>
> So basically there is:
>
> https://github.com/haesbaert/charrua-core (core server and dhcp logic)
> https://github.com/haesbaert/charrua-mirage (a mirage image skeleton,
> like the ones in mirage-skeleton)
>
> It needs a lot of polishing now but it should be releasable by in the weekend.
>
> I have this annoying thing with printing under xen:
>
> C.log c (green "listener got packet with %d len\nTESTELALA\nLEROLERO" len);
> produces:
> listener got packet with 215 len
>                                 TESTELALA
>                                          LEROLERO
>
> TERM is set to screen, but I've tried others too, for the same avail.
> The color has nothing to do with it, the effects are the same.
> I assume someone experienced this already ?
>

Ah I get it, it want's a \r first :P.

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Sat Sep 12 07:50:24 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sat, 12 Sep 2015 07:50:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZafZf-0002Oo-7P; Sat, 12 Sep 2015 07:50:15 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <tim@gfxmonk.net>) id 1ZafZe-0002Oj-16
	for MirageOS-devel@lists.xenproject.org; Sat, 12 Sep 2015 07:50:14 +0000
Received: from [85.158.137.68] by server-13.bemta-3.messagelabs.com id
	64/77-00536-539D3F55; Sat, 12 Sep 2015 07:50:13 +0000
X-Env-Sender: tim@gfxmonk.net
X-Msg-Ref: server-8.tower-31.messagelabs.com!1442044211!43684317!1
X-Originating-IP: [209.85.213.174]
X-SpamReason: No, hits=0.8 required=7.0 tests=BODY_RANDOM_LONG,
  RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 624 invoked from network); 12 Sep 2015 07:50:12 -0000
Received: from mail-ig0-f174.google.com (HELO mail-ig0-f174.google.com)
	(209.85.213.174)
	by server-8.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	12 Sep 2015 07:50:12 -0000
Received: by igbkq10 with SMTP id kq10so56988917igb.0
	for <MirageOS-devel@lists.xenproject.org>;
	Sat, 12 Sep 2015 00:50:11 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:mime-version:from:date:message-id:subject:to
	:content-type;
	bh=KOJASFDeOJpxvpXJmC0Lo/OeK8FSaHI4zHOdmIHsCPY=;
	b=B2Db3UNWCn+9PmPJ53mDEJ42/bV8z6+wnQXi5xE7P7wOjroChAa4iCI/uBZHNaikq2
	eiwjjXyLxeghauivQbGsUFVxxWJGfdNfLu7lkd+0oBJiVeeVbIca+FXNiOAo5mROnQ3x
	dZlWO6330tRultjfLWTbnk59GS3KVSdG4wCiCyDSdVKhKIlFZiiQhBAIYAIqmEK1QPaI
	wFnhrZz3AzMKK3Xto0c34XTDQuW1yxNICh4O2AXYGnYrDHva1Atne5ik8msra+fM73rs
	mOitpsUfRxbaDBd1kIMzNc5SaPKYbjb4OrhBOTjXDgQjJvYjbMCM542ZIPq5vnFqED/C
	szNA==
X-Gm-Message-State: ALoCoQmR6cHyUZLcucWWvqRLfGeyqFc32tcndcXCfvNGH7RyMipG5aw213doiUWOll4m8nN51FZ5
X-Received: by 10.50.92.9 with SMTP id ci9mr2838602igb.2.1442044211546;
	Sat, 12 Sep 2015 00:50:11 -0700 (PDT)
Received: from mail-io0-f181.google.com (mail-io0-f181.google.com.
	[209.85.223.181])
	by smtp.gmail.com with ESMTPSA id j3sm1361372ige.0.2015.09.12.00.50.10
	for <MirageOS-devel@lists.xenproject.org>
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Sat, 12 Sep 2015 00:50:10 -0700 (PDT)
Received: by ioii196 with SMTP id i196so121189741ioi.3
	for <MirageOS-devel@lists.xenproject.org>;
	Sat, 12 Sep 2015 00:50:09 -0700 (PDT)
X-Received: by 10.107.151.81 with SMTP id z78mr9388319iod.63.1442044209822;
	Sat, 12 Sep 2015 00:50:09 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.50.159.101 with HTTP; Sat, 12 Sep 2015 00:49:50 -0700 (PDT)
From: Tim Cuthbertson <tim@gfxmonk.net>
Date: Sat, 12 Sep 2015 17:49:50 +1000
Message-ID: <CAC-LLDhi5jkQ6=cuM9z36xS4cGDGq=kgDyzNOg1dWSSP7LFSpQ@mail.gmail.com>
To: opam-devel@lists.ocaml.org, "mirageos-devel@lists.xenproject.org"
	<MirageOS-devel@lists.xenproject.org>
Subject: [MirageOS-devel] Managing $PKG_CONFIG_PATH in opam
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On the MirageOS mailing list, I submitted some patches[0] to make some
mirage libraries build without assuming a strict `opam` destination
directory layout. Mainly this was about the build scripts explicitly
setting PKG_CONFIG_PATH to `opam config var prefix`/lib/pkgconfig.
When building in a nixpkgs environment (using the `opam2nix` tool I'm
building[1]), there is no such path, but that's OK - the build
environment will have already set $PKG_CONFIG_PATH correctly.

[0] http://lists.xenproject.org/archives/html/mirageos-devel/2015-09/msg00000.html
[1] https://github.com/gfxmonk/opam2nix

It was generally agreed that having the build scripts perform this
task is not ideal, and Thomas Leonard suggested we could change `opam`
itself to export $PKG_CONFIG_PATH, rather than having build scripts
assume too much about their environment. That way a build script can
assume its pkg-config dependencies are available without caring
exactly where they live.

This seems like a good idea to me, and I've written up a fairly simple
patch which (I think) will do so:

https://github.com/ocaml/opam/compare/master...gfxmonk:pkg-config

I have only superficially tested it, but in thinking about that it
seems like this almost certainly won't be enough. All "pure" opam
packages providing pkg-config libraries should work just fine, however
there exist a large number of opam packages (conf-*) which exist
solely to force installation of system packages, and therefore most of
them actually rely on the system $PKG_CONFIG_PATH being used.

We could make `opam` prefix the opam pkgconfig path with the system
one, but this could lead to accidental impurity (in the case of these
mirage libraries, it would mean that dependencies might accidentally
be provided by the system rather than opam deps, which makes builds
fragile).

Any ideas how we can have opam manage PKG_CONFIG_PATH so that build
scripts don't have to?

(I've sent this to both the mirage & opam lists - apologies if that
causes too much noise, but I figure it affects both projects).

Cheers,
 - Tim.

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Sat Sep 12 07:50:24 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sat, 12 Sep 2015 07:50:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZafZf-0002Oo-7P; Sat, 12 Sep 2015 07:50:15 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <tim@gfxmonk.net>) id 1ZafZe-0002Oj-16
	for MirageOS-devel@lists.xenproject.org; Sat, 12 Sep 2015 07:50:14 +0000
Received: from [85.158.137.68] by server-13.bemta-3.messagelabs.com id
	64/77-00536-539D3F55; Sat, 12 Sep 2015 07:50:13 +0000
X-Env-Sender: tim@gfxmonk.net
X-Msg-Ref: server-8.tower-31.messagelabs.com!1442044211!43684317!1
X-Originating-IP: [209.85.213.174]
X-SpamReason: No, hits=0.8 required=7.0 tests=BODY_RANDOM_LONG,
  RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 624 invoked from network); 12 Sep 2015 07:50:12 -0000
Received: from mail-ig0-f174.google.com (HELO mail-ig0-f174.google.com)
	(209.85.213.174)
	by server-8.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	12 Sep 2015 07:50:12 -0000
Received: by igbkq10 with SMTP id kq10so56988917igb.0
	for <MirageOS-devel@lists.xenproject.org>;
	Sat, 12 Sep 2015 00:50:11 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:mime-version:from:date:message-id:subject:to
	:content-type;
	bh=KOJASFDeOJpxvpXJmC0Lo/OeK8FSaHI4zHOdmIHsCPY=;
	b=B2Db3UNWCn+9PmPJ53mDEJ42/bV8z6+wnQXi5xE7P7wOjroChAa4iCI/uBZHNaikq2
	eiwjjXyLxeghauivQbGsUFVxxWJGfdNfLu7lkd+0oBJiVeeVbIca+FXNiOAo5mROnQ3x
	dZlWO6330tRultjfLWTbnk59GS3KVSdG4wCiCyDSdVKhKIlFZiiQhBAIYAIqmEK1QPaI
	wFnhrZz3AzMKK3Xto0c34XTDQuW1yxNICh4O2AXYGnYrDHva1Atne5ik8msra+fM73rs
	mOitpsUfRxbaDBd1kIMzNc5SaPKYbjb4OrhBOTjXDgQjJvYjbMCM542ZIPq5vnFqED/C
	szNA==
X-Gm-Message-State: ALoCoQmR6cHyUZLcucWWvqRLfGeyqFc32tcndcXCfvNGH7RyMipG5aw213doiUWOll4m8nN51FZ5
X-Received: by 10.50.92.9 with SMTP id ci9mr2838602igb.2.1442044211546;
	Sat, 12 Sep 2015 00:50:11 -0700 (PDT)
Received: from mail-io0-f181.google.com (mail-io0-f181.google.com.
	[209.85.223.181])
	by smtp.gmail.com with ESMTPSA id j3sm1361372ige.0.2015.09.12.00.50.10
	for <MirageOS-devel@lists.xenproject.org>
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Sat, 12 Sep 2015 00:50:10 -0700 (PDT)
Received: by ioii196 with SMTP id i196so121189741ioi.3
	for <MirageOS-devel@lists.xenproject.org>;
	Sat, 12 Sep 2015 00:50:09 -0700 (PDT)
X-Received: by 10.107.151.81 with SMTP id z78mr9388319iod.63.1442044209822;
	Sat, 12 Sep 2015 00:50:09 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.50.159.101 with HTTP; Sat, 12 Sep 2015 00:49:50 -0700 (PDT)
From: Tim Cuthbertson <tim@gfxmonk.net>
Date: Sat, 12 Sep 2015 17:49:50 +1000
Message-ID: <CAC-LLDhi5jkQ6=cuM9z36xS4cGDGq=kgDyzNOg1dWSSP7LFSpQ@mail.gmail.com>
To: opam-devel@lists.ocaml.org, "mirageos-devel@lists.xenproject.org"
	<MirageOS-devel@lists.xenproject.org>
Subject: [MirageOS-devel] Managing $PKG_CONFIG_PATH in opam
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On the MirageOS mailing list, I submitted some patches[0] to make some
mirage libraries build without assuming a strict `opam` destination
directory layout. Mainly this was about the build scripts explicitly
setting PKG_CONFIG_PATH to `opam config var prefix`/lib/pkgconfig.
When building in a nixpkgs environment (using the `opam2nix` tool I'm
building[1]), there is no such path, but that's OK - the build
environment will have already set $PKG_CONFIG_PATH correctly.

[0] http://lists.xenproject.org/archives/html/mirageos-devel/2015-09/msg00000.html
[1] https://github.com/gfxmonk/opam2nix

It was generally agreed that having the build scripts perform this
task is not ideal, and Thomas Leonard suggested we could change `opam`
itself to export $PKG_CONFIG_PATH, rather than having build scripts
assume too much about their environment. That way a build script can
assume its pkg-config dependencies are available without caring
exactly where they live.

This seems like a good idea to me, and I've written up a fairly simple
patch which (I think) will do so:

https://github.com/ocaml/opam/compare/master...gfxmonk:pkg-config

I have only superficially tested it, but in thinking about that it
seems like this almost certainly won't be enough. All "pure" opam
packages providing pkg-config libraries should work just fine, however
there exist a large number of opam packages (conf-*) which exist
solely to force installation of system packages, and therefore most of
them actually rely on the system $PKG_CONFIG_PATH being used.

We could make `opam` prefix the opam pkgconfig path with the system
one, but this could lead to accidental impurity (in the case of these
mirage libraries, it would mean that dependencies might accidentally
be provided by the system rather than opam deps, which makes builds
fragile).

Any ideas how we can have opam manage PKG_CONFIG_PATH so that build
scripts don't have to?

(I've sent this to both the mirage & opam lists - apologies if that
causes too much noise, but I figure it affects both projects).

Cheers,
 - Tim.

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Sun Sep 13 13:08:06 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sun, 13 Sep 2015 13:08:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1Zb70c-0001ed-2M; Sun, 13 Sep 2015 13:07:54 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <talex5@gmail.com>) id 1Zb70a-0001eY-OW
	for MirageOS-devel@lists.xenproject.org; Sun, 13 Sep 2015 13:07:52 +0000
Received: from [85.158.137.68] by server-1.bemta-3.messagelabs.com id
	41/5C-01421-82575F55; Sun, 13 Sep 2015 13:07:52 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-6.tower-31.messagelabs.com!1442149670!39449826!1
X-Originating-IP: [209.85.213.52]
X-SpamReason: No, hits=0.8 required=7.0 tests=BODY_RANDOM_LONG,
  RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 15185 invoked from network); 13 Sep 2015 13:07:51 -0000
Received: from mail-vk0-f52.google.com (HELO mail-vk0-f52.google.com)
	(209.85.213.52)
	by server-6.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	13 Sep 2015 13:07:51 -0000
Received: by vkfp126 with SMTP id p126so45708902vkf.3
	for <MirageOS-devel@lists.xenproject.org>;
	Sun, 13 Sep 2015 06:07:50 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:in-reply-to:references:date:message-id:subject:from:to
	:cc:content-type;
	bh=C+Tgv9Zdd9sLcTP5m0XWX2i5tADHjQUY41J8B2Q+x1g=;
	b=lW7oOEy5tMKEu2envO/xIIakHTK9nF4bPK60jWKI6fkCfscUX44ar2wyfejLfXiFb7
	9GpNE7hkmEHUQTezDZbKkDfMdvBx7l0RxGIqMCCf8lcIDUKzc2QgkisQI0IFq+gzMlyn
	kJVq6mV2W+2XAkZtaUkmH+MGQl7FbE08d6z5O1VGfeVhH4jZt+vovOjQ7orc0dMIVPwM
	JhI1iBgN2gt0PLDwWW2VeGU+fkFiUpNmX0ctxVqoqbdQdfHYj0pWVmVlfM/nBaQSffi4
	uNNRMdRReNora+7fLEFRBok8La3jlvc6fjGFUdXfmorv3L6fno2KFv+6Fjv4eq+JjSpY
	vbfw==
MIME-Version: 1.0
X-Received: by 10.31.142.144 with SMTP id q138mr8784446vkd.41.1442149670168;
	Sun, 13 Sep 2015 06:07:50 -0700 (PDT)
Received: by 10.31.69.4 with HTTP; Sun, 13 Sep 2015 06:07:50 -0700 (PDT)
In-Reply-To: <CAC-LLDhi5jkQ6=cuM9z36xS4cGDGq=kgDyzNOg1dWSSP7LFSpQ@mail.gmail.com>
References: <CAC-LLDhi5jkQ6=cuM9z36xS4cGDGq=kgDyzNOg1dWSSP7LFSpQ@mail.gmail.com>
Date: Sun, 13 Sep 2015 14:07:50 +0100
Message-ID: <CAG4opy86DYekdODSVeCSFs2tDcG6bBSsKntf1RxAJmhxPAPRLA@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: Tim Cuthbertson <tim@gfxmonk.net>
Cc: opam-devel <opam-devel@lists.ocaml.org>,
	"mirageos-devel@lists.xenproject.org" <MirageOS-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] [opam-devel] Managing $PKG_CONFIG_PATH in opam
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On 12 September 2015 at 08:49, Tim Cuthbertson <tim@gfxmonk.net> wrote:
> On the MirageOS mailing list, I submitted some patches[0] to make some
> mirage libraries build without assuming a strict `opam` destination
> directory layout. Mainly this was about the build scripts explicitly
> setting PKG_CONFIG_PATH to `opam config var prefix`/lib/pkgconfig.
> When building in a nixpkgs environment (using the `opam2nix` tool I'm
> building[1]), there is no such path, but that's OK - the build
> environment will have already set $PKG_CONFIG_PATH correctly.
>
> [0] http://lists.xenproject.org/archives/html/mirageos-devel/2015-09/msg00000.html
> [1] https://github.com/gfxmonk/opam2nix
>
> It was generally agreed that having the build scripts perform this
> task is not ideal, and Thomas Leonard suggested we could change `opam`
> itself to export $PKG_CONFIG_PATH, rather than having build scripts
> assume too much about their environment. That way a build script can
> assume its pkg-config dependencies are available without caring
> exactly where they live.
>
> This seems like a good idea to me, and I've written up a fairly simple
> patch which (I think) will do so:
>
> https://github.com/ocaml/opam/compare/master...gfxmonk:pkg-config
>
> I have only superficially tested it, but in thinking about that it
> seems like this almost certainly won't be enough. All "pure" opam
> packages providing pkg-config libraries should work just fine, however
> there exist a large number of opam packages (conf-*) which exist
> solely to force installation of system packages, and therefore most of
> them actually rely on the system $PKG_CONFIG_PATH being used.
>
> We could make `opam` prefix the opam pkgconfig path with the system
> one, but this could lead to accidental impurity (in the case of these
> mirage libraries, it would mean that dependencies might accidentally
> be provided by the system rather than opam deps, which makes builds
> fragile).

Since the opam environment is also the user's shell environment, we
should always add to the path, I think. Using opam shouldn't prevent
compiling non-OCaml software.

> Any ideas how we can have opam manage PKG_CONFIG_PATH so that build
> scripts don't have to?
>
> (I've sent this to both the mirage & opam lists - apologies if that
> causes too much noise, but I figure it affects both projects).
>
> Cheers,
>  - Tim.


-- 
Dr Thomas Leonard        http://roscidus.com/blog/
GPG: DA98 25AE CAD0 8975 7CDA  BD8E 0713 3F96 CA74 D8BA

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Sun Sep 13 13:08:06 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sun, 13 Sep 2015 13:08:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1Zb70c-0001ed-2M; Sun, 13 Sep 2015 13:07:54 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <talex5@gmail.com>) id 1Zb70a-0001eY-OW
	for MirageOS-devel@lists.xenproject.org; Sun, 13 Sep 2015 13:07:52 +0000
Received: from [85.158.137.68] by server-1.bemta-3.messagelabs.com id
	41/5C-01421-82575F55; Sun, 13 Sep 2015 13:07:52 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-6.tower-31.messagelabs.com!1442149670!39449826!1
X-Originating-IP: [209.85.213.52]
X-SpamReason: No, hits=0.8 required=7.0 tests=BODY_RANDOM_LONG,
  RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 15185 invoked from network); 13 Sep 2015 13:07:51 -0000
Received: from mail-vk0-f52.google.com (HELO mail-vk0-f52.google.com)
	(209.85.213.52)
	by server-6.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	13 Sep 2015 13:07:51 -0000
Received: by vkfp126 with SMTP id p126so45708902vkf.3
	for <MirageOS-devel@lists.xenproject.org>;
	Sun, 13 Sep 2015 06:07:50 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:in-reply-to:references:date:message-id:subject:from:to
	:cc:content-type;
	bh=C+Tgv9Zdd9sLcTP5m0XWX2i5tADHjQUY41J8B2Q+x1g=;
	b=lW7oOEy5tMKEu2envO/xIIakHTK9nF4bPK60jWKI6fkCfscUX44ar2wyfejLfXiFb7
	9GpNE7hkmEHUQTezDZbKkDfMdvBx7l0RxGIqMCCf8lcIDUKzc2QgkisQI0IFq+gzMlyn
	kJVq6mV2W+2XAkZtaUkmH+MGQl7FbE08d6z5O1VGfeVhH4jZt+vovOjQ7orc0dMIVPwM
	JhI1iBgN2gt0PLDwWW2VeGU+fkFiUpNmX0ctxVqoqbdQdfHYj0pWVmVlfM/nBaQSffi4
	uNNRMdRReNora+7fLEFRBok8La3jlvc6fjGFUdXfmorv3L6fno2KFv+6Fjv4eq+JjSpY
	vbfw==
MIME-Version: 1.0
X-Received: by 10.31.142.144 with SMTP id q138mr8784446vkd.41.1442149670168;
	Sun, 13 Sep 2015 06:07:50 -0700 (PDT)
Received: by 10.31.69.4 with HTTP; Sun, 13 Sep 2015 06:07:50 -0700 (PDT)
In-Reply-To: <CAC-LLDhi5jkQ6=cuM9z36xS4cGDGq=kgDyzNOg1dWSSP7LFSpQ@mail.gmail.com>
References: <CAC-LLDhi5jkQ6=cuM9z36xS4cGDGq=kgDyzNOg1dWSSP7LFSpQ@mail.gmail.com>
Date: Sun, 13 Sep 2015 14:07:50 +0100
Message-ID: <CAG4opy86DYekdODSVeCSFs2tDcG6bBSsKntf1RxAJmhxPAPRLA@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: Tim Cuthbertson <tim@gfxmonk.net>
Cc: opam-devel <opam-devel@lists.ocaml.org>,
	"mirageos-devel@lists.xenproject.org" <MirageOS-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] [opam-devel] Managing $PKG_CONFIG_PATH in opam
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On 12 September 2015 at 08:49, Tim Cuthbertson <tim@gfxmonk.net> wrote:
> On the MirageOS mailing list, I submitted some patches[0] to make some
> mirage libraries build without assuming a strict `opam` destination
> directory layout. Mainly this was about the build scripts explicitly
> setting PKG_CONFIG_PATH to `opam config var prefix`/lib/pkgconfig.
> When building in a nixpkgs environment (using the `opam2nix` tool I'm
> building[1]), there is no such path, but that's OK - the build
> environment will have already set $PKG_CONFIG_PATH correctly.
>
> [0] http://lists.xenproject.org/archives/html/mirageos-devel/2015-09/msg00000.html
> [1] https://github.com/gfxmonk/opam2nix
>
> It was generally agreed that having the build scripts perform this
> task is not ideal, and Thomas Leonard suggested we could change `opam`
> itself to export $PKG_CONFIG_PATH, rather than having build scripts
> assume too much about their environment. That way a build script can
> assume its pkg-config dependencies are available without caring
> exactly where they live.
>
> This seems like a good idea to me, and I've written up a fairly simple
> patch which (I think) will do so:
>
> https://github.com/ocaml/opam/compare/master...gfxmonk:pkg-config
>
> I have only superficially tested it, but in thinking about that it
> seems like this almost certainly won't be enough. All "pure" opam
> packages providing pkg-config libraries should work just fine, however
> there exist a large number of opam packages (conf-*) which exist
> solely to force installation of system packages, and therefore most of
> them actually rely on the system $PKG_CONFIG_PATH being used.
>
> We could make `opam` prefix the opam pkgconfig path with the system
> one, but this could lead to accidental impurity (in the case of these
> mirage libraries, it would mean that dependencies might accidentally
> be provided by the system rather than opam deps, which makes builds
> fragile).

Since the opam environment is also the user's shell environment, we
should always add to the path, I think. Using opam shouldn't prevent
compiling non-OCaml software.

> Any ideas how we can have opam manage PKG_CONFIG_PATH so that build
> scripts don't have to?
>
> (I've sent this to both the mirage & opam lists - apologies if that
> causes too much noise, but I figure it affects both projects).
>
> Cheers,
>  - Tim.


-- 
Dr Thomas Leonard        http://roscidus.com/blog/
GPG: DA98 25AE CAD0 8975 7CDA  BD8E 0713 3F96 CA74 D8BA

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Mon Sep 14 13:36:30 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 14 Sep 2015 13:36:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZbTvh-0004QS-9n; Mon, 14 Sep 2015 13:36:21 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <anil@recoil.org>) id 1ZbTvf-0004QK-Jb
	for MirageOS-devel@lists.xenproject.org; Mon, 14 Sep 2015 13:36:19 +0000
Received: from [85.158.137.68] by server-9.bemta-3.messagelabs.com id
	46/3C-10678-25DC6F55; Mon, 14 Sep 2015 13:36:18 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-8.tower-31.messagelabs.com!1442237777!44122831!1
X-Originating-IP: [5.153.225.51]
X-SpamReason: No, hits=0.7 required=7.0 tests=BODY_RANDOM_LONG, RCVD_ILLEGAL_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 25204 invoked from network); 14 Sep 2015 13:36:17 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-8.tower-31.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 14 Sep 2015 13:36:17 -0000
Received: from [10.0.0.96] (host81-149-102-120.in-addr.btopenworld.com
	[81.149.102.120])
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id 39644a59
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Mon, 14 Sep 2015 14:36:16 +0100 (BST)
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <CAG4opy86DYekdODSVeCSFs2tDcG6bBSsKntf1RxAJmhxPAPRLA@mail.gmail.com>
Date: Mon, 14 Sep 2015 14:36:14 +0100
Message-Id: <AD6064B5-F6C3-4619-8782-61E66BB29042@recoil.org>
References: <CAC-LLDhi5jkQ6=cuM9z36xS4cGDGq=kgDyzNOg1dWSSP7LFSpQ@mail.gmail.com>
	<CAG4opy86DYekdODSVeCSFs2tDcG6bBSsKntf1RxAJmhxPAPRLA@mail.gmail.com>
To: Thomas Leonard <talex5@gmail.com>
X-Mailer: Apple Mail (2.2104)
Cc: opam-devel <opam-devel@lists.ocaml.org>,
	"mirageos-devel@lists.xenproject.org" <MirageOS-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] [opam-devel] Managing $PKG_CONFIG_PATH in opam
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On 13 Sep 2015, at 14:07, Thomas Leonard <talex5@gmail.com> wrote:
> 
> On 12 September 2015 at 08:49, Tim Cuthbertson <tim@gfxmonk.net> wrote:
>> On the MirageOS mailing list, I submitted some patches[0] to make some
>> mirage libraries build without assuming a strict `opam` destination
>> directory layout. Mainly this was about the build scripts explicitly
>> setting PKG_CONFIG_PATH to `opam config var prefix`/lib/pkgconfig.
>> When building in a nixpkgs environment (using the `opam2nix` tool I'm
>> building[1]), there is no such path, but that's OK - the build
>> environment will have already set $PKG_CONFIG_PATH correctly.
>> 
>> [0] http://lists.xenproject.org/archives/html/mirageos-devel/2015-09/msg00000.html
>> [1] https://github.com/gfxmonk/opam2nix
>> 
>> It was generally agreed that having the build scripts perform this
>> task is not ideal, and Thomas Leonard suggested we could change `opam`
>> itself to export $PKG_CONFIG_PATH, rather than having build scripts
>> assume too much about their environment. That way a build script can
>> assume its pkg-config dependencies are available without caring
>> exactly where they live.
>> 
>> This seems like a good idea to me, and I've written up a fairly simple
>> patch which (I think) will do so:
>> 
>> https://github.com/ocaml/opam/compare/master...gfxmonk:pkg-config
>> 
>> I have only superficially tested it, but in thinking about that it
>> seems like this almost certainly won't be enough. All "pure" opam
>> packages providing pkg-config libraries should work just fine, however
>> there exist a large number of opam packages (conf-*) which exist
>> solely to force installation of system packages, and therefore most of
>> them actually rely on the system $PKG_CONFIG_PATH being used.
>> 
>> We could make `opam` prefix the opam pkgconfig path with the system
>> one, but this could lead to accidental impurity (in the case of these
>> mirage libraries, it would mean that dependencies might accidentally
>> be provided by the system rather than opam deps, which makes builds
>> fragile).
> 
> Since the opam environment is also the user's shell environment, we
> should always add to the path, I think. Using opam shouldn't prevent
> compiling non-OCaml software.

Agreed.  It's ok to substitute a PATH if it was inserted by OPAM, but
the environment should otherwise be unchanged.

Note that OPAM does scrub some variables during the invocation of a
subshell (MAKEFLAGS in particular) to prevent environment parallel
flags to propagate to packages, but nothing like this happens in the
PATH.

>> Any ideas how we can have opam manage PKG_CONFIG_PATH so that build
>> scripts don't have to?
>> 
>> (I've sent this to both the mirage & opam lists - apologies if that
>> causes too much noise, but I figure it affects both projects).

I think we could definitely use an answer to pkg-config management,
but not one that's entwined into the core of OPAM itself. If something
could be figured out that fits in with the compilers-as-packages
feature so that packages could extend the environment, this would
make cross-OS portability much easier.

In general, how important is pkg-config for library tracking?  Is 
our interest in it the consequence of some third-party packages
using it, or do we want it to be the defacto mechanism for handling
system link flags (a bit like ocamlfind for OCaml)?  If the latter,
then quite a bit of work needs to be done for straggling system
libraries that aren't packaged up using pkg-config, which I fear is
a neverending task.  I'm also curious to know how it works in a
Nix-like environment in terms of the composibility of PKG_CONFIG_PATH.

-a


 
_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Mon Sep 14 13:36:30 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 14 Sep 2015 13:36:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZbTvh-0004QS-9n; Mon, 14 Sep 2015 13:36:21 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <anil@recoil.org>) id 1ZbTvf-0004QK-Jb
	for MirageOS-devel@lists.xenproject.org; Mon, 14 Sep 2015 13:36:19 +0000
Received: from [85.158.137.68] by server-9.bemta-3.messagelabs.com id
	46/3C-10678-25DC6F55; Mon, 14 Sep 2015 13:36:18 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-8.tower-31.messagelabs.com!1442237777!44122831!1
X-Originating-IP: [5.153.225.51]
X-SpamReason: No, hits=0.7 required=7.0 tests=BODY_RANDOM_LONG, RCVD_ILLEGAL_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 25204 invoked from network); 14 Sep 2015 13:36:17 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-8.tower-31.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 14 Sep 2015 13:36:17 -0000
Received: from [10.0.0.96] (host81-149-102-120.in-addr.btopenworld.com
	[81.149.102.120])
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id 39644a59
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Mon, 14 Sep 2015 14:36:16 +0100 (BST)
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <CAG4opy86DYekdODSVeCSFs2tDcG6bBSsKntf1RxAJmhxPAPRLA@mail.gmail.com>
Date: Mon, 14 Sep 2015 14:36:14 +0100
Message-Id: <AD6064B5-F6C3-4619-8782-61E66BB29042@recoil.org>
References: <CAC-LLDhi5jkQ6=cuM9z36xS4cGDGq=kgDyzNOg1dWSSP7LFSpQ@mail.gmail.com>
	<CAG4opy86DYekdODSVeCSFs2tDcG6bBSsKntf1RxAJmhxPAPRLA@mail.gmail.com>
To: Thomas Leonard <talex5@gmail.com>
X-Mailer: Apple Mail (2.2104)
Cc: opam-devel <opam-devel@lists.ocaml.org>,
	"mirageos-devel@lists.xenproject.org" <MirageOS-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] [opam-devel] Managing $PKG_CONFIG_PATH in opam
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On 13 Sep 2015, at 14:07, Thomas Leonard <talex5@gmail.com> wrote:
> 
> On 12 September 2015 at 08:49, Tim Cuthbertson <tim@gfxmonk.net> wrote:
>> On the MirageOS mailing list, I submitted some patches[0] to make some
>> mirage libraries build without assuming a strict `opam` destination
>> directory layout. Mainly this was about the build scripts explicitly
>> setting PKG_CONFIG_PATH to `opam config var prefix`/lib/pkgconfig.
>> When building in a nixpkgs environment (using the `opam2nix` tool I'm
>> building[1]), there is no such path, but that's OK - the build
>> environment will have already set $PKG_CONFIG_PATH correctly.
>> 
>> [0] http://lists.xenproject.org/archives/html/mirageos-devel/2015-09/msg00000.html
>> [1] https://github.com/gfxmonk/opam2nix
>> 
>> It was generally agreed that having the build scripts perform this
>> task is not ideal, and Thomas Leonard suggested we could change `opam`
>> itself to export $PKG_CONFIG_PATH, rather than having build scripts
>> assume too much about their environment. That way a build script can
>> assume its pkg-config dependencies are available without caring
>> exactly where they live.
>> 
>> This seems like a good idea to me, and I've written up a fairly simple
>> patch which (I think) will do so:
>> 
>> https://github.com/ocaml/opam/compare/master...gfxmonk:pkg-config
>> 
>> I have only superficially tested it, but in thinking about that it
>> seems like this almost certainly won't be enough. All "pure" opam
>> packages providing pkg-config libraries should work just fine, however
>> there exist a large number of opam packages (conf-*) which exist
>> solely to force installation of system packages, and therefore most of
>> them actually rely on the system $PKG_CONFIG_PATH being used.
>> 
>> We could make `opam` prefix the opam pkgconfig path with the system
>> one, but this could lead to accidental impurity (in the case of these
>> mirage libraries, it would mean that dependencies might accidentally
>> be provided by the system rather than opam deps, which makes builds
>> fragile).
> 
> Since the opam environment is also the user's shell environment, we
> should always add to the path, I think. Using opam shouldn't prevent
> compiling non-OCaml software.

Agreed.  It's ok to substitute a PATH if it was inserted by OPAM, but
the environment should otherwise be unchanged.

Note that OPAM does scrub some variables during the invocation of a
subshell (MAKEFLAGS in particular) to prevent environment parallel
flags to propagate to packages, but nothing like this happens in the
PATH.

>> Any ideas how we can have opam manage PKG_CONFIG_PATH so that build
>> scripts don't have to?
>> 
>> (I've sent this to both the mirage & opam lists - apologies if that
>> causes too much noise, but I figure it affects both projects).

I think we could definitely use an answer to pkg-config management,
but not one that's entwined into the core of OPAM itself. If something
could be figured out that fits in with the compilers-as-packages
feature so that packages could extend the environment, this would
make cross-OS portability much easier.

In general, how important is pkg-config for library tracking?  Is 
our interest in it the consequence of some third-party packages
using it, or do we want it to be the defacto mechanism for handling
system link flags (a bit like ocamlfind for OCaml)?  If the latter,
then quite a bit of work needs to be done for straggling system
libraries that aren't packaged up using pkg-config, which I fear is
a neverending task.  I'm also curious to know how it works in a
Nix-like environment in terms of the composibility of PKG_CONFIG_PATH.

-a


 
_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Mon Sep 14 14:05:44 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 14 Sep 2015 14:05:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZbUNz-0007eR-1E; Mon, 14 Sep 2015 14:05:35 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <talex5@gmail.com>) id 1ZbUNw-0007eE-Ul
	for MirageOS-devel@lists.xenproject.org; Mon, 14 Sep 2015 14:05:33 +0000
Received: from [193.109.254.147] by server-3.bemta-14.messagelabs.com id
	5F/70-25435-B24D6F55; Mon, 14 Sep 2015 14:05:31 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-8.tower-27.messagelabs.com!1442239529!49608039!1
X-Originating-IP: [209.85.213.50]
X-SpamReason: No, hits=0.8 required=7.0 tests=BODY_RANDOM_LONG,
  RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 21905 invoked from network); 14 Sep 2015 14:05:30 -0000
Received: from mail-vk0-f50.google.com (HELO mail-vk0-f50.google.com)
	(209.85.213.50)
	by server-8.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	14 Sep 2015 14:05:30 -0000
Received: by vkgd64 with SMTP id d64so59715758vkg.0
	for <MirageOS-devel@lists.xenproject.org>;
	Mon, 14 Sep 2015 07:05:29 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:in-reply-to:references:date:message-id:subject:from:to
	:cc:content-type;
	bh=bQyXrR7KcscO8vTT/nLJyOi8e2IyIGJGjfNrJHKqmiM=;
	b=J6fTRbuQ3gweHWqEO6WKQUeHA7JBpeLXOFvI5bVGOTIizEWgDeIBTBzwE2q7+l/PM1
	lbk8Quk3maO2T04Qowv/pFrirog5Ct+3b/25HLkNZ3bq4S1Zcu6FIJQwncFtjIhBtShm
	k0Fdnkxz6B6SJ1Xs3y+MHnqawUzRRiYkzfD/PUvSA9DAQvfRFgBiGLGYNjExeiBZZvfi
	YZj0jbmFhxrxh4koEQ4EhqDdxpkrTmoj/7pLy2tp4Jg5PLROKhykvXaIuEoSLZaC/bVT
	CKjAdH6Fe5d8qHS11ShnbpCmgH44u9Tt8iD5We0vU96X0/AkUEogQS9s3npxyuWETO8o
	w6Yw==
MIME-Version: 1.0
X-Received: by 10.31.153.212 with SMTP id b203mr12745257vke.19.1442239529595; 
	Mon, 14 Sep 2015 07:05:29 -0700 (PDT)
Received: by 10.31.69.4 with HTTP; Mon, 14 Sep 2015 07:05:29 -0700 (PDT)
In-Reply-To: <AD6064B5-F6C3-4619-8782-61E66BB29042@recoil.org>
References: <CAC-LLDhi5jkQ6=cuM9z36xS4cGDGq=kgDyzNOg1dWSSP7LFSpQ@mail.gmail.com>
	<CAG4opy86DYekdODSVeCSFs2tDcG6bBSsKntf1RxAJmhxPAPRLA@mail.gmail.com>
	<AD6064B5-F6C3-4619-8782-61E66BB29042@recoil.org>
Date: Mon, 14 Sep 2015 15:05:29 +0100
Message-ID: <CAG4opy8sqijFs=2xjr2s-t3nZsAVxNXKYaVL=T=Ks1GU-LQ74Q@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: Anil Madhavapeddy <anil@recoil.org>
Cc: opam-devel <opam-devel@lists.ocaml.org>,
	"mirageos-devel@lists.xenproject.org" <MirageOS-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] [opam-devel] Managing $PKG_CONFIG_PATH in opam
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On 14 September 2015 at 14:36, Anil Madhavapeddy <anil@recoil.org> wrote:
> On 13 Sep 2015, at 14:07, Thomas Leonard <talex5@gmail.com> wrote:
>>
>> On 12 September 2015 at 08:49, Tim Cuthbertson <tim@gfxmonk.net> wrote:
>>> On the MirageOS mailing list, I submitted some patches[0] to make some
>>> mirage libraries build without assuming a strict `opam` destination
>>> directory layout. Mainly this was about the build scripts explicitly
>>> setting PKG_CONFIG_PATH to `opam config var prefix`/lib/pkgconfig.
>>> When building in a nixpkgs environment (using the `opam2nix` tool I'm
>>> building[1]), there is no such path, but that's OK - the build
>>> environment will have already set $PKG_CONFIG_PATH correctly.
>>>
>>> [0] http://lists.xenproject.org/archives/html/mirageos-devel/2015-09/msg00000.html
>>> [1] https://github.com/gfxmonk/opam2nix
>>>
>>> It was generally agreed that having the build scripts perform this
>>> task is not ideal, and Thomas Leonard suggested we could change `opam`
>>> itself to export $PKG_CONFIG_PATH, rather than having build scripts
>>> assume too much about their environment. That way a build script can
>>> assume its pkg-config dependencies are available without caring
>>> exactly where they live.
>>>
>>> This seems like a good idea to me, and I've written up a fairly simple
>>> patch which (I think) will do so:
>>>
>>> https://github.com/ocaml/opam/compare/master...gfxmonk:pkg-config
>>>
>>> I have only superficially tested it, but in thinking about that it
>>> seems like this almost certainly won't be enough. All "pure" opam
>>> packages providing pkg-config libraries should work just fine, however
>>> there exist a large number of opam packages (conf-*) which exist
>>> solely to force installation of system packages, and therefore most of
>>> them actually rely on the system $PKG_CONFIG_PATH being used.
>>>
>>> We could make `opam` prefix the opam pkgconfig path with the system
>>> one, but this could lead to accidental impurity (in the case of these
>>> mirage libraries, it would mean that dependencies might accidentally
>>> be provided by the system rather than opam deps, which makes builds
>>> fragile).
>>
>> Since the opam environment is also the user's shell environment, we
>> should always add to the path, I think. Using opam shouldn't prevent
>> compiling non-OCaml software.
>
> Agreed.  It's ok to substitute a PATH if it was inserted by OPAM, but
> the environment should otherwise be unchanged.
>
> Note that OPAM does scrub some variables during the invocation of a
> subshell (MAKEFLAGS in particular) to prevent environment parallel
> flags to propagate to packages, but nothing like this happens in the
> PATH.
>
>>> Any ideas how we can have opam manage PKG_CONFIG_PATH so that build
>>> scripts don't have to?
>>>
>>> (I've sent this to both the mirage & opam lists - apologies if that
>>> causes too much noise, but I figure it affects both projects).
>
> I think we could definitely use an answer to pkg-config management,
> but not one that's entwined into the core of OPAM itself. If something
> could be figured out that fits in with the compilers-as-packages
> feature so that packages could extend the environment, this would
> make cross-OS portability much easier.
>
> In general, how important is pkg-config for library tracking?  Is
> our interest in it the consequence of some third-party packages
> using it, or do we want it to be the defacto mechanism for handling
> system link flags (a bit like ocamlfind for OCaml)?  If the latter,
> then quite a bit of work needs to be done for straggling system
> libraries that aren't packaged up using pkg-config, which I fear is
> a neverending task.  I'm also curious to know how it works in a
> Nix-like environment in terms of the composibility of PKG_CONFIG_PATH.

I'm not sure I understand what you're saying here. pkg-config is like
ocamlfind for C libraries, and very widely used (try "pkg-config
--list-all" to see your installed packages). For libraries that use
it, it is usually the only way to get the flags you need.

C packages distributed via opam will normally want to install
per-switch .pc files, just as OCaml programs want to install ocamlfind
META files. Either every package extends PKG_CONFIG_PATH with its own
directory in lib, or opam should provide a common directory for them
all (as it already does for binaries, man-pages, etc).

0install takes the approach of adding each library to PKG_CONFIG_PATH,
because it separates the files of different packages completely.
However, it can only do this because it sets up the build environment
for each build itself, with just the libraries needed for that build.
For opam, which likes to put everything into the user's default
environment, PKG_CONFIG_PATH would get very long.


-- 
Dr Thomas Leonard        http://roscidus.com/blog/
GPG: DA98 25AE CAD0 8975 7CDA  BD8E 0713 3F96 CA74 D8BA

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Mon Sep 14 14:05:44 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 14 Sep 2015 14:05:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZbUNz-0007eR-1E; Mon, 14 Sep 2015 14:05:35 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <talex5@gmail.com>) id 1ZbUNw-0007eE-Ul
	for MirageOS-devel@lists.xenproject.org; Mon, 14 Sep 2015 14:05:33 +0000
Received: from [193.109.254.147] by server-3.bemta-14.messagelabs.com id
	5F/70-25435-B24D6F55; Mon, 14 Sep 2015 14:05:31 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-8.tower-27.messagelabs.com!1442239529!49608039!1
X-Originating-IP: [209.85.213.50]
X-SpamReason: No, hits=0.8 required=7.0 tests=BODY_RANDOM_LONG,
  RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 21905 invoked from network); 14 Sep 2015 14:05:30 -0000
Received: from mail-vk0-f50.google.com (HELO mail-vk0-f50.google.com)
	(209.85.213.50)
	by server-8.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	14 Sep 2015 14:05:30 -0000
Received: by vkgd64 with SMTP id d64so59715758vkg.0
	for <MirageOS-devel@lists.xenproject.org>;
	Mon, 14 Sep 2015 07:05:29 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:in-reply-to:references:date:message-id:subject:from:to
	:cc:content-type;
	bh=bQyXrR7KcscO8vTT/nLJyOi8e2IyIGJGjfNrJHKqmiM=;
	b=J6fTRbuQ3gweHWqEO6WKQUeHA7JBpeLXOFvI5bVGOTIizEWgDeIBTBzwE2q7+l/PM1
	lbk8Quk3maO2T04Qowv/pFrirog5Ct+3b/25HLkNZ3bq4S1Zcu6FIJQwncFtjIhBtShm
	k0Fdnkxz6B6SJ1Xs3y+MHnqawUzRRiYkzfD/PUvSA9DAQvfRFgBiGLGYNjExeiBZZvfi
	YZj0jbmFhxrxh4koEQ4EhqDdxpkrTmoj/7pLy2tp4Jg5PLROKhykvXaIuEoSLZaC/bVT
	CKjAdH6Fe5d8qHS11ShnbpCmgH44u9Tt8iD5We0vU96X0/AkUEogQS9s3npxyuWETO8o
	w6Yw==
MIME-Version: 1.0
X-Received: by 10.31.153.212 with SMTP id b203mr12745257vke.19.1442239529595; 
	Mon, 14 Sep 2015 07:05:29 -0700 (PDT)
Received: by 10.31.69.4 with HTTP; Mon, 14 Sep 2015 07:05:29 -0700 (PDT)
In-Reply-To: <AD6064B5-F6C3-4619-8782-61E66BB29042@recoil.org>
References: <CAC-LLDhi5jkQ6=cuM9z36xS4cGDGq=kgDyzNOg1dWSSP7LFSpQ@mail.gmail.com>
	<CAG4opy86DYekdODSVeCSFs2tDcG6bBSsKntf1RxAJmhxPAPRLA@mail.gmail.com>
	<AD6064B5-F6C3-4619-8782-61E66BB29042@recoil.org>
Date: Mon, 14 Sep 2015 15:05:29 +0100
Message-ID: <CAG4opy8sqijFs=2xjr2s-t3nZsAVxNXKYaVL=T=Ks1GU-LQ74Q@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: Anil Madhavapeddy <anil@recoil.org>
Cc: opam-devel <opam-devel@lists.ocaml.org>,
	"mirageos-devel@lists.xenproject.org" <MirageOS-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] [opam-devel] Managing $PKG_CONFIG_PATH in opam
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On 14 September 2015 at 14:36, Anil Madhavapeddy <anil@recoil.org> wrote:
> On 13 Sep 2015, at 14:07, Thomas Leonard <talex5@gmail.com> wrote:
>>
>> On 12 September 2015 at 08:49, Tim Cuthbertson <tim@gfxmonk.net> wrote:
>>> On the MirageOS mailing list, I submitted some patches[0] to make some
>>> mirage libraries build without assuming a strict `opam` destination
>>> directory layout. Mainly this was about the build scripts explicitly
>>> setting PKG_CONFIG_PATH to `opam config var prefix`/lib/pkgconfig.
>>> When building in a nixpkgs environment (using the `opam2nix` tool I'm
>>> building[1]), there is no such path, but that's OK - the build
>>> environment will have already set $PKG_CONFIG_PATH correctly.
>>>
>>> [0] http://lists.xenproject.org/archives/html/mirageos-devel/2015-09/msg00000.html
>>> [1] https://github.com/gfxmonk/opam2nix
>>>
>>> It was generally agreed that having the build scripts perform this
>>> task is not ideal, and Thomas Leonard suggested we could change `opam`
>>> itself to export $PKG_CONFIG_PATH, rather than having build scripts
>>> assume too much about their environment. That way a build script can
>>> assume its pkg-config dependencies are available without caring
>>> exactly where they live.
>>>
>>> This seems like a good idea to me, and I've written up a fairly simple
>>> patch which (I think) will do so:
>>>
>>> https://github.com/ocaml/opam/compare/master...gfxmonk:pkg-config
>>>
>>> I have only superficially tested it, but in thinking about that it
>>> seems like this almost certainly won't be enough. All "pure" opam
>>> packages providing pkg-config libraries should work just fine, however
>>> there exist a large number of opam packages (conf-*) which exist
>>> solely to force installation of system packages, and therefore most of
>>> them actually rely on the system $PKG_CONFIG_PATH being used.
>>>
>>> We could make `opam` prefix the opam pkgconfig path with the system
>>> one, but this could lead to accidental impurity (in the case of these
>>> mirage libraries, it would mean that dependencies might accidentally
>>> be provided by the system rather than opam deps, which makes builds
>>> fragile).
>>
>> Since the opam environment is also the user's shell environment, we
>> should always add to the path, I think. Using opam shouldn't prevent
>> compiling non-OCaml software.
>
> Agreed.  It's ok to substitute a PATH if it was inserted by OPAM, but
> the environment should otherwise be unchanged.
>
> Note that OPAM does scrub some variables during the invocation of a
> subshell (MAKEFLAGS in particular) to prevent environment parallel
> flags to propagate to packages, but nothing like this happens in the
> PATH.
>
>>> Any ideas how we can have opam manage PKG_CONFIG_PATH so that build
>>> scripts don't have to?
>>>
>>> (I've sent this to both the mirage & opam lists - apologies if that
>>> causes too much noise, but I figure it affects both projects).
>
> I think we could definitely use an answer to pkg-config management,
> but not one that's entwined into the core of OPAM itself. If something
> could be figured out that fits in with the compilers-as-packages
> feature so that packages could extend the environment, this would
> make cross-OS portability much easier.
>
> In general, how important is pkg-config for library tracking?  Is
> our interest in it the consequence of some third-party packages
> using it, or do we want it to be the defacto mechanism for handling
> system link flags (a bit like ocamlfind for OCaml)?  If the latter,
> then quite a bit of work needs to be done for straggling system
> libraries that aren't packaged up using pkg-config, which I fear is
> a neverending task.  I'm also curious to know how it works in a
> Nix-like environment in terms of the composibility of PKG_CONFIG_PATH.

I'm not sure I understand what you're saying here. pkg-config is like
ocamlfind for C libraries, and very widely used (try "pkg-config
--list-all" to see your installed packages). For libraries that use
it, it is usually the only way to get the flags you need.

C packages distributed via opam will normally want to install
per-switch .pc files, just as OCaml programs want to install ocamlfind
META files. Either every package extends PKG_CONFIG_PATH with its own
directory in lib, or opam should provide a common directory for them
all (as it already does for binaries, man-pages, etc).

0install takes the approach of adding each library to PKG_CONFIG_PATH,
because it separates the files of different packages completely.
However, it can only do this because it sets up the build environment
for each build itself, with just the libraries needed for that build.
For opam, which likes to put everything into the user's default
environment, PKG_CONFIG_PATH would get very long.


-- 
Dr Thomas Leonard        http://roscidus.com/blog/
GPG: DA98 25AE CAD0 8975 7CDA  BD8E 0713 3F96 CA74 D8BA

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Mon Sep 14 14:15:25 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 14 Sep 2015 14:15:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZbUXU-0000JQ-MI; Mon, 14 Sep 2015 14:15:24 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <anil@recoil.org>) id 1ZbUXS-0000JL-Tn
	for MirageOS-devel@lists.xenproject.org; Mon, 14 Sep 2015 14:15:23 +0000
Received: from [193.109.254.147] by server-8.bemta-14.messagelabs.com id
	B1/02-19110-A76D6F55; Mon, 14 Sep 2015 14:15:22 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-9.tower-27.messagelabs.com!1442240120!49571918!1
X-Originating-IP: [5.153.225.51]
X-SpamReason: No, hits=0.7 required=7.0 tests=BODY_RANDOM_LONG, RCVD_ILLEGAL_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 14418 invoked from network); 14 Sep 2015 14:15:21 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-9.tower-27.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 14 Sep 2015 14:15:21 -0000
Received: from dhcp-172-17-169-140.eduroam.wireless.private.cam.ac.uk
	(global-1-27.nat.csx.cam.ac.uk [131.111.184.27])
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id 11366110
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Mon, 14 Sep 2015 15:15:20 +0100 (BST)
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <CAG4opy8sqijFs=2xjr2s-t3nZsAVxNXKYaVL=T=Ks1GU-LQ74Q@mail.gmail.com>
Date: Mon, 14 Sep 2015 15:15:19 +0100
Message-Id: <5CAA9342-7BDD-419B-8F4C-AA0BCFC2374B@recoil.org>
References: <CAC-LLDhi5jkQ6=cuM9z36xS4cGDGq=kgDyzNOg1dWSSP7LFSpQ@mail.gmail.com>
	<CAG4opy86DYekdODSVeCSFs2tDcG6bBSsKntf1RxAJmhxPAPRLA@mail.gmail.com>
	<AD6064B5-F6C3-4619-8782-61E66BB29042@recoil.org>
	<CAG4opy8sqijFs=2xjr2s-t3nZsAVxNXKYaVL=T=Ks1GU-LQ74Q@mail.gmail.com>
To: Thomas Leonard <talex5@gmail.com>
X-Mailer: Apple Mail (2.2104)
Cc: opam-devel <opam-devel@lists.ocaml.org>,
	"mirageos-devel@lists.xenproject.org" <MirageOS-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] [opam-devel] Managing $PKG_CONFIG_PATH in opam
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org


> On 14 Sep 2015, at 15:05, Thomas Leonard <talex5@gmail.com> wrote:
> 
> On 14 September 2015 at 14:36, Anil Madhavapeddy <anil@recoil.org> wrote:
>> On 13 Sep 2015, at 14:07, Thomas Leonard <talex5@gmail.com> wrote:
>>> 
>>> On 12 September 2015 at 08:49, Tim Cuthbertson <tim@gfxmonk.net> wrote:
>>>> On the MirageOS mailing list, I submitted some patches[0] to make some
>>>> mirage libraries build without assuming a strict `opam` destination
>>>> directory layout. Mainly this was about the build scripts explicitly
>>>> setting PKG_CONFIG_PATH to `opam config var prefix`/lib/pkgconfig.
>>>> When building in a nixpkgs environment (using the `opam2nix` tool I'm
>>>> building[1]), there is no such path, but that's OK - the build
>>>> environment will have already set $PKG_CONFIG_PATH correctly.
>>>> 
>>>> [0] http://lists.xenproject.org/archives/html/mirageos-devel/2015-09/msg00000.html
>>>> [1] https://github.com/gfxmonk/opam2nix
>>>> 
>>>> It was generally agreed that having the build scripts perform this
>>>> task is not ideal, and Thomas Leonard suggested we could change `opam`
>>>> itself to export $PKG_CONFIG_PATH, rather than having build scripts
>>>> assume too much about their environment. That way a build script can
>>>> assume its pkg-config dependencies are available without caring
>>>> exactly where they live.
>>>> 
>>>> This seems like a good idea to me, and I've written up a fairly simple
>>>> patch which (I think) will do so:
>>>> 
>>>> https://github.com/ocaml/opam/compare/master...gfxmonk:pkg-config
>>>> 
>>>> I have only superficially tested it, but in thinking about that it
>>>> seems like this almost certainly won't be enough. All "pure" opam
>>>> packages providing pkg-config libraries should work just fine, however
>>>> there exist a large number of opam packages (conf-*) which exist
>>>> solely to force installation of system packages, and therefore most of
>>>> them actually rely on the system $PKG_CONFIG_PATH being used.
>>>> 
>>>> We could make `opam` prefix the opam pkgconfig path with the system
>>>> one, but this could lead to accidental impurity (in the case of these
>>>> mirage libraries, it would mean that dependencies might accidentally
>>>> be provided by the system rather than opam deps, which makes builds
>>>> fragile).
>>> 
>>> Since the opam environment is also the user's shell environment, we
>>> should always add to the path, I think. Using opam shouldn't prevent
>>> compiling non-OCaml software.
>> 
>> Agreed.  It's ok to substitute a PATH if it was inserted by OPAM, but
>> the environment should otherwise be unchanged.
>> 
>> Note that OPAM does scrub some variables during the invocation of a
>> subshell (MAKEFLAGS in particular) to prevent environment parallel
>> flags to propagate to packages, but nothing like this happens in the
>> PATH.
>> 
>>>> Any ideas how we can have opam manage PKG_CONFIG_PATH so that build
>>>> scripts don't have to?
>>>> 
>>>> (I've sent this to both the mirage & opam lists - apologies if that
>>>> causes too much noise, but I figure it affects both projects).
>> 
>> I think we could definitely use an answer to pkg-config management,
>> but not one that's entwined into the core of OPAM itself. If something
>> could be figured out that fits in with the compilers-as-packages
>> feature so that packages could extend the environment, this would
>> make cross-OS portability much easier.
>> 
>> In general, how important is pkg-config for library tracking?  Is
>> our interest in it the consequence of some third-party packages
>> using it, or do we want it to be the defacto mechanism for handling
>> system link flags (a bit like ocamlfind for OCaml)?  If the latter,
>> then quite a bit of work needs to be done for straggling system
>> libraries that aren't packaged up using pkg-config, which I fear is
>> a neverending task.  I'm also curious to know how it works in a
>> Nix-like environment in terms of the composibility of PKG_CONFIG_PATH.
> 
> I'm not sure I understand what you're saying here. pkg-config is like
> ocamlfind for C libraries, and very widely used (try "pkg-config
> --list-all" to see your installed packages). For libraries that use
> it, it is usually the only way to get the flags you need.

Right -- when pkg-config works, it works pretty well.  However, many
libraries don't use pkg-config, or even worse, install broken .pc files
(MacOS X is terrible for this).  In these situations, we will then need
to bypass them and get the compiler flags in some other way.

So when it comes to support for it in OPAM, it would be nice to not
embed pkg-config support directly in the core tool, but to add a slightly
more general mechanism for extending environment variables in such a
way that OS-specific quirks can be dealt with within the repository
rather than by patching OPAM itself.

-anil
_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Mon Sep 14 14:15:25 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 14 Sep 2015 14:15:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZbUXU-0000JQ-MI; Mon, 14 Sep 2015 14:15:24 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <anil@recoil.org>) id 1ZbUXS-0000JL-Tn
	for MirageOS-devel@lists.xenproject.org; Mon, 14 Sep 2015 14:15:23 +0000
Received: from [193.109.254.147] by server-8.bemta-14.messagelabs.com id
	B1/02-19110-A76D6F55; Mon, 14 Sep 2015 14:15:22 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-9.tower-27.messagelabs.com!1442240120!49571918!1
X-Originating-IP: [5.153.225.51]
X-SpamReason: No, hits=0.7 required=7.0 tests=BODY_RANDOM_LONG, RCVD_ILLEGAL_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 14418 invoked from network); 14 Sep 2015 14:15:21 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-9.tower-27.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 14 Sep 2015 14:15:21 -0000
Received: from dhcp-172-17-169-140.eduroam.wireless.private.cam.ac.uk
	(global-1-27.nat.csx.cam.ac.uk [131.111.184.27])
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id 11366110
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Mon, 14 Sep 2015 15:15:20 +0100 (BST)
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <CAG4opy8sqijFs=2xjr2s-t3nZsAVxNXKYaVL=T=Ks1GU-LQ74Q@mail.gmail.com>
Date: Mon, 14 Sep 2015 15:15:19 +0100
Message-Id: <5CAA9342-7BDD-419B-8F4C-AA0BCFC2374B@recoil.org>
References: <CAC-LLDhi5jkQ6=cuM9z36xS4cGDGq=kgDyzNOg1dWSSP7LFSpQ@mail.gmail.com>
	<CAG4opy86DYekdODSVeCSFs2tDcG6bBSsKntf1RxAJmhxPAPRLA@mail.gmail.com>
	<AD6064B5-F6C3-4619-8782-61E66BB29042@recoil.org>
	<CAG4opy8sqijFs=2xjr2s-t3nZsAVxNXKYaVL=T=Ks1GU-LQ74Q@mail.gmail.com>
To: Thomas Leonard <talex5@gmail.com>
X-Mailer: Apple Mail (2.2104)
Cc: opam-devel <opam-devel@lists.ocaml.org>,
	"mirageos-devel@lists.xenproject.org" <MirageOS-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] [opam-devel] Managing $PKG_CONFIG_PATH in opam
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org


> On 14 Sep 2015, at 15:05, Thomas Leonard <talex5@gmail.com> wrote:
> 
> On 14 September 2015 at 14:36, Anil Madhavapeddy <anil@recoil.org> wrote:
>> On 13 Sep 2015, at 14:07, Thomas Leonard <talex5@gmail.com> wrote:
>>> 
>>> On 12 September 2015 at 08:49, Tim Cuthbertson <tim@gfxmonk.net> wrote:
>>>> On the MirageOS mailing list, I submitted some patches[0] to make some
>>>> mirage libraries build without assuming a strict `opam` destination
>>>> directory layout. Mainly this was about the build scripts explicitly
>>>> setting PKG_CONFIG_PATH to `opam config var prefix`/lib/pkgconfig.
>>>> When building in a nixpkgs environment (using the `opam2nix` tool I'm
>>>> building[1]), there is no such path, but that's OK - the build
>>>> environment will have already set $PKG_CONFIG_PATH correctly.
>>>> 
>>>> [0] http://lists.xenproject.org/archives/html/mirageos-devel/2015-09/msg00000.html
>>>> [1] https://github.com/gfxmonk/opam2nix
>>>> 
>>>> It was generally agreed that having the build scripts perform this
>>>> task is not ideal, and Thomas Leonard suggested we could change `opam`
>>>> itself to export $PKG_CONFIG_PATH, rather than having build scripts
>>>> assume too much about their environment. That way a build script can
>>>> assume its pkg-config dependencies are available without caring
>>>> exactly where they live.
>>>> 
>>>> This seems like a good idea to me, and I've written up a fairly simple
>>>> patch which (I think) will do so:
>>>> 
>>>> https://github.com/ocaml/opam/compare/master...gfxmonk:pkg-config
>>>> 
>>>> I have only superficially tested it, but in thinking about that it
>>>> seems like this almost certainly won't be enough. All "pure" opam
>>>> packages providing pkg-config libraries should work just fine, however
>>>> there exist a large number of opam packages (conf-*) which exist
>>>> solely to force installation of system packages, and therefore most of
>>>> them actually rely on the system $PKG_CONFIG_PATH being used.
>>>> 
>>>> We could make `opam` prefix the opam pkgconfig path with the system
>>>> one, but this could lead to accidental impurity (in the case of these
>>>> mirage libraries, it would mean that dependencies might accidentally
>>>> be provided by the system rather than opam deps, which makes builds
>>>> fragile).
>>> 
>>> Since the opam environment is also the user's shell environment, we
>>> should always add to the path, I think. Using opam shouldn't prevent
>>> compiling non-OCaml software.
>> 
>> Agreed.  It's ok to substitute a PATH if it was inserted by OPAM, but
>> the environment should otherwise be unchanged.
>> 
>> Note that OPAM does scrub some variables during the invocation of a
>> subshell (MAKEFLAGS in particular) to prevent environment parallel
>> flags to propagate to packages, but nothing like this happens in the
>> PATH.
>> 
>>>> Any ideas how we can have opam manage PKG_CONFIG_PATH so that build
>>>> scripts don't have to?
>>>> 
>>>> (I've sent this to both the mirage & opam lists - apologies if that
>>>> causes too much noise, but I figure it affects both projects).
>> 
>> I think we could definitely use an answer to pkg-config management,
>> but not one that's entwined into the core of OPAM itself. If something
>> could be figured out that fits in with the compilers-as-packages
>> feature so that packages could extend the environment, this would
>> make cross-OS portability much easier.
>> 
>> In general, how important is pkg-config for library tracking?  Is
>> our interest in it the consequence of some third-party packages
>> using it, or do we want it to be the defacto mechanism for handling
>> system link flags (a bit like ocamlfind for OCaml)?  If the latter,
>> then quite a bit of work needs to be done for straggling system
>> libraries that aren't packaged up using pkg-config, which I fear is
>> a neverending task.  I'm also curious to know how it works in a
>> Nix-like environment in terms of the composibility of PKG_CONFIG_PATH.
> 
> I'm not sure I understand what you're saying here. pkg-config is like
> ocamlfind for C libraries, and very widely used (try "pkg-config
> --list-all" to see your installed packages). For libraries that use
> it, it is usually the only way to get the flags you need.

Right -- when pkg-config works, it works pretty well.  However, many
libraries don't use pkg-config, or even worse, install broken .pc files
(MacOS X is terrible for this).  In these situations, we will then need
to bypass them and get the compiler flags in some other way.

So when it comes to support for it in OPAM, it would be nice to not
embed pkg-config support directly in the core tool, but to add a slightly
more general mechanism for extending environment variables in such a
way that OS-specific quirks can be dealt with within the repository
rather than by patching OPAM itself.

-anil
_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Mon Sep 14 19:09:21 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 14 Sep 2015 19:09:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZbZ7o-0000Lm-8m; Mon, 14 Sep 2015 19:09:12 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <talex5@gmail.com>) id 1ZbZ7m-0000Lh-JL
	for mirageos-devel@lists.xenproject.org; Mon, 14 Sep 2015 19:09:10 +0000
Received: from [85.158.137.68] by server-2.bemta-3.messagelabs.com id
	C8/EA-21201-55B17F55; Mon, 14 Sep 2015 19:09:09 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-4.tower-31.messagelabs.com!1442257748!42979781!1
X-Originating-IP: [209.85.213.42]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 18567 invoked from network); 14 Sep 2015 19:09:09 -0000
Received: from mail-vk0-f42.google.com (HELO mail-vk0-f42.google.com)
	(209.85.213.42)
	by server-4.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	14 Sep 2015 19:09:09 -0000
Received: by vkao3 with SMTP id o3so53195699vka.2
	for <mirageos-devel@lists.xenproject.org>;
	Mon, 14 Sep 2015 12:09:08 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:in-reply-to:references:date:message-id:subject:from:to
	:cc:content-type;
	bh=TtOhdWSFDm3VR2gCX2Yu6YXM8z9yvgc5POkAxYnc83A=;
	b=oMdrFzisUPV8tOW6jTOKl1wLahSZY9adkfvhwA16HMrgopfMM9dP1124G6XeY+Y9YL
	Lmk8Xyn/wySTQN3gthGV/i6TEUD/9z0iUHN/XeSzDbewALw2CljRIk4ySp+DgVGGYdNM
	ZjEvhUkX8laBjV2fbVcOVnEHIgX8l7qLtQfMua8/0IbM6uWa6T2n4yloWfxx9CYkUWyt
	Zw3il8sg3xpFDDFWJIHEIGGFXQz6dr3O8j8nEyCHejVNpf1QefUy8ul8lvUp3/NPp9K4
	GvR1LGmht+RyZP51YNyzlH6EDBaSjRtnZWbvSNi70TeUpX5i4CrG++b3vdWNY1yaqqkR
	taaw==
MIME-Version: 1.0
X-Received: by 10.31.159.149 with SMTP id i143mr14396494vke.112.1442257748030; 
	Mon, 14 Sep 2015 12:09:08 -0700 (PDT)
Received: by 10.31.69.4 with HTTP; Mon, 14 Sep 2015 12:09:07 -0700 (PDT)
In-Reply-To: <D881F4F5-3474-4E9E-BD0C-C947DD1B4499@gazagnaire.org>
References: <D881F4F5-3474-4E9E-BD0C-C947DD1B4499@gazagnaire.org>
Date: Mon, 14 Sep 2015 20:09:07 +0100
Message-ID: <CAG4opy9V-rzdPedT40GbuTT-+xeP=0vbaa0-TFwxauc586oCgw@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: Thomas Gazagnaire <thomas@gazagnaire.org>
Cc: mirageos-devel <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Irmin API evolution
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On 10 August 2015 at 13:51, Thomas Gazagnaire <thomas@gazagnaire.org> wrote:
> Hi all,
>
> There are still parts in the Irmin API that I am not very happy about, so I send an email to get feedback from all the early users to check if they share my views.

One other thing that has caught me out a few times:

There are a bunch of "raw" modules like:

Irmin_git.FS

but there's also

Irmin_unix.Irmin_git.FS (which is Irmin_git.FS applied to Unix)

and the examples do:

open Irmin_unix
...
... Irmin_git.FS

and you copy and paste the line from the example and then wonder why
it seems to have the wrong signature.


-- 
Dr Thomas Leonard        http://roscidus.com/blog/
GPG: DA98 25AE CAD0 8975 7CDA  BD8E 0713 3F96 CA74 D8BA

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Mon Sep 14 19:09:21 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 14 Sep 2015 19:09:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZbZ7o-0000Lm-8m; Mon, 14 Sep 2015 19:09:12 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <talex5@gmail.com>) id 1ZbZ7m-0000Lh-JL
	for mirageos-devel@lists.xenproject.org; Mon, 14 Sep 2015 19:09:10 +0000
Received: from [85.158.137.68] by server-2.bemta-3.messagelabs.com id
	C8/EA-21201-55B17F55; Mon, 14 Sep 2015 19:09:09 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-4.tower-31.messagelabs.com!1442257748!42979781!1
X-Originating-IP: [209.85.213.42]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 18567 invoked from network); 14 Sep 2015 19:09:09 -0000
Received: from mail-vk0-f42.google.com (HELO mail-vk0-f42.google.com)
	(209.85.213.42)
	by server-4.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	14 Sep 2015 19:09:09 -0000
Received: by vkao3 with SMTP id o3so53195699vka.2
	for <mirageos-devel@lists.xenproject.org>;
	Mon, 14 Sep 2015 12:09:08 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:in-reply-to:references:date:message-id:subject:from:to
	:cc:content-type;
	bh=TtOhdWSFDm3VR2gCX2Yu6YXM8z9yvgc5POkAxYnc83A=;
	b=oMdrFzisUPV8tOW6jTOKl1wLahSZY9adkfvhwA16HMrgopfMM9dP1124G6XeY+Y9YL
	Lmk8Xyn/wySTQN3gthGV/i6TEUD/9z0iUHN/XeSzDbewALw2CljRIk4ySp+DgVGGYdNM
	ZjEvhUkX8laBjV2fbVcOVnEHIgX8l7qLtQfMua8/0IbM6uWa6T2n4yloWfxx9CYkUWyt
	Zw3il8sg3xpFDDFWJIHEIGGFXQz6dr3O8j8nEyCHejVNpf1QefUy8ul8lvUp3/NPp9K4
	GvR1LGmht+RyZP51YNyzlH6EDBaSjRtnZWbvSNi70TeUpX5i4CrG++b3vdWNY1yaqqkR
	taaw==
MIME-Version: 1.0
X-Received: by 10.31.159.149 with SMTP id i143mr14396494vke.112.1442257748030; 
	Mon, 14 Sep 2015 12:09:08 -0700 (PDT)
Received: by 10.31.69.4 with HTTP; Mon, 14 Sep 2015 12:09:07 -0700 (PDT)
In-Reply-To: <D881F4F5-3474-4E9E-BD0C-C947DD1B4499@gazagnaire.org>
References: <D881F4F5-3474-4E9E-BD0C-C947DD1B4499@gazagnaire.org>
Date: Mon, 14 Sep 2015 20:09:07 +0100
Message-ID: <CAG4opy9V-rzdPedT40GbuTT-+xeP=0vbaa0-TFwxauc586oCgw@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: Thomas Gazagnaire <thomas@gazagnaire.org>
Cc: mirageos-devel <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Irmin API evolution
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On 10 August 2015 at 13:51, Thomas Gazagnaire <thomas@gazagnaire.org> wrote:
> Hi all,
>
> There are still parts in the Irmin API that I am not very happy about, so I send an email to get feedback from all the early users to check if they share my views.

One other thing that has caught me out a few times:

There are a bunch of "raw" modules like:

Irmin_git.FS

but there's also

Irmin_unix.Irmin_git.FS (which is Irmin_git.FS applied to Unix)

and the examples do:

open Irmin_unix
...
... Irmin_git.FS

and you copy and paste the line from the example and then wonder why
it seems to have the wrong signature.


-- 
Dr Thomas Leonard        http://roscidus.com/blog/
GPG: DA98 25AE CAD0 8975 7CDA  BD8E 0713 3F96 CA74 D8BA

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Tue Sep 15 02:08:23 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 15 Sep 2015 02:08:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZbffG-0001nB-Cl; Tue, 15 Sep 2015 02:08:10 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <louis.gesbert@ocamlpro.com>) id 1ZbffE-0001n6-Gi
	for MirageOS-devel@lists.xenproject.org; Tue, 15 Sep 2015 02:08:08 +0000
Received: from [85.158.139.211] by server-5.bemta-5.messagelabs.com id
	F1/0A-03819-78D77F55; Tue, 15 Sep 2015 02:08:07 +0000
X-Env-Sender: louis.gesbert@ocamlpro.com
X-Msg-Ref: server-12.tower-206.messagelabs.com!1442282887!35068072!1
X-Originating-IP: [37.187.244.36]
X-SpamReason: No, hits=0.0 required=7.0 tests=received_headers: No 
	Received headers
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 3057 invoked from network); 15 Sep 2015 02:08:07 -0000
Received: from antislash.info (HELO vps119294.ovh.net) (37.187.244.36)
	by server-12.tower-206.messagelabs.com with DHE-RSA-AES256-SHA
	encrypted SMTP; 15 Sep 2015 02:08:07 -0000
From: Louis Gesbert <louis.gesbert@ocamlpro.com>
To: opam-devel@lists.ocaml.org
Date: Tue, 15 Sep 2015 11:08:02 +0900
Message-ID: <15511691.gMh3aqzvEv@agaric>
Organization: OCamlPro
In-Reply-To: <AD6064B5-F6C3-4619-8782-61E66BB29042@recoil.org>
References: <CAC-LLDhi5jkQ6=cuM9z36xS4cGDGq=kgDyzNOg1dWSSP7LFSpQ@mail.gmail.com>
	<CAG4opy86DYekdODSVeCSFs2tDcG6bBSsKntf1RxAJmhxPAPRLA@mail.gmail.com>
	<AD6064B5-F6C3-4619-8782-61E66BB29042@recoil.org>
MIME-Version: 1.0
Cc: "mirageos-devel@lists.xenproject.org"
	<MirageOS-devel@lists.xenproject.org>, Anil Madhavapeddy <anil@recoil.org>
Subject: Re: [MirageOS-devel] [opam-devel] Managing $PKG_CONFIG_PATH in opam
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org


> I think we could definitely use an answer to pkg-config management,
> but not one that's entwined into the core of OPAM itself. If something
> could be figured out that fits in with the compilers-as-packages
> feature so that packages could extend the environment, this would
> make cross-OS portability much easier.

I don't want to promise too much, as the design is mostly unwritten yet, but that's part of my plans.
Note that compiler descriptions already have an `env:` field:

    env: [[CAML_LD_LIBRARY_PATH = "%{lib}%/stublibs"]]

that propagates to the user environment (i.e. `opam config env`)

We also already have some specific operators to dictate environment variable updates, documented at http://opam.ocaml.org/doc/Manual.html#Environmentupdates

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Tue Sep 15 02:08:23 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 15 Sep 2015 02:08:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZbffG-0001nB-Cl; Tue, 15 Sep 2015 02:08:10 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <louis.gesbert@ocamlpro.com>) id 1ZbffE-0001n6-Gi
	for MirageOS-devel@lists.xenproject.org; Tue, 15 Sep 2015 02:08:08 +0000
Received: from [85.158.139.211] by server-5.bemta-5.messagelabs.com id
	F1/0A-03819-78D77F55; Tue, 15 Sep 2015 02:08:07 +0000
X-Env-Sender: louis.gesbert@ocamlpro.com
X-Msg-Ref: server-12.tower-206.messagelabs.com!1442282887!35068072!1
X-Originating-IP: [37.187.244.36]
X-SpamReason: No, hits=0.0 required=7.0 tests=received_headers: No 
	Received headers
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 3057 invoked from network); 15 Sep 2015 02:08:07 -0000
Received: from antislash.info (HELO vps119294.ovh.net) (37.187.244.36)
	by server-12.tower-206.messagelabs.com with DHE-RSA-AES256-SHA
	encrypted SMTP; 15 Sep 2015 02:08:07 -0000
From: Louis Gesbert <louis.gesbert@ocamlpro.com>
To: opam-devel@lists.ocaml.org
Date: Tue, 15 Sep 2015 11:08:02 +0900
Message-ID: <15511691.gMh3aqzvEv@agaric>
Organization: OCamlPro
In-Reply-To: <AD6064B5-F6C3-4619-8782-61E66BB29042@recoil.org>
References: <CAC-LLDhi5jkQ6=cuM9z36xS4cGDGq=kgDyzNOg1dWSSP7LFSpQ@mail.gmail.com>
	<CAG4opy86DYekdODSVeCSFs2tDcG6bBSsKntf1RxAJmhxPAPRLA@mail.gmail.com>
	<AD6064B5-F6C3-4619-8782-61E66BB29042@recoil.org>
MIME-Version: 1.0
Cc: "mirageos-devel@lists.xenproject.org"
	<MirageOS-devel@lists.xenproject.org>, Anil Madhavapeddy <anil@recoil.org>
Subject: Re: [MirageOS-devel] [opam-devel] Managing $PKG_CONFIG_PATH in opam
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org


> I think we could definitely use an answer to pkg-config management,
> but not one that's entwined into the core of OPAM itself. If something
> could be figured out that fits in with the compilers-as-packages
> feature so that packages could extend the environment, this would
> make cross-OS portability much easier.

I don't want to promise too much, as the design is mostly unwritten yet, but that's part of my plans.
Note that compiler descriptions already have an `env:` field:

    env: [[CAML_LD_LIBRARY_PATH = "%{lib}%/stublibs"]]

that propagates to the user environment (i.e. `opam config env`)

We also already have some specific operators to dictate environment variable updates, documented at http://opam.ocaml.org/doc/Manual.html#Environmentupdates

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Tue Sep 15 10:45:55 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 15 Sep 2015 10:45:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZbnkA-00071y-PO; Tue, 15 Sep 2015 10:45:46 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <louis.gesbert@ocamlpro.com>) id 1ZbnkA-00071t-2S
	for MirageOS-devel@lists.xenproject.org; Tue, 15 Sep 2015 10:45:46 +0000
Received: from [85.158.137.68] by server-4.bemta-3.messagelabs.com id
	FC/75-09570-9D6F7F55; Tue, 15 Sep 2015 10:45:45 +0000
X-Env-Sender: louis.gesbert@ocamlpro.com
X-Msg-Ref: server-14.tower-31.messagelabs.com!1442313944!42031132!1
X-Originating-IP: [37.187.244.36]
X-SpamReason: No, hits=0.0 required=7.0 tests=received_headers: No 
	Received headers
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 23133 invoked from network); 15 Sep 2015 10:45:44 -0000
Received: from antislash.info (HELO vps119294.ovh.net) (37.187.244.36)
	by server-14.tower-31.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 15 Sep 2015 10:45:44 -0000
From: Louis Gesbert <louis.gesbert@ocamlpro.com>
To: opam-devel@lists.ocaml.org
Date: Tue, 15 Sep 2015 19:45:37 +0900
Message-ID: <15852876.eUFaHsgKIr@agaric>
Organization: OCamlPro
In-Reply-To: <AD6064B5-F6C3-4619-8782-61E66BB29042@recoil.org>
References: <CAC-LLDhi5jkQ6=cuM9z36xS4cGDGq=kgDyzNOg1dWSSP7LFSpQ@mail.gmail.com>
	<CAG4opy86DYekdODSVeCSFs2tDcG6bBSsKntf1RxAJmhxPAPRLA@mail.gmail.com>
	<AD6064B5-F6C3-4619-8782-61E66BB29042@recoil.org>
MIME-Version: 1.0
Cc: "mirageos-devel@lists.xenproject.org"
	<MirageOS-devel@lists.xenproject.org>, Anil Madhavapeddy <anil@recoil.org>
Subject: Re: [MirageOS-devel] [opam-devel] Managing $PKG_CONFIG_PATH in opam
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org


> I think we could definitely use an answer to pkg-config management,
> but not one that's entwined into the core of OPAM itself. If something
> could be figured out that fits in with the compilers-as-packages
> feature so that packages could extend the environment, this would
> make cross-OS portability much easier.

I don't want to promise too much, as the design is mostly unwritten yet, but that's part of my plans.
Note that compiler descriptions already have an `env:` field:

    env: [[CAML_LD_LIBRARY_PATH = "%{lib}%/stublibs"]]

that propagates to the user environment (i.e. `opam config env`)

We also already have some specific operators to dictate environment variable updates, documented at http://opam.ocaml.org/doc/Manual.html#Environmentupdates

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Tue Sep 15 10:45:55 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 15 Sep 2015 10:45:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZbnkA-00071y-PO; Tue, 15 Sep 2015 10:45:46 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <louis.gesbert@ocamlpro.com>) id 1ZbnkA-00071t-2S
	for MirageOS-devel@lists.xenproject.org; Tue, 15 Sep 2015 10:45:46 +0000
Received: from [85.158.137.68] by server-4.bemta-3.messagelabs.com id
	FC/75-09570-9D6F7F55; Tue, 15 Sep 2015 10:45:45 +0000
X-Env-Sender: louis.gesbert@ocamlpro.com
X-Msg-Ref: server-14.tower-31.messagelabs.com!1442313944!42031132!1
X-Originating-IP: [37.187.244.36]
X-SpamReason: No, hits=0.0 required=7.0 tests=received_headers: No 
	Received headers
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 23133 invoked from network); 15 Sep 2015 10:45:44 -0000
Received: from antislash.info (HELO vps119294.ovh.net) (37.187.244.36)
	by server-14.tower-31.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 15 Sep 2015 10:45:44 -0000
From: Louis Gesbert <louis.gesbert@ocamlpro.com>
To: opam-devel@lists.ocaml.org
Date: Tue, 15 Sep 2015 19:45:37 +0900
Message-ID: <15852876.eUFaHsgKIr@agaric>
Organization: OCamlPro
In-Reply-To: <AD6064B5-F6C3-4619-8782-61E66BB29042@recoil.org>
References: <CAC-LLDhi5jkQ6=cuM9z36xS4cGDGq=kgDyzNOg1dWSSP7LFSpQ@mail.gmail.com>
	<CAG4opy86DYekdODSVeCSFs2tDcG6bBSsKntf1RxAJmhxPAPRLA@mail.gmail.com>
	<AD6064B5-F6C3-4619-8782-61E66BB29042@recoil.org>
MIME-Version: 1.0
Cc: "mirageos-devel@lists.xenproject.org"
	<MirageOS-devel@lists.xenproject.org>, Anil Madhavapeddy <anil@recoil.org>
Subject: Re: [MirageOS-devel] [opam-devel] Managing $PKG_CONFIG_PATH in opam
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org


> I think we could definitely use an answer to pkg-config management,
> but not one that's entwined into the core of OPAM itself. If something
> could be figured out that fits in with the compilers-as-packages
> feature so that packages could extend the environment, this would
> make cross-OS portability much easier.

I don't want to promise too much, as the design is mostly unwritten yet, but that's part of my plans.
Note that compiler descriptions already have an `env:` field:

    env: [[CAML_LD_LIBRARY_PATH = "%{lib}%/stublibs"]]

that propagates to the user environment (i.e. `opam config env`)

We also already have some specific operators to dictate environment variable updates, documented at http://opam.ocaml.org/doc/Manual.html#Environmentupdates

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Tue Sep 15 11:50:28 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 15 Sep 2015 11:50:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1Zbokf-0005gi-Db; Tue, 15 Sep 2015 11:50:21 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <tim@gfxmonk.net>) id 1Zbokd-0005gd-Nn
	for MirageOS-devel@lists.xenproject.org; Tue, 15 Sep 2015 11:50:19 +0000
Received: from [85.158.137.68] by server-9.bemta-3.messagelabs.com id
	C3/39-10678-BF508F55; Tue, 15 Sep 2015 11:50:19 +0000
X-Env-Sender: tim@gfxmonk.net
X-Msg-Ref: server-12.tower-31.messagelabs.com!1442317817!44419535!1
X-Originating-IP: [209.85.213.171]
X-SpamReason: No, hits=0.8 required=7.0 tests=BODY_RANDOM_LONG,
  RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 26421 invoked from network); 15 Sep 2015 11:50:18 -0000
Received: from mail-ig0-f171.google.com (HELO mail-ig0-f171.google.com)
	(209.85.213.171)
	by server-12.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	15 Sep 2015 11:50:18 -0000
Received: by igbni9 with SMTP id ni9so11329951igb.0
	for <MirageOS-devel@lists.xenproject.org>;
	Tue, 15 Sep 2015 04:50:17 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:mime-version:in-reply-to:references:from:date
	:message-id:subject:to:cc:content-type;
	bh=aWLPhbDKIYUQJ0JybdB21xqaOZXA6kK43HxkWPX91II=;
	b=lwGkSIYw+SZl/DcJo2CtYQs2Ch7lqpCfe9+qzbdz4LU+nIoMcOd8v/6vqwJ4vPyv/5
	k2BolmeAc1rJzeAfk280HaaUZY6yQEhRArLkhd6RFze6IYQYk/zkcO0py2LO7nkCPcbB
	l4nfI1yUF58cNPdJrbC6SkYJZwTRIDv8K2oRCX6e6nGCA2tOPxgnQH94ObrqZYWnMavX
	eHjTv0ScNGSUE/cVUOJ3AM1CDXF9KH4ocGjTGKan9Iw4JTb4/gFWE6hO3RX0Qa6LM2ms
	qCNnWFyjlDmOQ3dlFYnGA0HgsAnkf6+jAjCd0f2oGNnnr5MsjGzB6od/QP68fjB9uFUp
	t+8Q==
X-Gm-Message-State: ALoCoQkQJLMTI+9FTi5OcB6tkxKsvMgwf1FlQ+8KgLm17c8rSuet7wtqJTnMtsK9BiGlFOhorxHQ
X-Received: by 10.50.8.69 with SMTP id p5mr5032430iga.43.1442317816909;
	Tue, 15 Sep 2015 04:50:16 -0700 (PDT)
Received: from mail-io0-f171.google.com (mail-io0-f171.google.com.
	[209.85.223.171])
	by smtp.gmail.com with ESMTPSA id d3sm7432762igx.5.2015.09.15.04.50.15
	for <MirageOS-devel@lists.xenproject.org>
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Tue, 15 Sep 2015 04:50:15 -0700 (PDT)
Received: by iofh134 with SMTP id h134so197360572iof.0
	for <MirageOS-devel@lists.xenproject.org>;
	Tue, 15 Sep 2015 04:50:14 -0700 (PDT)
X-Received: by 10.107.151.81 with SMTP id z78mr32830718iod.63.1442317814991;
	Tue, 15 Sep 2015 04:50:14 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.50.159.101 with HTTP; Tue, 15 Sep 2015 04:49:55 -0700 (PDT)
In-Reply-To: <CAG4opy86DYekdODSVeCSFs2tDcG6bBSsKntf1RxAJmhxPAPRLA@mail.gmail.com>
References: <CAC-LLDhi5jkQ6=cuM9z36xS4cGDGq=kgDyzNOg1dWSSP7LFSpQ@mail.gmail.com>
	<CAG4opy86DYekdODSVeCSFs2tDcG6bBSsKntf1RxAJmhxPAPRLA@mail.gmail.com>
From: Tim Cuthbertson <tim@gfxmonk.net>
Date: Tue, 15 Sep 2015 21:49:55 +1000
Message-ID: <CAC-LLDjDnyLk6m1VsmnwC==FBJcSey8w6SARMPH8mFNjXCq8uQ@mail.gmail.com>
To: Thomas Leonard <talex5@gmail.com>
Cc: opam-devel <opam-devel@lists.ocaml.org>,
	"mirageos-devel@lists.xenproject.org" <MirageOS-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] [opam-devel] Managing $PKG_CONFIG_PATH in opam
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On Sun, Sep 13, 2015 at 11:07 PM, Thomas Leonard <talex5@gmail.com> wrote:
> On 12 September 2015 at 08:49, Tim Cuthbertson <tim@gfxmonk.net> wrote:
>> On the MirageOS mailing list, I submitted some patches[0] to make some
>> mirage libraries build without assuming a strict `opam` destination
>> directory layout. Mainly this was about the build scripts explicitly
>> setting PKG_CONFIG_PATH to `opam config var prefix`/lib/pkgconfig.
>> When building in a nixpkgs environment (using the `opam2nix` tool I'm
>> building[1]), there is no such path, but that's OK - the build
>> environment will have already set $PKG_CONFIG_PATH correctly.
>>
>> [0] http://lists.xenproject.org/archives/html/mirageos-devel/2015-09/msg00000.html
>> [1] https://github.com/gfxmonk/opam2nix
>>
>> It was generally agreed that having the build scripts perform this
>> task is not ideal, and Thomas Leonard suggested we could change `opam`
>> itself to export $PKG_CONFIG_PATH, rather than having build scripts
>> assume too much about their environment. That way a build script can
>> assume its pkg-config dependencies are available without caring
>> exactly where they live.
>>
>> This seems like a good idea to me, and I've written up a fairly simple
>> patch which (I think) will do so:
>>
>> https://github.com/ocaml/opam/compare/master...gfxmonk:pkg-config
>>
>> I have only superficially tested it, but in thinking about that it
>> seems like this almost certainly won't be enough. All "pure" opam
>> packages providing pkg-config libraries should work just fine, however
>> there exist a large number of opam packages (conf-*) which exist
>> solely to force installation of system packages, and therefore most of
>> them actually rely on the system $PKG_CONFIG_PATH being used.
>>
>> We could make `opam` prefix the opam pkgconfig path with the system
>> one, but this could lead to accidental impurity (in the case of these
>> mirage libraries, it would mean that dependencies might accidentally
>> be provided by the system rather than opam deps, which makes builds
>> fragile).
>
> Since the opam environment is also the user's shell environment, we
> should always add to the path, I think. Using opam shouldn't prevent
> compiling non-OCaml software.

One of the main points in favour of the current approach is that a
build script setting `PKG_CONFIG_PATH=`opam config var
prefix`/lib/pkgconfig` ensures that all dependencies are satisfied by
opam (and not accidentally satisfied by system dependencies). You lose
that assurance with my patches, and also if you go the approach of
only adding to the path. So would this actually be acceptable to those
mirage packages? Or would you still want to explicitly override
$PKG_CONFIG_PATH to get this additional assurance?

Cheers,
 - Tim.

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Tue Sep 15 11:50:28 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 15 Sep 2015 11:50:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1Zbokf-0005gi-Db; Tue, 15 Sep 2015 11:50:21 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <tim@gfxmonk.net>) id 1Zbokd-0005gd-Nn
	for MirageOS-devel@lists.xenproject.org; Tue, 15 Sep 2015 11:50:19 +0000
Received: from [85.158.137.68] by server-9.bemta-3.messagelabs.com id
	C3/39-10678-BF508F55; Tue, 15 Sep 2015 11:50:19 +0000
X-Env-Sender: tim@gfxmonk.net
X-Msg-Ref: server-12.tower-31.messagelabs.com!1442317817!44419535!1
X-Originating-IP: [209.85.213.171]
X-SpamReason: No, hits=0.8 required=7.0 tests=BODY_RANDOM_LONG,
  RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 26421 invoked from network); 15 Sep 2015 11:50:18 -0000
Received: from mail-ig0-f171.google.com (HELO mail-ig0-f171.google.com)
	(209.85.213.171)
	by server-12.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	15 Sep 2015 11:50:18 -0000
Received: by igbni9 with SMTP id ni9so11329951igb.0
	for <MirageOS-devel@lists.xenproject.org>;
	Tue, 15 Sep 2015 04:50:17 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:mime-version:in-reply-to:references:from:date
	:message-id:subject:to:cc:content-type;
	bh=aWLPhbDKIYUQJ0JybdB21xqaOZXA6kK43HxkWPX91II=;
	b=lwGkSIYw+SZl/DcJo2CtYQs2Ch7lqpCfe9+qzbdz4LU+nIoMcOd8v/6vqwJ4vPyv/5
	k2BolmeAc1rJzeAfk280HaaUZY6yQEhRArLkhd6RFze6IYQYk/zkcO0py2LO7nkCPcbB
	l4nfI1yUF58cNPdJrbC6SkYJZwTRIDv8K2oRCX6e6nGCA2tOPxgnQH94ObrqZYWnMavX
	eHjTv0ScNGSUE/cVUOJ3AM1CDXF9KH4ocGjTGKan9Iw4JTb4/gFWE6hO3RX0Qa6LM2ms
	qCNnWFyjlDmOQ3dlFYnGA0HgsAnkf6+jAjCd0f2oGNnnr5MsjGzB6od/QP68fjB9uFUp
	t+8Q==
X-Gm-Message-State: ALoCoQkQJLMTI+9FTi5OcB6tkxKsvMgwf1FlQ+8KgLm17c8rSuet7wtqJTnMtsK9BiGlFOhorxHQ
X-Received: by 10.50.8.69 with SMTP id p5mr5032430iga.43.1442317816909;
	Tue, 15 Sep 2015 04:50:16 -0700 (PDT)
Received: from mail-io0-f171.google.com (mail-io0-f171.google.com.
	[209.85.223.171])
	by smtp.gmail.com with ESMTPSA id d3sm7432762igx.5.2015.09.15.04.50.15
	for <MirageOS-devel@lists.xenproject.org>
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Tue, 15 Sep 2015 04:50:15 -0700 (PDT)
Received: by iofh134 with SMTP id h134so197360572iof.0
	for <MirageOS-devel@lists.xenproject.org>;
	Tue, 15 Sep 2015 04:50:14 -0700 (PDT)
X-Received: by 10.107.151.81 with SMTP id z78mr32830718iod.63.1442317814991;
	Tue, 15 Sep 2015 04:50:14 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.50.159.101 with HTTP; Tue, 15 Sep 2015 04:49:55 -0700 (PDT)
In-Reply-To: <CAG4opy86DYekdODSVeCSFs2tDcG6bBSsKntf1RxAJmhxPAPRLA@mail.gmail.com>
References: <CAC-LLDhi5jkQ6=cuM9z36xS4cGDGq=kgDyzNOg1dWSSP7LFSpQ@mail.gmail.com>
	<CAG4opy86DYekdODSVeCSFs2tDcG6bBSsKntf1RxAJmhxPAPRLA@mail.gmail.com>
From: Tim Cuthbertson <tim@gfxmonk.net>
Date: Tue, 15 Sep 2015 21:49:55 +1000
Message-ID: <CAC-LLDjDnyLk6m1VsmnwC==FBJcSey8w6SARMPH8mFNjXCq8uQ@mail.gmail.com>
To: Thomas Leonard <talex5@gmail.com>
Cc: opam-devel <opam-devel@lists.ocaml.org>,
	"mirageos-devel@lists.xenproject.org" <MirageOS-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] [opam-devel] Managing $PKG_CONFIG_PATH in opam
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On Sun, Sep 13, 2015 at 11:07 PM, Thomas Leonard <talex5@gmail.com> wrote:
> On 12 September 2015 at 08:49, Tim Cuthbertson <tim@gfxmonk.net> wrote:
>> On the MirageOS mailing list, I submitted some patches[0] to make some
>> mirage libraries build without assuming a strict `opam` destination
>> directory layout. Mainly this was about the build scripts explicitly
>> setting PKG_CONFIG_PATH to `opam config var prefix`/lib/pkgconfig.
>> When building in a nixpkgs environment (using the `opam2nix` tool I'm
>> building[1]), there is no such path, but that's OK - the build
>> environment will have already set $PKG_CONFIG_PATH correctly.
>>
>> [0] http://lists.xenproject.org/archives/html/mirageos-devel/2015-09/msg00000.html
>> [1] https://github.com/gfxmonk/opam2nix
>>
>> It was generally agreed that having the build scripts perform this
>> task is not ideal, and Thomas Leonard suggested we could change `opam`
>> itself to export $PKG_CONFIG_PATH, rather than having build scripts
>> assume too much about their environment. That way a build script can
>> assume its pkg-config dependencies are available without caring
>> exactly where they live.
>>
>> This seems like a good idea to me, and I've written up a fairly simple
>> patch which (I think) will do so:
>>
>> https://github.com/ocaml/opam/compare/master...gfxmonk:pkg-config
>>
>> I have only superficially tested it, but in thinking about that it
>> seems like this almost certainly won't be enough. All "pure" opam
>> packages providing pkg-config libraries should work just fine, however
>> there exist a large number of opam packages (conf-*) which exist
>> solely to force installation of system packages, and therefore most of
>> them actually rely on the system $PKG_CONFIG_PATH being used.
>>
>> We could make `opam` prefix the opam pkgconfig path with the system
>> one, but this could lead to accidental impurity (in the case of these
>> mirage libraries, it would mean that dependencies might accidentally
>> be provided by the system rather than opam deps, which makes builds
>> fragile).
>
> Since the opam environment is also the user's shell environment, we
> should always add to the path, I think. Using opam shouldn't prevent
> compiling non-OCaml software.

One of the main points in favour of the current approach is that a
build script setting `PKG_CONFIG_PATH=`opam config var
prefix`/lib/pkgconfig` ensures that all dependencies are satisfied by
opam (and not accidentally satisfied by system dependencies). You lose
that assurance with my patches, and also if you go the approach of
only adding to the path. So would this actually be acceptable to those
mirage packages? Or would you still want to explicitly override
$PKG_CONFIG_PATH to get this additional assurance?

Cheers,
 - Tim.

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Tue Sep 15 11:50:36 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 15 Sep 2015 11:50:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1Zboku-0005ha-Gz; Tue, 15 Sep 2015 11:50:36 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <tim@gfxmonk.net>) id 1Zboks-0005hM-U1
	for MirageOS-devel@lists.xenproject.org; Tue, 15 Sep 2015 11:50:35 +0000
Received: from [85.158.137.68] by server-5.bemta-3.messagelabs.com id
	F1/F5-06021-A0608F55; Tue, 15 Sep 2015 11:50:34 +0000
X-Env-Sender: tim@gfxmonk.net
X-Msg-Ref: server-11.tower-31.messagelabs.com!1442317832!11680109!1
X-Originating-IP: [209.85.213.177]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 8571 invoked from network); 15 Sep 2015 11:50:33 -0000
Received: from mail-ig0-f177.google.com (HELO mail-ig0-f177.google.com)
	(209.85.213.177)
	by server-11.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	15 Sep 2015 11:50:33 -0000
Received: by igbkq10 with SMTP id kq10so12821672igb.0
	for <MirageOS-devel@lists.xenproject.org>;
	Tue, 15 Sep 2015 04:50:32 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:mime-version:in-reply-to:references:from:date
	:message-id:subject:to:cc:content-type;
	bh=xpQoRAkQCFx7FeNZ0uxUEK42sjBhthe1u0FbhqKrEmA=;
	b=RiohJ/iaL5i9bIyMBtdmPikwDLyRDxruFRap1RtXF817qSaI+tiINT14lOcE41kpL6
	DnHVRM2v6OQ5iEKTck2KkMkca/feafM3K4gCfj18Hx4NaY8qR8aN8byZFy7yQsRF7lAB
	sXOak4ayRJMYX0+E2iV0AC7XPDcLHXh4esERnE6MoNEJwsFAw5Rd2cuIxvXwL5g1dZVK
	ZI7kzzuc8tl0dik0IFCzo/lRbFOZOn7c+v8ZKSMrTBzXd/e249OCz8r2owOz3krdt4Pk
	r1Gl1SidB7WuJyAUzASIGyA5Pg5nFT6CHiOrZ2NtuxjjLezySPuFDy1Y3PWMA///NfbY
	+k3Q==
X-Gm-Message-State: ALoCoQmnOHvl2F4qcmMn81JTyOj8YtdwZb3RdQs1bSth1Qqvfl3Pz+VpfwmiwM8u3y76sdBnMNT4
X-Received: by 10.50.176.170 with SMTP id cj10mr2387382igc.65.1442317832587;
	Tue, 15 Sep 2015 04:50:32 -0700 (PDT)
Received: from mail-ig0-f171.google.com (mail-ig0-f171.google.com.
	[209.85.213.171]) by smtp.gmail.com with ESMTPSA id
	f31sm7942049ioj.13.2015.09.15.04.50.31
	for <MirageOS-devel@lists.xenproject.org>
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Tue, 15 Sep 2015 04:50:31 -0700 (PDT)
Received: by igbni9 with SMTP id ni9so11333459igb.0
	for <MirageOS-devel@lists.xenproject.org>;
	Tue, 15 Sep 2015 04:50:31 -0700 (PDT)
X-Received: by 10.50.3.66 with SMTP id a2mr5066777iga.92.1442317831450; Tue,
	15 Sep 2015 04:50:31 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.50.159.101 with HTTP; Tue, 15 Sep 2015 04:50:11 -0700 (PDT)
In-Reply-To: <15511691.gMh3aqzvEv@agaric>
References: <CAC-LLDhi5jkQ6=cuM9z36xS4cGDGq=kgDyzNOg1dWSSP7LFSpQ@mail.gmail.com>
	<CAG4opy86DYekdODSVeCSFs2tDcG6bBSsKntf1RxAJmhxPAPRLA@mail.gmail.com>
	<AD6064B5-F6C3-4619-8782-61E66BB29042@recoil.org>
	<15511691.gMh3aqzvEv@agaric>
From: Tim Cuthbertson <tim@gfxmonk.net>
Date: Tue, 15 Sep 2015 21:50:11 +1000
Message-ID: <CAC-LLDg-UEFBu9EAE2EQTBXKAB+uyjhDokfhFbPwapA0t-Zrbw@mail.gmail.com>
To: Louis Gesbert <louis.gesbert@ocamlpro.com>
Cc: opam-devel@lists.ocaml.org, "mirageos-devel@lists.xenproject.org"
	<MirageOS-devel@lists.xenproject.org>, Anil Madhavapeddy <anil@recoil.org>
Subject: Re: [MirageOS-devel] [opam-devel] Managing $PKG_CONFIG_PATH in opam
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On Tue, Sep 15, 2015 at 12:08 PM, Louis Gesbert
<louis.gesbert@ocamlpro.com> wrote:
>
>> I think we could definitely use an answer to pkg-config management,
>> but not one that's entwined into the core of OPAM itself. If something
>> could be figured out that fits in with the compilers-as-packages
>> feature so that packages could extend the environment, this would
>> make cross-OS portability much easier.
>
> I don't want to promise too much, as the design is mostly unwritten yet, but that's part of my plans.
> Note that compiler descriptions already have an `env:` field:
>
>     env: [[CAML_LD_LIBRARY_PATH = "%{lib}%/stublibs"]]
>
> that propagates to the user environment (i.e. `opam config env`)
>
> We also already have some specific operators to dictate environment variable updates, documented at http://opam.ocaml.org/doc/Manual.html#Environmentupdates

I'm not quite clear on what's done here and what remains - it sounds
like this already works for compilers, and you're considering adding
it for packages too? If that's true, then that sounds great, as then
all packages providing .pc files could depend on some `pkgconfig`
opampackage which defines:

env: [[PKG_CONFIG_PATH += "%{lib}%"]]

And hopefully some way of dealing with the default pkg-config, for
when $PKG_CONFIG_PATH is not set. It sounds like := will be able to
cover that, but the exact syntax is not obvious to me from those docs.

Cheers,
 - Tim.

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Tue Sep 15 11:50:36 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 15 Sep 2015 11:50:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1Zboku-0005ha-Gz; Tue, 15 Sep 2015 11:50:36 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <tim@gfxmonk.net>) id 1Zboks-0005hM-U1
	for MirageOS-devel@lists.xenproject.org; Tue, 15 Sep 2015 11:50:35 +0000
Received: from [85.158.137.68] by server-5.bemta-3.messagelabs.com id
	F1/F5-06021-A0608F55; Tue, 15 Sep 2015 11:50:34 +0000
X-Env-Sender: tim@gfxmonk.net
X-Msg-Ref: server-11.tower-31.messagelabs.com!1442317832!11680109!1
X-Originating-IP: [209.85.213.177]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 8571 invoked from network); 15 Sep 2015 11:50:33 -0000
Received: from mail-ig0-f177.google.com (HELO mail-ig0-f177.google.com)
	(209.85.213.177)
	by server-11.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	15 Sep 2015 11:50:33 -0000
Received: by igbkq10 with SMTP id kq10so12821672igb.0
	for <MirageOS-devel@lists.xenproject.org>;
	Tue, 15 Sep 2015 04:50:32 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:mime-version:in-reply-to:references:from:date
	:message-id:subject:to:cc:content-type;
	bh=xpQoRAkQCFx7FeNZ0uxUEK42sjBhthe1u0FbhqKrEmA=;
	b=RiohJ/iaL5i9bIyMBtdmPikwDLyRDxruFRap1RtXF817qSaI+tiINT14lOcE41kpL6
	DnHVRM2v6OQ5iEKTck2KkMkca/feafM3K4gCfj18Hx4NaY8qR8aN8byZFy7yQsRF7lAB
	sXOak4ayRJMYX0+E2iV0AC7XPDcLHXh4esERnE6MoNEJwsFAw5Rd2cuIxvXwL5g1dZVK
	ZI7kzzuc8tl0dik0IFCzo/lRbFOZOn7c+v8ZKSMrTBzXd/e249OCz8r2owOz3krdt4Pk
	r1Gl1SidB7WuJyAUzASIGyA5Pg5nFT6CHiOrZ2NtuxjjLezySPuFDy1Y3PWMA///NfbY
	+k3Q==
X-Gm-Message-State: ALoCoQmnOHvl2F4qcmMn81JTyOj8YtdwZb3RdQs1bSth1Qqvfl3Pz+VpfwmiwM8u3y76sdBnMNT4
X-Received: by 10.50.176.170 with SMTP id cj10mr2387382igc.65.1442317832587;
	Tue, 15 Sep 2015 04:50:32 -0700 (PDT)
Received: from mail-ig0-f171.google.com (mail-ig0-f171.google.com.
	[209.85.213.171]) by smtp.gmail.com with ESMTPSA id
	f31sm7942049ioj.13.2015.09.15.04.50.31
	for <MirageOS-devel@lists.xenproject.org>
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Tue, 15 Sep 2015 04:50:31 -0700 (PDT)
Received: by igbni9 with SMTP id ni9so11333459igb.0
	for <MirageOS-devel@lists.xenproject.org>;
	Tue, 15 Sep 2015 04:50:31 -0700 (PDT)
X-Received: by 10.50.3.66 with SMTP id a2mr5066777iga.92.1442317831450; Tue,
	15 Sep 2015 04:50:31 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.50.159.101 with HTTP; Tue, 15 Sep 2015 04:50:11 -0700 (PDT)
In-Reply-To: <15511691.gMh3aqzvEv@agaric>
References: <CAC-LLDhi5jkQ6=cuM9z36xS4cGDGq=kgDyzNOg1dWSSP7LFSpQ@mail.gmail.com>
	<CAG4opy86DYekdODSVeCSFs2tDcG6bBSsKntf1RxAJmhxPAPRLA@mail.gmail.com>
	<AD6064B5-F6C3-4619-8782-61E66BB29042@recoil.org>
	<15511691.gMh3aqzvEv@agaric>
From: Tim Cuthbertson <tim@gfxmonk.net>
Date: Tue, 15 Sep 2015 21:50:11 +1000
Message-ID: <CAC-LLDg-UEFBu9EAE2EQTBXKAB+uyjhDokfhFbPwapA0t-Zrbw@mail.gmail.com>
To: Louis Gesbert <louis.gesbert@ocamlpro.com>
Cc: opam-devel@lists.ocaml.org, "mirageos-devel@lists.xenproject.org"
	<MirageOS-devel@lists.xenproject.org>, Anil Madhavapeddy <anil@recoil.org>
Subject: Re: [MirageOS-devel] [opam-devel] Managing $PKG_CONFIG_PATH in opam
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On Tue, Sep 15, 2015 at 12:08 PM, Louis Gesbert
<louis.gesbert@ocamlpro.com> wrote:
>
>> I think we could definitely use an answer to pkg-config management,
>> but not one that's entwined into the core of OPAM itself. If something
>> could be figured out that fits in with the compilers-as-packages
>> feature so that packages could extend the environment, this would
>> make cross-OS portability much easier.
>
> I don't want to promise too much, as the design is mostly unwritten yet, but that's part of my plans.
> Note that compiler descriptions already have an `env:` field:
>
>     env: [[CAML_LD_LIBRARY_PATH = "%{lib}%/stublibs"]]
>
> that propagates to the user environment (i.e. `opam config env`)
>
> We also already have some specific operators to dictate environment variable updates, documented at http://opam.ocaml.org/doc/Manual.html#Environmentupdates

I'm not quite clear on what's done here and what remains - it sounds
like this already works for compilers, and you're considering adding
it for packages too? If that's true, then that sounds great, as then
all packages providing .pc files could depend on some `pkgconfig`
opampackage which defines:

env: [[PKG_CONFIG_PATH += "%{lib}%"]]

And hopefully some way of dealing with the default pkg-config, for
when $PKG_CONFIG_PATH is not set. It sounds like := will be able to
cover that, but the exact syntax is not obvious to me from those docs.

Cheers,
 - Tim.

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Tue Sep 15 14:20:20 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 15 Sep 2015 14:20:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1Zbr5i-0006Rj-Ug; Tue, 15 Sep 2015 14:20:14 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <louis.gesbert@ocamlpro.com>) id 1Zbr5i-0006QA-Ai
	for MirageOS-devel@lists.xenproject.org; Tue, 15 Sep 2015 14:20:14 +0000
Received: from [85.158.139.211] by server-5.bemta-5.messagelabs.com id
	B3/11-03819-D1928F55; Tue, 15 Sep 2015 14:20:13 +0000
X-Env-Sender: louis.gesbert@ocamlpro.com
X-Msg-Ref: server-12.tower-206.messagelabs.com!1442326812!35278185!1
X-Originating-IP: [37.187.244.36]
X-SpamReason: No, hits=0.0 required=7.0 tests=received_headers: No 
	Received headers
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 8274 invoked from network); 15 Sep 2015 14:20:13 -0000
Received: from antislash.info (HELO vps119294.ovh.net) (37.187.244.36)
	by server-12.tower-206.messagelabs.com with DHE-RSA-AES256-SHA
	encrypted SMTP; 15 Sep 2015 14:20:13 -0000
From: Louis Gesbert <louis.gesbert@ocamlpro.com>
To: opam-devel@lists.ocaml.org
Date: Tue, 15 Sep 2015 23:20:05 +0900
Message-ID: <2647368.ESHJFMUQWT@agaric>
Organization: OCamlPro
In-Reply-To: <AD6064B5-F6C3-4619-8782-61E66BB29042@recoil.org>
References: <CAC-LLDhi5jkQ6=cuM9z36xS4cGDGq=kgDyzNOg1dWSSP7LFSpQ@mail.gmail.com>
	<CAG4opy86DYekdODSVeCSFs2tDcG6bBSsKntf1RxAJmhxPAPRLA@mail.gmail.com>
	<AD6064B5-F6C3-4619-8782-61E66BB29042@recoil.org>
MIME-Version: 1.0
Cc: "mirageos-devel@lists.xenproject.org"
	<MirageOS-devel@lists.xenproject.org>, Anil Madhavapeddy <anil@recoil.org>
Subject: Re: [MirageOS-devel] [opam-devel] Managing $PKG_CONFIG_PATH in opam
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org


> I think we could definitely use an answer to pkg-config management,
> but not one that's entwined into the core of OPAM itself. If something
> could be figured out that fits in with the compilers-as-packages
> feature so that packages could extend the environment, this would
> make cross-OS portability much easier.

I don't want to promise too much, as the design is mostly unwritten yet, but that's part of my plans.
Note that compiler descriptions already have an `env:` field:

    env: [[CAML_LD_LIBRARY_PATH = "%{lib}%/stublibs"]]

that propagates to the user environment (i.e. `opam config env`)

We also already have some specific operators to dictate environment variable updates, documented at http://opam.ocaml.org/doc/Manual.html#Environmentupdates

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Tue Sep 15 14:20:20 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 15 Sep 2015 14:20:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1Zbr5i-0006Rj-Ug; Tue, 15 Sep 2015 14:20:14 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <louis.gesbert@ocamlpro.com>) id 1Zbr5i-0006QA-Ai
	for MirageOS-devel@lists.xenproject.org; Tue, 15 Sep 2015 14:20:14 +0000
Received: from [85.158.139.211] by server-5.bemta-5.messagelabs.com id
	B3/11-03819-D1928F55; Tue, 15 Sep 2015 14:20:13 +0000
X-Env-Sender: louis.gesbert@ocamlpro.com
X-Msg-Ref: server-12.tower-206.messagelabs.com!1442326812!35278185!1
X-Originating-IP: [37.187.244.36]
X-SpamReason: No, hits=0.0 required=7.0 tests=received_headers: No 
	Received headers
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 8274 invoked from network); 15 Sep 2015 14:20:13 -0000
Received: from antislash.info (HELO vps119294.ovh.net) (37.187.244.36)
	by server-12.tower-206.messagelabs.com with DHE-RSA-AES256-SHA
	encrypted SMTP; 15 Sep 2015 14:20:13 -0000
From: Louis Gesbert <louis.gesbert@ocamlpro.com>
To: opam-devel@lists.ocaml.org
Date: Tue, 15 Sep 2015 23:20:05 +0900
Message-ID: <2647368.ESHJFMUQWT@agaric>
Organization: OCamlPro
In-Reply-To: <AD6064B5-F6C3-4619-8782-61E66BB29042@recoil.org>
References: <CAC-LLDhi5jkQ6=cuM9z36xS4cGDGq=kgDyzNOg1dWSSP7LFSpQ@mail.gmail.com>
	<CAG4opy86DYekdODSVeCSFs2tDcG6bBSsKntf1RxAJmhxPAPRLA@mail.gmail.com>
	<AD6064B5-F6C3-4619-8782-61E66BB29042@recoil.org>
MIME-Version: 1.0
Cc: "mirageos-devel@lists.xenproject.org"
	<MirageOS-devel@lists.xenproject.org>, Anil Madhavapeddy <anil@recoil.org>
Subject: Re: [MirageOS-devel] [opam-devel] Managing $PKG_CONFIG_PATH in opam
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org


> I think we could definitely use an answer to pkg-config management,
> but not one that's entwined into the core of OPAM itself. If something
> could be figured out that fits in with the compilers-as-packages
> feature so that packages could extend the environment, this would
> make cross-OS portability much easier.

I don't want to promise too much, as the design is mostly unwritten yet, but that's part of my plans.
Note that compiler descriptions already have an `env:` field:

    env: [[CAML_LD_LIBRARY_PATH = "%{lib}%/stublibs"]]

that propagates to the user environment (i.e. `opam config env`)

We also already have some specific operators to dictate environment variable updates, documented at http://opam.ocaml.org/doc/Manual.html#Environmentupdates

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Wed Sep 16 02:42:17 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 16 Sep 2015 02:42:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1Zc2fh-00052a-1P; Wed, 16 Sep 2015 02:42:09 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <matt@notevenremotelydorky.com>) id 1Zc2ff-00052N-IW
	for mirageos-devel@lists.xenproject.org; Wed, 16 Sep 2015 02:42:07 +0000
Received: from [85.158.139.211] by server-12.bemta-5.messagelabs.com id
	77/FA-19220-EF6D8F55; Wed, 16 Sep 2015 02:42:06 +0000
X-Env-Sender: matt@notevenremotelydorky.com
X-Msg-Ref: server-15.tower-206.messagelabs.com!1442371325!19682517!1
X-Originating-IP: [209.85.223.179]
X-SpamReason: No, hits=0.4 required=7.0 tests=HTML_50_60,HTML_MESSAGE,
	RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 9276 invoked from network); 16 Sep 2015 02:42:06 -0000
Received: from mail-io0-f179.google.com (HELO mail-io0-f179.google.com)
	(209.85.223.179)
	by server-15.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
	16 Sep 2015 02:42:06 -0000
Received: by iofh134 with SMTP id h134so218312905iof.0
	for <mirageos-devel@lists.xenproject.org>;
	Tue, 15 Sep 2015 19:42:05 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:mime-version:date:message-id:subject:from:to
	:content-type;
	bh=gm05lvmRHBizf9CsP56SoTv09On37lwZHw5Z/AEa424=;
	b=eIexlXrTxa2Ho9ejULwk2pe7HMVv1rR/3T3Fk3mQCSAehMRCEM2pcICHnwfwzCu6eJ
	BD+vi/qP1uG3Ov6G5DUTCZPWRGitSZWn/fqo8QDNZ6Fh0W7agf4eFKE7IymqYJ66+DT3
	NT0eUeragfLtMF3xPyZv+OsOSYaO94wBht87WPazHYD47L6LA8UN6UmC7li6q8UirGn/
	gEAXintUwCAcjbhPgG+S2wwhIZP0JGI9adQdlvB1YmN1VHCj3nUrXSC2hxgT3x/oqaF6
	j3jnWn0o3lqhEz1Kt5+hoa8X05877sO4L7He5MfxlMJQ/DXtOiXwRDwG8YNqhDRgl/+6
	p0nA==
X-Gm-Message-State: ALoCoQnzRF01aeGIwTXPmeVl94UH+foi6NeLRZqGcBZsfAoQANFkxFtk2PQS4jL09wR5NjydCcQY
MIME-Version: 1.0
X-Received: by 10.107.169.216 with SMTP id f85mr38804950ioj.73.1442371325096; 
	Tue, 15 Sep 2015 19:42:05 -0700 (PDT)
Received: by 10.64.73.106 with HTTP; Tue, 15 Sep 2015 19:42:05 -0700 (PDT)
Date: Tue, 15 Sep 2015 20:42:05 -0600
Message-ID: <CAHARnm2S3hApFujRKMuEY6fnp1JBqMFLxyisppBa4LkFs6TU-A@mail.gmail.com>
From: Matthew Bajor <matt@notevenremotelydorky.com>
To: mirageos-devel@lists.xenproject.org
Subject: [MirageOS-devel] Setting up multiple records in Jitsu
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============8830885463344915743=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============8830885463344915743==
Content-Type: multipart/alternative; boundary=001a1142771e779631051fd43ea5

--001a1142771e779631051fd43ea5
Content-Type: text/plain; charset=UTF-8

Hi!
I'm playing around with MirageOS + Jitsu and was having a hard time finding
the syntax for resolving multiple records/unikernels. The config I'm using
now to start it is:

sudo /home/vagrant/.opam/4.01.0/bin/jitsu \
--bind=0.0.0.0 \
--forwarder=8.8.8.8 \
--ttl=30 \
--backend=libxl \
dns=www.example.org,\
ip=10.100.199.41,\
kernel=../myblog/_mirage/mir-www.xen,\
memory=64000,\
name=www,\
nic=xenbr0


I would like to add a few more (sub)domains onto it if possible (like a
whole zonefile).
Thanks!
Matt

--001a1142771e779631051fd43ea5
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Hi!<div>I&#39;m playing around with MirageOS + Jitsu and w=
as having a hard time finding the syntax for resolving multiple records/uni=
kernels. The config I&#39;m using now to start it is:<br><div><br></div><di=
v><font face=3D"monospace, monospace">sudo /home/vagrant/.opam/4.01.0/bin/j=
itsu \</font></div><div><font face=3D"monospace, monospace">--bind=3D0.0.0.=
0 \</font></div><div><font face=3D"monospace, monospace">--forwarder=3D8.8.=
8.8 \</font></div><div><font face=3D"monospace, monospace">--ttl=3D30 \</fo=
nt></div><div><font face=3D"monospace, monospace">--backend=3Dlibxl \</font=
></div><div><font face=3D"monospace, monospace">dns=3D<a href=3D"http://www=
.example.org">www.example.org</a>,\</font></div><div><font face=3D"monospac=
e, monospace">ip=3D10.100.199.41,\</font></div><div><font face=3D"monospace=
, monospace">kernel=3D../myblog/_mirage/mir-www.xen,\</font></div><div><fon=
t face=3D"monospace, monospace">memory=3D64000,\</font></div><div><font fac=
e=3D"monospace, monospace">name=3Dwww,\</font></div><div><font face=3D"mono=
space, monospace">nic=3Dxenbr0</font></div></div><div><br></div><div><br></=
div><div>I would like to add a few more (sub)domains onto it if possible (l=
ike a whole zonefile).</div><div>Thanks!<br>Matt</div></div>

--001a1142771e779631051fd43ea5--


--===============8830885463344915743==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

--===============8830885463344915743==--


From mirageos-devel-bounces@lists.xenproject.org Wed Sep 16 02:42:17 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 16 Sep 2015 02:42:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1Zc2fh-00052a-1P; Wed, 16 Sep 2015 02:42:09 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <matt@notevenremotelydorky.com>) id 1Zc2ff-00052N-IW
	for mirageos-devel@lists.xenproject.org; Wed, 16 Sep 2015 02:42:07 +0000
Received: from [85.158.139.211] by server-12.bemta-5.messagelabs.com id
	77/FA-19220-EF6D8F55; Wed, 16 Sep 2015 02:42:06 +0000
X-Env-Sender: matt@notevenremotelydorky.com
X-Msg-Ref: server-15.tower-206.messagelabs.com!1442371325!19682517!1
X-Originating-IP: [209.85.223.179]
X-SpamReason: No, hits=0.4 required=7.0 tests=HTML_50_60,HTML_MESSAGE,
	RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 9276 invoked from network); 16 Sep 2015 02:42:06 -0000
Received: from mail-io0-f179.google.com (HELO mail-io0-f179.google.com)
	(209.85.223.179)
	by server-15.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
	16 Sep 2015 02:42:06 -0000
Received: by iofh134 with SMTP id h134so218312905iof.0
	for <mirageos-devel@lists.xenproject.org>;
	Tue, 15 Sep 2015 19:42:05 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:mime-version:date:message-id:subject:from:to
	:content-type;
	bh=gm05lvmRHBizf9CsP56SoTv09On37lwZHw5Z/AEa424=;
	b=eIexlXrTxa2Ho9ejULwk2pe7HMVv1rR/3T3Fk3mQCSAehMRCEM2pcICHnwfwzCu6eJ
	BD+vi/qP1uG3Ov6G5DUTCZPWRGitSZWn/fqo8QDNZ6Fh0W7agf4eFKE7IymqYJ66+DT3
	NT0eUeragfLtMF3xPyZv+OsOSYaO94wBht87WPazHYD47L6LA8UN6UmC7li6q8UirGn/
	gEAXintUwCAcjbhPgG+S2wwhIZP0JGI9adQdlvB1YmN1VHCj3nUrXSC2hxgT3x/oqaF6
	j3jnWn0o3lqhEz1Kt5+hoa8X05877sO4L7He5MfxlMJQ/DXtOiXwRDwG8YNqhDRgl/+6
	p0nA==
X-Gm-Message-State: ALoCoQnzRF01aeGIwTXPmeVl94UH+foi6NeLRZqGcBZsfAoQANFkxFtk2PQS4jL09wR5NjydCcQY
MIME-Version: 1.0
X-Received: by 10.107.169.216 with SMTP id f85mr38804950ioj.73.1442371325096; 
	Tue, 15 Sep 2015 19:42:05 -0700 (PDT)
Received: by 10.64.73.106 with HTTP; Tue, 15 Sep 2015 19:42:05 -0700 (PDT)
Date: Tue, 15 Sep 2015 20:42:05 -0600
Message-ID: <CAHARnm2S3hApFujRKMuEY6fnp1JBqMFLxyisppBa4LkFs6TU-A@mail.gmail.com>
From: Matthew Bajor <matt@notevenremotelydorky.com>
To: mirageos-devel@lists.xenproject.org
Subject: [MirageOS-devel] Setting up multiple records in Jitsu
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============8830885463344915743=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============8830885463344915743==
Content-Type: multipart/alternative; boundary=001a1142771e779631051fd43ea5

--001a1142771e779631051fd43ea5
Content-Type: text/plain; charset=UTF-8

Hi!
I'm playing around with MirageOS + Jitsu and was having a hard time finding
the syntax for resolving multiple records/unikernels. The config I'm using
now to start it is:

sudo /home/vagrant/.opam/4.01.0/bin/jitsu \
--bind=0.0.0.0 \
--forwarder=8.8.8.8 \
--ttl=30 \
--backend=libxl \
dns=www.example.org,\
ip=10.100.199.41,\
kernel=../myblog/_mirage/mir-www.xen,\
memory=64000,\
name=www,\
nic=xenbr0


I would like to add a few more (sub)domains onto it if possible (like a
whole zonefile).
Thanks!
Matt

--001a1142771e779631051fd43ea5
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Hi!<div>I&#39;m playing around with MirageOS + Jitsu and w=
as having a hard time finding the syntax for resolving multiple records/uni=
kernels. The config I&#39;m using now to start it is:<br><div><br></div><di=
v><font face=3D"monospace, monospace">sudo /home/vagrant/.opam/4.01.0/bin/j=
itsu \</font></div><div><font face=3D"monospace, monospace">--bind=3D0.0.0.=
0 \</font></div><div><font face=3D"monospace, monospace">--forwarder=3D8.8.=
8.8 \</font></div><div><font face=3D"monospace, monospace">--ttl=3D30 \</fo=
nt></div><div><font face=3D"monospace, monospace">--backend=3Dlibxl \</font=
></div><div><font face=3D"monospace, monospace">dns=3D<a href=3D"http://www=
.example.org">www.example.org</a>,\</font></div><div><font face=3D"monospac=
e, monospace">ip=3D10.100.199.41,\</font></div><div><font face=3D"monospace=
, monospace">kernel=3D../myblog/_mirage/mir-www.xen,\</font></div><div><fon=
t face=3D"monospace, monospace">memory=3D64000,\</font></div><div><font fac=
e=3D"monospace, monospace">name=3Dwww,\</font></div><div><font face=3D"mono=
space, monospace">nic=3Dxenbr0</font></div></div><div><br></div><div><br></=
div><div>I would like to add a few more (sub)domains onto it if possible (l=
ike a whole zonefile).</div><div>Thanks!<br>Matt</div></div>

--001a1142771e779631051fd43ea5--


--===============8830885463344915743==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

--===============8830885463344915743==--


From mirageos-devel-bounces@lists.xenproject.org Wed Sep 16 10:12:37 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 16 Sep 2015 10:12:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1Zc9hT-0004M2-Py; Wed, 16 Sep 2015 10:12:27 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72) (envelope-from <g@rre.tt>)
	id 1Zc9hS-0004Lq-0S
	for mirageos-devel@lists.xenproject.org; Wed, 16 Sep 2015 10:12:26 +0000
Received: from [85.158.137.68] by server-4.bemta-3.messagelabs.com id
	65/72-09570-98049F55; Wed, 16 Sep 2015 10:12:25 +0000
X-Env-Sender: g@rre.tt
X-Msg-Ref: server-10.tower-31.messagelabs.com!1442398343!44801980!1
X-Originating-IP: [209.85.192.54]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 30130 invoked from network); 16 Sep 2015 10:12:24 -0000
Received: from mail-qg0-f54.google.com (HELO mail-qg0-f54.google.com)
	(209.85.192.54)
	by server-10.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	16 Sep 2015 10:12:24 -0000
Received: by qgt47 with SMTP id 47so166444758qgt.2
	for <mirageos-devel@lists.xenproject.org>;
	Wed, 16 Sep 2015 03:12:23 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:mime-version:from:date:message-id:subject:to
	:content-type;
	bh=smjHDC0yOyW9JiYVrIqZ7qULwcw4/2fDMd+4wly4eGI=;
	b=HxJjwHUURkAID/AMhLNxkhHYKnzV3eYhkyyRnP/Ka6AY7y+vVYqnnuiMuDak3+Mkra
	Gpow44CUHlbUn1002lmPp7ZG+HVusuc//Ex11qI5RdhIvyJ3Gkk7hq8T7do5lFskh3/F
	x9ecQaZzfADP4ZAKiCc5bStMxv5NyT2OYhmoAbIt2eyRyYcR6iwZecD0XemPqS5hxDre
	eSCxh/Gb2uQ1WGJ/p2u0q7k3rnACNJKW5zdgxMw0JriXE5WPaxhGxiT/L8lwSzBq+L2D
	Q3QE94Kgpqk8DTN3kGedFflo3C3qq8EgpgrOCwv1+DcCEHAp1z2oqOeO4R433eL3qoEu
	yo7A==
X-Gm-Message-State: ALoCoQmP/kPN+64XcvEzPJ+t0ski0yOmj1ySddRFXqRAYnJZZ/SkpthD3fNyVoKwAYJ3KlPUqNEH
X-Received: by 10.140.93.68 with SMTP id c62mr40742080qge.54.1442398343429;
	Wed, 16 Sep 2015 03:12:23 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.55.125.135 with HTTP; Wed, 16 Sep 2015 03:12:04 -0700 (PDT)
From: Garrett Smith <g@rre.tt>
Date: Wed, 16 Sep 2015 05:12:04 -0500
Message-ID: <CACU=p6stC+LEcSubie2FwtugBvGKqeOobjY5dEv5ko9RcM+eAw@mail.gmail.com>
To: mirageos-devel@lists.xenproject.org
Subject: [MirageOS-devel] Type enforced security
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

Is there an example in the Mirage codebase where the OCaml type system
is used explicitly to enforce a security policy or behavior? This is a
bit of a weird question, sorry, I'll explain.

I'm putting together a presentation on unikernels and I'm looking over
the various vulnerability patches in OpenSSL and thinking a) yeah, the
underlying  C code make it pretty tough to spot edge cases and bugs
but b) the patches themselves aren't obviously correct (to me).

I'm wondering if the OCaml type systems is (or could be) used to
enforce a various security baselines to help maintainers guard against
errant patches, features, etc. Is there a specific example I can point
to that highlights the advantages of using the OCaml type system
vis-a-vis C's along this line?

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Wed Sep 16 10:12:37 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 16 Sep 2015 10:12:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1Zc9hT-0004M2-Py; Wed, 16 Sep 2015 10:12:27 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72) (envelope-from <g@rre.tt>)
	id 1Zc9hS-0004Lq-0S
	for mirageos-devel@lists.xenproject.org; Wed, 16 Sep 2015 10:12:26 +0000
Received: from [85.158.137.68] by server-4.bemta-3.messagelabs.com id
	65/72-09570-98049F55; Wed, 16 Sep 2015 10:12:25 +0000
X-Env-Sender: g@rre.tt
X-Msg-Ref: server-10.tower-31.messagelabs.com!1442398343!44801980!1
X-Originating-IP: [209.85.192.54]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 30130 invoked from network); 16 Sep 2015 10:12:24 -0000
Received: from mail-qg0-f54.google.com (HELO mail-qg0-f54.google.com)
	(209.85.192.54)
	by server-10.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	16 Sep 2015 10:12:24 -0000
Received: by qgt47 with SMTP id 47so166444758qgt.2
	for <mirageos-devel@lists.xenproject.org>;
	Wed, 16 Sep 2015 03:12:23 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:mime-version:from:date:message-id:subject:to
	:content-type;
	bh=smjHDC0yOyW9JiYVrIqZ7qULwcw4/2fDMd+4wly4eGI=;
	b=HxJjwHUURkAID/AMhLNxkhHYKnzV3eYhkyyRnP/Ka6AY7y+vVYqnnuiMuDak3+Mkra
	Gpow44CUHlbUn1002lmPp7ZG+HVusuc//Ex11qI5RdhIvyJ3Gkk7hq8T7do5lFskh3/F
	x9ecQaZzfADP4ZAKiCc5bStMxv5NyT2OYhmoAbIt2eyRyYcR6iwZecD0XemPqS5hxDre
	eSCxh/Gb2uQ1WGJ/p2u0q7k3rnACNJKW5zdgxMw0JriXE5WPaxhGxiT/L8lwSzBq+L2D
	Q3QE94Kgpqk8DTN3kGedFflo3C3qq8EgpgrOCwv1+DcCEHAp1z2oqOeO4R433eL3qoEu
	yo7A==
X-Gm-Message-State: ALoCoQmP/kPN+64XcvEzPJ+t0ski0yOmj1ySddRFXqRAYnJZZ/SkpthD3fNyVoKwAYJ3KlPUqNEH
X-Received: by 10.140.93.68 with SMTP id c62mr40742080qge.54.1442398343429;
	Wed, 16 Sep 2015 03:12:23 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.55.125.135 with HTTP; Wed, 16 Sep 2015 03:12:04 -0700 (PDT)
From: Garrett Smith <g@rre.tt>
Date: Wed, 16 Sep 2015 05:12:04 -0500
Message-ID: <CACU=p6stC+LEcSubie2FwtugBvGKqeOobjY5dEv5ko9RcM+eAw@mail.gmail.com>
To: mirageos-devel@lists.xenproject.org
Subject: [MirageOS-devel] Type enforced security
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

Is there an example in the Mirage codebase where the OCaml type system
is used explicitly to enforce a security policy or behavior? This is a
bit of a weird question, sorry, I'll explain.

I'm putting together a presentation on unikernels and I'm looking over
the various vulnerability patches in OpenSSL and thinking a) yeah, the
underlying  C code make it pretty tough to spot edge cases and bugs
but b) the patches themselves aren't obviously correct (to me).

I'm wondering if the OCaml type systems is (or could be) used to
enforce a various security baselines to help maintainers guard against
errant patches, features, etc. Is there a specific example I can point
to that highlights the advantages of using the OCaml type system
vis-a-vis C's along this line?

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Wed Sep 16 10:16:52 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 16 Sep 2015 10:16:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1Zc9lk-0004ct-6S; Wed, 16 Sep 2015 10:16:52 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <richard.mortier@gmail.com>) id 1Zc9li-0004cj-Fm
	for mirageos-devel@lists.xenproject.org; Wed, 16 Sep 2015 10:16:50 +0000
Received: from [85.158.139.211] by server-4.bemta-5.messagelabs.com id
	7F/44-24856-19149F55; Wed, 16 Sep 2015 10:16:49 +0000
X-Env-Sender: richard.mortier@gmail.com
X-Msg-Ref: server-13.tower-206.messagelabs.com!1442398607!35491716!1
X-Originating-IP: [209.85.212.180]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 15215 invoked from network); 16 Sep 2015 10:16:47 -0000
Received: from mail-wi0-f180.google.com (HELO mail-wi0-f180.google.com)
	(209.85.212.180)
	by server-13.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
	16 Sep 2015 10:16:47 -0000
Received: by wicge5 with SMTP id ge5so67098604wic.0
	for <mirageos-devel@lists.xenproject.org>;
	Wed, 16 Sep 2015 03:16:47 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=mime-version:in-reply-to:references:date:message-id:subject:from:to
	:cc:content-type;
	bh=IrVY8mUr9rubJgiJimI9k87eh9bMsMKoMIuhOkg1TCA=;
	b=bzgKIAywYdbIZNukXRUiFQ6MjItIKmctnI0NESoLCKMWSPC5l/BucPUsnmLoDOaFRV
	ujwGVMVuc/hMbo0woaRVd76DDY87CC2WenRHndcskJ89+OPyas5Bq4Myti+vdTVwt8O3
	jWjSF0dFOtT/bx0NnUkDxKKdm2P9OdWmrEk4jmy8uLvQY0dx4N8jcWM30M7iMbRCX1uz
	pgXLUxJZTCMItN1fVQwmYrWaCw4HZgN1NojrjrGitBzuP8zW3A4dzfFtYKxvJe7eZnyk
	HV86FPjRMkweZ6Con3r4YovAJbCzysDeH4n4MGZBzPienYrDFqBO+7zqQ8zHMgSJNiRL
	4iEg==
X-Received: by 10.180.88.164 with SMTP id bh4mr16880793wib.18.1442398606866;
	Wed, 16 Sep 2015 03:16:46 -0700 (PDT)
Received: from mail-wi0-f175.google.com (mail-wi0-f175.google.com.
	[209.85.212.175]) by smtp.gmail.com with ESMTPSA id
	bs8sm25737461wjc.47.2015.09.16.03.16.45
	for <mirageos-devel@lists.xenproject.org>
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Wed, 16 Sep 2015 03:16:46 -0700 (PDT)
Received: by wicgb1 with SMTP id gb1so66619827wic.1
	for <mirageos-devel@lists.xenproject.org>;
	Wed, 16 Sep 2015 03:16:45 -0700 (PDT)
MIME-Version: 1.0
X-Received: by 10.194.123.4 with SMTP id lw4mr48884659wjb.94.1442398605411;
	Wed, 16 Sep 2015 03:16:45 -0700 (PDT)
Received: by 10.28.130.67 with HTTP; Wed, 16 Sep 2015 03:16:45 -0700 (PDT)
In-Reply-To: <CACU=p6stC+LEcSubie2FwtugBvGKqeOobjY5dEv5ko9RcM+eAw@mail.gmail.com>
References: <CACU=p6stC+LEcSubie2FwtugBvGKqeOobjY5dEv5ko9RcM+eAw@mail.gmail.com>
Date: Wed, 16 Sep 2015 11:16:45 +0100
Message-ID: <CAN2Hq07mjYhYwMqhvB+RL1APMMzKqthJeLuut_b1r-iyyjNZug@mail.gmail.com>
From: Richard Mortier <richard.mortier@cl.cam.ac.uk>
To: Garrett Smith <g@rre.tt>
Cc: mirageos-devel <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Type enforced security
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On 16 September 2015 at 11:12, Garrett Smith <g@rre.tt> wrote:
> I'm wondering if the OCaml type systems is (or could be) used to
> enforce a various security baselines to help maintainers guard against
> errant patches, features, etc. Is there a specific example I can point
> to that highlights the advantages of using the OCaml type system
> vis-a-vis C's along this line?

One possibility that springs to mind immediately, and has been
previously discussed but unfortunately not implemented, would be to
use phantom types to tag incoming network data with its endiannes, so
that correct byteswapping could be enforced through the stack. (Though
that would be more a property of the stack rather than a specific
guard against bad patches etc. so not sure it's what you're asking
for...)

-- 
Richard Mortier
richard.mortier@cl.cam.ac.uk

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Wed Sep 16 10:16:52 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 16 Sep 2015 10:16:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1Zc9lk-0004ct-6S; Wed, 16 Sep 2015 10:16:52 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <richard.mortier@gmail.com>) id 1Zc9li-0004cj-Fm
	for mirageos-devel@lists.xenproject.org; Wed, 16 Sep 2015 10:16:50 +0000
Received: from [85.158.139.211] by server-4.bemta-5.messagelabs.com id
	7F/44-24856-19149F55; Wed, 16 Sep 2015 10:16:49 +0000
X-Env-Sender: richard.mortier@gmail.com
X-Msg-Ref: server-13.tower-206.messagelabs.com!1442398607!35491716!1
X-Originating-IP: [209.85.212.180]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 15215 invoked from network); 16 Sep 2015 10:16:47 -0000
Received: from mail-wi0-f180.google.com (HELO mail-wi0-f180.google.com)
	(209.85.212.180)
	by server-13.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
	16 Sep 2015 10:16:47 -0000
Received: by wicge5 with SMTP id ge5so67098604wic.0
	for <mirageos-devel@lists.xenproject.org>;
	Wed, 16 Sep 2015 03:16:47 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=mime-version:in-reply-to:references:date:message-id:subject:from:to
	:cc:content-type;
	bh=IrVY8mUr9rubJgiJimI9k87eh9bMsMKoMIuhOkg1TCA=;
	b=bzgKIAywYdbIZNukXRUiFQ6MjItIKmctnI0NESoLCKMWSPC5l/BucPUsnmLoDOaFRV
	ujwGVMVuc/hMbo0woaRVd76DDY87CC2WenRHndcskJ89+OPyas5Bq4Myti+vdTVwt8O3
	jWjSF0dFOtT/bx0NnUkDxKKdm2P9OdWmrEk4jmy8uLvQY0dx4N8jcWM30M7iMbRCX1uz
	pgXLUxJZTCMItN1fVQwmYrWaCw4HZgN1NojrjrGitBzuP8zW3A4dzfFtYKxvJe7eZnyk
	HV86FPjRMkweZ6Con3r4YovAJbCzysDeH4n4MGZBzPienYrDFqBO+7zqQ8zHMgSJNiRL
	4iEg==
X-Received: by 10.180.88.164 with SMTP id bh4mr16880793wib.18.1442398606866;
	Wed, 16 Sep 2015 03:16:46 -0700 (PDT)
Received: from mail-wi0-f175.google.com (mail-wi0-f175.google.com.
	[209.85.212.175]) by smtp.gmail.com with ESMTPSA id
	bs8sm25737461wjc.47.2015.09.16.03.16.45
	for <mirageos-devel@lists.xenproject.org>
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Wed, 16 Sep 2015 03:16:46 -0700 (PDT)
Received: by wicgb1 with SMTP id gb1so66619827wic.1
	for <mirageos-devel@lists.xenproject.org>;
	Wed, 16 Sep 2015 03:16:45 -0700 (PDT)
MIME-Version: 1.0
X-Received: by 10.194.123.4 with SMTP id lw4mr48884659wjb.94.1442398605411;
	Wed, 16 Sep 2015 03:16:45 -0700 (PDT)
Received: by 10.28.130.67 with HTTP; Wed, 16 Sep 2015 03:16:45 -0700 (PDT)
In-Reply-To: <CACU=p6stC+LEcSubie2FwtugBvGKqeOobjY5dEv5ko9RcM+eAw@mail.gmail.com>
References: <CACU=p6stC+LEcSubie2FwtugBvGKqeOobjY5dEv5ko9RcM+eAw@mail.gmail.com>
Date: Wed, 16 Sep 2015 11:16:45 +0100
Message-ID: <CAN2Hq07mjYhYwMqhvB+RL1APMMzKqthJeLuut_b1r-iyyjNZug@mail.gmail.com>
From: Richard Mortier <richard.mortier@cl.cam.ac.uk>
To: Garrett Smith <g@rre.tt>
Cc: mirageos-devel <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Type enforced security
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On 16 September 2015 at 11:12, Garrett Smith <g@rre.tt> wrote:
> I'm wondering if the OCaml type systems is (or could be) used to
> enforce a various security baselines to help maintainers guard against
> errant patches, features, etc. Is there a specific example I can point
> to that highlights the advantages of using the OCaml type system
> vis-a-vis C's along this line?

One possibility that springs to mind immediately, and has been
previously discussed but unfortunately not implemented, would be to
use phantom types to tag incoming network data with its endiannes, so
that correct byteswapping could be enforced through the stack. (Though
that would be more a property of the stack rather than a specific
guard against bad patches etc. so not sure it's what you're asking
for...)

-- 
Richard Mortier
richard.mortier@cl.cam.ac.uk

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Wed Sep 16 11:36:11 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 16 Sep 2015 11:36:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZcB0O-0004N8-Gn; Wed, 16 Sep 2015 11:36:04 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <hannes@mehnert.org>) id 1ZcB0N-0004N3-E6
	for mirageos-devel@lists.xenproject.org; Wed, 16 Sep 2015 11:36:03 +0000
Received: from [193.109.254.147] by server-15.bemta-14.messagelabs.com id
	90/9C-18886-22459F55; Wed, 16 Sep 2015 11:36:02 +0000
X-Env-Sender: hannes@mehnert.org
X-Msg-Ref: server-4.tower-27.messagelabs.com!1442403360!47961961!1
X-Originating-IP: [213.73.89.200]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 26307 invoked from network); 16 Sep 2015 11:36:01 -0000
Received: from mail.mehnert.org (HELO mail.mehnert.org) (213.73.89.200)
	by server-4.tower-27.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 16 Sep 2015 11:36:01 -0000
Received: from [192.168.0.7] (cpc30-cmbg15-2-0-cust247.5-4.cable.virginm.net
	[86.4.51.248])
	(using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits))
	(Client CN "hannes@mehnert.org",
	Issuer "mehnert root CA" (not verified))
	by mail.mehnert.org (Postfix) with ESMTPS id DE57F3770
	for <mirageos-devel@lists.xenproject.org>;
	Wed, 16 Sep 2015 13:35:59 +0200 (CEST)
Message-ID: <55F95409.60909@mehnert.org>
Date: Wed, 16 Sep 2015 12:35:37 +0100
From: Hannes Mehnert <hannes@mehnert.org>
User-Agent: Mozilla/5.0 (X11; FreeBSD amd64;
	rv:31.0) Gecko/20100101 Thunderbird/31.7.0
MIME-Version: 1.0
To: mirageos-devel@lists.xenproject.org
References: <CACU=p6stC+LEcSubie2FwtugBvGKqeOobjY5dEv5ko9RcM+eAw@mail.gmail.com>
In-Reply-To: <CACU=p6stC+LEcSubie2FwtugBvGKqeOobjY5dEv5ko9RcM+eAw@mail.gmail.com>
OpenPGP: id=11B5464249B5BD858FFF6328BC896588DF7C28EE
Subject: Re: [MirageOS-devel] Type enforced security
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============7977640827860375744=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--===============7977640827860375744==
Content-Type: multipart/signed; micalg=pgp-sha384;
 protocol="application/pgp-signature";
 boundary="LfVQQqEQaKangxs8f008XxxqpCPRbOuoo"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--LfVQQqEQaKangxs8f008XxxqpCPRbOuoo
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Hey,

On 09/16/2015 11:12, Garrett Smith wrote:
> Is there an example in the Mirage codebase where the OCaml type system
> is used explicitly to enforce a security policy or behavior? This is a
> bit of a weird question, sorry, I'll explain.
>=20
> I'm putting together a presentation on unikernels and I'm looking over
> the various vulnerability patches in OpenSSL and thinking a) yeah, the
> underlying  C code make it pretty tough to spot edge cases and bugs
> but b) the patches themselves aren't obviously correct (to me).
>=20
> I'm wondering if the OCaml type systems is (or could be) used to
> enforce a various security baselines to help maintainers guard against
> errant patches, features, etc. Is there a specific example I can point
> to that highlights the advantages of using the OCaml type system
> vis-a-vis C's along this line?

my take on this is if you stick to purely functional programming (no
shared mutable state, no exceptions), you can understand code locally
(the behaviour of a function is only influenced by its arguments).  Once
you have that, understanding (security-critical) things is pretty
straightforward:
https://berlin.ccc.de/~hannes/oob.diff (slightly modified (to not
include the removal of 'open Cstruct) from
https://github.com/mirleft/ocaml-tls/commit/80117871679d57dde8c8e3b733920=
24ef4b42c38)
is a commit where previously an out of bounds access to the underlying
buffer was possible (since the 4 byte header were not properly accounted
for in line 323), which lead to an exception thrown by Cstruct.

=46rom the diff you can see what exactly changed (size -> size+4); no
other behaviour changed.  To contrast I cannot understand from the diff
the impact/commit in go's ssl implementation:
https://code.google.com/p/go/source/detail?r=3Deae0457c101512f59296538f01=
62749eba325892&name=3Drelease-branch.go1.3

Unfortunately, not all MirageOS code base is in a purely functional
style (yet! ;).

hannes


--LfVQQqEQaKangxs8f008XxxqpCPRbOuoo
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQIcBAEBCQAGBQJV+VQYAAoJELyJZYjffCjuAc8QAJIa32lWjW7yHDuk+GYhcmwF
XDObga+ZWVVjiXIgM3bpboJrs0oUq1jqtl8kk/h5AZO6C2amz0uI0J152i0VXiTO
jNZj1Z1CnBis6+SxYN1oxF9+UkpGO6R52yutf26Yy07mKjXhTujwmu7q1nOOcRPK
COqQU4TCs7WJJe69Ak5Jxm2xDerbUctgimafJU92f7BU8KpVTppILmo8+QYS2V8f
//oqG5lUBi7hw2bvckdVC/JYoEiE/C1M67AbOGkfDlyzHtLpij9rGJLmdPXnD0KR
JH3gH9q2bKfCdrvGCSbJu39oJN/pcvBGR7j+jfC9bUaAbl7zE1XFqCw7gWicpdv8
y/iPZPMHA1UeIimBQRVVGzJ3iMewOPxQ4Va0eKArIklLmjnIZSwMjTSTK92Kc+oA
Q6sfa1+SCC11/1YDesZpML7WDnsfP7OxaXzVviaYCoTNKCJDtOAplBU64uCsrTcv
lBzjciOi8G2gmBESZXtp8jUTdFmNH6wjNL9LXjZFEPPrVZyFFXm5YM36cZZGU8oA
4yULwERack48T0bIXDAQMdAHzyo+OrHrpW+IjNZYZ9WEeJKtVGHAI05c3Xi4bBQw
diXg+3l6v/1fLd6qzcAYSzKl8Am6twz4wyuRQd/FxanMXDSROFBXUBhfBRgeCGAx
FSJqrXcQuzij+/igQFVM
=+vVD
-----END PGP SIGNATURE-----

--LfVQQqEQaKangxs8f008XxxqpCPRbOuoo--


--===============7977640827860375744==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

--===============7977640827860375744==--


From mirageos-devel-bounces@lists.xenproject.org Wed Sep 16 11:36:11 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 16 Sep 2015 11:36:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZcB0O-0004N8-Gn; Wed, 16 Sep 2015 11:36:04 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <hannes@mehnert.org>) id 1ZcB0N-0004N3-E6
	for mirageos-devel@lists.xenproject.org; Wed, 16 Sep 2015 11:36:03 +0000
Received: from [193.109.254.147] by server-15.bemta-14.messagelabs.com id
	90/9C-18886-22459F55; Wed, 16 Sep 2015 11:36:02 +0000
X-Env-Sender: hannes@mehnert.org
X-Msg-Ref: server-4.tower-27.messagelabs.com!1442403360!47961961!1
X-Originating-IP: [213.73.89.200]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 26307 invoked from network); 16 Sep 2015 11:36:01 -0000
Received: from mail.mehnert.org (HELO mail.mehnert.org) (213.73.89.200)
	by server-4.tower-27.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 16 Sep 2015 11:36:01 -0000
Received: from [192.168.0.7] (cpc30-cmbg15-2-0-cust247.5-4.cable.virginm.net
	[86.4.51.248])
	(using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits))
	(Client CN "hannes@mehnert.org",
	Issuer "mehnert root CA" (not verified))
	by mail.mehnert.org (Postfix) with ESMTPS id DE57F3770
	for <mirageos-devel@lists.xenproject.org>;
	Wed, 16 Sep 2015 13:35:59 +0200 (CEST)
Message-ID: <55F95409.60909@mehnert.org>
Date: Wed, 16 Sep 2015 12:35:37 +0100
From: Hannes Mehnert <hannes@mehnert.org>
User-Agent: Mozilla/5.0 (X11; FreeBSD amd64;
	rv:31.0) Gecko/20100101 Thunderbird/31.7.0
MIME-Version: 1.0
To: mirageos-devel@lists.xenproject.org
References: <CACU=p6stC+LEcSubie2FwtugBvGKqeOobjY5dEv5ko9RcM+eAw@mail.gmail.com>
In-Reply-To: <CACU=p6stC+LEcSubie2FwtugBvGKqeOobjY5dEv5ko9RcM+eAw@mail.gmail.com>
OpenPGP: id=11B5464249B5BD858FFF6328BC896588DF7C28EE
Subject: Re: [MirageOS-devel] Type enforced security
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============7977640827860375744=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--===============7977640827860375744==
Content-Type: multipart/signed; micalg=pgp-sha384;
 protocol="application/pgp-signature";
 boundary="LfVQQqEQaKangxs8f008XxxqpCPRbOuoo"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--LfVQQqEQaKangxs8f008XxxqpCPRbOuoo
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Hey,

On 09/16/2015 11:12, Garrett Smith wrote:
> Is there an example in the Mirage codebase where the OCaml type system
> is used explicitly to enforce a security policy or behavior? This is a
> bit of a weird question, sorry, I'll explain.
>=20
> I'm putting together a presentation on unikernels and I'm looking over
> the various vulnerability patches in OpenSSL and thinking a) yeah, the
> underlying  C code make it pretty tough to spot edge cases and bugs
> but b) the patches themselves aren't obviously correct (to me).
>=20
> I'm wondering if the OCaml type systems is (or could be) used to
> enforce a various security baselines to help maintainers guard against
> errant patches, features, etc. Is there a specific example I can point
> to that highlights the advantages of using the OCaml type system
> vis-a-vis C's along this line?

my take on this is if you stick to purely functional programming (no
shared mutable state, no exceptions), you can understand code locally
(the behaviour of a function is only influenced by its arguments).  Once
you have that, understanding (security-critical) things is pretty
straightforward:
https://berlin.ccc.de/~hannes/oob.diff (slightly modified (to not
include the removal of 'open Cstruct) from
https://github.com/mirleft/ocaml-tls/commit/80117871679d57dde8c8e3b733920=
24ef4b42c38)
is a commit where previously an out of bounds access to the underlying
buffer was possible (since the 4 byte header were not properly accounted
for in line 323), which lead to an exception thrown by Cstruct.

=46rom the diff you can see what exactly changed (size -> size+4); no
other behaviour changed.  To contrast I cannot understand from the diff
the impact/commit in go's ssl implementation:
https://code.google.com/p/go/source/detail?r=3Deae0457c101512f59296538f01=
62749eba325892&name=3Drelease-branch.go1.3

Unfortunately, not all MirageOS code base is in a purely functional
style (yet! ;).

hannes


--LfVQQqEQaKangxs8f008XxxqpCPRbOuoo
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQIcBAEBCQAGBQJV+VQYAAoJELyJZYjffCjuAc8QAJIa32lWjW7yHDuk+GYhcmwF
XDObga+ZWVVjiXIgM3bpboJrs0oUq1jqtl8kk/h5AZO6C2amz0uI0J152i0VXiTO
jNZj1Z1CnBis6+SxYN1oxF9+UkpGO6R52yutf26Yy07mKjXhTujwmu7q1nOOcRPK
COqQU4TCs7WJJe69Ak5Jxm2xDerbUctgimafJU92f7BU8KpVTppILmo8+QYS2V8f
//oqG5lUBi7hw2bvckdVC/JYoEiE/C1M67AbOGkfDlyzHtLpij9rGJLmdPXnD0KR
JH3gH9q2bKfCdrvGCSbJu39oJN/pcvBGR7j+jfC9bUaAbl7zE1XFqCw7gWicpdv8
y/iPZPMHA1UeIimBQRVVGzJ3iMewOPxQ4Va0eKArIklLmjnIZSwMjTSTK92Kc+oA
Q6sfa1+SCC11/1YDesZpML7WDnsfP7OxaXzVviaYCoTNKCJDtOAplBU64uCsrTcv
lBzjciOi8G2gmBESZXtp8jUTdFmNH6wjNL9LXjZFEPPrVZyFFXm5YM36cZZGU8oA
4yULwERack48T0bIXDAQMdAHzyo+OrHrpW+IjNZYZ9WEeJKtVGHAI05c3Xi4bBQw
diXg+3l6v/1fLd6qzcAYSzKl8Am6twz4wyuRQd/FxanMXDSROFBXUBhfBRgeCGAx
FSJqrXcQuzij+/igQFVM
=+vVD
-----END PGP SIGNATURE-----

--LfVQQqEQaKangxs8f008XxxqpCPRbOuoo--


--===============7977640827860375744==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

--===============7977640827860375744==--


From mirageos-devel-bounces@lists.xenproject.org Wed Sep 16 13:46:25 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 16 Sep 2015 13:46:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZcD2Q-0005gs-Q6; Wed, 16 Sep 2015 13:46:18 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <anil@recoil.org>) id 1ZcD2P-0005gg-CN
	for mirageos-devel@lists.xenproject.org; Wed, 16 Sep 2015 13:46:17 +0000
Received: from [85.158.137.68] by server-8.bemta-3.messagelabs.com id
	9F/BA-31069-8A279F55; Wed, 16 Sep 2015 13:46:16 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-3.tower-31.messagelabs.com!1442411173!12926997!1
X-Originating-IP: [5.153.225.51]
X-SpamReason: No, hits=0.2 required=7.0 tests=RCVD_ILLEGAL_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 19447 invoked from network); 16 Sep 2015 13:46:13 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-3.tower-31.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 16 Sep 2015 13:46:13 -0000
Received: from dhcp-172-17-168-110.eduroam.wireless.private.cam.ac.uk
	(global-1-27.nat.csx.cam.ac.uk [131.111.184.27])
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id 50e8432d
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Wed, 16 Sep 2015 14:46:12 +0100 (BST)
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <55F95409.60909@mehnert.org>
Date: Wed, 16 Sep 2015 14:46:11 +0100
Message-Id: <55B5B523-45C4-433C-B600-36FD20B36F8A@recoil.org>
References: <CACU=p6stC+LEcSubie2FwtugBvGKqeOobjY5dEv5ko9RcM+eAw@mail.gmail.com>
	<55F95409.60909@mehnert.org>
To: Hannes Mehnert <hannes@mehnert.org>
X-Mailer: Apple Mail (2.2104)
Cc: mirageos-devel@lists.xenproject.org
Subject: Re: [MirageOS-devel] Type enforced security
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On 16 Sep 2015, at 12:35, Hannes Mehnert <hannes@mehnert.org> wrote:
> 
> Hey,
> 
> On 09/16/2015 11:12, Garrett Smith wrote:
>> Is there an example in the Mirage codebase where the OCaml type system
>> is used explicitly to enforce a security policy or behavior? This is a
>> bit of a weird question, sorry, I'll explain.
>> 
>> I'm putting together a presentation on unikernels and I'm looking over
>> the various vulnerability patches in OpenSSL and thinking a) yeah, the
>> underlying  C code make it pretty tough to spot edge cases and bugs
>> but b) the patches themselves aren't obviously correct (to me).
>> 
>> I'm wondering if the OCaml type systems is (or could be) used to
>> enforce a various security baselines to help maintainers guard against
>> errant patches, features, etc. Is there a specific example I can point
>> to that highlights the advantages of using the OCaml type system
>> vis-a-vis C's along this line?
> 
> my take on this is if you stick to purely functional programming (no
> shared mutable state, no exceptions), you can understand code locally
> (the behaviour of a function is only influenced by its arguments).  Once
> you have that, understanding (security-critical) things is pretty
> straightforward:
> https://berlin.ccc.de/~hannes/oob.diff (slightly modified (to not
> include the removal of 'open Cstruct) from
> https://github.com/mirleft/ocaml-tls/commit/80117871679d57dde8c8e3b73392024ef4b42c38)
> is a commit where previously an out of bounds access to the underlying
> buffer was possible (since the 4 byte header were not properly accounted
> for in line 323), which lead to an exception thrown by Cstruct.
> 
> From the diff you can see what exactly changed (size -> size+4); no
> other behaviour changed.  To contrast I cannot understand from the diff
> the impact/commit in go's ssl implementation:
> https://code.google.com/p/go/source/detail?r=eae0457c101512f59296538f0162749eba325892&name=release-branch.go1.3
> 
> Unfortunately, not all MirageOS code base is in a purely functional
> style (yet! ;).

There's also a broader set of examples in the nqsb-TLS Usenix Security
paper from this summer:

http://anil.recoil.org/papers/2015-usenixsec-nqsb.pdf

In particular, the use of the OCaml module system to repurpose the
TLS stack to act as both a trace checker and an executable library
is something that's extremely hard to do safely from OpenSSL (where
everything is intertwined).

Hannes, is there an example of how to run the nqsb-TLS trace checker
command-line tool anywhere?

-anil


_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Wed Sep 16 13:46:25 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 16 Sep 2015 13:46:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZcD2Q-0005gs-Q6; Wed, 16 Sep 2015 13:46:18 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <anil@recoil.org>) id 1ZcD2P-0005gg-CN
	for mirageos-devel@lists.xenproject.org; Wed, 16 Sep 2015 13:46:17 +0000
Received: from [85.158.137.68] by server-8.bemta-3.messagelabs.com id
	9F/BA-31069-8A279F55; Wed, 16 Sep 2015 13:46:16 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-3.tower-31.messagelabs.com!1442411173!12926997!1
X-Originating-IP: [5.153.225.51]
X-SpamReason: No, hits=0.2 required=7.0 tests=RCVD_ILLEGAL_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 19447 invoked from network); 16 Sep 2015 13:46:13 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-3.tower-31.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 16 Sep 2015 13:46:13 -0000
Received: from dhcp-172-17-168-110.eduroam.wireless.private.cam.ac.uk
	(global-1-27.nat.csx.cam.ac.uk [131.111.184.27])
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id 50e8432d
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Wed, 16 Sep 2015 14:46:12 +0100 (BST)
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <55F95409.60909@mehnert.org>
Date: Wed, 16 Sep 2015 14:46:11 +0100
Message-Id: <55B5B523-45C4-433C-B600-36FD20B36F8A@recoil.org>
References: <CACU=p6stC+LEcSubie2FwtugBvGKqeOobjY5dEv5ko9RcM+eAw@mail.gmail.com>
	<55F95409.60909@mehnert.org>
To: Hannes Mehnert <hannes@mehnert.org>
X-Mailer: Apple Mail (2.2104)
Cc: mirageos-devel@lists.xenproject.org
Subject: Re: [MirageOS-devel] Type enforced security
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On 16 Sep 2015, at 12:35, Hannes Mehnert <hannes@mehnert.org> wrote:
> 
> Hey,
> 
> On 09/16/2015 11:12, Garrett Smith wrote:
>> Is there an example in the Mirage codebase where the OCaml type system
>> is used explicitly to enforce a security policy or behavior? This is a
>> bit of a weird question, sorry, I'll explain.
>> 
>> I'm putting together a presentation on unikernels and I'm looking over
>> the various vulnerability patches in OpenSSL and thinking a) yeah, the
>> underlying  C code make it pretty tough to spot edge cases and bugs
>> but b) the patches themselves aren't obviously correct (to me).
>> 
>> I'm wondering if the OCaml type systems is (or could be) used to
>> enforce a various security baselines to help maintainers guard against
>> errant patches, features, etc. Is there a specific example I can point
>> to that highlights the advantages of using the OCaml type system
>> vis-a-vis C's along this line?
> 
> my take on this is if you stick to purely functional programming (no
> shared mutable state, no exceptions), you can understand code locally
> (the behaviour of a function is only influenced by its arguments).  Once
> you have that, understanding (security-critical) things is pretty
> straightforward:
> https://berlin.ccc.de/~hannes/oob.diff (slightly modified (to not
> include the removal of 'open Cstruct) from
> https://github.com/mirleft/ocaml-tls/commit/80117871679d57dde8c8e3b73392024ef4b42c38)
> is a commit where previously an out of bounds access to the underlying
> buffer was possible (since the 4 byte header were not properly accounted
> for in line 323), which lead to an exception thrown by Cstruct.
> 
> From the diff you can see what exactly changed (size -> size+4); no
> other behaviour changed.  To contrast I cannot understand from the diff
> the impact/commit in go's ssl implementation:
> https://code.google.com/p/go/source/detail?r=eae0457c101512f59296538f0162749eba325892&name=release-branch.go1.3
> 
> Unfortunately, not all MirageOS code base is in a purely functional
> style (yet! ;).

There's also a broader set of examples in the nqsb-TLS Usenix Security
paper from this summer:

http://anil.recoil.org/papers/2015-usenixsec-nqsb.pdf

In particular, the use of the OCaml module system to repurpose the
TLS stack to act as both a trace checker and an executable library
is something that's extremely hard to do safely from OpenSSL (where
everything is intertwined).

Hannes, is there an example of how to run the nqsb-TLS trace checker
command-line tool anywhere?

-anil


_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Wed Sep 16 13:59:53 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 16 Sep 2015 13:59:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZcDFY-0000fv-0k; Wed, 16 Sep 2015 13:59:52 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <anil@recoil.org>) id 1ZcDFW-0000fI-68
	for MirageOS-devel@lists.xenproject.org; Wed, 16 Sep 2015 13:59:50 +0000
Received: from [85.158.137.68] by server-12.bemta-3.messagelabs.com id
	26/29-05269-5D579F55; Wed, 16 Sep 2015 13:59:49 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-11.tower-31.messagelabs.com!1442411988!12116691!1
X-Originating-IP: [5.153.225.51]
X-SpamReason: No, hits=0.2 required=7.0 tests=RCVD_ILLEGAL_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 31784 invoked from network); 16 Sep 2015 13:59:48 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-11.tower-31.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 16 Sep 2015 13:59:48 -0000
Received: from dhcp-172-17-168-110.eduroam.wireless.private.cam.ac.uk
	(global-1-27.nat.csx.cam.ac.uk [131.111.184.27])
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id fd875b38
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Wed, 16 Sep 2015 14:59:47 +0100 (BST)
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <CAC-LLDg-UEFBu9EAE2EQTBXKAB+uyjhDokfhFbPwapA0t-Zrbw@mail.gmail.com>
Date: Wed, 16 Sep 2015 14:59:46 +0100
Message-Id: <7077ADD0-CAE4-4EA1-A58B-59FD8400B07F@recoil.org>
References: <CAC-LLDhi5jkQ6=cuM9z36xS4cGDGq=kgDyzNOg1dWSSP7LFSpQ@mail.gmail.com>
	<CAG4opy86DYekdODSVeCSFs2tDcG6bBSsKntf1RxAJmhxPAPRLA@mail.gmail.com>
	<AD6064B5-F6C3-4619-8782-61E66BB29042@recoil.org>
	<15511691.gMh3aqzvEv@agaric>
	<CAC-LLDg-UEFBu9EAE2EQTBXKAB+uyjhDokfhFbPwapA0t-Zrbw@mail.gmail.com>
To: Tim Cuthbertson <tim@gfxmonk.net>
X-Mailer: Apple Mail (2.2104)
Cc: Louis Gesbert <louis.gesbert@ocamlpro.com>, opam-devel@lists.ocaml.org,
	"mirageos-devel@lists.xenproject.org" <MirageOS-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] [opam-devel] Managing $PKG_CONFIG_PATH in opam
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On 15 Sep 2015, at 12:50, Tim Cuthbertson <tim@gfxmonk.net> wrote:
> 
> On Tue, Sep 15, 2015 at 12:08 PM, Louis Gesbert
> <louis.gesbert@ocamlpro.com> wrote:
>> 
>>> I think we could definitely use an answer to pkg-config management,
>>> but not one that's entwined into the core of OPAM itself. If something
>>> could be figured out that fits in with the compilers-as-packages
>>> feature so that packages could extend the environment, this would
>>> make cross-OS portability much easier.
>> 
>> I don't want to promise too much, as the design is mostly unwritten yet, but that's part of my plans.
>> Note that compiler descriptions already have an `env:` field:
>> 
>>    env: [[CAML_LD_LIBRARY_PATH = "%{lib}%/stublibs"]]
>> 
>> that propagates to the user environment (i.e. `opam config env`)
>> 
>> We also already have some specific operators to dictate environment variable updates, documented at http://opam.ocaml.org/doc/Manual.html#Environmentupdates
> 
> I'm not quite clear on what's done here and what remains - it sounds
> like this already works for compilers, and you're considering adding
> it for packages too? If that's true, then that sounds great, as then
> all packages providing .pc files could depend on some `pkgconfig`
> opampackage which defines:
> 
> env: [[PKG_CONFIG_PATH += "%{lib}%"]]
> 
> And hopefully some way of dealing with the default pkg-config, for
> when $PKG_CONFIG_PATH is not set. It sounds like := will be able to
> cover that, but the exact syntax is not obvious to me from those docs.

This sounds about right to me.  The feature is not fully documented
at the moment, but I seem to remember some syntax for setting the variable
if it wasn't set (in addition to the additive one).

The main blocker is probably the OPAM 1.2 -> 1.1 rewrite scripts, since
this almost certainly wasn't present in OPAM 1.1.  Yet another reason
to kick off the deprecation of the OPAM 1.1 repository...

-anil
_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Wed Sep 16 13:59:53 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 16 Sep 2015 13:59:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZcDFY-0000fv-0k; Wed, 16 Sep 2015 13:59:52 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <anil@recoil.org>) id 1ZcDFW-0000fI-68
	for MirageOS-devel@lists.xenproject.org; Wed, 16 Sep 2015 13:59:50 +0000
Received: from [85.158.137.68] by server-12.bemta-3.messagelabs.com id
	26/29-05269-5D579F55; Wed, 16 Sep 2015 13:59:49 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-11.tower-31.messagelabs.com!1442411988!12116691!1
X-Originating-IP: [5.153.225.51]
X-SpamReason: No, hits=0.2 required=7.0 tests=RCVD_ILLEGAL_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 31784 invoked from network); 16 Sep 2015 13:59:48 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-11.tower-31.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 16 Sep 2015 13:59:48 -0000
Received: from dhcp-172-17-168-110.eduroam.wireless.private.cam.ac.uk
	(global-1-27.nat.csx.cam.ac.uk [131.111.184.27])
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id fd875b38
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Wed, 16 Sep 2015 14:59:47 +0100 (BST)
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <CAC-LLDg-UEFBu9EAE2EQTBXKAB+uyjhDokfhFbPwapA0t-Zrbw@mail.gmail.com>
Date: Wed, 16 Sep 2015 14:59:46 +0100
Message-Id: <7077ADD0-CAE4-4EA1-A58B-59FD8400B07F@recoil.org>
References: <CAC-LLDhi5jkQ6=cuM9z36xS4cGDGq=kgDyzNOg1dWSSP7LFSpQ@mail.gmail.com>
	<CAG4opy86DYekdODSVeCSFs2tDcG6bBSsKntf1RxAJmhxPAPRLA@mail.gmail.com>
	<AD6064B5-F6C3-4619-8782-61E66BB29042@recoil.org>
	<15511691.gMh3aqzvEv@agaric>
	<CAC-LLDg-UEFBu9EAE2EQTBXKAB+uyjhDokfhFbPwapA0t-Zrbw@mail.gmail.com>
To: Tim Cuthbertson <tim@gfxmonk.net>
X-Mailer: Apple Mail (2.2104)
Cc: Louis Gesbert <louis.gesbert@ocamlpro.com>, opam-devel@lists.ocaml.org,
	"mirageos-devel@lists.xenproject.org" <MirageOS-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] [opam-devel] Managing $PKG_CONFIG_PATH in opam
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On 15 Sep 2015, at 12:50, Tim Cuthbertson <tim@gfxmonk.net> wrote:
> 
> On Tue, Sep 15, 2015 at 12:08 PM, Louis Gesbert
> <louis.gesbert@ocamlpro.com> wrote:
>> 
>>> I think we could definitely use an answer to pkg-config management,
>>> but not one that's entwined into the core of OPAM itself. If something
>>> could be figured out that fits in with the compilers-as-packages
>>> feature so that packages could extend the environment, this would
>>> make cross-OS portability much easier.
>> 
>> I don't want to promise too much, as the design is mostly unwritten yet, but that's part of my plans.
>> Note that compiler descriptions already have an `env:` field:
>> 
>>    env: [[CAML_LD_LIBRARY_PATH = "%{lib}%/stublibs"]]
>> 
>> that propagates to the user environment (i.e. `opam config env`)
>> 
>> We also already have some specific operators to dictate environment variable updates, documented at http://opam.ocaml.org/doc/Manual.html#Environmentupdates
> 
> I'm not quite clear on what's done here and what remains - it sounds
> like this already works for compilers, and you're considering adding
> it for packages too? If that's true, then that sounds great, as then
> all packages providing .pc files could depend on some `pkgconfig`
> opampackage which defines:
> 
> env: [[PKG_CONFIG_PATH += "%{lib}%"]]
> 
> And hopefully some way of dealing with the default pkg-config, for
> when $PKG_CONFIG_PATH is not set. It sounds like := will be able to
> cover that, but the exact syntax is not obvious to me from those docs.

This sounds about right to me.  The feature is not fully documented
at the moment, but I seem to remember some syntax for setting the variable
if it wasn't set (in addition to the additive one).

The main blocker is probably the OPAM 1.2 -> 1.1 rewrite scripts, since
this almost certainly wasn't present in OPAM 1.1.  Yet another reason
to kick off the deprecation of the OPAM 1.1 repository...

-anil
_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Wed Sep 16 14:10:01 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 16 Sep 2015 14:10:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZcDPL-0003R9-Gg; Wed, 16 Sep 2015 14:09:59 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <magnus@v0.no>) id 1ZcDPJ-0003Qj-NH
	for mirageos-devel@lists.xenproject.org; Wed, 16 Sep 2015 14:09:58 +0000
Received: from [193.109.254.147] by server-13.bemta-14.messagelabs.com id
	9A/B0-12371-53879F55; Wed, 16 Sep 2015 14:09:57 +0000
X-Env-Sender: magnus@v0.no
X-Msg-Ref: server-2.tower-27.messagelabs.com!1442412594!50295045!1
X-Originating-IP: [66.111.4.27]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
	VHJ1c3RlZCBJUDogNjYuMTExLjQuMjcgPT4gODQ2Mw==\n
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 17358 invoked from network); 16 Sep 2015 14:09:55 -0000
Received: from out3-smtp.messagingengine.com (HELO
	out3-smtp.messagingengine.com) (66.111.4.27)
	by server-2.tower-27.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 16 Sep 2015 14:09:55 -0000
Received: from compute5.internal (compute5.nyi.internal [10.202.2.45])
	by mailout.nyi.internal (Postfix) with ESMTP id ED0D720A79
	for <mirageos-devel@lists.xenproject.org>;
	Wed, 16 Sep 2015 10:09:53 -0400 (EDT)
Received: from web6 ([10.202.2.216])
	by compute5.internal (MEProxy); Wed, 16 Sep 2015 10:09:53 -0400
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=v0.no; h=
	content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to:x-sasl-enc
	:x-sasl-enc; s=mesmtp; bh=dYEQeSjApAPo5f8PtH67O5qVm2A=; b=RhHfut
	LJSYqXmJ/nwcOURGHFyRoPPycQsONXn/HQ2U8oeTXaZcS2hXT5Jz+3WPM74qiFlC
	pji/zNi7dZY4TgZssAG6U+cwhIJCiLwnGyZfdt5oXfEapzcqDpls6wSAFlMG2Csk
	lFOb63jXJv0vjwxUMyQ//IaPvBALjVNSaZmKM=
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=
	messagingengine.com; h=content-transfer-encoding:content-type
	:date:from:in-reply-to:message-id:mime-version:references
	:subject:to:x-sasl-enc:x-sasl-enc; s=smtpout; bh=dYEQeSjApAPo5f8
	PtH67O5qVm2A=; b=mS9dO4HTSafx14Qh6DJkEm9WFNU0tKMVd+B8t50HQeTyReh
	lRROh2IWvjeypo12MAN70eE768HkFF28an6+JW9SjgzMJpD9N7maY1yWrv3lby8l
	cUB9HbipbuVXLbiszy57/gGza31S6hcgbpOIBFkSxPTQu/1zRXrWoJb4+sms=
Received: by web6.nyi.internal (Postfix, from userid 99)
	id BBA1153E68; Wed, 16 Sep 2015 10:09:53 -0400 (EDT)
Message-Id: <1442412593.3470864.385213377.0F0BB02B@webmail.messagingengine.com>
X-Sasl-Enc: r9Hgj19Ye4uFwb9/hm7pg+wXcaf90gDz/8Q4TcyicCS8 1442412593
From: Magnus Skjegstad <magnus@v0.no>
To: mirageos-devel@lists.xenproject.org
MIME-Version: 1.0
X-Mailer: MessagingEngine.com Webmail Interface - ajax-746d2121
Date: Wed, 16 Sep 2015 16:09:53 +0200
In-Reply-To: <CAHARnm2S3hApFujRKMuEY6fnp1JBqMFLxyisppBa4LkFs6TU-A@mail.gmail.com>
References: <CAHARnm2S3hApFujRKMuEY6fnp1JBqMFLxyisppBa4LkFs6TU-A@mail.gmail.com>
Subject: Re: [MirageOS-devel] Setting up multiple records in Jitsu
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============7971886112673658381=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

This is a multi-part message in MIME format.

--===============7971886112673658381==
Content-Transfer-Encoding: 7bit
Content-Type: multipart/alternative; boundary="_----------=_144241259334708640";
 charset="utf-8"

This is a multi-part message in MIME format.

--_----------=_144241259334708640
Content-Transfer-Encoding: 7bit
Content-Type: text/plain

On Wed, 16 Sep 2015, at 04:42, Matthew Bajor wrote:
> Hi! I'm playing around with MirageOS + Jitsu and was having a hard
> time finding the syntax for resolving multiple records/unikernels. The
> config I'm using now to start it is: [...] I would like to add a few
> more (sub)domains onto it if possible (like a whole zonefile).

Hi!

If you want to serve unikernels from different domains, you can add a
new configuration string for the next unikernel as the second
parameter, e.g.

sudo /home/vagrant/.opam/4.01.0/bin/jitsu \
dns=service1.example.org,ip=10.100.199.41,...,nic=xenbr0 \
dns=service2.example.org,ip=10.100.199.42,...,nic=xenbr0 ...

You should also be able to add multiple records for a single
unikernel by specifying the dns= key multiple times. Unfortunately
this seems to be broken at the moment. I've created an issue to track
the bug+fix here [1].

When the bug is fixed the following should serve the unikernel ip from
three different domains (www1.example.org, www2.*, www3.*).

sudo /home/vagrant/.opam/4.01.0/bin/jitsu [...]\ dns=www1.example.org,\
dns=www2.example.org,\ dns=www3.example.org,\ ip=10.100.199.41,\ kernel=../myblog/_mirage/mir-
www.xen,\ memory=64000,\ name=www,\ nic=xenbr0

The command line interface currently doesn't support loading a zone-
file, but ocaml-dns (which Jitsu is using) is capabable of doing this
so it shouldn't be too hard to add this feature. I'm not very happy
with the way the configuration is passed to Jitsu at the moment, as
the number of parameters you have to pass per unikernel starts to
become quite long. It would probably be better to be able to import a
configuration file at this point, which could also make it easier to
add other DNS records. We could also add additional fields in the
Irmin database to support generic DNS records so we could import zone
files directly into the db. Patches that improve any of this are very
welcome :-)

1.https://github.com/mirage/jitsu/issues/25

Magnus


--_----------=_144241259334708640
Content-Transfer-Encoding: 7bit
Content-Type: text/html

<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body><div>On Wed, 16 Sep 2015, at 04:42, Matthew Bajor wrote:<br></div>
<blockquote type="cite"><div dir="ltr"><div>Hi!<br></div>
<div><div>I'm playing around with MirageOS + Jitsu and was having a hard time finding the syntax for resolving multiple records/unikernels. The config I'm using now to start it is:<br></div>
<div>[...]<br></div>
</div>
<div>I would like to add a few more (sub)domains onto it if possible (like a whole zonefile).<br></div>
</div>
</blockquote><div>&nbsp;</div>
<div>Hi!<br></div>
<div>&nbsp;</div>
<div>If you want to serve unikernels from different domains, you can add a new configuration string for the next unikernel as the second parameter, e.g.<br></div>
<div>&nbsp;</div>
<div><div>sudo /home/vagrant/.opam/4.01.0/bin/jitsu \<br></div>
<div>dns=service1.example.org,ip=10.100.199.41,...,nic=xenbr0 \<br></div>
<div>dns=service2.example.org,ip=10.100.199.42,...,nic=xenbr0 ...<br></div>
<div>&nbsp;</div>
<div><div>You should also be able to add multiple records for a single unikernel by specifying the dns= key multiple times. Unfortunately this seems to be broken at the moment. I've created an issue to track the bug+fix here [1].<br></div>
<div>&nbsp;</div>
<div>When the bug is fixed the following should serve the unikernel ip from three different domains (www1.example.org, www2.*, www3.*).<br></div>
<div>&nbsp;</div>
<div>sudo /home/vagrant/.opam/4.01.0/bin/jitsu [...]\<br></div>
<div>dns=www1.example.org,\<br></div>
<div>dns=www2.example.org,\<br></div>
<div>dns=www3.example.org,\<br></div>
<div>ip=10.100.199.41,\<br></div>
<div>kernel=../myblog/_mirage/mir-www.xen,\<br></div>
<div>memory=64000,\<br></div>
<div>name=www,\<br></div>
<div>nic=xenbr0<br></div>
</div>
<div>&nbsp;</div>
<div>The command line interface currently doesn't support loading a zone-file, but ocaml-dns (which Jitsu is using) is capabable of doing this so it shouldn't be too hard to add this feature. I'm not very happy with the way the configuration is passed to Jitsu at the moment, as the number of parameters you have to pass per unikernel starts to become quite long. It would probably be better to be able to import a configuration file at this point, which could also make it easier to add other DNS records. We could also add additional fields in the Irmin database to support generic DNS records so we could import zone files directly into the db. Patches that improve any of this are very welcome :-)<br></div>
<div>&nbsp;</div>
<div>1.&nbsp;https://github.com/mirage/jitsu/issues/25<br></div>
<div>&nbsp;</div>
<div>Magnus<br></div>
<div>&nbsp;</div>
</div>
<div>&nbsp;</div>
</body>
</html>

--_----------=_144241259334708640--



--===============7971886112673658381==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

--===============7971886112673658381==--



From mirageos-devel-bounces@lists.xenproject.org Wed Sep 16 14:10:01 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 16 Sep 2015 14:10:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZcDPL-0003R9-Gg; Wed, 16 Sep 2015 14:09:59 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <magnus@v0.no>) id 1ZcDPJ-0003Qj-NH
	for mirageos-devel@lists.xenproject.org; Wed, 16 Sep 2015 14:09:58 +0000
Received: from [193.109.254.147] by server-13.bemta-14.messagelabs.com id
	9A/B0-12371-53879F55; Wed, 16 Sep 2015 14:09:57 +0000
X-Env-Sender: magnus@v0.no
X-Msg-Ref: server-2.tower-27.messagelabs.com!1442412594!50295045!1
X-Originating-IP: [66.111.4.27]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
	VHJ1c3RlZCBJUDogNjYuMTExLjQuMjcgPT4gODQ2Mw==\n
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 17358 invoked from network); 16 Sep 2015 14:09:55 -0000
Received: from out3-smtp.messagingengine.com (HELO
	out3-smtp.messagingengine.com) (66.111.4.27)
	by server-2.tower-27.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 16 Sep 2015 14:09:55 -0000
Received: from compute5.internal (compute5.nyi.internal [10.202.2.45])
	by mailout.nyi.internal (Postfix) with ESMTP id ED0D720A79
	for <mirageos-devel@lists.xenproject.org>;
	Wed, 16 Sep 2015 10:09:53 -0400 (EDT)
Received: from web6 ([10.202.2.216])
	by compute5.internal (MEProxy); Wed, 16 Sep 2015 10:09:53 -0400
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=v0.no; h=
	content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to:x-sasl-enc
	:x-sasl-enc; s=mesmtp; bh=dYEQeSjApAPo5f8PtH67O5qVm2A=; b=RhHfut
	LJSYqXmJ/nwcOURGHFyRoPPycQsONXn/HQ2U8oeTXaZcS2hXT5Jz+3WPM74qiFlC
	pji/zNi7dZY4TgZssAG6U+cwhIJCiLwnGyZfdt5oXfEapzcqDpls6wSAFlMG2Csk
	lFOb63jXJv0vjwxUMyQ//IaPvBALjVNSaZmKM=
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=
	messagingengine.com; h=content-transfer-encoding:content-type
	:date:from:in-reply-to:message-id:mime-version:references
	:subject:to:x-sasl-enc:x-sasl-enc; s=smtpout; bh=dYEQeSjApAPo5f8
	PtH67O5qVm2A=; b=mS9dO4HTSafx14Qh6DJkEm9WFNU0tKMVd+B8t50HQeTyReh
	lRROh2IWvjeypo12MAN70eE768HkFF28an6+JW9SjgzMJpD9N7maY1yWrv3lby8l
	cUB9HbipbuVXLbiszy57/gGza31S6hcgbpOIBFkSxPTQu/1zRXrWoJb4+sms=
Received: by web6.nyi.internal (Postfix, from userid 99)
	id BBA1153E68; Wed, 16 Sep 2015 10:09:53 -0400 (EDT)
Message-Id: <1442412593.3470864.385213377.0F0BB02B@webmail.messagingengine.com>
X-Sasl-Enc: r9Hgj19Ye4uFwb9/hm7pg+wXcaf90gDz/8Q4TcyicCS8 1442412593
From: Magnus Skjegstad <magnus@v0.no>
To: mirageos-devel@lists.xenproject.org
MIME-Version: 1.0
X-Mailer: MessagingEngine.com Webmail Interface - ajax-746d2121
Date: Wed, 16 Sep 2015 16:09:53 +0200
In-Reply-To: <CAHARnm2S3hApFujRKMuEY6fnp1JBqMFLxyisppBa4LkFs6TU-A@mail.gmail.com>
References: <CAHARnm2S3hApFujRKMuEY6fnp1JBqMFLxyisppBa4LkFs6TU-A@mail.gmail.com>
Subject: Re: [MirageOS-devel] Setting up multiple records in Jitsu
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============7971886112673658381=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

This is a multi-part message in MIME format.

--===============7971886112673658381==
Content-Transfer-Encoding: 7bit
Content-Type: multipart/alternative; boundary="_----------=_144241259334708640";
 charset="utf-8"

This is a multi-part message in MIME format.

--_----------=_144241259334708640
Content-Transfer-Encoding: 7bit
Content-Type: text/plain

On Wed, 16 Sep 2015, at 04:42, Matthew Bajor wrote:
> Hi! I'm playing around with MirageOS + Jitsu and was having a hard
> time finding the syntax for resolving multiple records/unikernels. The
> config I'm using now to start it is: [...] I would like to add a few
> more (sub)domains onto it if possible (like a whole zonefile).

Hi!

If you want to serve unikernels from different domains, you can add a
new configuration string for the next unikernel as the second
parameter, e.g.

sudo /home/vagrant/.opam/4.01.0/bin/jitsu \
dns=service1.example.org,ip=10.100.199.41,...,nic=xenbr0 \
dns=service2.example.org,ip=10.100.199.42,...,nic=xenbr0 ...

You should also be able to add multiple records for a single
unikernel by specifying the dns= key multiple times. Unfortunately
this seems to be broken at the moment. I've created an issue to track
the bug+fix here [1].

When the bug is fixed the following should serve the unikernel ip from
three different domains (www1.example.org, www2.*, www3.*).

sudo /home/vagrant/.opam/4.01.0/bin/jitsu [...]\ dns=www1.example.org,\
dns=www2.example.org,\ dns=www3.example.org,\ ip=10.100.199.41,\ kernel=../myblog/_mirage/mir-
www.xen,\ memory=64000,\ name=www,\ nic=xenbr0

The command line interface currently doesn't support loading a zone-
file, but ocaml-dns (which Jitsu is using) is capabable of doing this
so it shouldn't be too hard to add this feature. I'm not very happy
with the way the configuration is passed to Jitsu at the moment, as
the number of parameters you have to pass per unikernel starts to
become quite long. It would probably be better to be able to import a
configuration file at this point, which could also make it easier to
add other DNS records. We could also add additional fields in the
Irmin database to support generic DNS records so we could import zone
files directly into the db. Patches that improve any of this are very
welcome :-)

1.https://github.com/mirage/jitsu/issues/25

Magnus


--_----------=_144241259334708640
Content-Transfer-Encoding: 7bit
Content-Type: text/html

<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body><div>On Wed, 16 Sep 2015, at 04:42, Matthew Bajor wrote:<br></div>
<blockquote type="cite"><div dir="ltr"><div>Hi!<br></div>
<div><div>I'm playing around with MirageOS + Jitsu and was having a hard time finding the syntax for resolving multiple records/unikernels. The config I'm using now to start it is:<br></div>
<div>[...]<br></div>
</div>
<div>I would like to add a few more (sub)domains onto it if possible (like a whole zonefile).<br></div>
</div>
</blockquote><div>&nbsp;</div>
<div>Hi!<br></div>
<div>&nbsp;</div>
<div>If you want to serve unikernels from different domains, you can add a new configuration string for the next unikernel as the second parameter, e.g.<br></div>
<div>&nbsp;</div>
<div><div>sudo /home/vagrant/.opam/4.01.0/bin/jitsu \<br></div>
<div>dns=service1.example.org,ip=10.100.199.41,...,nic=xenbr0 \<br></div>
<div>dns=service2.example.org,ip=10.100.199.42,...,nic=xenbr0 ...<br></div>
<div>&nbsp;</div>
<div><div>You should also be able to add multiple records for a single unikernel by specifying the dns= key multiple times. Unfortunately this seems to be broken at the moment. I've created an issue to track the bug+fix here [1].<br></div>
<div>&nbsp;</div>
<div>When the bug is fixed the following should serve the unikernel ip from three different domains (www1.example.org, www2.*, www3.*).<br></div>
<div>&nbsp;</div>
<div>sudo /home/vagrant/.opam/4.01.0/bin/jitsu [...]\<br></div>
<div>dns=www1.example.org,\<br></div>
<div>dns=www2.example.org,\<br></div>
<div>dns=www3.example.org,\<br></div>
<div>ip=10.100.199.41,\<br></div>
<div>kernel=../myblog/_mirage/mir-www.xen,\<br></div>
<div>memory=64000,\<br></div>
<div>name=www,\<br></div>
<div>nic=xenbr0<br></div>
</div>
<div>&nbsp;</div>
<div>The command line interface currently doesn't support loading a zone-file, but ocaml-dns (which Jitsu is using) is capabable of doing this so it shouldn't be too hard to add this feature. I'm not very happy with the way the configuration is passed to Jitsu at the moment, as the number of parameters you have to pass per unikernel starts to become quite long. It would probably be better to be able to import a configuration file at this point, which could also make it easier to add other DNS records. We could also add additional fields in the Irmin database to support generic DNS records so we could import zone files directly into the db. Patches that improve any of this are very welcome :-)<br></div>
<div>&nbsp;</div>
<div>1.&nbsp;https://github.com/mirage/jitsu/issues/25<br></div>
<div>&nbsp;</div>
<div>Magnus<br></div>
<div>&nbsp;</div>
</div>
<div>&nbsp;</div>
</body>
</html>

--_----------=_144241259334708640--



--===============7971886112673658381==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

--===============7971886112673658381==--



From mirageos-devel-bounces@lists.xenproject.org Wed Sep 16 14:17:13 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 16 Sep 2015 14:17:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZcDWK-0004l5-R1; Wed, 16 Sep 2015 14:17:12 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <hannes@mehnert.org>) id 1ZcDWJ-0004kM-AX
	for mirageos-devel@lists.xenproject.org; Wed, 16 Sep 2015 14:17:11 +0000
Received: from [85.158.137.68] by server-10.bemta-3.messagelabs.com id
	E4/54-23203-6E979F55; Wed, 16 Sep 2015 14:17:10 +0000
X-Env-Sender: hannes@mehnert.org
X-Msg-Ref: server-12.tower-31.messagelabs.com!1442413029!44864712!1
X-Originating-IP: [213.73.89.200]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 6844 invoked from network); 16 Sep 2015 14:17:09 -0000
Received: from mail.mehnert.org (HELO mail.mehnert.org) (213.73.89.200)
	by server-12.tower-31.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 16 Sep 2015 14:17:09 -0000
Received: from [192.168.0.7] (cpc30-cmbg15-2-0-cust247.5-4.cable.virginm.net
	[86.4.51.248])
	(using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits))
	(Client CN "hannes@mehnert.org",
	Issuer "mehnert root CA" (not verified))
	by mail.mehnert.org (Postfix) with ESMTPS id BFCEB1756
	for <mirageos-devel@lists.xenproject.org>;
	Wed, 16 Sep 2015 16:17:08 +0200 (CEST)
Message-ID: <55F979D4.1010606@mehnert.org>
Date: Wed, 16 Sep 2015 15:16:52 +0100
From: Hannes Mehnert <hannes@mehnert.org>
User-Agent: Mozilla/5.0 (X11; FreeBSD amd64;
	rv:31.0) Gecko/20100101 Thunderbird/31.7.0
MIME-Version: 1.0
To: mirageos-devel@lists.xenproject.org
References: <CACU=p6stC+LEcSubie2FwtugBvGKqeOobjY5dEv5ko9RcM+eAw@mail.gmail.com>
	<55F95409.60909@mehnert.org>
	<55B5B523-45C4-433C-B600-36FD20B36F8A@recoil.org>
In-Reply-To: <55B5B523-45C4-433C-B600-36FD20B36F8A@recoil.org>
OpenPGP: id=11B5464249B5BD858FFF6328BC896588DF7C28EE
Subject: Re: [MirageOS-devel] Type enforced security
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============0232961902364422199=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--===============0232961902364422199==
Content-Type: multipart/signed; micalg=pgp-sha384;
 protocol="application/pgp-signature";
 boundary="eaSNr5spHoKjAGGxGwkBNwJE4QTGknT38"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--eaSNr5spHoKjAGGxGwkBNwJE4QTGknT38
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On 09/16/2015 14:46, Anil Madhavapeddy wrote:
> Hannes, is there an example of how to run the nqsb-TLS trace checker
> command-line tool anywhere?

Not really (talking about https://github.com/hannesm/trace-checker).  I
'documented' the dependencies in travis.yml
(https://github.com/hannesm/trace-checker/blob/master/.travis.yml), namel=
y:
- tcpip which allows to set the random to predefined values from the
pcap trace, and exposing more internal functions
- tracing branches of tls and x509
- mirage-net-pcap dealing properly with captures from the loopback
interface (by adding some random ethernet header)

The pcap to trace-check is hardcoded in unikernel.ml.  Together with
david (on his laptop) we modified the output slightly and demanded a
user input between each event (turned out to be very useful for the
presentation at Usenix Security).


hannes


--eaSNr5spHoKjAGGxGwkBNwJE4QTGknT38
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQIcBAEBCQAGBQJV+XndAAoJELyJZYjffCjuZz8QAIB/YGVTs2Pb5yODI8O6fh+v
TJvx/vmPgZ/uJSWQxMaqh0TtRAtetcpwru3O4G3a0PB4gBh4ix5Siwtcoz5ilit7
h4Z0ili6ltMyYO1uvYbsMLhinyT4wXCQUw9ZyoLEPT+PSGd09inVvtJ7ctDRNooE
bioNdo6+EWi/EJryPQLFVvBC1QfxmOeBRuiNMSLhr+UxIFOggp/v/yUMCqrT/CqQ
5j4dR05OkCtK5y1npdHQ2ig28r/j9ql5uL9w2KC4+L2QQMd1zHpivivUE2BmtiFv
pHXhFtAgsboD+n/Ea2EKDA48ifQPMEvVqpFW0dvqeZMPVoTLNkSnOamGJy0UUK4k
cQVrGRcEjQ3fSID8bbLIRW9S1kwfKbtaJF5kvqbEjmlaWKTAzAI2fco1nV5XRQuu
VjAkPvxJQ6DZy5+S1k09z3dNoWNUeGrun/g0b8GEZYpEzY6OoqWtUf1nFrLnexVv
Il94hf/7iTuJ9R0DPPmpQUOkRZ+cwdXqyYvl0WlmJ3rEnvfKDEn6WPQMSazqlTS+
nafo9uaAgaj0bNgv9z5hfWMQa3kR8ZjjZCbMt/96Gts9xDzI3GDhstgXtwl9iMWR
kfFOBOWRO4/md8ByusL9oQR4Oa6iadH1JPgV2K4WWbgJpn+/bkFSta6u2gRujEwC
QCniGno99G4aextpGNIl
=Qfw5
-----END PGP SIGNATURE-----

--eaSNr5spHoKjAGGxGwkBNwJE4QTGknT38--


--===============0232961902364422199==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

--===============0232961902364422199==--


From mirageos-devel-bounces@lists.xenproject.org Wed Sep 16 14:17:13 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 16 Sep 2015 14:17:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZcDWK-0004l5-R1; Wed, 16 Sep 2015 14:17:12 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <hannes@mehnert.org>) id 1ZcDWJ-0004kM-AX
	for mirageos-devel@lists.xenproject.org; Wed, 16 Sep 2015 14:17:11 +0000
Received: from [85.158.137.68] by server-10.bemta-3.messagelabs.com id
	E4/54-23203-6E979F55; Wed, 16 Sep 2015 14:17:10 +0000
X-Env-Sender: hannes@mehnert.org
X-Msg-Ref: server-12.tower-31.messagelabs.com!1442413029!44864712!1
X-Originating-IP: [213.73.89.200]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 6844 invoked from network); 16 Sep 2015 14:17:09 -0000
Received: from mail.mehnert.org (HELO mail.mehnert.org) (213.73.89.200)
	by server-12.tower-31.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 16 Sep 2015 14:17:09 -0000
Received: from [192.168.0.7] (cpc30-cmbg15-2-0-cust247.5-4.cable.virginm.net
	[86.4.51.248])
	(using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits))
	(Client CN "hannes@mehnert.org",
	Issuer "mehnert root CA" (not verified))
	by mail.mehnert.org (Postfix) with ESMTPS id BFCEB1756
	for <mirageos-devel@lists.xenproject.org>;
	Wed, 16 Sep 2015 16:17:08 +0200 (CEST)
Message-ID: <55F979D4.1010606@mehnert.org>
Date: Wed, 16 Sep 2015 15:16:52 +0100
From: Hannes Mehnert <hannes@mehnert.org>
User-Agent: Mozilla/5.0 (X11; FreeBSD amd64;
	rv:31.0) Gecko/20100101 Thunderbird/31.7.0
MIME-Version: 1.0
To: mirageos-devel@lists.xenproject.org
References: <CACU=p6stC+LEcSubie2FwtugBvGKqeOobjY5dEv5ko9RcM+eAw@mail.gmail.com>
	<55F95409.60909@mehnert.org>
	<55B5B523-45C4-433C-B600-36FD20B36F8A@recoil.org>
In-Reply-To: <55B5B523-45C4-433C-B600-36FD20B36F8A@recoil.org>
OpenPGP: id=11B5464249B5BD858FFF6328BC896588DF7C28EE
Subject: Re: [MirageOS-devel] Type enforced security
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============0232961902364422199=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--===============0232961902364422199==
Content-Type: multipart/signed; micalg=pgp-sha384;
 protocol="application/pgp-signature";
 boundary="eaSNr5spHoKjAGGxGwkBNwJE4QTGknT38"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--eaSNr5spHoKjAGGxGwkBNwJE4QTGknT38
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On 09/16/2015 14:46, Anil Madhavapeddy wrote:
> Hannes, is there an example of how to run the nqsb-TLS trace checker
> command-line tool anywhere?

Not really (talking about https://github.com/hannesm/trace-checker).  I
'documented' the dependencies in travis.yml
(https://github.com/hannesm/trace-checker/blob/master/.travis.yml), namel=
y:
- tcpip which allows to set the random to predefined values from the
pcap trace, and exposing more internal functions
- tracing branches of tls and x509
- mirage-net-pcap dealing properly with captures from the loopback
interface (by adding some random ethernet header)

The pcap to trace-check is hardcoded in unikernel.ml.  Together with
david (on his laptop) we modified the output slightly and demanded a
user input between each event (turned out to be very useful for the
presentation at Usenix Security).


hannes


--eaSNr5spHoKjAGGxGwkBNwJE4QTGknT38
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQIcBAEBCQAGBQJV+XndAAoJELyJZYjffCjuZz8QAIB/YGVTs2Pb5yODI8O6fh+v
TJvx/vmPgZ/uJSWQxMaqh0TtRAtetcpwru3O4G3a0PB4gBh4ix5Siwtcoz5ilit7
h4Z0ili6ltMyYO1uvYbsMLhinyT4wXCQUw9ZyoLEPT+PSGd09inVvtJ7ctDRNooE
bioNdo6+EWi/EJryPQLFVvBC1QfxmOeBRuiNMSLhr+UxIFOggp/v/yUMCqrT/CqQ
5j4dR05OkCtK5y1npdHQ2ig28r/j9ql5uL9w2KC4+L2QQMd1zHpivivUE2BmtiFv
pHXhFtAgsboD+n/Ea2EKDA48ifQPMEvVqpFW0dvqeZMPVoTLNkSnOamGJy0UUK4k
cQVrGRcEjQ3fSID8bbLIRW9S1kwfKbtaJF5kvqbEjmlaWKTAzAI2fco1nV5XRQuu
VjAkPvxJQ6DZy5+S1k09z3dNoWNUeGrun/g0b8GEZYpEzY6OoqWtUf1nFrLnexVv
Il94hf/7iTuJ9R0DPPmpQUOkRZ+cwdXqyYvl0WlmJ3rEnvfKDEn6WPQMSazqlTS+
nafo9uaAgaj0bNgv9z5hfWMQa3kR8ZjjZCbMt/96Gts9xDzI3GDhstgXtwl9iMWR
kfFOBOWRO4/md8ByusL9oQR4Oa6iadH1JPgV2K4WWbgJpn+/bkFSta6u2gRujEwC
QCniGno99G4aextpGNIl
=Qfw5
-----END PGP SIGNATURE-----

--eaSNr5spHoKjAGGxGwkBNwJE4QTGknT38--


--===============0232961902364422199==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

--===============0232961902364422199==--


From mirageos-devel-bounces@lists.xenproject.org Thu Sep 17 08:33:17 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 17 Sep 2015 08:33:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZcUcu-0000Fk-14; Thu, 17 Sep 2015 08:33:08 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <jjl25@cam.ac.uk>) id 1ZcUct-0000Ff-5M
	for mirageos-devel@lists.xenproject.org; Thu, 17 Sep 2015 08:33:07 +0000
Received: from [85.158.139.211] by server-1.bemta-5.messagelabs.com id
	84/44-32615-2CA7AF55; Thu, 17 Sep 2015 08:33:06 +0000
X-Env-Sender: jjl25@cam.ac.uk
X-Msg-Ref: server-10.tower-206.messagelabs.com!1442478785!30484751!1
X-Originating-IP: [131.111.8.150]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
	VHJ1c3RlZCBJUDogMTMxLjExMS44LjE1MCA9PiAxNDk0MDU=\n
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 2804 invoked from network); 17 Sep 2015 08:33:05 -0000
Received: from ppsw-50.csi.cam.ac.uk (HELO ppsw-50.csi.cam.ac.uk)
	(131.111.8.150)
	by server-10.tower-206.messagelabs.com with DHE-RSA-AES256-SHA
	encrypted SMTP; 17 Sep 2015 08:33:05 -0000
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: http://www.cam.ac.uk/cs/email/scanner/
Received: from [185.25.64.249] (port=55447 helo=localhost)
	by ppsw-50.csi.cam.ac.uk (smtp.hermes.cam.ac.uk [131.111.8.158]:587)
	with esmtpsa (PLAIN:jjl25) (TLSv1.2:ECDHE-RSA-AES128-GCM-SHA256:128)
	id 1ZcUco-00034G-rV (Exim 4.86_36-e07b163)
	(return-path <jjl25@cam.ac.uk>); Thu, 17 Sep 2015 09:33:03 +0100
Date: Thu, 17 Sep 2015 09:32:14 +0100
From: Jon Ludlam <jjl25@cam.ac.uk>
To: David Scott <scott.dj@gmail.com>
Message-ID: <20150917083214.GA2902@humongous.uk.xensource.com>
References: <55D4A4E5.1000001@iki.fi>
	<D36D3F44-1D42-4DFD-9127-67F6982733B6@recoil.org>
	<9BB0F74A-57EB-4DC0-9DEB-A0031FCFC0C4@supercoders.com.au>
	<CAG_esB1wjSnsjza2mYT0ZytqcESv2C9KWbuPLKapR5q=9ttCOA@mail.gmail.com>
MIME-Version: 1.0
Content-Length: 3380
Content-Disposition: inline
In-Reply-To: <CAG_esB1wjSnsjza2mYT0ZytqcESv2C9KWbuPLKapR5q=9ttCOA@mail.gmail.com>
User-Agent: Mutt/1.5.23 (2014-03-12)
Cc: mirageos-devel <mirageos-devel@lists.xenproject.org>,
	Anil Madhavapeddy <anil@recoil.org>
Subject: Re: [MirageOS-devel] Fwd: Amazon EC2 support now in Rumprun
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

T24gRnJpLCBTZXAgMDQsIDIwMTUgYXQgMTI6MDg6MjhQTSArMDEwMCwgRGF2aWQgU2NvdHQgd3Jv
dGU6Cj4gT24gVGh1LCBTZXAgMywgMjAxNSBhdCAxMTowMiBQTSwgQW5kcmV3IFN0dWFydCA8Cj4g
YW5kcmV3LnN0dWFydEBzdXBlcmNvZGVycy5jb20uYXU+IHdyb3RlOgo+IAo+ID4KPiA+Cj4gPiA+
PiBGcm9tIHRoZSBSdW1wIGxpc3RzIC0tIGl0IGxvb2tzIGluY3JlYXNpbmdseSBjb21wbGV4IHRv
IGJvb3QgYQo+ID4gdW5pa2VybmVsIGluIEVDMiB3aGVuIHVzaW5nIG5vbi1TMyBzdG9yYWdlLgo+
ID4KPiA+IEnigJltIGdvaW5nIHRvIHNlZSBpZiBJIGNhbiBkbyBhbnl0aGluZyB0byBtYWtlIGJv
b3Rpbmcgb24gRUMyIGVhc2llci4KPiA+Cj4gPiBPbmUgaW1wb3J0YW50IHRoaW5nIGFib3V0IHRo
ZSBFQzIgYnVpbGQgZnVuY3Rpb25hbGl0eSB0aGF0IEFudHRpCj4gPiBpbXBsZW1lbnRlZCBpbnRv
IHJ1bXBydW7igKYuLiAgaGUgYXBwZWFycyB0byBoYXZlIGluY2x1ZGVkIGEgY29uZmlndXJhdGlv
bgo+ID4gZmlsZSBmb3IgdGhlIHJ1bXBrZXJuZWwgYW5kIGFsc28gaW5jbHVkZWQgaXNvOTY2MCBm
aWxlcyBpbiB0aGUgdm9sdW1lIHRoYXQKPiA+IGJvb3RzIHRoZSBrZXJuZWwuICBJdCBhcHBlYXJz
IHNvbWVob3cgdGhhdCB0aGUga2VybmVsIHBpY2tzIHVwIHRoaXMgY29uZmlnCj4gPiBmaWxlIGFu
ZCByYXRoZXIgY2xldmVybHkgYWxzbyBwaWNrcyB1cCBhbmQgbW91bnRzIHRoZSBpbmNsdWRlZCBp
c28gOTY2MAo+ID4gaW1hZ2VzLgo+ID4KPiA+IFRoaXMgaXMgYSByYXRoZXIgZWxlZ2FudCBzb2x1
dGlvbiB0byB0aGUgcHJvYmxlbSBvZiBpbmNsdWRpbmcgc3RhdGljIGZpbGVzCj4gPiB3aXRoIHRo
ZSB1bmlrZXJuZWwsIHNpZGVzdGVwcyB0aGUgbmVlZCB0byBpbmNsdWRlIHN0YXRpYyBmaWxlcyBp
biB0aGUKPiA+IHVuaWtlcm5lbCBhcyBwYXJ0IG9mIHRoZSBjb21wbGlhdGlvbiBwcm9jZXNzLCBh
bmQgeWV0IHBhY2thZ2VzIHRoZSB3aG9sZQo+ID4gdGhpbmcgaW50byBhIHNpbmdsZSBFQzIgRUJT
IGJvb3Qgdm9sdW1lLgo+ID4KPiA+IEkgZG9u4oCZdCBrbm93IGEgd2hvbGUgbG90IGFib3V0IE1p
cmFnZU9TIGJ1dCBJ4oCZbSB3b25kZXJpbmcgaWYgaXQgY2FuIGRvIHRoZQo+ID4gc2FtZSB0aGlu
Zz8gIElmIG5vdCwgaXQgaXMgd29ydGggY29uc2lkZXJpbmcgYWRkaW5nIHRvIE1pcmFnZU9TIGFz
IHRoZQo+ID4gcHJvYmxlbSBvZiBpbmNsdWRpbmcgc3RhdGljIGZpbGVzIHdpdGggdGhlIHVuaWtl
cm5lbCB3aXRob3V0IGNvbXBpbGluZyBhbmQKPiA+IHdpdGhvdXQgbmVlZCBmb3IgYW4gZXh0ZXJu
YWwgYmxvY2sgZGV2aWNlIGlzIGEgc2lnbmlmaWNhbnQgb25lLgo+IAo+IAo+IFRoYXQgZG9lcyBz
b3VuZCBsaWtlIGFuIGludGVyZXN0aW5nIGlkZWEuCj4gCj4gCj4gPiAgIEFudHRpIHNlZW1zIHRv
IGhhdmUgc29sdmVkIGl0IGhlcmUgYXQgbGVhc3QgZm9yIHVzZSBjYXNlcyB0aGF0IHdvcmsgd2l0
aAo+ID4gYW4gSVNPIDk2NjAgZmlsZSBzeXN0ZW0uIEkgbWlnaHQgYmUgd3JvbmcgY2F1c2UgSSBo
YXZlbuKAmXQgcGxheWVkIHdpdGggaXQKPiA+IHRvbyBtdWNoIHlldCBidXQgdGhhdOKAmXMgbXkg
Y3VycmVudCB1bmRlcnN0YW5kaW5nLgo+ID4KPiA+IEFueW9uZSBhdCBNaXJhZ2VPUyBrbm93IGlm
IHlvdXIgc3lzdGVtIGNhbiBkbyB0aGUgc2FtZSB0aGluZz8KPiA+Cj4gCj4gQXQgdGhlIG1vbWVu
dCBNaXJhZ2VPUyBkb2Vzbid0IGhhdmUgSVNPIDk2NjAgc3VwcG9ydCAtLSB3ZSdkIGhhdmUgdG8g
d3JpdGUKPiBhIGxpdHRsZSBsaWJyYXJ5IGZvciB0aGF0LiBJdCBtaWdodCBub3QgYmUgdG9vIGJh
ZCB0aG91Z2guCj4KClRoaXMgc291bmRlZCBxdWl0ZSBpbnRlcmVzdGluZywgc28gSSd2ZSBtYWRl
IGEgc3RhcnQuIE9idmlvdXNseSB2ZXJ5IGVhcmx5CmRheXMsIGJ1dCB0aGUgY29kZSBzbyBmYXIg
aXMgaGVyZTogaHR0cHM6Ly9naXRodWIuY29tL2pvbmx1ZGxhbS9vY2FtbC1pc285NjYwCgpBbmRy
ZXc6IGRvIHlvdSBoYXZlIHNvbWUgcG9pbnRlcnMgdG8gdGhlIHJ1bXBydW4gY29kZSAvIGV4YW1w
bGVzIHNvIEkga25vdwp3aGF0IG5lZWRzIGltcGxlbWVudGluZz8KCkNoZWVycywKCkpvbgoKPiBD
aGVlcnMsCj4gRGF2ZSBTY290dAoKPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fXwo+IE1pcmFnZU9TLWRldmVsIG1haWxpbmcgbGlzdAo+IE1pcmFnZU9TLWRl
dmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCj4gaHR0cDovL2xpc3RzLnhlbnByb2plY3Qub3JnL2Nn
aS1iaW4vbWFpbG1hbi9saXN0aW5mby9taXJhZ2Vvcy1kZXZlbAoKCl9fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk1pcmFnZU9TLWRldmVsIG1haWxpbmcgbGlz
dApNaXJhZ2VPUy1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwOi8vbGlzdHMueGVucHJv
amVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL21pcmFnZW9zLWRldmVsCg==

From mirageos-devel-bounces@lists.xenproject.org Thu Sep 17 08:33:17 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 17 Sep 2015 08:33:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZcUcu-0000Fk-14; Thu, 17 Sep 2015 08:33:08 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <jjl25@cam.ac.uk>) id 1ZcUct-0000Ff-5M
	for mirageos-devel@lists.xenproject.org; Thu, 17 Sep 2015 08:33:07 +0000
Received: from [85.158.139.211] by server-1.bemta-5.messagelabs.com id
	84/44-32615-2CA7AF55; Thu, 17 Sep 2015 08:33:06 +0000
X-Env-Sender: jjl25@cam.ac.uk
X-Msg-Ref: server-10.tower-206.messagelabs.com!1442478785!30484751!1
X-Originating-IP: [131.111.8.150]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
	VHJ1c3RlZCBJUDogMTMxLjExMS44LjE1MCA9PiAxNDk0MDU=\n
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 2804 invoked from network); 17 Sep 2015 08:33:05 -0000
Received: from ppsw-50.csi.cam.ac.uk (HELO ppsw-50.csi.cam.ac.uk)
	(131.111.8.150)
	by server-10.tower-206.messagelabs.com with DHE-RSA-AES256-SHA
	encrypted SMTP; 17 Sep 2015 08:33:05 -0000
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: http://www.cam.ac.uk/cs/email/scanner/
Received: from [185.25.64.249] (port=55447 helo=localhost)
	by ppsw-50.csi.cam.ac.uk (smtp.hermes.cam.ac.uk [131.111.8.158]:587)
	with esmtpsa (PLAIN:jjl25) (TLSv1.2:ECDHE-RSA-AES128-GCM-SHA256:128)
	id 1ZcUco-00034G-rV (Exim 4.86_36-e07b163)
	(return-path <jjl25@cam.ac.uk>); Thu, 17 Sep 2015 09:33:03 +0100
Date: Thu, 17 Sep 2015 09:32:14 +0100
From: Jon Ludlam <jjl25@cam.ac.uk>
To: David Scott <scott.dj@gmail.com>
Message-ID: <20150917083214.GA2902@humongous.uk.xensource.com>
References: <55D4A4E5.1000001@iki.fi>
	<D36D3F44-1D42-4DFD-9127-67F6982733B6@recoil.org>
	<9BB0F74A-57EB-4DC0-9DEB-A0031FCFC0C4@supercoders.com.au>
	<CAG_esB1wjSnsjza2mYT0ZytqcESv2C9KWbuPLKapR5q=9ttCOA@mail.gmail.com>
MIME-Version: 1.0
Content-Length: 3380
Content-Disposition: inline
In-Reply-To: <CAG_esB1wjSnsjza2mYT0ZytqcESv2C9KWbuPLKapR5q=9ttCOA@mail.gmail.com>
User-Agent: Mutt/1.5.23 (2014-03-12)
Cc: mirageos-devel <mirageos-devel@lists.xenproject.org>,
	Anil Madhavapeddy <anil@recoil.org>
Subject: Re: [MirageOS-devel] Fwd: Amazon EC2 support now in Rumprun
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

T24gRnJpLCBTZXAgMDQsIDIwMTUgYXQgMTI6MDg6MjhQTSArMDEwMCwgRGF2aWQgU2NvdHQgd3Jv
dGU6Cj4gT24gVGh1LCBTZXAgMywgMjAxNSBhdCAxMTowMiBQTSwgQW5kcmV3IFN0dWFydCA8Cj4g
YW5kcmV3LnN0dWFydEBzdXBlcmNvZGVycy5jb20uYXU+IHdyb3RlOgo+IAo+ID4KPiA+Cj4gPiA+
PiBGcm9tIHRoZSBSdW1wIGxpc3RzIC0tIGl0IGxvb2tzIGluY3JlYXNpbmdseSBjb21wbGV4IHRv
IGJvb3QgYQo+ID4gdW5pa2VybmVsIGluIEVDMiB3aGVuIHVzaW5nIG5vbi1TMyBzdG9yYWdlLgo+
ID4KPiA+IEnigJltIGdvaW5nIHRvIHNlZSBpZiBJIGNhbiBkbyBhbnl0aGluZyB0byBtYWtlIGJv
b3Rpbmcgb24gRUMyIGVhc2llci4KPiA+Cj4gPiBPbmUgaW1wb3J0YW50IHRoaW5nIGFib3V0IHRo
ZSBFQzIgYnVpbGQgZnVuY3Rpb25hbGl0eSB0aGF0IEFudHRpCj4gPiBpbXBsZW1lbnRlZCBpbnRv
IHJ1bXBydW7igKYuLiAgaGUgYXBwZWFycyB0byBoYXZlIGluY2x1ZGVkIGEgY29uZmlndXJhdGlv
bgo+ID4gZmlsZSBmb3IgdGhlIHJ1bXBrZXJuZWwgYW5kIGFsc28gaW5jbHVkZWQgaXNvOTY2MCBm
aWxlcyBpbiB0aGUgdm9sdW1lIHRoYXQKPiA+IGJvb3RzIHRoZSBrZXJuZWwuICBJdCBhcHBlYXJz
IHNvbWVob3cgdGhhdCB0aGUga2VybmVsIHBpY2tzIHVwIHRoaXMgY29uZmlnCj4gPiBmaWxlIGFu
ZCByYXRoZXIgY2xldmVybHkgYWxzbyBwaWNrcyB1cCBhbmQgbW91bnRzIHRoZSBpbmNsdWRlZCBp
c28gOTY2MAo+ID4gaW1hZ2VzLgo+ID4KPiA+IFRoaXMgaXMgYSByYXRoZXIgZWxlZ2FudCBzb2x1
dGlvbiB0byB0aGUgcHJvYmxlbSBvZiBpbmNsdWRpbmcgc3RhdGljIGZpbGVzCj4gPiB3aXRoIHRo
ZSB1bmlrZXJuZWwsIHNpZGVzdGVwcyB0aGUgbmVlZCB0byBpbmNsdWRlIHN0YXRpYyBmaWxlcyBp
biB0aGUKPiA+IHVuaWtlcm5lbCBhcyBwYXJ0IG9mIHRoZSBjb21wbGlhdGlvbiBwcm9jZXNzLCBh
bmQgeWV0IHBhY2thZ2VzIHRoZSB3aG9sZQo+ID4gdGhpbmcgaW50byBhIHNpbmdsZSBFQzIgRUJT
IGJvb3Qgdm9sdW1lLgo+ID4KPiA+IEkgZG9u4oCZdCBrbm93IGEgd2hvbGUgbG90IGFib3V0IE1p
cmFnZU9TIGJ1dCBJ4oCZbSB3b25kZXJpbmcgaWYgaXQgY2FuIGRvIHRoZQo+ID4gc2FtZSB0aGlu
Zz8gIElmIG5vdCwgaXQgaXMgd29ydGggY29uc2lkZXJpbmcgYWRkaW5nIHRvIE1pcmFnZU9TIGFz
IHRoZQo+ID4gcHJvYmxlbSBvZiBpbmNsdWRpbmcgc3RhdGljIGZpbGVzIHdpdGggdGhlIHVuaWtl
cm5lbCB3aXRob3V0IGNvbXBpbGluZyBhbmQKPiA+IHdpdGhvdXQgbmVlZCBmb3IgYW4gZXh0ZXJu
YWwgYmxvY2sgZGV2aWNlIGlzIGEgc2lnbmlmaWNhbnQgb25lLgo+IAo+IAo+IFRoYXQgZG9lcyBz
b3VuZCBsaWtlIGFuIGludGVyZXN0aW5nIGlkZWEuCj4gCj4gCj4gPiAgIEFudHRpIHNlZW1zIHRv
IGhhdmUgc29sdmVkIGl0IGhlcmUgYXQgbGVhc3QgZm9yIHVzZSBjYXNlcyB0aGF0IHdvcmsgd2l0
aAo+ID4gYW4gSVNPIDk2NjAgZmlsZSBzeXN0ZW0uIEkgbWlnaHQgYmUgd3JvbmcgY2F1c2UgSSBo
YXZlbuKAmXQgcGxheWVkIHdpdGggaXQKPiA+IHRvbyBtdWNoIHlldCBidXQgdGhhdOKAmXMgbXkg
Y3VycmVudCB1bmRlcnN0YW5kaW5nLgo+ID4KPiA+IEFueW9uZSBhdCBNaXJhZ2VPUyBrbm93IGlm
IHlvdXIgc3lzdGVtIGNhbiBkbyB0aGUgc2FtZSB0aGluZz8KPiA+Cj4gCj4gQXQgdGhlIG1vbWVu
dCBNaXJhZ2VPUyBkb2Vzbid0IGhhdmUgSVNPIDk2NjAgc3VwcG9ydCAtLSB3ZSdkIGhhdmUgdG8g
d3JpdGUKPiBhIGxpdHRsZSBsaWJyYXJ5IGZvciB0aGF0LiBJdCBtaWdodCBub3QgYmUgdG9vIGJh
ZCB0aG91Z2guCj4KClRoaXMgc291bmRlZCBxdWl0ZSBpbnRlcmVzdGluZywgc28gSSd2ZSBtYWRl
IGEgc3RhcnQuIE9idmlvdXNseSB2ZXJ5IGVhcmx5CmRheXMsIGJ1dCB0aGUgY29kZSBzbyBmYXIg
aXMgaGVyZTogaHR0cHM6Ly9naXRodWIuY29tL2pvbmx1ZGxhbS9vY2FtbC1pc285NjYwCgpBbmRy
ZXc6IGRvIHlvdSBoYXZlIHNvbWUgcG9pbnRlcnMgdG8gdGhlIHJ1bXBydW4gY29kZSAvIGV4YW1w
bGVzIHNvIEkga25vdwp3aGF0IG5lZWRzIGltcGxlbWVudGluZz8KCkNoZWVycywKCkpvbgoKPiBD
aGVlcnMsCj4gRGF2ZSBTY290dAoKPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fXwo+IE1pcmFnZU9TLWRldmVsIG1haWxpbmcgbGlzdAo+IE1pcmFnZU9TLWRl
dmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCj4gaHR0cDovL2xpc3RzLnhlbnByb2plY3Qub3JnL2Nn
aS1iaW4vbWFpbG1hbi9saXN0aW5mby9taXJhZ2Vvcy1kZXZlbAoKCl9fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk1pcmFnZU9TLWRldmVsIG1haWxpbmcgbGlz
dApNaXJhZ2VPUy1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwOi8vbGlzdHMueGVucHJv
amVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL21pcmFnZW9zLWRldmVsCg==

From mirageos-devel-bounces@lists.xenproject.org Thu Sep 17 09:38:46 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 17 Sep 2015 09:38:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZcVeJ-0001TK-RF; Thu, 17 Sep 2015 09:38:39 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <andrew.stuart@supercoders.com.au>)
	id 1ZcVeI-0001Se-4i
	for mirageos-devel@lists.xenproject.org; Thu, 17 Sep 2015 09:38:38 +0000
Received: from [85.158.139.211] by server-12.bemta-5.messagelabs.com id
	80/44-19220-D1A8AF55; Thu, 17 Sep 2015 09:38:37 +0000
X-Env-Sender: andrew.stuart@supercoders.com.au
X-Msg-Ref: server-8.tower-206.messagelabs.com!1442482716!35778723!1
X-Originating-IP: [54.215.13.78]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 13691 invoked from network); 17 Sep 2015 09:38:36 -0000
Received: from mail.supercoders.com.au (HELO mail.supercoders.com.au)
	(54.215.13.78) by server-8.tower-206.messagelabs.com with SMTP;
	17 Sep 2015 09:38:36 -0000
Received: from [192.168.1.100] (CPE-124-189-108-248.gziz1.win.bigpond.net.au
	[124.189.108.248])
	by mail.supercoders.com.au (Postfix) with ESMTPS id 1148660594;
	Thu, 17 Sep 2015 09:38:34 +0000 (UTC)
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\))
From: Andrew Stuart <andrew.stuart@supercoders.com.au>
In-Reply-To: <20150917083214.GA2902@humongous.uk.xensource.com>
Date: Thu, 17 Sep 2015 19:38:31 +1000
Message-Id: <7090AD59-6E62-408C-8918-6E9BB8A0D160@supercoders.com.au>
References: <55D4A4E5.1000001@iki.fi>
	<D36D3F44-1D42-4DFD-9127-67F6982733B6@recoil.org>
	<9BB0F74A-57EB-4DC0-9DEB-A0031FCFC0C4@supercoders.com.au>
	<CAG_esB1wjSnsjza2mYT0ZytqcESv2C9KWbuPLKapR5q=9ttCOA@mail.gmail.com>
	<20150917083214.GA2902@humongous.uk.xensource.com>
To: Jon Ludlam <jjl25@cam.ac.uk>
X-Mailer: Apple Mail (2.2104)
Cc: Antti Kantee <pooka@iki.fi>,
	mirageos-devel <mirageos-devel@lists.xenproject.org>,
	Anil Madhavapeddy <anil@recoil.org>
Subject: Re: [MirageOS-devel] Fwd: Amazon EC2 support now in Rumprun
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

ClRoaXMgc291bmRlZCBxdWl0ZSBpbnRlcmVzdGluZywgc28gSSd2ZSBtYWRlIGEgc3RhcnQuIE9i
dmlvdXNseSB2ZXJ5IGVhcmx5CmRheXMsIGJ1dCB0aGUgY29kZSBzbyBmYXIgaXMgaGVyZTogaHR0
cHM6Ly9naXRodWIuY29tL2pvbmx1ZGxhbS9vY2FtbC1pc285NjYwCgo+PiBBbmRyZXc6IGRvIHlv
dSBoYXZlIHNvbWUgcG9pbnRlcnMgdG8gdGhlIHJ1bXBydW4gY29kZSAvIGV4YW1wbGVzIHNvIEkg
a25vdyB3aGF0IG5lZWRzIGltcGxlbWVudGluZz8KCk5vIEkgZG9uJ3QsIGJ1dCBBbnR0aSBpcyB0
aGUgcmlnaHQgcGVyc29uIHRvIGNvbW1lbnQuCgpNeSB1bmRlcnN0YW5kaW5nIGlzIHRoYXQgdGhl
IHJ1bXAga2VybmVsIGNvbWVzIHVwIGFuZCB0aGVuIG1vdW50cyB0aGUgYmxvY2sgZGV2aWNlIHRo
YXQgRUMyIGxvYWRlZCBpdCBmcm9tIHdoaWNoIGlzIHByb2JhYmx5IHNkYTEveHZkYTEuCgpUaGUg
cnVtcCBrZXJuZWwgaGFzIGEgY29uZmlndXJhdGlvbiBmaWxlIGpzb24uY2ZnIHdoaWNoIHNwZWNp
ZmllcyB0aGUgYmxvY2sgZGV2aWNlIHRvIG1vdW50IGFuZCB3aGVyZSB0byBtb3VudCB0aGVtLiAg
SSB0aGluayBpdCBhbHNvIGFsbG93cyBzcGVjaWZpY2F0aW9uIG9mIGlzbzk2NjAgZmlsZXMgKGNy
ZWF0ZWQgYnkgZ2VuaXNvaW1hZ2Ugd2l0aCB0aGUgLXIgcGFyYW1ldGVyKSB3aGljaCBhcmUgdGhl
biBsb2FkZWQgZnJvbSB0aGUgbW91bnRlZCBibG9jayBkZXZpY2VzIGFuZCBtb3VudGVkIGJ5IHRo
ZSBydW1wIGtlcm5lbCBhcyBjZHJvbSBkZXZpY2VzLgoKU29tZXRoaW5nIGxpa2UgdGhhdC4gIEFu
dHRpIG1pZ2h0IGJlIGFibGUgdG8gZGVzY3JpYmUgd2hhdOKAmXMgYWN0dWFsbHkgZ29pbmcgb24g
YXMgSeKAmW0ganVzdCBkZXNjcmliaW5nIHdoYXQgSSB0aGluayBpcyBnb2luZyBvbi4KClRoZSBn
cmVhdCB0aGluZyBhYm91dCB0aGlzIGlzIHRoYXQgc3RvcmluZyB0aGUgdW5pa2VybmVsIGFuZCB0
aGUgaXNvOTY2MCBpbWFnZSBvbiB0aGUgcm9vdCBrZXJuZWwgdGhhdCBFQzIgYm9vdHMgZnJvbSBt
ZWFucyBpdCBpcyBwb3NzaWJsZSB0byBoYXZlIGEgc2luZ2xlIEVCUyB0byBib290IGZyb20gaW4g
RUMyLCBhbmQgeWV0IGJlIGFibGUgdG8gY2hhbmdlIHRoZSBmaWxlcyBpbmNsdWRlZCwgd2l0aG91
dCBhIHJlY29tcGlsYXRpb24gb2YgdGhlIHVuaWtlcm5lbCwgd2hpY2ggaXMgd2hhdCBpcyB0eXBp
Y2FsbHkgcmVxdWlyZWQgaWYgZmlsZXMgYXJlIGJlaW5nIHN0b3JlZCBpbiB0aGUgdW5pa2VybmVs
IGV4ZWN1dGFibGUgKGEgdGVjaG5pcXVlIHdoaWNoIGFsc28gaGFzIGdyZWF0IHV0aWxpdHkgb2Yg
Y291cnNlLCBidXQgZm9yIGRpZmZlcmVudCB0aGluZ3MsIGFuZCBzb21ldGhpbmcgdGhhdCB0aGUg
cnVtcCBrZXJuZWwgY2Fu4oCZdCB5ZXQgZG8gYnV0IGlzIG9uIHRoZSB0b2RvIGxpc3Qgb25jZSBh
biBlZmZlY3RpdmUgYXBwcm9hY2ggaGFzIGJlZW4gd29ya2VkIG91dCkuCgphcwoKCl9fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk1pcmFnZU9TLWRldmVsIG1h
aWxpbmcgbGlzdApNaXJhZ2VPUy1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwOi8vbGlz
dHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL21pcmFnZW9zLWRldmVs
Cg==

From mirageos-devel-bounces@lists.xenproject.org Thu Sep 17 09:38:46 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 17 Sep 2015 09:38:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZcVeJ-0001TK-RF; Thu, 17 Sep 2015 09:38:39 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <andrew.stuart@supercoders.com.au>)
	id 1ZcVeI-0001Se-4i
	for mirageos-devel@lists.xenproject.org; Thu, 17 Sep 2015 09:38:38 +0000
Received: from [85.158.139.211] by server-12.bemta-5.messagelabs.com id
	80/44-19220-D1A8AF55; Thu, 17 Sep 2015 09:38:37 +0000
X-Env-Sender: andrew.stuart@supercoders.com.au
X-Msg-Ref: server-8.tower-206.messagelabs.com!1442482716!35778723!1
X-Originating-IP: [54.215.13.78]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 13691 invoked from network); 17 Sep 2015 09:38:36 -0000
Received: from mail.supercoders.com.au (HELO mail.supercoders.com.au)
	(54.215.13.78) by server-8.tower-206.messagelabs.com with SMTP;
	17 Sep 2015 09:38:36 -0000
Received: from [192.168.1.100] (CPE-124-189-108-248.gziz1.win.bigpond.net.au
	[124.189.108.248])
	by mail.supercoders.com.au (Postfix) with ESMTPS id 1148660594;
	Thu, 17 Sep 2015 09:38:34 +0000 (UTC)
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\))
From: Andrew Stuart <andrew.stuart@supercoders.com.au>
In-Reply-To: <20150917083214.GA2902@humongous.uk.xensource.com>
Date: Thu, 17 Sep 2015 19:38:31 +1000
Message-Id: <7090AD59-6E62-408C-8918-6E9BB8A0D160@supercoders.com.au>
References: <55D4A4E5.1000001@iki.fi>
	<D36D3F44-1D42-4DFD-9127-67F6982733B6@recoil.org>
	<9BB0F74A-57EB-4DC0-9DEB-A0031FCFC0C4@supercoders.com.au>
	<CAG_esB1wjSnsjza2mYT0ZytqcESv2C9KWbuPLKapR5q=9ttCOA@mail.gmail.com>
	<20150917083214.GA2902@humongous.uk.xensource.com>
To: Jon Ludlam <jjl25@cam.ac.uk>
X-Mailer: Apple Mail (2.2104)
Cc: Antti Kantee <pooka@iki.fi>,
	mirageos-devel <mirageos-devel@lists.xenproject.org>,
	Anil Madhavapeddy <anil@recoil.org>
Subject: Re: [MirageOS-devel] Fwd: Amazon EC2 support now in Rumprun
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

ClRoaXMgc291bmRlZCBxdWl0ZSBpbnRlcmVzdGluZywgc28gSSd2ZSBtYWRlIGEgc3RhcnQuIE9i
dmlvdXNseSB2ZXJ5IGVhcmx5CmRheXMsIGJ1dCB0aGUgY29kZSBzbyBmYXIgaXMgaGVyZTogaHR0
cHM6Ly9naXRodWIuY29tL2pvbmx1ZGxhbS9vY2FtbC1pc285NjYwCgo+PiBBbmRyZXc6IGRvIHlv
dSBoYXZlIHNvbWUgcG9pbnRlcnMgdG8gdGhlIHJ1bXBydW4gY29kZSAvIGV4YW1wbGVzIHNvIEkg
a25vdyB3aGF0IG5lZWRzIGltcGxlbWVudGluZz8KCk5vIEkgZG9uJ3QsIGJ1dCBBbnR0aSBpcyB0
aGUgcmlnaHQgcGVyc29uIHRvIGNvbW1lbnQuCgpNeSB1bmRlcnN0YW5kaW5nIGlzIHRoYXQgdGhl
IHJ1bXAga2VybmVsIGNvbWVzIHVwIGFuZCB0aGVuIG1vdW50cyB0aGUgYmxvY2sgZGV2aWNlIHRo
YXQgRUMyIGxvYWRlZCBpdCBmcm9tIHdoaWNoIGlzIHByb2JhYmx5IHNkYTEveHZkYTEuCgpUaGUg
cnVtcCBrZXJuZWwgaGFzIGEgY29uZmlndXJhdGlvbiBmaWxlIGpzb24uY2ZnIHdoaWNoIHNwZWNp
ZmllcyB0aGUgYmxvY2sgZGV2aWNlIHRvIG1vdW50IGFuZCB3aGVyZSB0byBtb3VudCB0aGVtLiAg
SSB0aGluayBpdCBhbHNvIGFsbG93cyBzcGVjaWZpY2F0aW9uIG9mIGlzbzk2NjAgZmlsZXMgKGNy
ZWF0ZWQgYnkgZ2VuaXNvaW1hZ2Ugd2l0aCB0aGUgLXIgcGFyYW1ldGVyKSB3aGljaCBhcmUgdGhl
biBsb2FkZWQgZnJvbSB0aGUgbW91bnRlZCBibG9jayBkZXZpY2VzIGFuZCBtb3VudGVkIGJ5IHRo
ZSBydW1wIGtlcm5lbCBhcyBjZHJvbSBkZXZpY2VzLgoKU29tZXRoaW5nIGxpa2UgdGhhdC4gIEFu
dHRpIG1pZ2h0IGJlIGFibGUgdG8gZGVzY3JpYmUgd2hhdOKAmXMgYWN0dWFsbHkgZ29pbmcgb24g
YXMgSeKAmW0ganVzdCBkZXNjcmliaW5nIHdoYXQgSSB0aGluayBpcyBnb2luZyBvbi4KClRoZSBn
cmVhdCB0aGluZyBhYm91dCB0aGlzIGlzIHRoYXQgc3RvcmluZyB0aGUgdW5pa2VybmVsIGFuZCB0
aGUgaXNvOTY2MCBpbWFnZSBvbiB0aGUgcm9vdCBrZXJuZWwgdGhhdCBFQzIgYm9vdHMgZnJvbSBt
ZWFucyBpdCBpcyBwb3NzaWJsZSB0byBoYXZlIGEgc2luZ2xlIEVCUyB0byBib290IGZyb20gaW4g
RUMyLCBhbmQgeWV0IGJlIGFibGUgdG8gY2hhbmdlIHRoZSBmaWxlcyBpbmNsdWRlZCwgd2l0aG91
dCBhIHJlY29tcGlsYXRpb24gb2YgdGhlIHVuaWtlcm5lbCwgd2hpY2ggaXMgd2hhdCBpcyB0eXBp
Y2FsbHkgcmVxdWlyZWQgaWYgZmlsZXMgYXJlIGJlaW5nIHN0b3JlZCBpbiB0aGUgdW5pa2VybmVs
IGV4ZWN1dGFibGUgKGEgdGVjaG5pcXVlIHdoaWNoIGFsc28gaGFzIGdyZWF0IHV0aWxpdHkgb2Yg
Y291cnNlLCBidXQgZm9yIGRpZmZlcmVudCB0aGluZ3MsIGFuZCBzb21ldGhpbmcgdGhhdCB0aGUg
cnVtcCBrZXJuZWwgY2Fu4oCZdCB5ZXQgZG8gYnV0IGlzIG9uIHRoZSB0b2RvIGxpc3Qgb25jZSBh
biBlZmZlY3RpdmUgYXBwcm9hY2ggaGFzIGJlZW4gd29ya2VkIG91dCkuCgphcwoKCl9fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk1pcmFnZU9TLWRldmVsIG1h
aWxpbmcgbGlzdApNaXJhZ2VPUy1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwOi8vbGlz
dHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL21pcmFnZW9zLWRldmVs
Cg==

From mirageos-devel-bounces@lists.xenproject.org Thu Sep 17 11:33:45 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 17 Sep 2015 11:33:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZcXRY-0000ri-2d; Thu, 17 Sep 2015 11:33:36 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <anil@recoil.org>) id 1ZcXRW-0000rd-FL
	for MirageOS-devel@lists.xenproject.org; Thu, 17 Sep 2015 11:33:34 +0000
Received: from [85.158.137.68] by server-13.bemta-3.messagelabs.com id
	42/C8-00536-D05AAF55; Thu, 17 Sep 2015 11:33:33 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-3.tower-31.messagelabs.com!1442489612!13237348!1
X-Originating-IP: [5.153.225.51]
X-SpamReason: No, hits=0.2 required=7.0 tests=RCVD_ILLEGAL_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 23604 invoked from network); 17 Sep 2015 11:33:33 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-3.tower-31.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 17 Sep 2015 11:33:33 -0000
Received: from [192.168.1.82] (cpc7-cmbg14-2-0-cust238.5-4.cable.virginm.net
	[86.30.244.239])
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id d59eacf2
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Thu, 17 Sep 2015 12:33:32 +0100 (BST)
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <CAN2Hq04mNcjpvgR08Fa4kMq-T04FPob+cMkSi=Q5vbr0BCDTTw@mail.gmail.com>
Date: Thu, 17 Sep 2015 12:33:31 +0100
Message-Id: <EDBDAD5A-F158-441E-9BA7-4C8B376783CE@recoil.org>
References: <CAN2Hq04mNcjpvgR08Fa4kMq-T04FPob+cMkSi=Q5vbr0BCDTTw@mail.gmail.com>
To: Richard Mortier <richard.mortier@cl.cam.ac.uk>
X-Mailer: Apple Mail (2.2104)
Cc: mirageos-devel <MirageOS-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Not just docs but more!
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On 3 Jun 2015, at 20:13, Richard Mortier <richard.mortier@cl.cam.ac.uk> wrote:
> 
> Following on from Dave's recent request concerning docs, I wondered on
> today's call if it would be a good idea to capture some "best
> practice" examples onto a wiki page somewhere.  I'm thinking of best
> practices in areas like:
> 
> + docs-- perhaps cmdliner? others?
> 
> + unit testing-- perhaps ocaml-vchan? others?
> 
> + integration testing-- we've got ocaml-travisci-skeleton, but any
> particularly complete examples of its use? mirage-www perhaps?
> 
> + code coverage-- not sure; Dave, you seem to use this a lot -- thoughts?
> 
> Anyone other suggestions for things that would be useful to see "best
> practice" on?
> 
> (And, obviously, this list can and probably should evolve and extend
> over time :)

If people haven't seen it yet, Gabriel Radanne has done a fantastic
job of improving the Mirage frontend configuration DSL via a new
library called "Functoria".

https://github.com/mirage/mirage/pull/441

This opens up a whole new set of interesting frontend options for
configuring key/values in libraries (see the Dot graphs in the pull
request comments above).

While that's being prepared for a release, this is a good time to 
think about the documentation and checklists for best practises
on our wiki.  Would anyone be willing to pull together some of the
best practises from the disparate sources about what we do right 
now, and then we can figure out how to integrate some of them into
the configuration DSL as appropriate? (for instance, recompiling with
profiling enabled could be automated)

-anil
_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Thu Sep 17 11:33:45 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 17 Sep 2015 11:33:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZcXRY-0000ri-2d; Thu, 17 Sep 2015 11:33:36 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <anil@recoil.org>) id 1ZcXRW-0000rd-FL
	for MirageOS-devel@lists.xenproject.org; Thu, 17 Sep 2015 11:33:34 +0000
Received: from [85.158.137.68] by server-13.bemta-3.messagelabs.com id
	42/C8-00536-D05AAF55; Thu, 17 Sep 2015 11:33:33 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-3.tower-31.messagelabs.com!1442489612!13237348!1
X-Originating-IP: [5.153.225.51]
X-SpamReason: No, hits=0.2 required=7.0 tests=RCVD_ILLEGAL_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 23604 invoked from network); 17 Sep 2015 11:33:33 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-3.tower-31.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 17 Sep 2015 11:33:33 -0000
Received: from [192.168.1.82] (cpc7-cmbg14-2-0-cust238.5-4.cable.virginm.net
	[86.30.244.239])
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id d59eacf2
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Thu, 17 Sep 2015 12:33:32 +0100 (BST)
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <CAN2Hq04mNcjpvgR08Fa4kMq-T04FPob+cMkSi=Q5vbr0BCDTTw@mail.gmail.com>
Date: Thu, 17 Sep 2015 12:33:31 +0100
Message-Id: <EDBDAD5A-F158-441E-9BA7-4C8B376783CE@recoil.org>
References: <CAN2Hq04mNcjpvgR08Fa4kMq-T04FPob+cMkSi=Q5vbr0BCDTTw@mail.gmail.com>
To: Richard Mortier <richard.mortier@cl.cam.ac.uk>
X-Mailer: Apple Mail (2.2104)
Cc: mirageos-devel <MirageOS-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Not just docs but more!
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On 3 Jun 2015, at 20:13, Richard Mortier <richard.mortier@cl.cam.ac.uk> wrote:
> 
> Following on from Dave's recent request concerning docs, I wondered on
> today's call if it would be a good idea to capture some "best
> practice" examples onto a wiki page somewhere.  I'm thinking of best
> practices in areas like:
> 
> + docs-- perhaps cmdliner? others?
> 
> + unit testing-- perhaps ocaml-vchan? others?
> 
> + integration testing-- we've got ocaml-travisci-skeleton, but any
> particularly complete examples of its use? mirage-www perhaps?
> 
> + code coverage-- not sure; Dave, you seem to use this a lot -- thoughts?
> 
> Anyone other suggestions for things that would be useful to see "best
> practice" on?
> 
> (And, obviously, this list can and probably should evolve and extend
> over time :)

If people haven't seen it yet, Gabriel Radanne has done a fantastic
job of improving the Mirage frontend configuration DSL via a new
library called "Functoria".

https://github.com/mirage/mirage/pull/441

This opens up a whole new set of interesting frontend options for
configuring key/values in libraries (see the Dot graphs in the pull
request comments above).

While that's being prepared for a release, this is a good time to 
think about the documentation and checklists for best practises
on our wiki.  Would anyone be willing to pull together some of the
best practises from the disparate sources about what we do right 
now, and then we can figure out how to integrate some of them into
the configuration DSL as appropriate? (for instance, recompiling with
profiling enabled could be automated)

-anil
_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Thu Sep 17 14:15:44 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 17 Sep 2015 14:15:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZcZyH-00073r-0P; Thu, 17 Sep 2015 14:15:33 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <lars.kurth.xen@gmail.com>)
	id 1ZcYnz-00064U-4U; Thu, 17 Sep 2015 13:00:51 +0000
Received: from [85.158.137.68] by server-5.bemta-3.messagelabs.com id
	E6/68-06021-289BAF55; Thu, 17 Sep 2015 13:00:50 +0000
X-Env-Sender: lars.kurth.xen@gmail.com
X-Msg-Ref: server-8.tower-31.messagelabs.com!1442494847!45237354!1
X-Originating-IP: [209.85.212.176]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 4469 invoked from network); 17 Sep 2015 13:00:47 -0000
Received: from mail-wi0-f176.google.com (HELO mail-wi0-f176.google.com)
	(209.85.212.176)
	by server-8.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	17 Sep 2015 13:00:47 -0000
Received: by wicfx3 with SMTP id fx3so22728205wic.1;
	Thu, 17 Sep 2015 06:00:47 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=from:content-type:content-transfer-encoding:subject:date:message-id
	:cc:to:mime-version;
	bh=saEWqme3/YVINLXHWj4Yy04OQhS9ISCjhvFax1cLQyQ=;
	b=oBSvMncBH3hKjSSxrq9/lYQUSCRuHEhQGDikHHkop/Y++Rg9QZelipGyPkmex7CRtk
	NS0QKHaGjomSrZ30O0ivFTzGaG6bjwibLOdHeqNBbWTa14fnLWWAcYHkDOWxnXAL+5n/
	jW03vuiEOnTBPedjMk9KfipgJiJm+1wfeASwWOoXvQJ7/zmoDfAu2k+YX3KM2Jvfl3vd
	a8IhmDY4qj6k6dylKhayj1oi8pXreXdhJ66T/xpRCpxCQu7SySCKLZvm8vGDOs58dbyt
	+A4Usv9IKf6UG6Dh77giFKMrlzFFoDDW1T59mvfNHv90QioQ3kX5zBkGqiI8exgBKaSG
	Tpog==
X-Received: by 10.180.84.163 with SMTP id a3mr30108346wiz.34.1442494847153;
	Thu, 17 Sep 2015 06:00:47 -0700 (PDT)
Received: from [192.168.0.9] (97e55056.skybroadband.com. [151.229.80.86])
	by smtp.gmail.com with ESMTPSA id p6sm1204270wif.4.2015.09.17.06.00.45
	(version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128);
	Thu, 17 Sep 2015 06:00:46 -0700 (PDT)
From: Lars Kurth <lars.kurth.xen@gmail.com>
Date: Thu, 17 Sep 2015 14:00:44 +0100
Message-Id: <9E1B36C0-9053-43EE-8E59-156D246C8097@gmail.com>
To: Wei Liu <wei.liu2@citrix.com>, Julien Grall <julien.grall@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Paul Durrant <paul.durrant@citrix.com>, dave.scott@citrix.com,
	Anil Madhavapeddy <anil@recoil.org>, Pasi Karkkainen <pasik@iki.fi>,
	George Dunlap <george.dunlap@eu.citrix.com>,
	=?utf-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
	Ian Campbell <Ian.Campbell@citrix.com>, Matt Wilson <msw@amazon.com>
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\))
X-Mailer: Apple Mail (2.2104)
X-Mailman-Approved-At: Thu, 17 Sep 2015 14:15:31 +0000
Cc: xen-api@lists.xenproject.org,
	mirageos-devel <mirageos-devel@lists.xenproject.org>,
	Xen-devel <xen-devel@lists.xen.org>
Subject: [MirageOS-devel] OutreachY round 11 - Please update project list
	and add new projects
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

Hi all,

the AB is sponsoring 2 interns again for the winter round

This means we need to update the following pages by September 28
* All: http://wiki.xenproject.org/wiki/Outreach_Program_Projects - aka add new projects/remove old ones
* MirageOS: http://wiki.xenproject.org/wiki/Outreach_Program_Projects has projects in it - are these still valid, or are they replaced by https://github.com/mirage/mirage-www/wiki/Pioneer-Projects ?

Everyone who has a project on that list is on the TO list. Please update the "Verified" line and add the current date to each project with your name against it. Feel free to add new projects.

{{project
...
|Verified=02/13/2015
...
}}

I will purge *all* projects which have not been verified.

= Timeline =
September 28 organizations' landing pages need to be ready with project ideas
September 29 application process opens
November 2 application deadline
November 17 accepted applicants announced
December 7 - March 7 internship dates

= Xen Resources =
http://wiki.xenproject.org/wiki/Outreachy/Round11

Regards
Lars


_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Thu Sep 17 14:15:44 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 17 Sep 2015 14:15:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZcZyH-00073r-0P; Thu, 17 Sep 2015 14:15:33 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <lars.kurth.xen@gmail.com>)
	id 1ZcYnz-00064U-4U; Thu, 17 Sep 2015 13:00:51 +0000
Received: from [85.158.137.68] by server-5.bemta-3.messagelabs.com id
	E6/68-06021-289BAF55; Thu, 17 Sep 2015 13:00:50 +0000
X-Env-Sender: lars.kurth.xen@gmail.com
X-Msg-Ref: server-8.tower-31.messagelabs.com!1442494847!45237354!1
X-Originating-IP: [209.85.212.176]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 4469 invoked from network); 17 Sep 2015 13:00:47 -0000
Received: from mail-wi0-f176.google.com (HELO mail-wi0-f176.google.com)
	(209.85.212.176)
	by server-8.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	17 Sep 2015 13:00:47 -0000
Received: by wicfx3 with SMTP id fx3so22728205wic.1;
	Thu, 17 Sep 2015 06:00:47 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=from:content-type:content-transfer-encoding:subject:date:message-id
	:cc:to:mime-version;
	bh=saEWqme3/YVINLXHWj4Yy04OQhS9ISCjhvFax1cLQyQ=;
	b=oBSvMncBH3hKjSSxrq9/lYQUSCRuHEhQGDikHHkop/Y++Rg9QZelipGyPkmex7CRtk
	NS0QKHaGjomSrZ30O0ivFTzGaG6bjwibLOdHeqNBbWTa14fnLWWAcYHkDOWxnXAL+5n/
	jW03vuiEOnTBPedjMk9KfipgJiJm+1wfeASwWOoXvQJ7/zmoDfAu2k+YX3KM2Jvfl3vd
	a8IhmDY4qj6k6dylKhayj1oi8pXreXdhJ66T/xpRCpxCQu7SySCKLZvm8vGDOs58dbyt
	+A4Usv9IKf6UG6Dh77giFKMrlzFFoDDW1T59mvfNHv90QioQ3kX5zBkGqiI8exgBKaSG
	Tpog==
X-Received: by 10.180.84.163 with SMTP id a3mr30108346wiz.34.1442494847153;
	Thu, 17 Sep 2015 06:00:47 -0700 (PDT)
Received: from [192.168.0.9] (97e55056.skybroadband.com. [151.229.80.86])
	by smtp.gmail.com with ESMTPSA id p6sm1204270wif.4.2015.09.17.06.00.45
	(version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128);
	Thu, 17 Sep 2015 06:00:46 -0700 (PDT)
From: Lars Kurth <lars.kurth.xen@gmail.com>
Date: Thu, 17 Sep 2015 14:00:44 +0100
Message-Id: <9E1B36C0-9053-43EE-8E59-156D246C8097@gmail.com>
To: Wei Liu <wei.liu2@citrix.com>, Julien Grall <julien.grall@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Paul Durrant <paul.durrant@citrix.com>, dave.scott@citrix.com,
	Anil Madhavapeddy <anil@recoil.org>, Pasi Karkkainen <pasik@iki.fi>,
	George Dunlap <george.dunlap@eu.citrix.com>,
	=?utf-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
	Ian Campbell <Ian.Campbell@citrix.com>, Matt Wilson <msw@amazon.com>
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\))
X-Mailer: Apple Mail (2.2104)
X-Mailman-Approved-At: Thu, 17 Sep 2015 14:15:31 +0000
Cc: xen-api@lists.xenproject.org,
	mirageos-devel <mirageos-devel@lists.xenproject.org>,
	Xen-devel <xen-devel@lists.xen.org>
Subject: [MirageOS-devel] OutreachY round 11 - Please update project list
	and add new projects
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

Hi all,

the AB is sponsoring 2 interns again for the winter round

This means we need to update the following pages by September 28
* All: http://wiki.xenproject.org/wiki/Outreach_Program_Projects - aka add new projects/remove old ones
* MirageOS: http://wiki.xenproject.org/wiki/Outreach_Program_Projects has projects in it - are these still valid, or are they replaced by https://github.com/mirage/mirage-www/wiki/Pioneer-Projects ?

Everyone who has a project on that list is on the TO list. Please update the "Verified" line and add the current date to each project with your name against it. Feel free to add new projects.

{{project
...
|Verified=02/13/2015
...
}}

I will purge *all* projects which have not been verified.

= Timeline =
September 28 organizations' landing pages need to be ready with project ideas
September 29 application process opens
November 2 application deadline
November 17 accepted applicants announced
December 7 - March 7 internship dates

= Xen Resources =
http://wiki.xenproject.org/wiki/Outreachy/Round11

Regards
Lars


_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Thu Sep 17 14:31:03 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 17 Sep 2015 14:31:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZcaDF-0001I7-JI; Thu, 17 Sep 2015 14:31:01 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <amc79@cam.ac.uk>)
	id 1ZcaAA-00019k-Go; Thu, 17 Sep 2015 14:27:50 +0000
Received: from [85.158.139.211] by server-6.bemta-5.messagelabs.com id
	2B/3E-22089-5EDCAF55; Thu, 17 Sep 2015 14:27:49 +0000
X-Env-Sender: amc79@cam.ac.uk
X-Msg-Ref: server-11.tower-206.messagelabs.com!1442500068!31781961!1
X-Originating-IP: [131.111.8.140]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 18417 invoked from network); 17 Sep 2015 14:27:49 -0000
Received: from ppsw-40.csi.cam.ac.uk (HELO ppsw-40.csi.cam.ac.uk)
	(131.111.8.140)
	by server-11.tower-206.messagelabs.com with DHE-RSA-AES256-SHA
	encrypted SMTP; 17 Sep 2015 14:27:49 -0000
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: http://www.cam.ac.uk/cs/email/scanner/
Received: from dhcp-172-17-172-97.eduroam.wireless.private.cam.ac.uk
	([172.17.172.97]:56867)
	by ppsw-40.csi.cam.ac.uk (smtp.hermes.cam.ac.uk [131.111.8.156]:465)
	with esmtpsa (PLAIN:amc79) (TLSv1:ECDHE-RSA-AES256-SHA:256)
	id 1ZcaA2-00064d-m4 (Exim 4.86_36-e07b163)
	(return-path <amc79@cam.ac.uk>); Thu, 17 Sep 2015 15:27:42 +0100
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\))
From: Amir Chaudhry <amc79@cam.ac.uk>
In-Reply-To: <9E1B36C0-9053-43EE-8E59-156D246C8097@gmail.com>
Date: Thu, 17 Sep 2015 15:27:43 +0100
Message-Id: <21E6F5E6-7A08-4C4F-B306-5EE4A06B7C80@cam.ac.uk>
References: <9E1B36C0-9053-43EE-8E59-156D246C8097@gmail.com>
To: Lars Kurth <lars.kurth.xen@gmail.com>
X-Mailer: Apple Mail (2.2104)
X-Mailman-Approved-At: Thu, 17 Sep 2015 14:31:00 +0000
Cc: David Scott <dave.scott@citrix.com>, Wei Liu <wei.liu2@citrix.com>,
	Ian Campbell <Ian.Campbell@citrix.com>,
	Anil Madhavapeddy <anil@recoil.org>,
	George Dunlap <george.dunlap@eu.citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>, Pasi Karkkainen <pasik@iki.fi>,
	Xen-devel <xen-devel@lists.xen.org>,
	Julien Grall <julien.grall@citrix.com>,
	mirageos-devel <mirageos-devel@lists.xenproject.org>,
	Paul Durrant <paul.durrant@citrix.com>,
	Matt Wilson <msw@amazon.com>, xen-api@lists.xenproject.org,
	=?utf-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Subject: Re: [MirageOS-devel] OutreachY round 11 - Please update project
	list and add new projects
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

Cj4gT24gMTcgU2VwIDIwMTUsIGF0IDE0OjAwLCBMYXJzIEt1cnRoIDxsYXJzLmt1cnRoLnhlbkBn
bWFpbC5jb20+IHdyb3RlOgo+IAo+IEhpIGFsbCwKPiAKPiB0aGUgQUIgaXMgc3BvbnNvcmluZyAy
IGludGVybnMgYWdhaW4gZm9yIHRoZSB3aW50ZXIgcm91bmQKPiAKPiBUaGlzIG1lYW5zIHdlIG5l
ZWQgdG8gdXBkYXRlIHRoZSBmb2xsb3dpbmcgcGFnZXMgYnkgU2VwdGVtYmVyIDI4Cj4gKiBBbGw6
IGh0dHA6Ly93aWtpLnhlbnByb2plY3Qub3JnL3dpa2kvT3V0cmVhY2hfUHJvZ3JhbV9Qcm9qZWN0
cyAtIGFrYSBhZGQgbmV3IHByb2plY3RzL3JlbW92ZSBvbGQgb25lcwo+ICogTWlyYWdlT1M6IGh0
dHA6Ly93aWtpLnhlbnByb2plY3Qub3JnL3dpa2kvT3V0cmVhY2hfUHJvZ3JhbV9Qcm9qZWN0cyBo
YXMgcHJvamVjdHMgaW4gaXQgLSBhcmUgdGhlc2Ugc3RpbGwgdmFsaWQsIG9yIGFyZSB0aGV5IHJl
cGxhY2VkIGJ5IGh0dHBzOi8vZ2l0aHViLmNvbS9taXJhZ2UvbWlyYWdlLXd3dy93aWtpL1Bpb25l
ZXItUHJvamVjdHMgPwoKUGlvbmVlciBQcm9qZWN0cyBwYWdlIGlzIHdoZXJlIHdlIGxpc3Qgd2hh
dCB3ZSBoYXZlLCBpcyBpdCBvayB0byBwb2ludCBwZW9wbGUgdGhlcmU/ClRoZSBjb21wbGV0ZWQg
b25lcyBhcmUgbW92ZWQgdG8gdGhlIGJvdHRvbSBvZiB0aGUgbGlzdCBidXQgdGhlcmXigJlzIHR5
cGljYWxseSBzY29wZSB0byBleHBhbmQgdGhvc2UgdG9vLgoKSeKAmXZlIGFkZGVkIGEgbm90ZSB0
byBtYWtlIHN1cmUgd2UgZGlzY3VzcyB0aGlzIG9uIHRoZSBuZXh0IE1pcmFnZU9TIGNhbGwgWzFd
LCB0b28uCgpbMV0gaHR0cHM6Ly9naXRodWIuY29tL21pcmFnZS9taXJhZ2Utd3d3L3dpa2kvQ2Fs
bC1BZ2VuZGEgCgpBbWlyCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fCk1pcmFnZU9TLWRldmVsIG1haWxpbmcgbGlzdApNaXJhZ2VPUy1kZXZlbEBsaXN0cy54
ZW5wcm9qZWN0Lm9yZwpodHRwOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFu
L2xpc3RpbmZvL21pcmFnZW9zLWRldmVsCg==

From mirageos-devel-bounces@lists.xenproject.org Thu Sep 17 14:31:03 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 17 Sep 2015 14:31:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZcaDF-0001I7-JI; Thu, 17 Sep 2015 14:31:01 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <amc79@cam.ac.uk>)
	id 1ZcaAA-00019k-Go; Thu, 17 Sep 2015 14:27:50 +0000
Received: from [85.158.139.211] by server-6.bemta-5.messagelabs.com id
	2B/3E-22089-5EDCAF55; Thu, 17 Sep 2015 14:27:49 +0000
X-Env-Sender: amc79@cam.ac.uk
X-Msg-Ref: server-11.tower-206.messagelabs.com!1442500068!31781961!1
X-Originating-IP: [131.111.8.140]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 18417 invoked from network); 17 Sep 2015 14:27:49 -0000
Received: from ppsw-40.csi.cam.ac.uk (HELO ppsw-40.csi.cam.ac.uk)
	(131.111.8.140)
	by server-11.tower-206.messagelabs.com with DHE-RSA-AES256-SHA
	encrypted SMTP; 17 Sep 2015 14:27:49 -0000
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: http://www.cam.ac.uk/cs/email/scanner/
Received: from dhcp-172-17-172-97.eduroam.wireless.private.cam.ac.uk
	([172.17.172.97]:56867)
	by ppsw-40.csi.cam.ac.uk (smtp.hermes.cam.ac.uk [131.111.8.156]:465)
	with esmtpsa (PLAIN:amc79) (TLSv1:ECDHE-RSA-AES256-SHA:256)
	id 1ZcaA2-00064d-m4 (Exim 4.86_36-e07b163)
	(return-path <amc79@cam.ac.uk>); Thu, 17 Sep 2015 15:27:42 +0100
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\))
From: Amir Chaudhry <amc79@cam.ac.uk>
In-Reply-To: <9E1B36C0-9053-43EE-8E59-156D246C8097@gmail.com>
Date: Thu, 17 Sep 2015 15:27:43 +0100
Message-Id: <21E6F5E6-7A08-4C4F-B306-5EE4A06B7C80@cam.ac.uk>
References: <9E1B36C0-9053-43EE-8E59-156D246C8097@gmail.com>
To: Lars Kurth <lars.kurth.xen@gmail.com>
X-Mailer: Apple Mail (2.2104)
X-Mailman-Approved-At: Thu, 17 Sep 2015 14:31:00 +0000
Cc: David Scott <dave.scott@citrix.com>, Wei Liu <wei.liu2@citrix.com>,
	Ian Campbell <Ian.Campbell@citrix.com>,
	Anil Madhavapeddy <anil@recoil.org>,
	George Dunlap <george.dunlap@eu.citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>, Pasi Karkkainen <pasik@iki.fi>,
	Xen-devel <xen-devel@lists.xen.org>,
	Julien Grall <julien.grall@citrix.com>,
	mirageos-devel <mirageos-devel@lists.xenproject.org>,
	Paul Durrant <paul.durrant@citrix.com>,
	Matt Wilson <msw@amazon.com>, xen-api@lists.xenproject.org,
	=?utf-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Subject: Re: [MirageOS-devel] OutreachY round 11 - Please update project
	list and add new projects
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

Cj4gT24gMTcgU2VwIDIwMTUsIGF0IDE0OjAwLCBMYXJzIEt1cnRoIDxsYXJzLmt1cnRoLnhlbkBn
bWFpbC5jb20+IHdyb3RlOgo+IAo+IEhpIGFsbCwKPiAKPiB0aGUgQUIgaXMgc3BvbnNvcmluZyAy
IGludGVybnMgYWdhaW4gZm9yIHRoZSB3aW50ZXIgcm91bmQKPiAKPiBUaGlzIG1lYW5zIHdlIG5l
ZWQgdG8gdXBkYXRlIHRoZSBmb2xsb3dpbmcgcGFnZXMgYnkgU2VwdGVtYmVyIDI4Cj4gKiBBbGw6
IGh0dHA6Ly93aWtpLnhlbnByb2plY3Qub3JnL3dpa2kvT3V0cmVhY2hfUHJvZ3JhbV9Qcm9qZWN0
cyAtIGFrYSBhZGQgbmV3IHByb2plY3RzL3JlbW92ZSBvbGQgb25lcwo+ICogTWlyYWdlT1M6IGh0
dHA6Ly93aWtpLnhlbnByb2plY3Qub3JnL3dpa2kvT3V0cmVhY2hfUHJvZ3JhbV9Qcm9qZWN0cyBo
YXMgcHJvamVjdHMgaW4gaXQgLSBhcmUgdGhlc2Ugc3RpbGwgdmFsaWQsIG9yIGFyZSB0aGV5IHJl
cGxhY2VkIGJ5IGh0dHBzOi8vZ2l0aHViLmNvbS9taXJhZ2UvbWlyYWdlLXd3dy93aWtpL1Bpb25l
ZXItUHJvamVjdHMgPwoKUGlvbmVlciBQcm9qZWN0cyBwYWdlIGlzIHdoZXJlIHdlIGxpc3Qgd2hh
dCB3ZSBoYXZlLCBpcyBpdCBvayB0byBwb2ludCBwZW9wbGUgdGhlcmU/ClRoZSBjb21wbGV0ZWQg
b25lcyBhcmUgbW92ZWQgdG8gdGhlIGJvdHRvbSBvZiB0aGUgbGlzdCBidXQgdGhlcmXigJlzIHR5
cGljYWxseSBzY29wZSB0byBleHBhbmQgdGhvc2UgdG9vLgoKSeKAmXZlIGFkZGVkIGEgbm90ZSB0
byBtYWtlIHN1cmUgd2UgZGlzY3VzcyB0aGlzIG9uIHRoZSBuZXh0IE1pcmFnZU9TIGNhbGwgWzFd
LCB0b28uCgpbMV0gaHR0cHM6Ly9naXRodWIuY29tL21pcmFnZS9taXJhZ2Utd3d3L3dpa2kvQ2Fs
bC1BZ2VuZGEgCgpBbWlyCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fCk1pcmFnZU9TLWRldmVsIG1haWxpbmcgbGlzdApNaXJhZ2VPUy1kZXZlbEBsaXN0cy54
ZW5wcm9qZWN0Lm9yZwpodHRwOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFu
L2xpc3RpbmZvL21pcmFnZW9zLWRldmVsCg==

From mirageos-devel-bounces@lists.xenproject.org Thu Sep 17 14:39:27 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 17 Sep 2015 14:39:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZcaLO-0002cs-Au; Thu, 17 Sep 2015 14:39:26 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <lars.kurth.xen@gmail.com>) id 1ZcaLN-0002cn-31
	for mirageos-devel@lists.xenproject.org; Thu, 17 Sep 2015 14:39:25 +0000
Received: from [193.109.254.147] by server-4.bemta-14.messagelabs.com id
	CC/34-10715-C90DAF55; Thu, 17 Sep 2015 14:39:24 +0000
X-Env-Sender: lars.kurth.xen@gmail.com
X-Msg-Ref: server-5.tower-27.messagelabs.com!1442500763!39262191!1
X-Originating-IP: [209.85.212.170]
X-SpamReason: No, hits=0.3 required=7.0 tests=MAILTO_TO_SPAM_ADDR
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 26281 invoked from network); 17 Sep 2015 14:39:23 -0000
Received: from mail-wi0-f170.google.com (HELO mail-wi0-f170.google.com)
	(209.85.212.170)
	by server-5.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	17 Sep 2015 14:39:23 -0000
Received: by wiclk2 with SMTP id lk2so27029805wic.0
	for <mirageos-devel@lists.xenproject.org>;
	Thu, 17 Sep 2015 07:39:23 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=content-type:mime-version:subject:from:in-reply-to:date:cc
	:content-transfer-encoding:message-id:references:to;
	bh=H8nLiSAdHw7MCrsf35RilqKMBs7ri34VYQKANa1vCS0=;
	b=uyKELqwFWuZfDXpZYTrZ2fMN8MtpBFRwudkRVKqCbGkYa6jXjKa37LaPghywF0zYsK
	gf2yZDcUnaxNgqiGGei9Bi+3xuvT4GR97vgZuh2mES3Q/zsTX8GglrwOPnc4fQYtXO6B
	aP0UADS4WeqEBmqrfv57HpT+cazVjPqcX5r1SEN3Ey+mfvvZNKVMsv/9PMWIfyy5fZt3
	wRBCTT+cuiiAvV1mexmTZx9jfkeLR997PQJTug4NmFXbefk+bqFItzGJMn369tkAVibF
	qwOAfNbkALYGm3ihhSCJMu62WeHBvywT0KeLPoGfSoFylYGLCuoXXs1CHmBmq6SLQKks
	PwxA==
X-Received: by 10.194.122.97 with SMTP id lr1mr33945539wjb.26.1442500762197;
	Thu, 17 Sep 2015 07:39:22 -0700 (PDT)
Received: from [192.168.0.12] (97e55056.skybroadband.com. [151.229.80.86])
	by smtp.gmail.com with ESMTPSA id
	h8sm10377294wib.21.2015.09.17.07.39.20
	(version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128);
	Thu, 17 Sep 2015 07:39:20 -0700 (PDT)
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\))
From: Lars Kurth <lars.kurth.xen@gmail.com>
In-Reply-To: <21E6F5E6-7A08-4C4F-B306-5EE4A06B7C80@cam.ac.uk>
Date: Thu, 17 Sep 2015 15:39:19 +0100
Message-Id: <357ACCB9-E1CA-476E-8549-AFD2DCC1F06A@gmail.com>
References: <9E1B36C0-9053-43EE-8E59-156D246C8097@gmail.com>
	<21E6F5E6-7A08-4C4F-B306-5EE4A06B7C80@cam.ac.uk>
To: Amir Chaudhry <amc79@cam.ac.uk>
X-Mailer: Apple Mail (2.2104)
Cc: David Scott <dave.scott@citrix.com>,
	mirageos-devel <mirageos-devel@lists.xenproject.org>,
	Anil Madhavapeddy <anil@recoil.org>
Subject: Re: [MirageOS-devel] OutreachY round 11 - Please update project
	list and add new projects
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

UmVkdWNpbmcgdGhlIGxpc3QgZm9yIHRoaXMgb25lIHRvIGF2b2lkIG1vZGVyYXRpb24gdG8ga2lj
ayBpbgoKPiBPbiAxNyBTZXAgMjAxNSwgYXQgMTU6MjcsIEFtaXIgQ2hhdWRocnkgPGFtYzc5QGNh
bS5hYy51az4gd3JvdGU6Cj4gCj4gCj4+IE9uIDE3IFNlcCAyMDE1LCBhdCAxNDowMCwgTGFycyBL
dXJ0aCA8bGFycy5rdXJ0aC54ZW5AZ21haWwuY29tPiB3cm90ZToKPj4gCj4+IEhpIGFsbCwKPj4g
Cj4+IHRoZSBBQiBpcyBzcG9uc29yaW5nIDIgaW50ZXJucyBhZ2FpbiBmb3IgdGhlIHdpbnRlciBy
b3VuZAo+PiAKPj4gVGhpcyBtZWFucyB3ZSBuZWVkIHRvIHVwZGF0ZSB0aGUgZm9sbG93aW5nIHBh
Z2VzIGJ5IFNlcHRlbWJlciAyOAo+PiAqIEFsbDogaHR0cDovL3dpa2kueGVucHJvamVjdC5vcmcv
d2lraS9PdXRyZWFjaF9Qcm9ncmFtX1Byb2plY3RzIC0gYWthIGFkZCBuZXcgcHJvamVjdHMvcmVt
b3ZlIG9sZCBvbmVzCj4+ICogTWlyYWdlT1M6IGh0dHA6Ly93aWtpLnhlbnByb2plY3Qub3JnL3dp
a2kvT3V0cmVhY2hfUHJvZ3JhbV9Qcm9qZWN0cyBoYXMgcHJvamVjdHMgaW4gaXQgLSBhcmUgdGhl
c2Ugc3RpbGwgdmFsaWQsIG9yIGFyZSB0aGV5IHJlcGxhY2VkIGJ5IGh0dHBzOi8vZ2l0aHViLmNv
bS9taXJhZ2UvbWlyYWdlLXd3dy93aWtpL1Bpb25lZXItUHJvamVjdHMgPwo+IAo+IFBpb25lZXIg
UHJvamVjdHMgcGFnZSBpcyB3aGVyZSB3ZSBsaXN0IHdoYXQgd2UgaGF2ZSwgaXMgaXQgb2sgdG8g
cG9pbnQgcGVvcGxlIHRoZXJlPwo+IFRoZSBjb21wbGV0ZWQgb25lcyBhcmUgbW92ZWQgdG8gdGhl
IGJvdHRvbSBvZiB0aGUgbGlzdCBidXQgdGhlcmXigJlzIHR5cGljYWxseSBzY29wZSB0byBleHBh
bmQgdGhvc2UgdG9vLgoKSSBhbSBoYXBweSB0byBkZWxldGUgYWxsIHRoZSBNaXJhZ2UgcHJvamVj
dHMgZnJvbSBodHRwOi8vd2lraS54ZW5wcm9qZWN0Lm9yZy93aWtpL091dHJlYWNoX1Byb2dyYW1f
UHJvamVjdHMgYW5kIGp1c3QgcG9pbnQgdG8gaHR0cHM6Ly9naXRodWIuY29tL21pcmFnZS9taXJh
Z2Utd3d3L3dpa2kvUGlvbmVlci1Qcm9qZWN0cyAuLi4gdGhlIG9ubHkgcHJhY3RpY2FsIGlzc3Vl
IGlzIHRoYXQgcGVvcGxlIHdobyBoYXZlIE91dHJlYWNoeSBxdWVyaWVzIG5vcm1hbGx5IHNlbmQg
dGhpcyB0byB0aGUgbGlzdCBhbmQgQ0MgdGhlIG1lbnRvcihzKS4gVGhlIFBpb25lZXIgUHJvamVj
dCBsaXN0IGRvZXMgbm90IGN1cnJlbnRseSBoYXZlIHRoZSBlbWFpbCBhZGRyZXNzZXMuIFR3byB3
YXlzIHRvIGZpeCB0aGlzOgoqIEFkZCB0aGUgaW5mbyB0byB5b3VyIHBhZ2UKKiBBZGQgYSBtYXBw
aW5nIHNlY3Rpb24gdG8gd2hlcmUgSSBsaW5rIHRvIHlvdXIgcGFnZQoKTGFycwoKCl9fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk1pcmFnZU9TLWRldmVsIG1h
aWxpbmcgbGlzdApNaXJhZ2VPUy1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwOi8vbGlz
dHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL21pcmFnZW9zLWRldmVs
Cg==

From mirageos-devel-bounces@lists.xenproject.org Thu Sep 17 14:39:27 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 17 Sep 2015 14:39:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZcaLO-0002cs-Au; Thu, 17 Sep 2015 14:39:26 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <lars.kurth.xen@gmail.com>) id 1ZcaLN-0002cn-31
	for mirageos-devel@lists.xenproject.org; Thu, 17 Sep 2015 14:39:25 +0000
Received: from [193.109.254.147] by server-4.bemta-14.messagelabs.com id
	CC/34-10715-C90DAF55; Thu, 17 Sep 2015 14:39:24 +0000
X-Env-Sender: lars.kurth.xen@gmail.com
X-Msg-Ref: server-5.tower-27.messagelabs.com!1442500763!39262191!1
X-Originating-IP: [209.85.212.170]
X-SpamReason: No, hits=0.3 required=7.0 tests=MAILTO_TO_SPAM_ADDR
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 26281 invoked from network); 17 Sep 2015 14:39:23 -0000
Received: from mail-wi0-f170.google.com (HELO mail-wi0-f170.google.com)
	(209.85.212.170)
	by server-5.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	17 Sep 2015 14:39:23 -0000
Received: by wiclk2 with SMTP id lk2so27029805wic.0
	for <mirageos-devel@lists.xenproject.org>;
	Thu, 17 Sep 2015 07:39:23 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=content-type:mime-version:subject:from:in-reply-to:date:cc
	:content-transfer-encoding:message-id:references:to;
	bh=H8nLiSAdHw7MCrsf35RilqKMBs7ri34VYQKANa1vCS0=;
	b=uyKELqwFWuZfDXpZYTrZ2fMN8MtpBFRwudkRVKqCbGkYa6jXjKa37LaPghywF0zYsK
	gf2yZDcUnaxNgqiGGei9Bi+3xuvT4GR97vgZuh2mES3Q/zsTX8GglrwOPnc4fQYtXO6B
	aP0UADS4WeqEBmqrfv57HpT+cazVjPqcX5r1SEN3Ey+mfvvZNKVMsv/9PMWIfyy5fZt3
	wRBCTT+cuiiAvV1mexmTZx9jfkeLR997PQJTug4NmFXbefk+bqFItzGJMn369tkAVibF
	qwOAfNbkALYGm3ihhSCJMu62WeHBvywT0KeLPoGfSoFylYGLCuoXXs1CHmBmq6SLQKks
	PwxA==
X-Received: by 10.194.122.97 with SMTP id lr1mr33945539wjb.26.1442500762197;
	Thu, 17 Sep 2015 07:39:22 -0700 (PDT)
Received: from [192.168.0.12] (97e55056.skybroadband.com. [151.229.80.86])
	by smtp.gmail.com with ESMTPSA id
	h8sm10377294wib.21.2015.09.17.07.39.20
	(version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128);
	Thu, 17 Sep 2015 07:39:20 -0700 (PDT)
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\))
From: Lars Kurth <lars.kurth.xen@gmail.com>
In-Reply-To: <21E6F5E6-7A08-4C4F-B306-5EE4A06B7C80@cam.ac.uk>
Date: Thu, 17 Sep 2015 15:39:19 +0100
Message-Id: <357ACCB9-E1CA-476E-8549-AFD2DCC1F06A@gmail.com>
References: <9E1B36C0-9053-43EE-8E59-156D246C8097@gmail.com>
	<21E6F5E6-7A08-4C4F-B306-5EE4A06B7C80@cam.ac.uk>
To: Amir Chaudhry <amc79@cam.ac.uk>
X-Mailer: Apple Mail (2.2104)
Cc: David Scott <dave.scott@citrix.com>,
	mirageos-devel <mirageos-devel@lists.xenproject.org>,
	Anil Madhavapeddy <anil@recoil.org>
Subject: Re: [MirageOS-devel] OutreachY round 11 - Please update project
	list and add new projects
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

UmVkdWNpbmcgdGhlIGxpc3QgZm9yIHRoaXMgb25lIHRvIGF2b2lkIG1vZGVyYXRpb24gdG8ga2lj
ayBpbgoKPiBPbiAxNyBTZXAgMjAxNSwgYXQgMTU6MjcsIEFtaXIgQ2hhdWRocnkgPGFtYzc5QGNh
bS5hYy51az4gd3JvdGU6Cj4gCj4gCj4+IE9uIDE3IFNlcCAyMDE1LCBhdCAxNDowMCwgTGFycyBL
dXJ0aCA8bGFycy5rdXJ0aC54ZW5AZ21haWwuY29tPiB3cm90ZToKPj4gCj4+IEhpIGFsbCwKPj4g
Cj4+IHRoZSBBQiBpcyBzcG9uc29yaW5nIDIgaW50ZXJucyBhZ2FpbiBmb3IgdGhlIHdpbnRlciBy
b3VuZAo+PiAKPj4gVGhpcyBtZWFucyB3ZSBuZWVkIHRvIHVwZGF0ZSB0aGUgZm9sbG93aW5nIHBh
Z2VzIGJ5IFNlcHRlbWJlciAyOAo+PiAqIEFsbDogaHR0cDovL3dpa2kueGVucHJvamVjdC5vcmcv
d2lraS9PdXRyZWFjaF9Qcm9ncmFtX1Byb2plY3RzIC0gYWthIGFkZCBuZXcgcHJvamVjdHMvcmVt
b3ZlIG9sZCBvbmVzCj4+ICogTWlyYWdlT1M6IGh0dHA6Ly93aWtpLnhlbnByb2plY3Qub3JnL3dp
a2kvT3V0cmVhY2hfUHJvZ3JhbV9Qcm9qZWN0cyBoYXMgcHJvamVjdHMgaW4gaXQgLSBhcmUgdGhl
c2Ugc3RpbGwgdmFsaWQsIG9yIGFyZSB0aGV5IHJlcGxhY2VkIGJ5IGh0dHBzOi8vZ2l0aHViLmNv
bS9taXJhZ2UvbWlyYWdlLXd3dy93aWtpL1Bpb25lZXItUHJvamVjdHMgPwo+IAo+IFBpb25lZXIg
UHJvamVjdHMgcGFnZSBpcyB3aGVyZSB3ZSBsaXN0IHdoYXQgd2UgaGF2ZSwgaXMgaXQgb2sgdG8g
cG9pbnQgcGVvcGxlIHRoZXJlPwo+IFRoZSBjb21wbGV0ZWQgb25lcyBhcmUgbW92ZWQgdG8gdGhl
IGJvdHRvbSBvZiB0aGUgbGlzdCBidXQgdGhlcmXigJlzIHR5cGljYWxseSBzY29wZSB0byBleHBh
bmQgdGhvc2UgdG9vLgoKSSBhbSBoYXBweSB0byBkZWxldGUgYWxsIHRoZSBNaXJhZ2UgcHJvamVj
dHMgZnJvbSBodHRwOi8vd2lraS54ZW5wcm9qZWN0Lm9yZy93aWtpL091dHJlYWNoX1Byb2dyYW1f
UHJvamVjdHMgYW5kIGp1c3QgcG9pbnQgdG8gaHR0cHM6Ly9naXRodWIuY29tL21pcmFnZS9taXJh
Z2Utd3d3L3dpa2kvUGlvbmVlci1Qcm9qZWN0cyAuLi4gdGhlIG9ubHkgcHJhY3RpY2FsIGlzc3Vl
IGlzIHRoYXQgcGVvcGxlIHdobyBoYXZlIE91dHJlYWNoeSBxdWVyaWVzIG5vcm1hbGx5IHNlbmQg
dGhpcyB0byB0aGUgbGlzdCBhbmQgQ0MgdGhlIG1lbnRvcihzKS4gVGhlIFBpb25lZXIgUHJvamVj
dCBsaXN0IGRvZXMgbm90IGN1cnJlbnRseSBoYXZlIHRoZSBlbWFpbCBhZGRyZXNzZXMuIFR3byB3
YXlzIHRvIGZpeCB0aGlzOgoqIEFkZCB0aGUgaW5mbyB0byB5b3VyIHBhZ2UKKiBBZGQgYSBtYXBw
aW5nIHNlY3Rpb24gdG8gd2hlcmUgSSBsaW5rIHRvIHlvdXIgcGFnZQoKTGFycwoKCl9fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk1pcmFnZU9TLWRldmVsIG1h
aWxpbmcgbGlzdApNaXJhZ2VPUy1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwOi8vbGlz
dHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL21pcmFnZW9zLWRldmVs
Cg==

From mirageos-devel-bounces@lists.xenproject.org Sun Sep 20 12:43:06 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sun, 20 Sep 2015 12:43:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1Zddx6-0001eO-AQ; Sun, 20 Sep 2015 12:42:44 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <comethalley61@gmail.com>) id 1Zddx5-0001eJ-MA
	for mirageos-devel@lists.xenproject.org; Sun, 20 Sep 2015 12:42:43 +0000
Received: from [193.109.254.147] by server-3.bemta-14.messagelabs.com id
	C3/2F-25435-3C9AEF55; Sun, 20 Sep 2015 12:42:43 +0000
X-Env-Sender: comethalley61@gmail.com
X-Msg-Ref: server-15.tower-27.messagelabs.com!1442752961!32587233!1
X-Originating-IP: [209.85.223.175]
X-SpamReason: No, hits=1.7 required=7.0 tests=BODY_RANDOM_LONG,
	HTML_10_20,HTML_MESSAGE,RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 26013 invoked from network); 20 Sep 2015 12:42:41 -0000
Received: from mail-io0-f175.google.com (HELO mail-io0-f175.google.com)
	(209.85.223.175)
	by server-15.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	20 Sep 2015 12:42:41 -0000
Received: by iofb144 with SMTP id b144so96787996iof.1
	for <mirageos-devel@lists.xenproject.org>;
	Sun, 20 Sep 2015 05:42:40 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:date:message-id:subject:from:to:cc:content-type;
	bh=UJHrMN7rZtq2LM8Wa7htnA8Q1SZL01hKqxUV5RViR9M=;
	b=TJwO5sDrOiKq15UXGwlBCy1xqE7L/h9MUY3kE4FaZRbb1n4QiLMNOFxDC0AxtcU32W
	TzFbpvxtjiuLavUiKLOpQXIqMv9G7DEjPWoISI6ksivIWlIeW6wAD4TpblXCvsAV4GfN
	SCEKjLuDtkP1y1oXYbremzoYMXTNyKVSvsu4L9LonKFHOeGdoGFykA+Lqde5bIYGm47K
	rmDgjc/PVe5KLknkwBrcj/aARJqBap5Y6A4xsYtQG3JTq6blYMHOrKlmYQLdRO3dbqhQ
	ZPiuuYqfCZ2Cv6zAqCuRkz8RvVf8qQMMw2emjpBb4syOhHAht8qY+ANhwxR6N7fyAdq3
	+6EQ==
MIME-Version: 1.0
X-Received: by 10.107.15.27 with SMTP id x27mr22370759ioi.51.1442752960779;
	Sun, 20 Sep 2015 05:42:40 -0700 (PDT)
Received: by 10.107.180.149 with HTTP; Sun, 20 Sep 2015 05:42:40 -0700 (PDT)
Date: Sun, 20 Sep 2015 18:12:40 +0530
Message-ID: <CAAbK429srd4r7Kp10nPK5vndcZYLoXOsh9W=K_E4mpKVrVpZXA@mail.gmail.com>
From: Lasya Venneti <comethalley61@gmail.com>
To: mirageos-devel@lists.xenproject.org
Cc: Lars Kurth <lars.kurth@citrix.com>
Subject: [MirageOS-devel] Getting Started
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============4259517270583981467=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============4259517270583981467==
Content-Type: multipart/alternative; boundary=001a113f1e64b9dc2205202d19d6

--001a113f1e64b9dc2205202d19d6
Content-Type: text/plain; charset=UTF-8

Hi all,

I'm Lasya, a student pursuing Computer Science Engineering from IIIT-H,
Hyderabad, India.

I wish to get started with contributing to Mirage OS. I have conceptual
knowledge about Computer system architecture, and OS concepts like
Virtualization. I hope they will be useful while contributing to the
community, I am willing to learn with your help & guidance. :)

Request to link me to some pages/docs that I am supposed to read to help me
setup the environment and start contributing, & a few beginner bugs that I
can try my hand at.

Sincerely,
Lasya V

--001a113f1e64b9dc2205202d19d6
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Hi all,=C2=A0<div><br></div><div>I&#39;m Lasya, a student =
pursuing Computer Science Engineering from IIIT-H, Hyderabad, India.=C2=A0<=
/div><div><br></div><div>I wish to get started with contributing to Mirage =
OS. I have conceptual knowledge about Computer system architecture, and OS =
concepts like Virtualization. I hope they will be useful while contributing=
 to the community, I am willing to learn with your help &amp; guidance. :)<=
/div><div><br></div><div>Request to link me to some pages/docs that I am su=
pposed to read to help me setup the environment and start contributing, &am=
p; a few beginner bugs that I can try my hand at.</div><div><br></div><div>=
Sincerely,</div><div>Lasya V =C2=A0=C2=A0</div></div>

--001a113f1e64b9dc2205202d19d6--


--===============4259517270583981467==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

--===============4259517270583981467==--


From mirageos-devel-bounces@lists.xenproject.org Sun Sep 20 12:43:06 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sun, 20 Sep 2015 12:43:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1Zddx6-0001eO-AQ; Sun, 20 Sep 2015 12:42:44 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <comethalley61@gmail.com>) id 1Zddx5-0001eJ-MA
	for mirageos-devel@lists.xenproject.org; Sun, 20 Sep 2015 12:42:43 +0000
Received: from [193.109.254.147] by server-3.bemta-14.messagelabs.com id
	C3/2F-25435-3C9AEF55; Sun, 20 Sep 2015 12:42:43 +0000
X-Env-Sender: comethalley61@gmail.com
X-Msg-Ref: server-15.tower-27.messagelabs.com!1442752961!32587233!1
X-Originating-IP: [209.85.223.175]
X-SpamReason: No, hits=1.7 required=7.0 tests=BODY_RANDOM_LONG,
	HTML_10_20,HTML_MESSAGE,RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 26013 invoked from network); 20 Sep 2015 12:42:41 -0000
Received: from mail-io0-f175.google.com (HELO mail-io0-f175.google.com)
	(209.85.223.175)
	by server-15.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	20 Sep 2015 12:42:41 -0000
Received: by iofb144 with SMTP id b144so96787996iof.1
	for <mirageos-devel@lists.xenproject.org>;
	Sun, 20 Sep 2015 05:42:40 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:date:message-id:subject:from:to:cc:content-type;
	bh=UJHrMN7rZtq2LM8Wa7htnA8Q1SZL01hKqxUV5RViR9M=;
	b=TJwO5sDrOiKq15UXGwlBCy1xqE7L/h9MUY3kE4FaZRbb1n4QiLMNOFxDC0AxtcU32W
	TzFbpvxtjiuLavUiKLOpQXIqMv9G7DEjPWoISI6ksivIWlIeW6wAD4TpblXCvsAV4GfN
	SCEKjLuDtkP1y1oXYbremzoYMXTNyKVSvsu4L9LonKFHOeGdoGFykA+Lqde5bIYGm47K
	rmDgjc/PVe5KLknkwBrcj/aARJqBap5Y6A4xsYtQG3JTq6blYMHOrKlmYQLdRO3dbqhQ
	ZPiuuYqfCZ2Cv6zAqCuRkz8RvVf8qQMMw2emjpBb4syOhHAht8qY+ANhwxR6N7fyAdq3
	+6EQ==
MIME-Version: 1.0
X-Received: by 10.107.15.27 with SMTP id x27mr22370759ioi.51.1442752960779;
	Sun, 20 Sep 2015 05:42:40 -0700 (PDT)
Received: by 10.107.180.149 with HTTP; Sun, 20 Sep 2015 05:42:40 -0700 (PDT)
Date: Sun, 20 Sep 2015 18:12:40 +0530
Message-ID: <CAAbK429srd4r7Kp10nPK5vndcZYLoXOsh9W=K_E4mpKVrVpZXA@mail.gmail.com>
From: Lasya Venneti <comethalley61@gmail.com>
To: mirageos-devel@lists.xenproject.org
Cc: Lars Kurth <lars.kurth@citrix.com>
Subject: [MirageOS-devel] Getting Started
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============4259517270583981467=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============4259517270583981467==
Content-Type: multipart/alternative; boundary=001a113f1e64b9dc2205202d19d6

--001a113f1e64b9dc2205202d19d6
Content-Type: text/plain; charset=UTF-8

Hi all,

I'm Lasya, a student pursuing Computer Science Engineering from IIIT-H,
Hyderabad, India.

I wish to get started with contributing to Mirage OS. I have conceptual
knowledge about Computer system architecture, and OS concepts like
Virtualization. I hope they will be useful while contributing to the
community, I am willing to learn with your help & guidance. :)

Request to link me to some pages/docs that I am supposed to read to help me
setup the environment and start contributing, & a few beginner bugs that I
can try my hand at.

Sincerely,
Lasya V

--001a113f1e64b9dc2205202d19d6
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Hi all,=C2=A0<div><br></div><div>I&#39;m Lasya, a student =
pursuing Computer Science Engineering from IIIT-H, Hyderabad, India.=C2=A0<=
/div><div><br></div><div>I wish to get started with contributing to Mirage =
OS. I have conceptual knowledge about Computer system architecture, and OS =
concepts like Virtualization. I hope they will be useful while contributing=
 to the community, I am willing to learn with your help &amp; guidance. :)<=
/div><div><br></div><div>Request to link me to some pages/docs that I am su=
pposed to read to help me setup the environment and start contributing, &am=
p; a few beginner bugs that I can try my hand at.</div><div><br></div><div>=
Sincerely,</div><div>Lasya V =C2=A0=C2=A0</div></div>

--001a113f1e64b9dc2205202d19d6--


--===============4259517270583981467==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

--===============4259517270583981467==--


From mirageos-devel-bounces@lists.xenproject.org Mon Sep 21 12:37:57 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 21 Sep 2015 12:37:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1Ze0Lu-0000YQ-P6; Mon, 21 Sep 2015 12:37:50 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <anil@recoil.org>) id 1Ze0Lt-0000YK-Tg
	for mirageos-devel@lists.xenproject.org; Mon, 21 Sep 2015 12:37:50 +0000
Received: from [85.158.137.68] by server-16.bemta-3.messagelabs.com id
	3B/04-03763-D1AFFF55; Mon, 21 Sep 2015 12:37:49 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-15.tower-31.messagelabs.com!1442839068!46048161!1
X-Originating-IP: [5.153.225.51]
X-SpamReason: No, hits=0.2 required=7.0 tests=RCVD_ILLEGAL_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 1610 invoked from network); 21 Sep 2015 12:37:48 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-15.tower-31.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 21 Sep 2015 12:37:48 -0000
Received: from flick.home (AOrleans-656-1-199-97.w90-63.abo.wanadoo.fr
	[90.63.106.97])
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id 26681764
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO
	for <mirageos-devel@lists.xenproject.org>;
	Mon, 21 Sep 2015 13:37:47 +0100 (BST)
From: Anil Madhavapeddy <anil@recoil.org>
Date: Mon, 21 Sep 2015 14:37:46 +0200
References: <20150921111519.GB6067@nodbug.lucina.net>
To: mirageos-devel <mirageos-devel@lists.xenproject.org>
Message-Id: <878E727B-ACC4-4F15-B0A4-8139DB1CF78A@recoil.org>
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\))
X-Mailer: Apple Mail (2.2104)
Subject: [MirageOS-devel] Fwd: Xen Summit 2015 talk on deploying software
	with Rumprun
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org



> Begin forwarded message:
> 
> From: Martin Lucina <martin@lucina.net>
> Subject: Xen Summit 2015 talk on deploying software with Rumprun
> Date: 21 September 2015 13:15:19 CEST
> To: rumpkernel-users@freelists.org
> Reply-To: martin@lucina.net
> 
> Hi all,
> 
> while I was on holiday the 2nd batch of videos from the Xen Summit in
> august showed up, which includes my talk "Deploying Real-World Software
> Today as Unikernels on Xen with Rumprun":
> 
> https://www.youtube.com/watch?v=2v-ItlQ324I
> 
> The main highlight of the talk (for me) is showing how to deploy the full
> "RAMP" stack (Nginx + MySQL + PHP running Roundcube webmail).
> 
> Note that audio starts at 02:22 in the video.
> 
> I've also added the talk to the relevant wiki page:
> 
> https://github.com/rumpkernel/wiki/wiki/Info%3A-Publications-and-Talks#talks
> 
> Martin
> 


_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Mon Sep 21 12:37:57 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 21 Sep 2015 12:37:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1Ze0Lu-0000YQ-P6; Mon, 21 Sep 2015 12:37:50 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <anil@recoil.org>) id 1Ze0Lt-0000YK-Tg
	for mirageos-devel@lists.xenproject.org; Mon, 21 Sep 2015 12:37:50 +0000
Received: from [85.158.137.68] by server-16.bemta-3.messagelabs.com id
	3B/04-03763-D1AFFF55; Mon, 21 Sep 2015 12:37:49 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-15.tower-31.messagelabs.com!1442839068!46048161!1
X-Originating-IP: [5.153.225.51]
X-SpamReason: No, hits=0.2 required=7.0 tests=RCVD_ILLEGAL_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 1610 invoked from network); 21 Sep 2015 12:37:48 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-15.tower-31.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 21 Sep 2015 12:37:48 -0000
Received: from flick.home (AOrleans-656-1-199-97.w90-63.abo.wanadoo.fr
	[90.63.106.97])
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id 26681764
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO
	for <mirageos-devel@lists.xenproject.org>;
	Mon, 21 Sep 2015 13:37:47 +0100 (BST)
From: Anil Madhavapeddy <anil@recoil.org>
Date: Mon, 21 Sep 2015 14:37:46 +0200
References: <20150921111519.GB6067@nodbug.lucina.net>
To: mirageos-devel <mirageos-devel@lists.xenproject.org>
Message-Id: <878E727B-ACC4-4F15-B0A4-8139DB1CF78A@recoil.org>
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\))
X-Mailer: Apple Mail (2.2104)
Subject: [MirageOS-devel] Fwd: Xen Summit 2015 talk on deploying software
	with Rumprun
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org



> Begin forwarded message:
> 
> From: Martin Lucina <martin@lucina.net>
> Subject: Xen Summit 2015 talk on deploying software with Rumprun
> Date: 21 September 2015 13:15:19 CEST
> To: rumpkernel-users@freelists.org
> Reply-To: martin@lucina.net
> 
> Hi all,
> 
> while I was on holiday the 2nd batch of videos from the Xen Summit in
> august showed up, which includes my talk "Deploying Real-World Software
> Today as Unikernels on Xen with Rumprun":
> 
> https://www.youtube.com/watch?v=2v-ItlQ324I
> 
> The main highlight of the talk (for me) is showing how to deploy the full
> "RAMP" stack (Nginx + MySQL + PHP running Roundcube webmail).
> 
> Note that audio starts at 02:22 in the video.
> 
> I've also added the talk to the relevant wiki page:
> 
> https://github.com/rumpkernel/wiki/wiki/Info%3A-Publications-and-Talks#talks
> 
> Martin
> 


_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Mon Sep 21 23:26:21 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 21 Sep 2015 23:26:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZeATL-0005xg-Aq; Mon, 21 Sep 2015 23:26:11 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mindy@somerandomidiot.com>) id 1ZeATJ-0005xb-PF
	for mirageos-devel@lists.xenproject.org; Mon, 21 Sep 2015 23:26:09 +0000
Received: from [85.158.139.211] by server-9.bemta-5.messagelabs.com id
	7A/C7-30270-11290065; Mon, 21 Sep 2015 23:26:09 +0000
X-Env-Sender: mindy@somerandomidiot.com
X-Msg-Ref: server-11.tower-206.messagelabs.com!1442877967!32619442!1
X-Originating-IP: [217.70.183.198]
X-SpamReason: No, hits=1.1 required=7.0 tests=BODY_RANDOM_LONG,
	HTML_40_50,HTML_MESSAGE
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 18246 invoked from network); 21 Sep 2015 23:26:07 -0000
Received: from relay6-d.mail.gandi.net (HELO relay6-d.mail.gandi.net)
	(217.70.183.198)
	by server-11.tower-206.messagelabs.com with DHE-RSA-AES256-SHA
	encrypted SMTP; 21 Sep 2015 23:26:07 -0000
Received: from mfilter26-d.gandi.net (mfilter26-d.gandi.net [217.70.178.154])
	by relay6-d.mail.gandi.net (Postfix) with ESMTP id E67CCFB877
	for <mirageos-devel@lists.xenproject.org>;
	Tue, 22 Sep 2015 01:26:06 +0200 (CEST)
X-Virus-Scanned: Debian amavisd-new at mfilter26-d.gandi.net
Received: from relay6-d.mail.gandi.net ([IPv6:::ffff:217.70.183.198])
	by mfilter26-d.gandi.net (mfilter26-d.gandi.net [::ffff:10.0.15.180])
	(amavisd-new, port 10024)
	with ESMTP id fialxlgqsmDd for <mirageos-devel@lists.xenproject.org>;
	Tue, 22 Sep 2015 01:26:05 +0200 (CEST)
X-Originating-IP: 24.240.10.35
Received: from [192.168.1.29] (24-240-10-35.dhcp.mdsn.wi.charter.com
	[24.240.10.35]) (Authenticated sender: guybrush@somerandomidiot.com)
	by relay6-d.mail.gandi.net (Postfix) with ESMTPSA id 3C217FB874
	for <mirageos-devel@lists.xenproject.org>;
	Tue, 22 Sep 2015 01:26:04 +0200 (CEST)
Message-ID: <56009188.1070102@somerandomidiot.com>
Date: Mon, 21 Sep 2015 18:23:52 -0500
From: Mindy <mindy@somerandomidiot.com>
User-Agent: Mozilla/5.0 (X11; Linux x86_64;
	rv:31.0) Gecko/20100101 Thunderbird/31.8.0
MIME-Version: 1.0
To: mirageos-devel@lists.xenproject.org
References: <CAAbK429srd4r7Kp10nPK5vndcZYLoXOsh9W=K_E4mpKVrVpZXA@mail.gmail.com>
In-Reply-To: <CAAbK429srd4r7Kp10nPK5vndcZYLoXOsh9W=K_E4mpKVrVpZXA@mail.gmail.com>
Subject: Re: [MirageOS-devel] Getting Started
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============4928056978124821672=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

This is a multi-part message in MIME format.
--===============4928056978124821672==
Content-Type: multipart/alternative;
 boundary="------------060005050607090502090309"

This is a multi-part message in MIME format.
--------------060005050607090502090309
Content-Type: text/plain; charset=windows-1252; format=flowed
Content-Transfer-Encoding: 7bit

Hi Lasya,

Glad to hear you're interested in MirageOS!  Here's a short list of 
links you may find helpful in getting started.

The documentation page of the MirageOS website ( https://mirage.io/docs/ 
) has a list of links for getting started, the first of which is here: 
https://mirage.io/wiki/install .  A quick guide to contributing is 
available here: https://mirage.io/wiki/contributing .

Any fixes for unclear or confusing bits of text you find in the above 
documents can be submitted as pull requests to the mirage-www repository 
at https://github.com/mirage/mirage-www , and would make excellent 
contributions.

You may be interested in the list of "pioneer projects": 
https://github.com/mirage/mirage-www/wiki/Pioneer-Projects .  The 
projects listed are too large for a first contribution of the type 
requested by (for example) the Outreachy application process, but some 
of are approximately the right size for the internship itself.

Many known issues in MirageOS are listed via the GitHub issue tracker 
for the `mirage` tool: https://github.com/mirage/mirage/issues .  There 
are others on the repositories for specific libraries (e.g. the 
mirage-tcpip repository issue tracker at 
https://github.com/mirage/mirage-tcpip ).  We don't have a nice way to 
aggregate all open issues at the moment as far as I know (but someone 
please correct me if I'm wrong!)

Cheers,
Mindy Preston

On 09/20/2015 07:42 AM, Lasya Venneti wrote:
> Hi all,
>
> I'm Lasya, a student pursuing Computer Science Engineering from 
> IIIT-H, Hyderabad, India.
>
> I wish to get started with contributing to Mirage OS. I have 
> conceptual knowledge about Computer system architecture, and OS 
> concepts like Virtualization. I hope they will be useful while 
> contributing to the community, I am willing to learn with your help & 
> guidance. :)
>
> Request to link me to some pages/docs that I am supposed to read to 
> help me setup the environment and start contributing, & a few beginner 
> bugs that I can try my hand at.
>
> Sincerely,
> Lasya V
>
>
> _______________________________________________
> MirageOS-devel mailing list
> MirageOS-devel@lists.xenproject.org
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel


--------------060005050607090502090309
Content-Type: text/html; charset=windows-1252
Content-Transfer-Encoding: quoted-printable

<html>
  <head>
    <meta content=3D"text/html; charset=3Dwindows-1252"
      http-equiv=3D"Content-Type">
  </head>
  <body text=3D"#000000" bgcolor=3D"#FFFFFF">
    Hi Lasya,<br>
    <br>
    Glad to hear you're interested in MirageOS!=A0 Here's a short list of
    links you may find helpful in getting started.<br>
    <br>
    The documentation page of the MirageOS website (
    <a class=3D"moz-txt-link-freetext" href=3D"https://mirage.io/docs/">h=
ttps://mirage.io/docs/</a> ) has a list of links for getting started,
    the first of which is here: <a class=3D"moz-txt-link-freetext" href=3D=
"https://mirage.io/wiki/install">https://mirage.io/wiki/install</a> .=A0 =
A
    quick guide to contributing is available here:
    <a class=3D"moz-txt-link-freetext" href=3D"https://mirage.io/wiki/con=
tributing">https://mirage.io/wiki/contributing</a> .<br>
    <br>
    Any fixes for unclear or confusing bits of text you find in the
    above documents can be submitted as pull requests to the mirage-www
    repository at <a class=3D"moz-txt-link-freetext" href=3D"https://gith=
ub.com/mirage/mirage-www">https://github.com/mirage/mirage-www</a> , and =
would make
    excellent contributions.<br>
    <br>
    You may be interested in the list of "pioneer projects":
    <a class=3D"moz-txt-link-freetext" href=3D"https://github.com/mirage/=
mirage-www/wiki/Pioneer-Projects">https://github.com/mirage/mirage-www/wi=
ki/Pioneer-Projects</a> .=A0 The
    projects listed are too large for a first contribution of the type
    requested by (for example) the Outreachy application process, but
    some of are approximately the right size for the internship itself.<b=
r>
    <br>
    Many known issues in MirageOS are listed via the GitHub issue
    tracker for the `mirage` tool:
    <a class=3D"moz-txt-link-freetext" href=3D"https://github.com/mirage/=
mirage/issues">https://github.com/mirage/mirage/issues</a> .=A0 There are=
 others on the
    repositories for specific libraries (e.g. the mirage-tcpip
    repository issue tracker at <a class=3D"moz-txt-link-freetext" href=3D=
"https://github.com/mirage/mirage-tcpip">https://github.com/mirage/mirage=
-tcpip</a>
    ).=A0 We don't have a nice way to aggregate all open issues at the
    moment as far as I know (but someone please correct me if I'm
    wrong!)<br>
    <br>
    Cheers,<br>
    Mindy Preston<br>
    <br>
    <div class=3D"moz-cite-prefix">On 09/20/2015 07:42 AM, Lasya Venneti
      wrote:<br>
    </div>
    <blockquote
cite=3D"mid:CAAbK429srd4r7Kp10nPK5vndcZYLoXOsh9W=3DK_E4mpKVrVpZXA@mail.gm=
ail.com"
      type=3D"cite">
      <div dir=3D"ltr">Hi all,=A0
        <div><br>
        </div>
        <div>I'm Lasya, a student pursuing Computer Science Engineering
          from IIIT-H, Hyderabad, India.=A0</div>
        <div><br>
        </div>
        <div>I wish to get started with contributing to Mirage OS. I
          have conceptual knowledge about Computer system architecture,
          and OS concepts like Virtualization. I hope they will be
          useful while contributing to the community, I am willing to
          learn with your help &amp; guidance. :)</div>
        <div><br>
        </div>
        <div>Request to link me to some pages/docs that I am supposed to
          read to help me setup the environment and start contributing,
          &amp; a few beginner bugs that I can try my hand at.</div>
        <div><br>
        </div>
        <div>Sincerely,</div>
        <div>Lasya V =A0=A0</div>
      </div>
      <br>
      <fieldset class=3D"mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap=3D"">_______________________________________________
MirageOS-devel mailing list
<a class=3D"moz-txt-link-abbreviated" href=3D"mailto:MirageOS-devel@lists=
.xenproject.org">MirageOS-devel@lists.xenproject.org</a>
<a class=3D"moz-txt-link-freetext" href=3D"http://lists.xenproject.org/cg=
i-bin/mailman/listinfo/mirageos-devel">http://lists.xenproject.org/cgi-bi=
n/mailman/listinfo/mirageos-devel</a>
</pre>
    </blockquote>
    <br>
  </body>
</html>

--------------060005050607090502090309--


--===============4928056978124821672==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

--===============4928056978124821672==--


From mirageos-devel-bounces@lists.xenproject.org Mon Sep 21 23:26:21 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 21 Sep 2015 23:26:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZeATL-0005xg-Aq; Mon, 21 Sep 2015 23:26:11 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mindy@somerandomidiot.com>) id 1ZeATJ-0005xb-PF
	for mirageos-devel@lists.xenproject.org; Mon, 21 Sep 2015 23:26:09 +0000
Received: from [85.158.139.211] by server-9.bemta-5.messagelabs.com id
	7A/C7-30270-11290065; Mon, 21 Sep 2015 23:26:09 +0000
X-Env-Sender: mindy@somerandomidiot.com
X-Msg-Ref: server-11.tower-206.messagelabs.com!1442877967!32619442!1
X-Originating-IP: [217.70.183.198]
X-SpamReason: No, hits=1.1 required=7.0 tests=BODY_RANDOM_LONG,
	HTML_40_50,HTML_MESSAGE
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 18246 invoked from network); 21 Sep 2015 23:26:07 -0000
Received: from relay6-d.mail.gandi.net (HELO relay6-d.mail.gandi.net)
	(217.70.183.198)
	by server-11.tower-206.messagelabs.com with DHE-RSA-AES256-SHA
	encrypted SMTP; 21 Sep 2015 23:26:07 -0000
Received: from mfilter26-d.gandi.net (mfilter26-d.gandi.net [217.70.178.154])
	by relay6-d.mail.gandi.net (Postfix) with ESMTP id E67CCFB877
	for <mirageos-devel@lists.xenproject.org>;
	Tue, 22 Sep 2015 01:26:06 +0200 (CEST)
X-Virus-Scanned: Debian amavisd-new at mfilter26-d.gandi.net
Received: from relay6-d.mail.gandi.net ([IPv6:::ffff:217.70.183.198])
	by mfilter26-d.gandi.net (mfilter26-d.gandi.net [::ffff:10.0.15.180])
	(amavisd-new, port 10024)
	with ESMTP id fialxlgqsmDd for <mirageos-devel@lists.xenproject.org>;
	Tue, 22 Sep 2015 01:26:05 +0200 (CEST)
X-Originating-IP: 24.240.10.35
Received: from [192.168.1.29] (24-240-10-35.dhcp.mdsn.wi.charter.com
	[24.240.10.35]) (Authenticated sender: guybrush@somerandomidiot.com)
	by relay6-d.mail.gandi.net (Postfix) with ESMTPSA id 3C217FB874
	for <mirageos-devel@lists.xenproject.org>;
	Tue, 22 Sep 2015 01:26:04 +0200 (CEST)
Message-ID: <56009188.1070102@somerandomidiot.com>
Date: Mon, 21 Sep 2015 18:23:52 -0500
From: Mindy <mindy@somerandomidiot.com>
User-Agent: Mozilla/5.0 (X11; Linux x86_64;
	rv:31.0) Gecko/20100101 Thunderbird/31.8.0
MIME-Version: 1.0
To: mirageos-devel@lists.xenproject.org
References: <CAAbK429srd4r7Kp10nPK5vndcZYLoXOsh9W=K_E4mpKVrVpZXA@mail.gmail.com>
In-Reply-To: <CAAbK429srd4r7Kp10nPK5vndcZYLoXOsh9W=K_E4mpKVrVpZXA@mail.gmail.com>
Subject: Re: [MirageOS-devel] Getting Started
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============4928056978124821672=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

This is a multi-part message in MIME format.
--===============4928056978124821672==
Content-Type: multipart/alternative;
 boundary="------------060005050607090502090309"

This is a multi-part message in MIME format.
--------------060005050607090502090309
Content-Type: text/plain; charset=windows-1252; format=flowed
Content-Transfer-Encoding: 7bit

Hi Lasya,

Glad to hear you're interested in MirageOS!  Here's a short list of 
links you may find helpful in getting started.

The documentation page of the MirageOS website ( https://mirage.io/docs/ 
) has a list of links for getting started, the first of which is here: 
https://mirage.io/wiki/install .  A quick guide to contributing is 
available here: https://mirage.io/wiki/contributing .

Any fixes for unclear or confusing bits of text you find in the above 
documents can be submitted as pull requests to the mirage-www repository 
at https://github.com/mirage/mirage-www , and would make excellent 
contributions.

You may be interested in the list of "pioneer projects": 
https://github.com/mirage/mirage-www/wiki/Pioneer-Projects .  The 
projects listed are too large for a first contribution of the type 
requested by (for example) the Outreachy application process, but some 
of are approximately the right size for the internship itself.

Many known issues in MirageOS are listed via the GitHub issue tracker 
for the `mirage` tool: https://github.com/mirage/mirage/issues .  There 
are others on the repositories for specific libraries (e.g. the 
mirage-tcpip repository issue tracker at 
https://github.com/mirage/mirage-tcpip ).  We don't have a nice way to 
aggregate all open issues at the moment as far as I know (but someone 
please correct me if I'm wrong!)

Cheers,
Mindy Preston

On 09/20/2015 07:42 AM, Lasya Venneti wrote:
> Hi all,
>
> I'm Lasya, a student pursuing Computer Science Engineering from 
> IIIT-H, Hyderabad, India.
>
> I wish to get started with contributing to Mirage OS. I have 
> conceptual knowledge about Computer system architecture, and OS 
> concepts like Virtualization. I hope they will be useful while 
> contributing to the community, I am willing to learn with your help & 
> guidance. :)
>
> Request to link me to some pages/docs that I am supposed to read to 
> help me setup the environment and start contributing, & a few beginner 
> bugs that I can try my hand at.
>
> Sincerely,
> Lasya V
>
>
> _______________________________________________
> MirageOS-devel mailing list
> MirageOS-devel@lists.xenproject.org
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel


--------------060005050607090502090309
Content-Type: text/html; charset=windows-1252
Content-Transfer-Encoding: quoted-printable

<html>
  <head>
    <meta content=3D"text/html; charset=3Dwindows-1252"
      http-equiv=3D"Content-Type">
  </head>
  <body text=3D"#000000" bgcolor=3D"#FFFFFF">
    Hi Lasya,<br>
    <br>
    Glad to hear you're interested in MirageOS!=A0 Here's a short list of
    links you may find helpful in getting started.<br>
    <br>
    The documentation page of the MirageOS website (
    <a class=3D"moz-txt-link-freetext" href=3D"https://mirage.io/docs/">h=
ttps://mirage.io/docs/</a> ) has a list of links for getting started,
    the first of which is here: <a class=3D"moz-txt-link-freetext" href=3D=
"https://mirage.io/wiki/install">https://mirage.io/wiki/install</a> .=A0 =
A
    quick guide to contributing is available here:
    <a class=3D"moz-txt-link-freetext" href=3D"https://mirage.io/wiki/con=
tributing">https://mirage.io/wiki/contributing</a> .<br>
    <br>
    Any fixes for unclear or confusing bits of text you find in the
    above documents can be submitted as pull requests to the mirage-www
    repository at <a class=3D"moz-txt-link-freetext" href=3D"https://gith=
ub.com/mirage/mirage-www">https://github.com/mirage/mirage-www</a> , and =
would make
    excellent contributions.<br>
    <br>
    You may be interested in the list of "pioneer projects":
    <a class=3D"moz-txt-link-freetext" href=3D"https://github.com/mirage/=
mirage-www/wiki/Pioneer-Projects">https://github.com/mirage/mirage-www/wi=
ki/Pioneer-Projects</a> .=A0 The
    projects listed are too large for a first contribution of the type
    requested by (for example) the Outreachy application process, but
    some of are approximately the right size for the internship itself.<b=
r>
    <br>
    Many known issues in MirageOS are listed via the GitHub issue
    tracker for the `mirage` tool:
    <a class=3D"moz-txt-link-freetext" href=3D"https://github.com/mirage/=
mirage/issues">https://github.com/mirage/mirage/issues</a> .=A0 There are=
 others on the
    repositories for specific libraries (e.g. the mirage-tcpip
    repository issue tracker at <a class=3D"moz-txt-link-freetext" href=3D=
"https://github.com/mirage/mirage-tcpip">https://github.com/mirage/mirage=
-tcpip</a>
    ).=A0 We don't have a nice way to aggregate all open issues at the
    moment as far as I know (but someone please correct me if I'm
    wrong!)<br>
    <br>
    Cheers,<br>
    Mindy Preston<br>
    <br>
    <div class=3D"moz-cite-prefix">On 09/20/2015 07:42 AM, Lasya Venneti
      wrote:<br>
    </div>
    <blockquote
cite=3D"mid:CAAbK429srd4r7Kp10nPK5vndcZYLoXOsh9W=3DK_E4mpKVrVpZXA@mail.gm=
ail.com"
      type=3D"cite">
      <div dir=3D"ltr">Hi all,=A0
        <div><br>
        </div>
        <div>I'm Lasya, a student pursuing Computer Science Engineering
          from IIIT-H, Hyderabad, India.=A0</div>
        <div><br>
        </div>
        <div>I wish to get started with contributing to Mirage OS. I
          have conceptual knowledge about Computer system architecture,
          and OS concepts like Virtualization. I hope they will be
          useful while contributing to the community, I am willing to
          learn with your help &amp; guidance. :)</div>
        <div><br>
        </div>
        <div>Request to link me to some pages/docs that I am supposed to
          read to help me setup the environment and start contributing,
          &amp; a few beginner bugs that I can try my hand at.</div>
        <div><br>
        </div>
        <div>Sincerely,</div>
        <div>Lasya V =A0=A0</div>
      </div>
      <br>
      <fieldset class=3D"mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap=3D"">_______________________________________________
MirageOS-devel mailing list
<a class=3D"moz-txt-link-abbreviated" href=3D"mailto:MirageOS-devel@lists=
.xenproject.org">MirageOS-devel@lists.xenproject.org</a>
<a class=3D"moz-txt-link-freetext" href=3D"http://lists.xenproject.org/cg=
i-bin/mailman/listinfo/mirageos-devel">http://lists.xenproject.org/cgi-bi=
n/mailman/listinfo/mirageos-devel</a>
</pre>
    </blockquote>
    <br>
  </body>
</html>

--------------060005050607090502090309--


--===============4928056978124821672==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

--===============4928056978124821672==--


From mirageos-devel-bounces@lists.xenproject.org Tue Sep 22 08:06:54 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 22 Sep 2015 08:06:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZeIb4-0005Ax-Gc; Tue, 22 Sep 2015 08:06:42 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <comethalley61@gmail.com>) id 1ZeIb3-0005As-6d
	for mirageos-devel@lists.xenproject.org; Tue, 22 Sep 2015 08:06:41 +0000
Received: from [193.109.254.147] by server-3.bemta-14.messagelabs.com id
	8A/23-25435-01C01065; Tue, 22 Sep 2015 08:06:40 +0000
X-Env-Sender: comethalley61@gmail.com
X-Msg-Ref: server-16.tower-27.messagelabs.com!1442909196!19524698!1
X-Originating-IP: [209.85.213.176]
X-SpamReason: No, hits=1.4 required=7.0 tests=BODY_RANDOM_LONG,
	HTML_40_50,HTML_MESSAGE,RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 14888 invoked from network); 22 Sep 2015 08:06:37 -0000
Received: from mail-ig0-f176.google.com (HELO mail-ig0-f176.google.com)
	(209.85.213.176)
	by server-16.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	22 Sep 2015 08:06:37 -0000
Received: by igcpb10 with SMTP id pb10so94973304igc.1
	for <mirageos-devel@lists.xenproject.org>;
	Tue, 22 Sep 2015 01:06:36 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:in-reply-to:references:date:message-id:subject:from:to
	:cc:content-type;
	bh=tOiyI5DPntMJWpPus4qtRh18uJMP3kRYlo9Px77KnME=;
	b=MjQQu8p3hEm+9hfEwV6qS9NXDRDvfiQIxEzJ96lbfRwvwHdUR0siIASMgzHog0FX0M
	QzAZpNP39kv3LctjvYfROyCRN7kn/UIb4BIjwAMSdFv3agRCg0BXvtoc+o7Ri/Tc+5o9
	Gc5MLOqWrmO2nJRS87gWmQ/Pi/blUHfot45p2wQi0LzMbCB3GlD+Y83AZDKMhJCpSTHs
	nhtmQwGc7k3AmtRks4YLGOMWRJnngpRyHfCdK6zgO2UhU4ehQsHp2BHZBVazUqaJ7hKN
	/pHGFGYF8EGzujOveG9XGnzw8slikJAc/X7bWrTBtsW2UWSgllGr7hX0IAvcUtEPFHp1
	hr4w==
MIME-Version: 1.0
X-Received: by 10.50.61.243 with SMTP id t19mr14651273igr.22.1442909196642;
	Tue, 22 Sep 2015 01:06:36 -0700 (PDT)
Received: by 10.107.180.149 with HTTP; Tue, 22 Sep 2015 01:06:36 -0700 (PDT)
In-Reply-To: <56009188.1070102@somerandomidiot.com>
References: <CAAbK429srd4r7Kp10nPK5vndcZYLoXOsh9W=K_E4mpKVrVpZXA@mail.gmail.com>
	<56009188.1070102@somerandomidiot.com>
Date: Tue, 22 Sep 2015 13:36:36 +0530
Message-ID: <CAAbK429psAZAncgBwHP4t=hcBB104dY5T+Mefn0ze-SEYz4dDA@mail.gmail.com>
From: Lasya Venneti <comethalley61@gmail.com>
To: Mindy <mindy@somerandomidiot.com>
Cc: mirageos-devel@lists.xenproject.org
Subject: Re: [MirageOS-devel] Getting Started
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============0285248315114984187=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============0285248315114984187==
Content-Type: multipart/alternative; boundary=047d7bdc0a4e1bee320520517a8a

--047d7bdc0a4e1bee320520517a8a
Content-Type: text/plain; charset=UTF-8

Dear Ma'am,

Thanks for such an informative mail! I will get started with contributing
right away!

Sincerely,
Lasya V

On 22 September 2015 at 04:53, Mindy <mindy@somerandomidiot.com> wrote:

> Hi Lasya,
>
> Glad to hear you're interested in MirageOS!  Here's a short list of links
> you may find helpful in getting started.
>
> The documentation page of the MirageOS website ( https://mirage.io/docs/
> ) has a list of links for getting started, the first of which is here:
> https://mirage.io/wiki/install .  A quick guide to contributing is
> available here: https://mirage.io/wiki/contributing .
>
> Any fixes for unclear or confusing bits of text you find in the above
> documents can be submitted as pull requests to the mirage-www repository at
> https://github.com/mirage/mirage-www , and would make excellent
> contributions.
>
> You may be interested in the list of "pioneer projects":
> https://github.com/mirage/mirage-www/wiki/Pioneer-Projects .  The
> projects listed are too large for a first contribution of the type
> requested by (for example) the Outreachy application process, but some of
> are approximately the right size for the internship itself.
>
> Many known issues in MirageOS are listed via the GitHub issue tracker for
> the `mirage` tool: https://github.com/mirage/mirage/issues .  There are
> others on the repositories for specific libraries (e.g. the mirage-tcpip
> repository issue tracker at https://github.com/mirage/mirage-tcpip ).  We
> don't have a nice way to aggregate all open issues at the moment as far as
> I know (but someone please correct me if I'm wrong!)
>
> Cheers,
> Mindy Preston
>
>
> On 09/20/2015 07:42 AM, Lasya Venneti wrote:
>
> Hi all,
>
> I'm Lasya, a student pursuing Computer Science Engineering from IIIT-H,
> Hyderabad, India.
>
> I wish to get started with contributing to Mirage OS. I have conceptual
> knowledge about Computer system architecture, and OS concepts like
> Virtualization. I hope they will be useful while contributing to the
> community, I am willing to learn with your help & guidance. :)
>
> Request to link me to some pages/docs that I am supposed to read to help
> me setup the environment and start contributing, & a few beginner bugs that
> I can try my hand at.
>
> Sincerely,
> Lasya V
>
>
> _______________________________________________
> MirageOS-devel mailing listMirageOS-devel@lists.xenproject.orghttp://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
>
>
>
> _______________________________________________
> MirageOS-devel mailing list
> MirageOS-devel@lists.xenproject.org
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
>
>

--047d7bdc0a4e1bee320520517a8a
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Dear Ma&#39;am,<div><br></div><div>Thanks for such an info=
rmative mail! I will get started with contributing right away!=C2=A0</div><=
div><br></div><div>Sincerely,</div><div>Lasya V=C2=A0</div></div><div class=
=3D"gmail_extra"><br><div class=3D"gmail_quote">On 22 September 2015 at 04:=
53, Mindy <span dir=3D"ltr">&lt;<a href=3D"mailto:mindy@somerandomidiot.com=
" target=3D"_blank">mindy@somerandomidiot.com</a>&gt;</span> wrote:<br><blo=
ckquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #c=
cc solid;padding-left:1ex">
 =20
   =20
 =20
  <div text=3D"#000000" bgcolor=3D"#FFFFFF">
    Hi Lasya,<br>
    <br>
    Glad to hear you&#39;re interested in MirageOS!=C2=A0 Here&#39;s a shor=
t list of
    links you may find helpful in getting started.<br>
    <br>
    The documentation page of the MirageOS website (
    <a href=3D"https://mirage.io/docs/" target=3D"_blank">https://mirage.io=
/docs/</a> ) has a list of links for getting started,
    the first of which is here: <a href=3D"https://mirage.io/wiki/install" =
target=3D"_blank">https://mirage.io/wiki/install</a> .=C2=A0 A
    quick guide to contributing is available here:
    <a href=3D"https://mirage.io/wiki/contributing" target=3D"_blank">https=
://mirage.io/wiki/contributing</a> .<br>
    <br>
    Any fixes for unclear or confusing bits of text you find in the
    above documents can be submitted as pull requests to the mirage-www
    repository at <a href=3D"https://github.com/mirage/mirage-www" target=
=3D"_blank">https://github.com/mirage/mirage-www</a> , and would make
    excellent contributions.<br>
    <br>
    You may be interested in the list of &quot;pioneer projects&quot;:
    <a href=3D"https://github.com/mirage/mirage-www/wiki/Pioneer-Projects" =
target=3D"_blank">https://github.com/mirage/mirage-www/wiki/Pioneer-Project=
s</a> .=C2=A0 The
    projects listed are too large for a first contribution of the type
    requested by (for example) the Outreachy application process, but
    some of are approximately the right size for the internship itself.<br>
    <br>
    Many known issues in MirageOS are listed via the GitHub issue
    tracker for the `mirage` tool:
    <a href=3D"https://github.com/mirage/mirage/issues" target=3D"_blank">h=
ttps://github.com/mirage/mirage/issues</a> .=C2=A0 There are others on the
    repositories for specific libraries (e.g. the mirage-tcpip
    repository issue tracker at <a href=3D"https://github.com/mirage/mirage=
-tcpip" target=3D"_blank">https://github.com/mirage/mirage-tcpip</a>
    ).=C2=A0 We don&#39;t have a nice way to aggregate all open issues at t=
he
    moment as far as I know (but someone please correct me if I&#39;m
    wrong!)<br>
    <br>
    Cheers,<br>
    Mindy Preston<div><div class=3D"h5"><br>
    <br>
    <div>On 09/20/2015 07:42 AM, Lasya Venneti
      wrote:<br>
    </div>
    </div></div><blockquote type=3D"cite"><div><div class=3D"h5">
      <div dir=3D"ltr">Hi all,=C2=A0
        <div><br>
        </div>
        <div>I&#39;m Lasya, a student pursuing Computer Science Engineering
          from IIIT-H, Hyderabad, India.=C2=A0</div>
        <div><br>
        </div>
        <div>I wish to get started with contributing to Mirage OS. I
          have conceptual knowledge about Computer system architecture,
          and OS concepts like Virtualization. I hope they will be
          useful while contributing to the community, I am willing to
          learn with your help &amp; guidance. :)</div>
        <div><br>
        </div>
        <div>Request to link me to some pages/docs that I am supposed to
          read to help me setup the environment and start contributing,
          &amp; a few beginner bugs that I can try my hand at.</div>
        <div><br>
        </div>
        <div>Sincerely,</div>
        <div>Lasya V =C2=A0=C2=A0</div>
      </div>
      <br>
      <fieldset></fieldset>
      <br>
      </div></div><pre>_______________________________________________
MirageOS-devel mailing list
<a href=3D"mailto:MirageOS-devel@lists.xenproject.org" target=3D"_blank">Mi=
rageOS-devel@lists.xenproject.org</a>
<a href=3D"http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-de=
vel" target=3D"_blank">http://lists.xenproject.org/cgi-bin/mailman/listinfo=
/mirageos-devel</a>
</pre>
    </blockquote>
    <br>
  </div>

<br>_______________________________________________<br>
MirageOS-devel mailing list<br>
<a href=3D"mailto:MirageOS-devel@lists.xenproject.org">MirageOS-devel@lists=
.xenproject.org</a><br>
<a href=3D"http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-de=
vel" rel=3D"noreferrer" target=3D"_blank">http://lists.xenproject.org/cgi-b=
in/mailman/listinfo/mirageos-devel</a><br>
<br></blockquote></div><br></div>

--047d7bdc0a4e1bee320520517a8a--


--===============0285248315114984187==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

--===============0285248315114984187==--


From mirageos-devel-bounces@lists.xenproject.org Tue Sep 22 08:06:54 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 22 Sep 2015 08:06:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZeIb4-0005Ax-Gc; Tue, 22 Sep 2015 08:06:42 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <comethalley61@gmail.com>) id 1ZeIb3-0005As-6d
	for mirageos-devel@lists.xenproject.org; Tue, 22 Sep 2015 08:06:41 +0000
Received: from [193.109.254.147] by server-3.bemta-14.messagelabs.com id
	8A/23-25435-01C01065; Tue, 22 Sep 2015 08:06:40 +0000
X-Env-Sender: comethalley61@gmail.com
X-Msg-Ref: server-16.tower-27.messagelabs.com!1442909196!19524698!1
X-Originating-IP: [209.85.213.176]
X-SpamReason: No, hits=1.4 required=7.0 tests=BODY_RANDOM_LONG,
	HTML_40_50,HTML_MESSAGE,RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 14888 invoked from network); 22 Sep 2015 08:06:37 -0000
Received: from mail-ig0-f176.google.com (HELO mail-ig0-f176.google.com)
	(209.85.213.176)
	by server-16.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	22 Sep 2015 08:06:37 -0000
Received: by igcpb10 with SMTP id pb10so94973304igc.1
	for <mirageos-devel@lists.xenproject.org>;
	Tue, 22 Sep 2015 01:06:36 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:in-reply-to:references:date:message-id:subject:from:to
	:cc:content-type;
	bh=tOiyI5DPntMJWpPus4qtRh18uJMP3kRYlo9Px77KnME=;
	b=MjQQu8p3hEm+9hfEwV6qS9NXDRDvfiQIxEzJ96lbfRwvwHdUR0siIASMgzHog0FX0M
	QzAZpNP39kv3LctjvYfROyCRN7kn/UIb4BIjwAMSdFv3agRCg0BXvtoc+o7Ri/Tc+5o9
	Gc5MLOqWrmO2nJRS87gWmQ/Pi/blUHfot45p2wQi0LzMbCB3GlD+Y83AZDKMhJCpSTHs
	nhtmQwGc7k3AmtRks4YLGOMWRJnngpRyHfCdK6zgO2UhU4ehQsHp2BHZBVazUqaJ7hKN
	/pHGFGYF8EGzujOveG9XGnzw8slikJAc/X7bWrTBtsW2UWSgllGr7hX0IAvcUtEPFHp1
	hr4w==
MIME-Version: 1.0
X-Received: by 10.50.61.243 with SMTP id t19mr14651273igr.22.1442909196642;
	Tue, 22 Sep 2015 01:06:36 -0700 (PDT)
Received: by 10.107.180.149 with HTTP; Tue, 22 Sep 2015 01:06:36 -0700 (PDT)
In-Reply-To: <56009188.1070102@somerandomidiot.com>
References: <CAAbK429srd4r7Kp10nPK5vndcZYLoXOsh9W=K_E4mpKVrVpZXA@mail.gmail.com>
	<56009188.1070102@somerandomidiot.com>
Date: Tue, 22 Sep 2015 13:36:36 +0530
Message-ID: <CAAbK429psAZAncgBwHP4t=hcBB104dY5T+Mefn0ze-SEYz4dDA@mail.gmail.com>
From: Lasya Venneti <comethalley61@gmail.com>
To: Mindy <mindy@somerandomidiot.com>
Cc: mirageos-devel@lists.xenproject.org
Subject: Re: [MirageOS-devel] Getting Started
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============0285248315114984187=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============0285248315114984187==
Content-Type: multipart/alternative; boundary=047d7bdc0a4e1bee320520517a8a

--047d7bdc0a4e1bee320520517a8a
Content-Type: text/plain; charset=UTF-8

Dear Ma'am,

Thanks for such an informative mail! I will get started with contributing
right away!

Sincerely,
Lasya V

On 22 September 2015 at 04:53, Mindy <mindy@somerandomidiot.com> wrote:

> Hi Lasya,
>
> Glad to hear you're interested in MirageOS!  Here's a short list of links
> you may find helpful in getting started.
>
> The documentation page of the MirageOS website ( https://mirage.io/docs/
> ) has a list of links for getting started, the first of which is here:
> https://mirage.io/wiki/install .  A quick guide to contributing is
> available here: https://mirage.io/wiki/contributing .
>
> Any fixes for unclear or confusing bits of text you find in the above
> documents can be submitted as pull requests to the mirage-www repository at
> https://github.com/mirage/mirage-www , and would make excellent
> contributions.
>
> You may be interested in the list of "pioneer projects":
> https://github.com/mirage/mirage-www/wiki/Pioneer-Projects .  The
> projects listed are too large for a first contribution of the type
> requested by (for example) the Outreachy application process, but some of
> are approximately the right size for the internship itself.
>
> Many known issues in MirageOS are listed via the GitHub issue tracker for
> the `mirage` tool: https://github.com/mirage/mirage/issues .  There are
> others on the repositories for specific libraries (e.g. the mirage-tcpip
> repository issue tracker at https://github.com/mirage/mirage-tcpip ).  We
> don't have a nice way to aggregate all open issues at the moment as far as
> I know (but someone please correct me if I'm wrong!)
>
> Cheers,
> Mindy Preston
>
>
> On 09/20/2015 07:42 AM, Lasya Venneti wrote:
>
> Hi all,
>
> I'm Lasya, a student pursuing Computer Science Engineering from IIIT-H,
> Hyderabad, India.
>
> I wish to get started with contributing to Mirage OS. I have conceptual
> knowledge about Computer system architecture, and OS concepts like
> Virtualization. I hope they will be useful while contributing to the
> community, I am willing to learn with your help & guidance. :)
>
> Request to link me to some pages/docs that I am supposed to read to help
> me setup the environment and start contributing, & a few beginner bugs that
> I can try my hand at.
>
> Sincerely,
> Lasya V
>
>
> _______________________________________________
> MirageOS-devel mailing listMirageOS-devel@lists.xenproject.orghttp://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
>
>
>
> _______________________________________________
> MirageOS-devel mailing list
> MirageOS-devel@lists.xenproject.org
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
>
>

--047d7bdc0a4e1bee320520517a8a
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Dear Ma&#39;am,<div><br></div><div>Thanks for such an info=
rmative mail! I will get started with contributing right away!=C2=A0</div><=
div><br></div><div>Sincerely,</div><div>Lasya V=C2=A0</div></div><div class=
=3D"gmail_extra"><br><div class=3D"gmail_quote">On 22 September 2015 at 04:=
53, Mindy <span dir=3D"ltr">&lt;<a href=3D"mailto:mindy@somerandomidiot.com=
" target=3D"_blank">mindy@somerandomidiot.com</a>&gt;</span> wrote:<br><blo=
ckquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #c=
cc solid;padding-left:1ex">
 =20
   =20
 =20
  <div text=3D"#000000" bgcolor=3D"#FFFFFF">
    Hi Lasya,<br>
    <br>
    Glad to hear you&#39;re interested in MirageOS!=C2=A0 Here&#39;s a shor=
t list of
    links you may find helpful in getting started.<br>
    <br>
    The documentation page of the MirageOS website (
    <a href=3D"https://mirage.io/docs/" target=3D"_blank">https://mirage.io=
/docs/</a> ) has a list of links for getting started,
    the first of which is here: <a href=3D"https://mirage.io/wiki/install" =
target=3D"_blank">https://mirage.io/wiki/install</a> .=C2=A0 A
    quick guide to contributing is available here:
    <a href=3D"https://mirage.io/wiki/contributing" target=3D"_blank">https=
://mirage.io/wiki/contributing</a> .<br>
    <br>
    Any fixes for unclear or confusing bits of text you find in the
    above documents can be submitted as pull requests to the mirage-www
    repository at <a href=3D"https://github.com/mirage/mirage-www" target=
=3D"_blank">https://github.com/mirage/mirage-www</a> , and would make
    excellent contributions.<br>
    <br>
    You may be interested in the list of &quot;pioneer projects&quot;:
    <a href=3D"https://github.com/mirage/mirage-www/wiki/Pioneer-Projects" =
target=3D"_blank">https://github.com/mirage/mirage-www/wiki/Pioneer-Project=
s</a> .=C2=A0 The
    projects listed are too large for a first contribution of the type
    requested by (for example) the Outreachy application process, but
    some of are approximately the right size for the internship itself.<br>
    <br>
    Many known issues in MirageOS are listed via the GitHub issue
    tracker for the `mirage` tool:
    <a href=3D"https://github.com/mirage/mirage/issues" target=3D"_blank">h=
ttps://github.com/mirage/mirage/issues</a> .=C2=A0 There are others on the
    repositories for specific libraries (e.g. the mirage-tcpip
    repository issue tracker at <a href=3D"https://github.com/mirage/mirage=
-tcpip" target=3D"_blank">https://github.com/mirage/mirage-tcpip</a>
    ).=C2=A0 We don&#39;t have a nice way to aggregate all open issues at t=
he
    moment as far as I know (but someone please correct me if I&#39;m
    wrong!)<br>
    <br>
    Cheers,<br>
    Mindy Preston<div><div class=3D"h5"><br>
    <br>
    <div>On 09/20/2015 07:42 AM, Lasya Venneti
      wrote:<br>
    </div>
    </div></div><blockquote type=3D"cite"><div><div class=3D"h5">
      <div dir=3D"ltr">Hi all,=C2=A0
        <div><br>
        </div>
        <div>I&#39;m Lasya, a student pursuing Computer Science Engineering
          from IIIT-H, Hyderabad, India.=C2=A0</div>
        <div><br>
        </div>
        <div>I wish to get started with contributing to Mirage OS. I
          have conceptual knowledge about Computer system architecture,
          and OS concepts like Virtualization. I hope they will be
          useful while contributing to the community, I am willing to
          learn with your help &amp; guidance. :)</div>
        <div><br>
        </div>
        <div>Request to link me to some pages/docs that I am supposed to
          read to help me setup the environment and start contributing,
          &amp; a few beginner bugs that I can try my hand at.</div>
        <div><br>
        </div>
        <div>Sincerely,</div>
        <div>Lasya V =C2=A0=C2=A0</div>
      </div>
      <br>
      <fieldset></fieldset>
      <br>
      </div></div><pre>_______________________________________________
MirageOS-devel mailing list
<a href=3D"mailto:MirageOS-devel@lists.xenproject.org" target=3D"_blank">Mi=
rageOS-devel@lists.xenproject.org</a>
<a href=3D"http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-de=
vel" target=3D"_blank">http://lists.xenproject.org/cgi-bin/mailman/listinfo=
/mirageos-devel</a>
</pre>
    </blockquote>
    <br>
  </div>

<br>_______________________________________________<br>
MirageOS-devel mailing list<br>
<a href=3D"mailto:MirageOS-devel@lists.xenproject.org">MirageOS-devel@lists=
.xenproject.org</a><br>
<a href=3D"http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-de=
vel" rel=3D"noreferrer" target=3D"_blank">http://lists.xenproject.org/cgi-b=
in/mailman/listinfo/mirageos-devel</a><br>
<br></blockquote></div><br></div>

--047d7bdc0a4e1bee320520517a8a--


--===============0285248315114984187==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

--===============0285248315114984187==--


From mirageos-devel-bounces@lists.xenproject.org Tue Sep 22 10:24:59 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 22 Sep 2015 10:24:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZeKkk-0000KH-Eb; Tue, 22 Sep 2015 10:24:50 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <anil@recoil.org>) id 1ZeKkj-0000KB-T8
	for mirageos-devel@lists.xenproject.org; Tue, 22 Sep 2015 10:24:50 +0000
Received: from [193.109.254.147] by server-9.bemta-14.messagelabs.com id
	F3/E7-26043-17C21065; Tue, 22 Sep 2015 10:24:49 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-6.tower-27.messagelabs.com!1442917486!51947582!1
X-Originating-IP: [5.153.225.51]
X-SpamReason: No, hits=1.1 required=7.0 tests=BODY_RANDOM_LONG,
	HTML_50_60,HTML_MESSAGE,MAILTO_TO_SPAM_ADDR,RCVD_ILLEGAL_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 8109 invoked from network); 22 Sep 2015 10:24:47 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-6.tower-27.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 22 Sep 2015 10:24:47 -0000
Received: from [10.0.1.37] (AOrleans-656-1-39-10.w90-21.abo.wanadoo.fr
	[90.21.46.10])
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id d5e983c5
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Tue, 22 Sep 2015 11:24:45 +0100 (BST)
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <CAAbK429psAZAncgBwHP4t=hcBB104dY5T+Mefn0ze-SEYz4dDA@mail.gmail.com>
Date: Tue, 22 Sep 2015 12:24:42 +0200
Message-Id: <EF478C7D-4CF9-41FD-9309-A6602819AE4B@recoil.org>
References: <CAAbK429srd4r7Kp10nPK5vndcZYLoXOsh9W=K_E4mpKVrVpZXA@mail.gmail.com>
	<56009188.1070102@somerandomidiot.com>
	<CAAbK429psAZAncgBwHP4t=hcBB104dY5T+Mefn0ze-SEYz4dDA@mail.gmail.com>
To: Lasya Venneti <comethalley61@gmail.com>
X-Mailer: Apple Mail (2.2104)
Cc: mirageos-devel@lists.xenproject.org
Subject: Re: [MirageOS-devel] Getting Started
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============4554598327070144049=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org


--===============4554598327070144049==
Content-Type: multipart/alternative; boundary="Apple-Mail=_3091A47B-D28E-440A-BC14-D0350FB7EB1B"


--Apple-Mail=_3091A47B-D28E-440A-BC14-D0350FB7EB1B
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii

And above all, welcome!  Feel free to ask questions as you learn and =
explore the various components.  As Mindy notes, there's still quite a =
bit of "institutional knowledge" that hasn't been captured in our =
documentation, so patches to improve mirage-www (which is the live =
website) are most welcome, as are any pieces that you find confusing or =
difficult to get started with.

Anil

> On 22 Sep 2015, at 10:06, Lasya Venneti <comethalley61@gmail.com> =
wrote:
>=20
> Dear Ma'am,
>=20
> Thanks for such an informative mail! I will get started with =
contributing right away!=20
>=20
> Sincerely,
> Lasya V=20
>=20
> On 22 September 2015 at 04:53, Mindy <mindy@somerandomidiot.com =
<mailto:mindy@somerandomidiot.com>> wrote:
> Hi Lasya,
>=20
> Glad to hear you're interested in MirageOS!  Here's a short list of =
links you may find helpful in getting started.
>=20
> The documentation page of the MirageOS website ( =
https://mirage.io/docs/ <https://mirage.io/docs/> ) has a list of links =
for getting started, the first of which is here: =
https://mirage.io/wiki/install <https://mirage.io/wiki/install> .  A =
quick guide to contributing is available here: =
https://mirage.io/wiki/contributing =
<https://mirage.io/wiki/contributing> .
>=20
> Any fixes for unclear or confusing bits of text you find in the above =
documents can be submitted as pull requests to the mirage-www repository =
at https://github.com/mirage/mirage-www =
<https://github.com/mirage/mirage-www> , and would make excellent =
contributions.
>=20
> You may be interested in the list of "pioneer projects": =
https://github.com/mirage/mirage-www/wiki/Pioneer-Projects =
<https://github.com/mirage/mirage-www/wiki/Pioneer-Projects> .  The =
projects listed are too large for a first contribution of the type =
requested by (for example) the Outreachy application process, but some =
of are approximately the right size for the internship itself.
>=20
> Many known issues in MirageOS are listed via the GitHub issue tracker =
for the `mirage` tool: https://github.com/mirage/mirage/issues =
<https://github.com/mirage/mirage/issues> .  There are others on the =
repositories for specific libraries (e.g. the mirage-tcpip repository =
issue tracker at https://github.com/mirage/mirage-tcpip =
<https://github.com/mirage/mirage-tcpip> ).  We don't have a nice way to =
aggregate all open issues at the moment as far as I know (but someone =
please correct me if I'm wrong!)
>=20
> Cheers,
> Mindy Preston
>=20
>=20
> On 09/20/2015 07:42 AM, Lasya Venneti wrote:
>> Hi all,=20
>>=20
>> I'm Lasya, a student pursuing Computer Science Engineering from =
IIIT-H, Hyderabad, India.=20
>>=20
>> I wish to get started with contributing to Mirage OS. I have =
conceptual knowledge about Computer system architecture, and OS concepts =
like Virtualization. I hope they will be useful while contributing to =
the community, I am willing to learn with your help & guidance. :)
>>=20
>> Request to link me to some pages/docs that I am supposed to read to =
help me setup the environment and start contributing, & a few beginner =
bugs that I can try my hand at.
>>=20
>> Sincerely,
>> Lasya V  =20
>>=20
>>=20
>> _______________________________________________
>> MirageOS-devel mailing list
>> MirageOS-devel@lists.xenproject.org =
<mailto:MirageOS-devel@lists.xenproject.org>
>> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel =
<http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>
>=20
>=20
> _______________________________________________
> MirageOS-devel mailing list
> MirageOS-devel@lists.xenproject.org =
<mailto:MirageOS-devel@lists.xenproject.org>
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel =
<http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>
>=20
>=20
> _______________________________________________
> MirageOS-devel mailing list
> MirageOS-devel@lists.xenproject.org
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel


--Apple-Mail=_3091A47B-D28E-440A-BC14-D0350FB7EB1B
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=us-ascii

<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html =
charset=3Dus-ascii"></head><body style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" =
class=3D"">And above all, welcome! &nbsp;Feel free to ask questions as =
you learn and explore the various components. &nbsp;As Mindy notes, =
there's still quite a bit of "institutional knowledge" that hasn't been =
captured in our documentation, so patches to improve mirage-www (which =
is the live website) are most welcome, as are any pieces that you find =
confusing or difficult to get started with.<div class=3D""><br =
class=3D""></div><div class=3D"">Anil</div><div class=3D""><br =
class=3D""><div><blockquote type=3D"cite" class=3D""><div class=3D"">On =
22 Sep 2015, at 10:06, Lasya Venneti &lt;<a =
href=3D"mailto:comethalley61@gmail.com" =
class=3D"">comethalley61@gmail.com</a>&gt; wrote:</div><br =
class=3D"Apple-interchange-newline"><div class=3D""><div dir=3D"ltr" =
class=3D"">Dear Ma'am,<div class=3D""><br class=3D""></div><div =
class=3D"">Thanks for such an informative mail! I will get started with =
contributing right away!&nbsp;</div><div class=3D""><br =
class=3D""></div><div class=3D"">Sincerely,</div><div class=3D"">Lasya =
V&nbsp;</div></div><div class=3D"gmail_extra"><br class=3D""><div =
class=3D"gmail_quote">On 22 September 2015 at 04:53, Mindy <span =
dir=3D"ltr" class=3D"">&lt;<a href=3D"mailto:mindy@somerandomidiot.com" =
target=3D"_blank" class=3D"">mindy@somerandomidiot.com</a>&gt;</span> =
wrote:<br class=3D""><blockquote class=3D"gmail_quote" style=3D"margin:0 =
0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
 =20
   =20
 =20
  <div text=3D"#000000" bgcolor=3D"#FFFFFF" class=3D"">
    Hi Lasya,<br class=3D"">
    <br class=3D"">
    Glad to hear you're interested in MirageOS!&nbsp; Here's a short =
list of
    links you may find helpful in getting started.<br class=3D"">
    <br class=3D"">
    The documentation page of the MirageOS website (
    <a href=3D"https://mirage.io/docs/" target=3D"_blank" =
class=3D"">https://mirage.io/docs/</a> ) has a list of links for getting =
started,
    the first of which is here: <a href=3D"https://mirage.io/wiki/install"=
 target=3D"_blank" class=3D"">https://mirage.io/wiki/install</a> .&nbsp; =
A
    quick guide to contributing is available here:
    <a href=3D"https://mirage.io/wiki/contributing" target=3D"_blank" =
class=3D"">https://mirage.io/wiki/contributing</a> .<br class=3D"">
    <br class=3D"">
    Any fixes for unclear or confusing bits of text you find in the
    above documents can be submitted as pull requests to the mirage-www
    repository at <a href=3D"https://github.com/mirage/mirage-www" =
target=3D"_blank" class=3D"">https://github.com/mirage/mirage-www</a> , =
and would make
    excellent contributions.<br class=3D"">
    <br class=3D"">
    You may be interested in the list of "pioneer projects":
    <a href=3D"https://github.com/mirage/mirage-www/wiki/Pioneer-Projects"=
 target=3D"_blank" =
class=3D"">https://github.com/mirage/mirage-www/wiki/Pioneer-Projects</a> =
.&nbsp; The
    projects listed are too large for a first contribution of the type
    requested by (for example) the Outreachy application process, but
    some of are approximately the right size for the internship =
itself.<br class=3D"">
    <br class=3D"">
    Many known issues in MirageOS are listed via the GitHub issue
    tracker for the `mirage` tool:
    <a href=3D"https://github.com/mirage/mirage/issues" target=3D"_blank" =
class=3D"">https://github.com/mirage/mirage/issues</a> .&nbsp; There are =
others on the
    repositories for specific libraries (e.g. the mirage-tcpip
    repository issue tracker at <a =
href=3D"https://github.com/mirage/mirage-tcpip" target=3D"_blank" =
class=3D"">https://github.com/mirage/mirage-tcpip</a>
    ).&nbsp; We don't have a nice way to aggregate all open issues at =
the
    moment as far as I know (but someone please correct me if I'm
    wrong!)<br class=3D"">
    <br class=3D"">
    Cheers,<br class=3D"">
    Mindy Preston<div class=3D""><div class=3D"h5"><br class=3D"">
    <br class=3D"">
    <div class=3D"">On 09/20/2015 07:42 AM, Lasya Venneti
      wrote:<br class=3D"">
    </div>
    </div></div><blockquote type=3D"cite" class=3D""><div class=3D""><div =
class=3D"h5">
      <div dir=3D"ltr" class=3D"">Hi all,&nbsp;
        <div class=3D""><br class=3D"">
        </div>
        <div class=3D"">I'm Lasya, a student pursuing Computer Science =
Engineering
          from IIIT-H, Hyderabad, India.&nbsp;</div>
        <div class=3D""><br class=3D"">
        </div>
        <div class=3D"">I wish to get started with contributing to =
Mirage OS. I
          have conceptual knowledge about Computer system architecture,
          and OS concepts like Virtualization. I hope they will be
          useful while contributing to the community, I am willing to
          learn with your help &amp; guidance. :)</div>
        <div class=3D""><br class=3D"">
        </div>
        <div class=3D"">Request to link me to some pages/docs that I am =
supposed to
          read to help me setup the environment and start contributing,
          &amp; a few beginner bugs that I can try my hand at.</div>
        <div class=3D""><br class=3D"">
        </div>
        <div class=3D"">Sincerely,</div>
        <div class=3D"">Lasya V &nbsp;&nbsp;</div>
      </div>
      <br class=3D"">
      <fieldset class=3D""></fieldset>
      <br class=3D"">
      </div></div><pre =
class=3D"">_______________________________________________
MirageOS-devel mailing list
<a href=3D"mailto:MirageOS-devel@lists.xenproject.org" target=3D"_blank" =
class=3D"">MirageOS-devel@lists.xenproject.org</a>
<a =
href=3D"http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-deve=
l" target=3D"_blank" =
class=3D"">http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-d=
evel</a>
</pre>
    </blockquote>
    <br class=3D"">
  </div>

<br class=3D"">_______________________________________________<br =
class=3D"">
MirageOS-devel mailing list<br class=3D"">
<a href=3D"mailto:MirageOS-devel@lists.xenproject.org" =
class=3D"">MirageOS-devel@lists.xenproject.org</a><br class=3D"">
<a =
href=3D"http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-deve=
l" rel=3D"noreferrer" target=3D"_blank" =
class=3D"">http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-d=
evel</a><br class=3D"">
<br class=3D""></blockquote></div><br class=3D""></div>
_______________________________________________<br =
class=3D"">MirageOS-devel mailing list<br class=3D""><a =
href=3D"mailto:MirageOS-devel@lists.xenproject.org" =
class=3D"">MirageOS-devel@lists.xenproject.org</a><br =
class=3D"">http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-d=
evel<br class=3D""></div></blockquote></div><br =
class=3D""></div></body></html>=

--Apple-Mail=_3091A47B-D28E-440A-BC14-D0350FB7EB1B--


--===============4554598327070144049==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

--===============4554598327070144049==--


From mirageos-devel-bounces@lists.xenproject.org Tue Sep 22 10:24:59 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 22 Sep 2015 10:24:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZeKkk-0000KH-Eb; Tue, 22 Sep 2015 10:24:50 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <anil@recoil.org>) id 1ZeKkj-0000KB-T8
	for mirageos-devel@lists.xenproject.org; Tue, 22 Sep 2015 10:24:50 +0000
Received: from [193.109.254.147] by server-9.bemta-14.messagelabs.com id
	F3/E7-26043-17C21065; Tue, 22 Sep 2015 10:24:49 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-6.tower-27.messagelabs.com!1442917486!51947582!1
X-Originating-IP: [5.153.225.51]
X-SpamReason: No, hits=1.1 required=7.0 tests=BODY_RANDOM_LONG,
	HTML_50_60,HTML_MESSAGE,MAILTO_TO_SPAM_ADDR,RCVD_ILLEGAL_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 8109 invoked from network); 22 Sep 2015 10:24:47 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-6.tower-27.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 22 Sep 2015 10:24:47 -0000
Received: from [10.0.1.37] (AOrleans-656-1-39-10.w90-21.abo.wanadoo.fr
	[90.21.46.10])
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id d5e983c5
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Tue, 22 Sep 2015 11:24:45 +0100 (BST)
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <CAAbK429psAZAncgBwHP4t=hcBB104dY5T+Mefn0ze-SEYz4dDA@mail.gmail.com>
Date: Tue, 22 Sep 2015 12:24:42 +0200
Message-Id: <EF478C7D-4CF9-41FD-9309-A6602819AE4B@recoil.org>
References: <CAAbK429srd4r7Kp10nPK5vndcZYLoXOsh9W=K_E4mpKVrVpZXA@mail.gmail.com>
	<56009188.1070102@somerandomidiot.com>
	<CAAbK429psAZAncgBwHP4t=hcBB104dY5T+Mefn0ze-SEYz4dDA@mail.gmail.com>
To: Lasya Venneti <comethalley61@gmail.com>
X-Mailer: Apple Mail (2.2104)
Cc: mirageos-devel@lists.xenproject.org
Subject: Re: [MirageOS-devel] Getting Started
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============4554598327070144049=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org


--===============4554598327070144049==
Content-Type: multipart/alternative; boundary="Apple-Mail=_3091A47B-D28E-440A-BC14-D0350FB7EB1B"


--Apple-Mail=_3091A47B-D28E-440A-BC14-D0350FB7EB1B
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii

And above all, welcome!  Feel free to ask questions as you learn and =
explore the various components.  As Mindy notes, there's still quite a =
bit of "institutional knowledge" that hasn't been captured in our =
documentation, so patches to improve mirage-www (which is the live =
website) are most welcome, as are any pieces that you find confusing or =
difficult to get started with.

Anil

> On 22 Sep 2015, at 10:06, Lasya Venneti <comethalley61@gmail.com> =
wrote:
>=20
> Dear Ma'am,
>=20
> Thanks for such an informative mail! I will get started with =
contributing right away!=20
>=20
> Sincerely,
> Lasya V=20
>=20
> On 22 September 2015 at 04:53, Mindy <mindy@somerandomidiot.com =
<mailto:mindy@somerandomidiot.com>> wrote:
> Hi Lasya,
>=20
> Glad to hear you're interested in MirageOS!  Here's a short list of =
links you may find helpful in getting started.
>=20
> The documentation page of the MirageOS website ( =
https://mirage.io/docs/ <https://mirage.io/docs/> ) has a list of links =
for getting started, the first of which is here: =
https://mirage.io/wiki/install <https://mirage.io/wiki/install> .  A =
quick guide to contributing is available here: =
https://mirage.io/wiki/contributing =
<https://mirage.io/wiki/contributing> .
>=20
> Any fixes for unclear or confusing bits of text you find in the above =
documents can be submitted as pull requests to the mirage-www repository =
at https://github.com/mirage/mirage-www =
<https://github.com/mirage/mirage-www> , and would make excellent =
contributions.
>=20
> You may be interested in the list of "pioneer projects": =
https://github.com/mirage/mirage-www/wiki/Pioneer-Projects =
<https://github.com/mirage/mirage-www/wiki/Pioneer-Projects> .  The =
projects listed are too large for a first contribution of the type =
requested by (for example) the Outreachy application process, but some =
of are approximately the right size for the internship itself.
>=20
> Many known issues in MirageOS are listed via the GitHub issue tracker =
for the `mirage` tool: https://github.com/mirage/mirage/issues =
<https://github.com/mirage/mirage/issues> .  There are others on the =
repositories for specific libraries (e.g. the mirage-tcpip repository =
issue tracker at https://github.com/mirage/mirage-tcpip =
<https://github.com/mirage/mirage-tcpip> ).  We don't have a nice way to =
aggregate all open issues at the moment as far as I know (but someone =
please correct me if I'm wrong!)
>=20
> Cheers,
> Mindy Preston
>=20
>=20
> On 09/20/2015 07:42 AM, Lasya Venneti wrote:
>> Hi all,=20
>>=20
>> I'm Lasya, a student pursuing Computer Science Engineering from =
IIIT-H, Hyderabad, India.=20
>>=20
>> I wish to get started with contributing to Mirage OS. I have =
conceptual knowledge about Computer system architecture, and OS concepts =
like Virtualization. I hope they will be useful while contributing to =
the community, I am willing to learn with your help & guidance. :)
>>=20
>> Request to link me to some pages/docs that I am supposed to read to =
help me setup the environment and start contributing, & a few beginner =
bugs that I can try my hand at.
>>=20
>> Sincerely,
>> Lasya V  =20
>>=20
>>=20
>> _______________________________________________
>> MirageOS-devel mailing list
>> MirageOS-devel@lists.xenproject.org =
<mailto:MirageOS-devel@lists.xenproject.org>
>> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel =
<http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>
>=20
>=20
> _______________________________________________
> MirageOS-devel mailing list
> MirageOS-devel@lists.xenproject.org =
<mailto:MirageOS-devel@lists.xenproject.org>
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel =
<http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>
>=20
>=20
> _______________________________________________
> MirageOS-devel mailing list
> MirageOS-devel@lists.xenproject.org
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel


--Apple-Mail=_3091A47B-D28E-440A-BC14-D0350FB7EB1B
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=us-ascii

<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html =
charset=3Dus-ascii"></head><body style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" =
class=3D"">And above all, welcome! &nbsp;Feel free to ask questions as =
you learn and explore the various components. &nbsp;As Mindy notes, =
there's still quite a bit of "institutional knowledge" that hasn't been =
captured in our documentation, so patches to improve mirage-www (which =
is the live website) are most welcome, as are any pieces that you find =
confusing or difficult to get started with.<div class=3D""><br =
class=3D""></div><div class=3D"">Anil</div><div class=3D""><br =
class=3D""><div><blockquote type=3D"cite" class=3D""><div class=3D"">On =
22 Sep 2015, at 10:06, Lasya Venneti &lt;<a =
href=3D"mailto:comethalley61@gmail.com" =
class=3D"">comethalley61@gmail.com</a>&gt; wrote:</div><br =
class=3D"Apple-interchange-newline"><div class=3D""><div dir=3D"ltr" =
class=3D"">Dear Ma'am,<div class=3D""><br class=3D""></div><div =
class=3D"">Thanks for such an informative mail! I will get started with =
contributing right away!&nbsp;</div><div class=3D""><br =
class=3D""></div><div class=3D"">Sincerely,</div><div class=3D"">Lasya =
V&nbsp;</div></div><div class=3D"gmail_extra"><br class=3D""><div =
class=3D"gmail_quote">On 22 September 2015 at 04:53, Mindy <span =
dir=3D"ltr" class=3D"">&lt;<a href=3D"mailto:mindy@somerandomidiot.com" =
target=3D"_blank" class=3D"">mindy@somerandomidiot.com</a>&gt;</span> =
wrote:<br class=3D""><blockquote class=3D"gmail_quote" style=3D"margin:0 =
0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
 =20
   =20
 =20
  <div text=3D"#000000" bgcolor=3D"#FFFFFF" class=3D"">
    Hi Lasya,<br class=3D"">
    <br class=3D"">
    Glad to hear you're interested in MirageOS!&nbsp; Here's a short =
list of
    links you may find helpful in getting started.<br class=3D"">
    <br class=3D"">
    The documentation page of the MirageOS website (
    <a href=3D"https://mirage.io/docs/" target=3D"_blank" =
class=3D"">https://mirage.io/docs/</a> ) has a list of links for getting =
started,
    the first of which is here: <a href=3D"https://mirage.io/wiki/install"=
 target=3D"_blank" class=3D"">https://mirage.io/wiki/install</a> .&nbsp; =
A
    quick guide to contributing is available here:
    <a href=3D"https://mirage.io/wiki/contributing" target=3D"_blank" =
class=3D"">https://mirage.io/wiki/contributing</a> .<br class=3D"">
    <br class=3D"">
    Any fixes for unclear or confusing bits of text you find in the
    above documents can be submitted as pull requests to the mirage-www
    repository at <a href=3D"https://github.com/mirage/mirage-www" =
target=3D"_blank" class=3D"">https://github.com/mirage/mirage-www</a> , =
and would make
    excellent contributions.<br class=3D"">
    <br class=3D"">
    You may be interested in the list of "pioneer projects":
    <a href=3D"https://github.com/mirage/mirage-www/wiki/Pioneer-Projects"=
 target=3D"_blank" =
class=3D"">https://github.com/mirage/mirage-www/wiki/Pioneer-Projects</a> =
.&nbsp; The
    projects listed are too large for a first contribution of the type
    requested by (for example) the Outreachy application process, but
    some of are approximately the right size for the internship =
itself.<br class=3D"">
    <br class=3D"">
    Many known issues in MirageOS are listed via the GitHub issue
    tracker for the `mirage` tool:
    <a href=3D"https://github.com/mirage/mirage/issues" target=3D"_blank" =
class=3D"">https://github.com/mirage/mirage/issues</a> .&nbsp; There are =
others on the
    repositories for specific libraries (e.g. the mirage-tcpip
    repository issue tracker at <a =
href=3D"https://github.com/mirage/mirage-tcpip" target=3D"_blank" =
class=3D"">https://github.com/mirage/mirage-tcpip</a>
    ).&nbsp; We don't have a nice way to aggregate all open issues at =
the
    moment as far as I know (but someone please correct me if I'm
    wrong!)<br class=3D"">
    <br class=3D"">
    Cheers,<br class=3D"">
    Mindy Preston<div class=3D""><div class=3D"h5"><br class=3D"">
    <br class=3D"">
    <div class=3D"">On 09/20/2015 07:42 AM, Lasya Venneti
      wrote:<br class=3D"">
    </div>
    </div></div><blockquote type=3D"cite" class=3D""><div class=3D""><div =
class=3D"h5">
      <div dir=3D"ltr" class=3D"">Hi all,&nbsp;
        <div class=3D""><br class=3D"">
        </div>
        <div class=3D"">I'm Lasya, a student pursuing Computer Science =
Engineering
          from IIIT-H, Hyderabad, India.&nbsp;</div>
        <div class=3D""><br class=3D"">
        </div>
        <div class=3D"">I wish to get started with contributing to =
Mirage OS. I
          have conceptual knowledge about Computer system architecture,
          and OS concepts like Virtualization. I hope they will be
          useful while contributing to the community, I am willing to
          learn with your help &amp; guidance. :)</div>
        <div class=3D""><br class=3D"">
        </div>
        <div class=3D"">Request to link me to some pages/docs that I am =
supposed to
          read to help me setup the environment and start contributing,
          &amp; a few beginner bugs that I can try my hand at.</div>
        <div class=3D""><br class=3D"">
        </div>
        <div class=3D"">Sincerely,</div>
        <div class=3D"">Lasya V &nbsp;&nbsp;</div>
      </div>
      <br class=3D"">
      <fieldset class=3D""></fieldset>
      <br class=3D"">
      </div></div><pre =
class=3D"">_______________________________________________
MirageOS-devel mailing list
<a href=3D"mailto:MirageOS-devel@lists.xenproject.org" target=3D"_blank" =
class=3D"">MirageOS-devel@lists.xenproject.org</a>
<a =
href=3D"http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-deve=
l" target=3D"_blank" =
class=3D"">http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-d=
evel</a>
</pre>
    </blockquote>
    <br class=3D"">
  </div>

<br class=3D"">_______________________________________________<br =
class=3D"">
MirageOS-devel mailing list<br class=3D"">
<a href=3D"mailto:MirageOS-devel@lists.xenproject.org" =
class=3D"">MirageOS-devel@lists.xenproject.org</a><br class=3D"">
<a =
href=3D"http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-deve=
l" rel=3D"noreferrer" target=3D"_blank" =
class=3D"">http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-d=
evel</a><br class=3D"">
<br class=3D""></blockquote></div><br class=3D""></div>
_______________________________________________<br =
class=3D"">MirageOS-devel mailing list<br class=3D""><a =
href=3D"mailto:MirageOS-devel@lists.xenproject.org" =
class=3D"">MirageOS-devel@lists.xenproject.org</a><br =
class=3D"">http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-d=
evel<br class=3D""></div></blockquote></div><br =
class=3D""></div></body></html>=

--Apple-Mail=_3091A47B-D28E-440A-BC14-D0350FB7EB1B--


--===============4554598327070144049==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

--===============4554598327070144049==--


From mirageos-devel-bounces@lists.xenproject.org Tue Sep 22 16:17:15 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 22 Sep 2015 16:17:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZeQFf-0004r5-8W; Tue, 22 Sep 2015 16:17:07 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <lars.kurth.xen@gmail.com>)
	id 1ZeQFe-0004qc-2L; Tue, 22 Sep 2015 16:17:06 +0000
Received: from [85.158.137.68] by server-7.bemta-3.messagelabs.com id
	A2/C2-16965-00F71065; Tue, 22 Sep 2015 16:17:04 +0000
X-Env-Sender: lars.kurth.xen@gmail.com
X-Msg-Ref: server-14.tower-31.messagelabs.com!1442938623!44224771!1
X-Originating-IP: [209.85.212.181]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 22824 invoked from network); 22 Sep 2015 16:17:04 -0000
Received: from mail-wi0-f181.google.com (HELO mail-wi0-f181.google.com)
	(209.85.212.181)
	by server-14.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	22 Sep 2015 16:17:04 -0000
Received: by wicfx3 with SMTP id fx3so200374750wic.1;
	Tue, 22 Sep 2015 09:17:03 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=content-type:mime-version:subject:from:in-reply-to:date
	:content-transfer-encoding:message-id:references:to;
	bh=kLqSOmWL/kgL1d641Hqn84wkKUonFq9CUeSv5xhojAc=;
	b=o6QyiPoF/hWCjRWXu2MZQj3y00SEa8oKoAm05jU6OcG7pCGDlfwAAAvDtDbWEEkrNq
	RlKbIgZkoVwr706yBqQIDEvqo5QO5fZqazHUoqYJLRpdT1tWqsOApQL/uekqLuzFoL4D
	5Sv1E8+kXQXbGzrIdruzqd6VabPNbHJncF9+Kc+oHo3rVucbUb97G4LWkovCpPMVlNqQ
	lIB9qqV/pps1iB+JoIFIOviigdoXK4di4KvCxj/Whg5NOGACtXr05BabpQBmwjucDYJL
	bZ7re8igf7Ld/UZK8IHjW4e+6dNi5nPwDAJ/EX8wO5nhWBI6/OQQ77yIULlqzbtHiH4/
	o/yg==
X-Received: by 10.194.104.137 with SMTP id ge9mr20145494wjb.57.1442938623592; 
	Tue, 22 Sep 2015 09:17:03 -0700 (PDT)
Received: from [192.168.0.9] (97e3cc8b.skybroadband.com. [151.227.204.139])
	by smtp.gmail.com with ESMTPSA id
	vr8sm2625730wjc.26.2015.09.22.09.17.02
	(version=TLSv1/SSLv3 cipher=OTHER);
	Tue, 22 Sep 2015 09:17:02 -0700 (PDT)
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\))
From: Lars Kurth <lars.kurth.xen@gmail.com>
In-Reply-To: <9E1B36C0-9053-43EE-8E59-156D246C8097@gmail.com>
Date: Tue, 22 Sep 2015 17:17:01 +0100
Message-Id: <ED1B21DF-2E55-4ACD-A695-8A083DBF8C56@gmail.com>
References: <9E1B36C0-9053-43EE-8E59-156D246C8097@gmail.com>
To: Xen-devel <xen-devel@lists.xen.org>,
	mirageos-devel <mirageos-devel@lists.xenproject.org>,
	xen-api@lists.xenproject.org
X-Mailer: Apple Mail (2.2104)
Subject: [MirageOS-devel] OutreachY round 11 - Please add new sensible
	projects
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

Hi everyone,

most of http://wiki.xenproject.org/wiki/Outreach_Program_Projects has been scrubbed and out-of-date projects removed. 

I also restructured http://wiki.xenproject.org/wiki/Outreachy/Round11 to make it easier to
a) Navigate the right mailing list, IRC channel
b) Make it easier to identify "SMALL CODE CONTRIBUTIONS" projects prior to application 

However, now we do have very few Hypervisor projects and NO XAPI projects. 

I think we are fine on Mirage OS projects and I added links to https://github.com/mirage/mirage-www/wiki/Pioneer-Projects (although I don't know how up-to-date these are).

Best Regards
Lars

> On 17 Sep 2015, at 14:00, Lars Kurth <lars.kurth.xen@gmail.com> wrote:
> 
> Hi all,
> 
> the AB is sponsoring 2 interns again for the winter round
> 
> This means we need to update the following pages by September 28
> * All: http://wiki.xenproject.org/wiki/Outreach_Program_Projects - aka add new projects/remove old ones
> * MirageOS: http://wiki.xenproject.org/wiki/Outreach_Program_Projects has projects in it - are these still valid, or are they replaced by https://github.com/mirage/mirage-www/wiki/Pioneer-Projects ?
> 
> Everyone who has a project on that list is on the TO list. Please update the "Verified" line and add the current date to each project with your name against it. Feel free to add new projects.
> 
> {{project
> ...
> |Verified=02/13/2015
> ...
> }}
> 
> I will purge *all* projects which have not been verified.
> 
> = Timeline =
> September 28 organizations' landing pages need to be ready with project ideas
> September 29 application process opens
> November 2 application deadline
> November 17 accepted applicants announced
> December 7 - March 7 internship dates
> 
> = Xen Resources =
> http://wiki.xenproject.org/wiki/Outreachy/Round11
> 
> Regards
> Lars
> 


_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Tue Sep 22 16:17:15 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 22 Sep 2015 16:17:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZeQFf-0004r5-8W; Tue, 22 Sep 2015 16:17:07 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <lars.kurth.xen@gmail.com>)
	id 1ZeQFe-0004qc-2L; Tue, 22 Sep 2015 16:17:06 +0000
Received: from [85.158.137.68] by server-7.bemta-3.messagelabs.com id
	A2/C2-16965-00F71065; Tue, 22 Sep 2015 16:17:04 +0000
X-Env-Sender: lars.kurth.xen@gmail.com
X-Msg-Ref: server-14.tower-31.messagelabs.com!1442938623!44224771!1
X-Originating-IP: [209.85.212.181]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 22824 invoked from network); 22 Sep 2015 16:17:04 -0000
Received: from mail-wi0-f181.google.com (HELO mail-wi0-f181.google.com)
	(209.85.212.181)
	by server-14.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	22 Sep 2015 16:17:04 -0000
Received: by wicfx3 with SMTP id fx3so200374750wic.1;
	Tue, 22 Sep 2015 09:17:03 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=content-type:mime-version:subject:from:in-reply-to:date
	:content-transfer-encoding:message-id:references:to;
	bh=kLqSOmWL/kgL1d641Hqn84wkKUonFq9CUeSv5xhojAc=;
	b=o6QyiPoF/hWCjRWXu2MZQj3y00SEa8oKoAm05jU6OcG7pCGDlfwAAAvDtDbWEEkrNq
	RlKbIgZkoVwr706yBqQIDEvqo5QO5fZqazHUoqYJLRpdT1tWqsOApQL/uekqLuzFoL4D
	5Sv1E8+kXQXbGzrIdruzqd6VabPNbHJncF9+Kc+oHo3rVucbUb97G4LWkovCpPMVlNqQ
	lIB9qqV/pps1iB+JoIFIOviigdoXK4di4KvCxj/Whg5NOGACtXr05BabpQBmwjucDYJL
	bZ7re8igf7Ld/UZK8IHjW4e+6dNi5nPwDAJ/EX8wO5nhWBI6/OQQ77yIULlqzbtHiH4/
	o/yg==
X-Received: by 10.194.104.137 with SMTP id ge9mr20145494wjb.57.1442938623592; 
	Tue, 22 Sep 2015 09:17:03 -0700 (PDT)
Received: from [192.168.0.9] (97e3cc8b.skybroadband.com. [151.227.204.139])
	by smtp.gmail.com with ESMTPSA id
	vr8sm2625730wjc.26.2015.09.22.09.17.02
	(version=TLSv1/SSLv3 cipher=OTHER);
	Tue, 22 Sep 2015 09:17:02 -0700 (PDT)
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\))
From: Lars Kurth <lars.kurth.xen@gmail.com>
In-Reply-To: <9E1B36C0-9053-43EE-8E59-156D246C8097@gmail.com>
Date: Tue, 22 Sep 2015 17:17:01 +0100
Message-Id: <ED1B21DF-2E55-4ACD-A695-8A083DBF8C56@gmail.com>
References: <9E1B36C0-9053-43EE-8E59-156D246C8097@gmail.com>
To: Xen-devel <xen-devel@lists.xen.org>,
	mirageos-devel <mirageos-devel@lists.xenproject.org>,
	xen-api@lists.xenproject.org
X-Mailer: Apple Mail (2.2104)
Subject: [MirageOS-devel] OutreachY round 11 - Please add new sensible
	projects
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

Hi everyone,

most of http://wiki.xenproject.org/wiki/Outreach_Program_Projects has been scrubbed and out-of-date projects removed. 

I also restructured http://wiki.xenproject.org/wiki/Outreachy/Round11 to make it easier to
a) Navigate the right mailing list, IRC channel
b) Make it easier to identify "SMALL CODE CONTRIBUTIONS" projects prior to application 

However, now we do have very few Hypervisor projects and NO XAPI projects. 

I think we are fine on Mirage OS projects and I added links to https://github.com/mirage/mirage-www/wiki/Pioneer-Projects (although I don't know how up-to-date these are).

Best Regards
Lars

> On 17 Sep 2015, at 14:00, Lars Kurth <lars.kurth.xen@gmail.com> wrote:
> 
> Hi all,
> 
> the AB is sponsoring 2 interns again for the winter round
> 
> This means we need to update the following pages by September 28
> * All: http://wiki.xenproject.org/wiki/Outreach_Program_Projects - aka add new projects/remove old ones
> * MirageOS: http://wiki.xenproject.org/wiki/Outreach_Program_Projects has projects in it - are these still valid, or are they replaced by https://github.com/mirage/mirage-www/wiki/Pioneer-Projects ?
> 
> Everyone who has a project on that list is on the TO list. Please update the "Verified" line and add the current date to each project with your name against it. Feel free to add new projects.
> 
> {{project
> ...
> |Verified=02/13/2015
> ...
> }}
> 
> I will purge *all* projects which have not been verified.
> 
> = Timeline =
> September 28 organizations' landing pages need to be ready with project ideas
> September 29 application process opens
> November 2 application deadline
> November 17 accepted applicants announced
> December 7 - March 7 internship dates
> 
> = Xen Resources =
> http://wiki.xenproject.org/wiki/Outreachy/Round11
> 
> Regards
> Lars
> 


_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Tue Sep 22 16:54:43 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 22 Sep 2015 16:54:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZeQps-0001Lb-Jp; Tue, 22 Sep 2015 16:54:32 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <comethalley61@gmail.com>) id 1ZeQpr-0001LM-5J
	for mirageos-devel@lists.xenproject.org; Tue, 22 Sep 2015 16:54:31 +0000
Received: from [85.158.139.211] by server-3.bemta-5.messagelabs.com id
	87/21-06179-6C781065; Tue, 22 Sep 2015 16:54:30 +0000
X-Env-Sender: comethalley61@gmail.com
X-Msg-Ref: server-13.tower-206.messagelabs.com!1442940867!36969179!1
X-Originating-IP: [209.85.223.170]
X-SpamReason: No, hits=3.3 required=7.0 tests=BODY_RANDOM_LONG,
	DEAR_SOMETHING,HTML_40_50,HTML_MESSAGE,MAILTO_TO_SPAM_ADDR,RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 24812 invoked from network); 22 Sep 2015 16:54:28 -0000
Received: from mail-io0-f170.google.com (HELO mail-io0-f170.google.com)
	(209.85.223.170)
	by server-13.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
	22 Sep 2015 16:54:28 -0000
Received: by ioii196 with SMTP id i196so20581323ioi.3
	for <mirageos-devel@lists.xenproject.org>;
	Tue, 22 Sep 2015 09:54:27 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:in-reply-to:references:date:message-id:subject:from:to
	:cc:content-type;
	bh=ObUk0xQP0qFEZ2q6IT8Pz3RkiUtoaL0jkDTFCAgaoA8=;
	b=YyNrF64XlCasOpXEO6rwFZZAZ6BfQ5dH39p5shqAy94GutDUXliif/vyUm2urKgTK8
	En3jcjxup59Q1NhFS/sGAFj7cKj+jH6ISEeRiZQEb12qcjHbRRZnUPQt0ixklj74pDxe
	4ZWY6DtXwvpJ6pjz6PNQWJE6FXad8djvhZi8wY1ZR3weQnmjYPpNtFDS5F+tu2vcdF+Y
	bc5Fh+bw62iDZXfDNmp2MJTnBGn3tNlNg17/QTY7hIcgRzksGnN1mYcOLRJSlq6oSuz9
	5zSwP1w1x3QwLTfVUUMU/eqr8s6QUu2bqFHkVU/9o2xwc9EbbIUXovN6OEbv8M4cmcNU
	KaHg==
MIME-Version: 1.0
X-Received: by 10.107.15.27 with SMTP id x27mr34137266ioi.51.1442940867332;
	Tue, 22 Sep 2015 09:54:27 -0700 (PDT)
Received: by 10.107.180.149 with HTTP; Tue, 22 Sep 2015 09:54:27 -0700 (PDT)
In-Reply-To: <EF478C7D-4CF9-41FD-9309-A6602819AE4B@recoil.org>
References: <CAAbK429srd4r7Kp10nPK5vndcZYLoXOsh9W=K_E4mpKVrVpZXA@mail.gmail.com>
	<56009188.1070102@somerandomidiot.com>
	<CAAbK429psAZAncgBwHP4t=hcBB104dY5T+Mefn0ze-SEYz4dDA@mail.gmail.com>
	<EF478C7D-4CF9-41FD-9309-A6602819AE4B@recoil.org>
Date: Tue, 22 Sep 2015 22:24:27 +0530
Message-ID: <CAAbK429TUAiBS+wRLuBFb3L2P4ymbbAu5e0rQdSn_U74_QtuWg@mail.gmail.com>
From: Lasya Venneti <comethalley61@gmail.com>
To: Anil Madhavapeddy <anil@recoil.org>
Cc: mirageos-devel@lists.xenproject.org
Subject: Re: [MirageOS-devel] Getting Started
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============6421910160492081153=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============6421910160492081153==
Content-Type: multipart/alternative; boundary=001a113f1e64d4880c052058d901

--001a113f1e64d4880c052058d901
Content-Type: text/plain; charset=UTF-8

Dear Sir,
Thank you! :) Sure thing! I would love to contribute to documentation too,
 once I start getting the hang of things.

Sincerely,
Lasya V

On 22 September 2015 at 15:54, Anil Madhavapeddy <anil@recoil.org> wrote:

> And above all, welcome!  Feel free to ask questions as you learn and
> explore the various components.  As Mindy notes, there's still quite a bit
> of "institutional knowledge" that hasn't been captured in our
> documentation, so patches to improve mirage-www (which is the live website)
> are most welcome, as are any pieces that you find confusing or difficult to
> get started with.
>
> Anil
>
> On 22 Sep 2015, at 10:06, Lasya Venneti <comethalley61@gmail.com> wrote:
>
> Dear Ma'am,
>
> Thanks for such an informative mail! I will get started with contributing
> right away!
>
> Sincerely,
> Lasya V
>
> On 22 September 2015 at 04:53, Mindy <mindy@somerandomidiot.com> wrote:
>
>> Hi Lasya,
>>
>> Glad to hear you're interested in MirageOS!  Here's a short list of links
>> you may find helpful in getting started.
>>
>> The documentation page of the MirageOS website ( https://mirage.io/docs/
>> ) has a list of links for getting started, the first of which is here:
>> https://mirage.io/wiki/install .  A quick guide to contributing is
>> available here: https://mirage.io/wiki/contributing .
>>
>> Any fixes for unclear or confusing bits of text you find in the above
>> documents can be submitted as pull requests to the mirage-www repository at
>> https://github.com/mirage/mirage-www , and would make excellent
>> contributions.
>>
>> You may be interested in the list of "pioneer projects":
>> https://github.com/mirage/mirage-www/wiki/Pioneer-Projects .  The
>> projects listed are too large for a first contribution of the type
>> requested by (for example) the Outreachy application process, but some of
>> are approximately the right size for the internship itself.
>>
>> Many known issues in MirageOS are listed via the GitHub issue tracker for
>> the `mirage` tool: https://github.com/mirage/mirage/issues .  There are
>> others on the repositories for specific libraries (e.g. the mirage-tcpip
>> repository issue tracker at https://github.com/mirage/mirage-tcpip ).
>> We don't have a nice way to aggregate all open issues at the moment as far
>> as I know (but someone please correct me if I'm wrong!)
>>
>> Cheers,
>> Mindy Preston
>>
>>
>> On 09/20/2015 07:42 AM, Lasya Venneti wrote:
>>
>> Hi all,
>>
>> I'm Lasya, a student pursuing Computer Science Engineering from IIIT-H,
>> Hyderabad, India.
>>
>> I wish to get started with contributing to Mirage OS. I have conceptual
>> knowledge about Computer system architecture, and OS concepts like
>> Virtualization. I hope they will be useful while contributing to the
>> community, I am willing to learn with your help & guidance. :)
>>
>> Request to link me to some pages/docs that I am supposed to read to help
>> me setup the environment and start contributing, & a few beginner bugs that
>> I can try my hand at.
>>
>> Sincerely,
>> Lasya V
>>
>>
>> _______________________________________________
>> MirageOS-devel mailing listMirageOS-devel@lists.xenproject.orghttp://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
>>
>>
>>
>> _______________________________________________
>> MirageOS-devel mailing list
>> MirageOS-devel@lists.xenproject.org
>> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
>>
>>
> _______________________________________________
> MirageOS-devel mailing list
> MirageOS-devel@lists.xenproject.org
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
>
>
>

--001a113f1e64d4880c052058d901
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Dear Sir,<div>Thank you! :) Sure thing! I would love to co=
ntribute to documentation too, =C2=A0once I start getting the hang of thing=
s.=C2=A0</div><div><br></div><div>Sincerely,</div><div>Lasya V=C2=A0</div><=
/div><div class=3D"gmail_extra"><br><div class=3D"gmail_quote">On 22 Septem=
ber 2015 at 15:54, Anil Madhavapeddy <span dir=3D"ltr">&lt;<a href=3D"mailt=
o:anil@recoil.org" target=3D"_blank">anil@recoil.org</a>&gt;</span> wrote:<=
br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left=
:1px #ccc solid;padding-left:1ex"><div style=3D"word-wrap:break-word">And a=
bove all, welcome!=C2=A0 Feel free to ask questions as you learn and explor=
e the various components.=C2=A0 As Mindy notes, there&#39;s still quite a b=
it of &quot;institutional knowledge&quot; that hasn&#39;t been captured in =
our documentation, so patches to improve mirage-www (which is the live webs=
ite) are most welcome, as are any pieces that you find confusing or difficu=
lt to get started with.<span class=3D"HOEnZb"><font color=3D"#888888"><div>=
<br></div><div>Anil</div></font></span><div><div class=3D"h5"><div><br><div=
><blockquote type=3D"cite"><div>On 22 Sep 2015, at 10:06, Lasya Venneti &lt=
;<a href=3D"mailto:comethalley61@gmail.com" target=3D"_blank">comethalley61=
@gmail.com</a>&gt; wrote:</div><br><div><div dir=3D"ltr">Dear Ma&#39;am,<di=
v><br></div><div>Thanks for such an informative mail! I will get started wi=
th contributing right away!=C2=A0</div><div><br></div><div>Sincerely,</div>=
<div>Lasya V=C2=A0</div></div><div class=3D"gmail_extra"><br><div class=3D"=
gmail_quote">On 22 September 2015 at 04:53, Mindy <span dir=3D"ltr">&lt;<a =
href=3D"mailto:mindy@somerandomidiot.com" target=3D"_blank">mindy@somerando=
midiot.com</a>&gt;</span> wrote:<br><blockquote class=3D"gmail_quote" style=
=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
 =20
   =20
 =20
  <div text=3D"#000000" bgcolor=3D"#FFFFFF">
    Hi Lasya,<br>
    <br>
    Glad to hear you&#39;re interested in MirageOS!=C2=A0 Here&#39;s a shor=
t list of
    links you may find helpful in getting started.<br>
    <br>
    The documentation page of the MirageOS website (
    <a href=3D"https://mirage.io/docs/" target=3D"_blank">https://mirage.io=
/docs/</a> ) has a list of links for getting started,
    the first of which is here: <a href=3D"https://mirage.io/wiki/install" =
target=3D"_blank">https://mirage.io/wiki/install</a> .=C2=A0 A
    quick guide to contributing is available here:
    <a href=3D"https://mirage.io/wiki/contributing" target=3D"_blank">https=
://mirage.io/wiki/contributing</a> .<br>
    <br>
    Any fixes for unclear or confusing bits of text you find in the
    above documents can be submitted as pull requests to the mirage-www
    repository at <a href=3D"https://github.com/mirage/mirage-www" target=
=3D"_blank">https://github.com/mirage/mirage-www</a> , and would make
    excellent contributions.<br>
    <br>
    You may be interested in the list of &quot;pioneer projects&quot;:
    <a href=3D"https://github.com/mirage/mirage-www/wiki/Pioneer-Projects" =
target=3D"_blank">https://github.com/mirage/mirage-www/wiki/Pioneer-Project=
s</a> .=C2=A0 The
    projects listed are too large for a first contribution of the type
    requested by (for example) the Outreachy application process, but
    some of are approximately the right size for the internship itself.<br>
    <br>
    Many known issues in MirageOS are listed via the GitHub issue
    tracker for the `mirage` tool:
    <a href=3D"https://github.com/mirage/mirage/issues" target=3D"_blank">h=
ttps://github.com/mirage/mirage/issues</a> .=C2=A0 There are others on the
    repositories for specific libraries (e.g. the mirage-tcpip
    repository issue tracker at <a href=3D"https://github.com/mirage/mirage=
-tcpip" target=3D"_blank">https://github.com/mirage/mirage-tcpip</a>
    ).=C2=A0 We don&#39;t have a nice way to aggregate all open issues at t=
he
    moment as far as I know (but someone please correct me if I&#39;m
    wrong!)<br>
    <br>
    Cheers,<br>
    Mindy Preston<div><div><br>
    <br>
    <div>On 09/20/2015 07:42 AM, Lasya Venneti
      wrote:<br>
    </div>
    </div></div><blockquote type=3D"cite"><div><div>
      <div dir=3D"ltr">Hi all,=C2=A0
        <div><br>
        </div>
        <div>I&#39;m Lasya, a student pursuing Computer Science Engineering
          from IIIT-H, Hyderabad, India.=C2=A0</div>
        <div><br>
        </div>
        <div>I wish to get started with contributing to Mirage OS. I
          have conceptual knowledge about Computer system architecture,
          and OS concepts like Virtualization. I hope they will be
          useful while contributing to the community, I am willing to
          learn with your help &amp; guidance. :)</div>
        <div><br>
        </div>
        <div>Request to link me to some pages/docs that I am supposed to
          read to help me setup the environment and start contributing,
          &amp; a few beginner bugs that I can try my hand at.</div>
        <div><br>
        </div>
        <div>Sincerely,</div>
        <div>Lasya V =C2=A0=C2=A0</div>
      </div>
      <br>
      <fieldset></fieldset>
      <br>
      </div></div><pre>_______________________________________________
MirageOS-devel mailing list
<a href=3D"mailto:MirageOS-devel@lists.xenproject.org" target=3D"_blank">Mi=
rageOS-devel@lists.xenproject.org</a>
<a href=3D"http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-de=
vel" target=3D"_blank">http://lists.xenproject.org/cgi-bin/mailman/listinfo=
/mirageos-devel</a>
</pre>
    </blockquote>
    <br>
  </div>

<br>_______________________________________________<br>
MirageOS-devel mailing list<br>
<a href=3D"mailto:MirageOS-devel@lists.xenproject.org" target=3D"_blank">Mi=
rageOS-devel@lists.xenproject.org</a><br>
<a href=3D"http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-de=
vel" rel=3D"noreferrer" target=3D"_blank">http://lists.xenproject.org/cgi-b=
in/mailman/listinfo/mirageos-devel</a><br>
<br></blockquote></div><br></div>
_______________________________________________<br>MirageOS-devel mailing l=
ist<br><a href=3D"mailto:MirageOS-devel@lists.xenproject.org" target=3D"_bl=
ank">MirageOS-devel@lists.xenproject.org</a><br><a href=3D"http://lists.xen=
project.org/cgi-bin/mailman/listinfo/mirageos-devel" target=3D"_blank">http=
://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel</a><br></di=
v></blockquote></div><br></div></div></div></div></blockquote></div><br></d=
iv>

--001a113f1e64d4880c052058d901--


--===============6421910160492081153==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

--===============6421910160492081153==--


From mirageos-devel-bounces@lists.xenproject.org Tue Sep 22 16:54:43 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 22 Sep 2015 16:54:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZeQps-0001Lb-Jp; Tue, 22 Sep 2015 16:54:32 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <comethalley61@gmail.com>) id 1ZeQpr-0001LM-5J
	for mirageos-devel@lists.xenproject.org; Tue, 22 Sep 2015 16:54:31 +0000
Received: from [85.158.139.211] by server-3.bemta-5.messagelabs.com id
	87/21-06179-6C781065; Tue, 22 Sep 2015 16:54:30 +0000
X-Env-Sender: comethalley61@gmail.com
X-Msg-Ref: server-13.tower-206.messagelabs.com!1442940867!36969179!1
X-Originating-IP: [209.85.223.170]
X-SpamReason: No, hits=3.3 required=7.0 tests=BODY_RANDOM_LONG,
	DEAR_SOMETHING,HTML_40_50,HTML_MESSAGE,MAILTO_TO_SPAM_ADDR,RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 24812 invoked from network); 22 Sep 2015 16:54:28 -0000
Received: from mail-io0-f170.google.com (HELO mail-io0-f170.google.com)
	(209.85.223.170)
	by server-13.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
	22 Sep 2015 16:54:28 -0000
Received: by ioii196 with SMTP id i196so20581323ioi.3
	for <mirageos-devel@lists.xenproject.org>;
	Tue, 22 Sep 2015 09:54:27 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:in-reply-to:references:date:message-id:subject:from:to
	:cc:content-type;
	bh=ObUk0xQP0qFEZ2q6IT8Pz3RkiUtoaL0jkDTFCAgaoA8=;
	b=YyNrF64XlCasOpXEO6rwFZZAZ6BfQ5dH39p5shqAy94GutDUXliif/vyUm2urKgTK8
	En3jcjxup59Q1NhFS/sGAFj7cKj+jH6ISEeRiZQEb12qcjHbRRZnUPQt0ixklj74pDxe
	4ZWY6DtXwvpJ6pjz6PNQWJE6FXad8djvhZi8wY1ZR3weQnmjYPpNtFDS5F+tu2vcdF+Y
	bc5Fh+bw62iDZXfDNmp2MJTnBGn3tNlNg17/QTY7hIcgRzksGnN1mYcOLRJSlq6oSuz9
	5zSwP1w1x3QwLTfVUUMU/eqr8s6QUu2bqFHkVU/9o2xwc9EbbIUXovN6OEbv8M4cmcNU
	KaHg==
MIME-Version: 1.0
X-Received: by 10.107.15.27 with SMTP id x27mr34137266ioi.51.1442940867332;
	Tue, 22 Sep 2015 09:54:27 -0700 (PDT)
Received: by 10.107.180.149 with HTTP; Tue, 22 Sep 2015 09:54:27 -0700 (PDT)
In-Reply-To: <EF478C7D-4CF9-41FD-9309-A6602819AE4B@recoil.org>
References: <CAAbK429srd4r7Kp10nPK5vndcZYLoXOsh9W=K_E4mpKVrVpZXA@mail.gmail.com>
	<56009188.1070102@somerandomidiot.com>
	<CAAbK429psAZAncgBwHP4t=hcBB104dY5T+Mefn0ze-SEYz4dDA@mail.gmail.com>
	<EF478C7D-4CF9-41FD-9309-A6602819AE4B@recoil.org>
Date: Tue, 22 Sep 2015 22:24:27 +0530
Message-ID: <CAAbK429TUAiBS+wRLuBFb3L2P4ymbbAu5e0rQdSn_U74_QtuWg@mail.gmail.com>
From: Lasya Venneti <comethalley61@gmail.com>
To: Anil Madhavapeddy <anil@recoil.org>
Cc: mirageos-devel@lists.xenproject.org
Subject: Re: [MirageOS-devel] Getting Started
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============6421910160492081153=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============6421910160492081153==
Content-Type: multipart/alternative; boundary=001a113f1e64d4880c052058d901

--001a113f1e64d4880c052058d901
Content-Type: text/plain; charset=UTF-8

Dear Sir,
Thank you! :) Sure thing! I would love to contribute to documentation too,
 once I start getting the hang of things.

Sincerely,
Lasya V

On 22 September 2015 at 15:54, Anil Madhavapeddy <anil@recoil.org> wrote:

> And above all, welcome!  Feel free to ask questions as you learn and
> explore the various components.  As Mindy notes, there's still quite a bit
> of "institutional knowledge" that hasn't been captured in our
> documentation, so patches to improve mirage-www (which is the live website)
> are most welcome, as are any pieces that you find confusing or difficult to
> get started with.
>
> Anil
>
> On 22 Sep 2015, at 10:06, Lasya Venneti <comethalley61@gmail.com> wrote:
>
> Dear Ma'am,
>
> Thanks for such an informative mail! I will get started with contributing
> right away!
>
> Sincerely,
> Lasya V
>
> On 22 September 2015 at 04:53, Mindy <mindy@somerandomidiot.com> wrote:
>
>> Hi Lasya,
>>
>> Glad to hear you're interested in MirageOS!  Here's a short list of links
>> you may find helpful in getting started.
>>
>> The documentation page of the MirageOS website ( https://mirage.io/docs/
>> ) has a list of links for getting started, the first of which is here:
>> https://mirage.io/wiki/install .  A quick guide to contributing is
>> available here: https://mirage.io/wiki/contributing .
>>
>> Any fixes for unclear or confusing bits of text you find in the above
>> documents can be submitted as pull requests to the mirage-www repository at
>> https://github.com/mirage/mirage-www , and would make excellent
>> contributions.
>>
>> You may be interested in the list of "pioneer projects":
>> https://github.com/mirage/mirage-www/wiki/Pioneer-Projects .  The
>> projects listed are too large for a first contribution of the type
>> requested by (for example) the Outreachy application process, but some of
>> are approximately the right size for the internship itself.
>>
>> Many known issues in MirageOS are listed via the GitHub issue tracker for
>> the `mirage` tool: https://github.com/mirage/mirage/issues .  There are
>> others on the repositories for specific libraries (e.g. the mirage-tcpip
>> repository issue tracker at https://github.com/mirage/mirage-tcpip ).
>> We don't have a nice way to aggregate all open issues at the moment as far
>> as I know (but someone please correct me if I'm wrong!)
>>
>> Cheers,
>> Mindy Preston
>>
>>
>> On 09/20/2015 07:42 AM, Lasya Venneti wrote:
>>
>> Hi all,
>>
>> I'm Lasya, a student pursuing Computer Science Engineering from IIIT-H,
>> Hyderabad, India.
>>
>> I wish to get started with contributing to Mirage OS. I have conceptual
>> knowledge about Computer system architecture, and OS concepts like
>> Virtualization. I hope they will be useful while contributing to the
>> community, I am willing to learn with your help & guidance. :)
>>
>> Request to link me to some pages/docs that I am supposed to read to help
>> me setup the environment and start contributing, & a few beginner bugs that
>> I can try my hand at.
>>
>> Sincerely,
>> Lasya V
>>
>>
>> _______________________________________________
>> MirageOS-devel mailing listMirageOS-devel@lists.xenproject.orghttp://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
>>
>>
>>
>> _______________________________________________
>> MirageOS-devel mailing list
>> MirageOS-devel@lists.xenproject.org
>> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
>>
>>
> _______________________________________________
> MirageOS-devel mailing list
> MirageOS-devel@lists.xenproject.org
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
>
>
>

--001a113f1e64d4880c052058d901
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Dear Sir,<div>Thank you! :) Sure thing! I would love to co=
ntribute to documentation too, =C2=A0once I start getting the hang of thing=
s.=C2=A0</div><div><br></div><div>Sincerely,</div><div>Lasya V=C2=A0</div><=
/div><div class=3D"gmail_extra"><br><div class=3D"gmail_quote">On 22 Septem=
ber 2015 at 15:54, Anil Madhavapeddy <span dir=3D"ltr">&lt;<a href=3D"mailt=
o:anil@recoil.org" target=3D"_blank">anil@recoil.org</a>&gt;</span> wrote:<=
br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left=
:1px #ccc solid;padding-left:1ex"><div style=3D"word-wrap:break-word">And a=
bove all, welcome!=C2=A0 Feel free to ask questions as you learn and explor=
e the various components.=C2=A0 As Mindy notes, there&#39;s still quite a b=
it of &quot;institutional knowledge&quot; that hasn&#39;t been captured in =
our documentation, so patches to improve mirage-www (which is the live webs=
ite) are most welcome, as are any pieces that you find confusing or difficu=
lt to get started with.<span class=3D"HOEnZb"><font color=3D"#888888"><div>=
<br></div><div>Anil</div></font></span><div><div class=3D"h5"><div><br><div=
><blockquote type=3D"cite"><div>On 22 Sep 2015, at 10:06, Lasya Venneti &lt=
;<a href=3D"mailto:comethalley61@gmail.com" target=3D"_blank">comethalley61=
@gmail.com</a>&gt; wrote:</div><br><div><div dir=3D"ltr">Dear Ma&#39;am,<di=
v><br></div><div>Thanks for such an informative mail! I will get started wi=
th contributing right away!=C2=A0</div><div><br></div><div>Sincerely,</div>=
<div>Lasya V=C2=A0</div></div><div class=3D"gmail_extra"><br><div class=3D"=
gmail_quote">On 22 September 2015 at 04:53, Mindy <span dir=3D"ltr">&lt;<a =
href=3D"mailto:mindy@somerandomidiot.com" target=3D"_blank">mindy@somerando=
midiot.com</a>&gt;</span> wrote:<br><blockquote class=3D"gmail_quote" style=
=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
 =20
   =20
 =20
  <div text=3D"#000000" bgcolor=3D"#FFFFFF">
    Hi Lasya,<br>
    <br>
    Glad to hear you&#39;re interested in MirageOS!=C2=A0 Here&#39;s a shor=
t list of
    links you may find helpful in getting started.<br>
    <br>
    The documentation page of the MirageOS website (
    <a href=3D"https://mirage.io/docs/" target=3D"_blank">https://mirage.io=
/docs/</a> ) has a list of links for getting started,
    the first of which is here: <a href=3D"https://mirage.io/wiki/install" =
target=3D"_blank">https://mirage.io/wiki/install</a> .=C2=A0 A
    quick guide to contributing is available here:
    <a href=3D"https://mirage.io/wiki/contributing" target=3D"_blank">https=
://mirage.io/wiki/contributing</a> .<br>
    <br>
    Any fixes for unclear or confusing bits of text you find in the
    above documents can be submitted as pull requests to the mirage-www
    repository at <a href=3D"https://github.com/mirage/mirage-www" target=
=3D"_blank">https://github.com/mirage/mirage-www</a> , and would make
    excellent contributions.<br>
    <br>
    You may be interested in the list of &quot;pioneer projects&quot;:
    <a href=3D"https://github.com/mirage/mirage-www/wiki/Pioneer-Projects" =
target=3D"_blank">https://github.com/mirage/mirage-www/wiki/Pioneer-Project=
s</a> .=C2=A0 The
    projects listed are too large for a first contribution of the type
    requested by (for example) the Outreachy application process, but
    some of are approximately the right size for the internship itself.<br>
    <br>
    Many known issues in MirageOS are listed via the GitHub issue
    tracker for the `mirage` tool:
    <a href=3D"https://github.com/mirage/mirage/issues" target=3D"_blank">h=
ttps://github.com/mirage/mirage/issues</a> .=C2=A0 There are others on the
    repositories for specific libraries (e.g. the mirage-tcpip
    repository issue tracker at <a href=3D"https://github.com/mirage/mirage=
-tcpip" target=3D"_blank">https://github.com/mirage/mirage-tcpip</a>
    ).=C2=A0 We don&#39;t have a nice way to aggregate all open issues at t=
he
    moment as far as I know (but someone please correct me if I&#39;m
    wrong!)<br>
    <br>
    Cheers,<br>
    Mindy Preston<div><div><br>
    <br>
    <div>On 09/20/2015 07:42 AM, Lasya Venneti
      wrote:<br>
    </div>
    </div></div><blockquote type=3D"cite"><div><div>
      <div dir=3D"ltr">Hi all,=C2=A0
        <div><br>
        </div>
        <div>I&#39;m Lasya, a student pursuing Computer Science Engineering
          from IIIT-H, Hyderabad, India.=C2=A0</div>
        <div><br>
        </div>
        <div>I wish to get started with contributing to Mirage OS. I
          have conceptual knowledge about Computer system architecture,
          and OS concepts like Virtualization. I hope they will be
          useful while contributing to the community, I am willing to
          learn with your help &amp; guidance. :)</div>
        <div><br>
        </div>
        <div>Request to link me to some pages/docs that I am supposed to
          read to help me setup the environment and start contributing,
          &amp; a few beginner bugs that I can try my hand at.</div>
        <div><br>
        </div>
        <div>Sincerely,</div>
        <div>Lasya V =C2=A0=C2=A0</div>
      </div>
      <br>
      <fieldset></fieldset>
      <br>
      </div></div><pre>_______________________________________________
MirageOS-devel mailing list
<a href=3D"mailto:MirageOS-devel@lists.xenproject.org" target=3D"_blank">Mi=
rageOS-devel@lists.xenproject.org</a>
<a href=3D"http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-de=
vel" target=3D"_blank">http://lists.xenproject.org/cgi-bin/mailman/listinfo=
/mirageos-devel</a>
</pre>
    </blockquote>
    <br>
  </div>

<br>_______________________________________________<br>
MirageOS-devel mailing list<br>
<a href=3D"mailto:MirageOS-devel@lists.xenproject.org" target=3D"_blank">Mi=
rageOS-devel@lists.xenproject.org</a><br>
<a href=3D"http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-de=
vel" rel=3D"noreferrer" target=3D"_blank">http://lists.xenproject.org/cgi-b=
in/mailman/listinfo/mirageos-devel</a><br>
<br></blockquote></div><br></div>
_______________________________________________<br>MirageOS-devel mailing l=
ist<br><a href=3D"mailto:MirageOS-devel@lists.xenproject.org" target=3D"_bl=
ank">MirageOS-devel@lists.xenproject.org</a><br><a href=3D"http://lists.xen=
project.org/cgi-bin/mailman/listinfo/mirageos-devel" target=3D"_blank">http=
://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel</a><br></di=
v></blockquote></div><br></div></div></div></div></blockquote></div><br></d=
iv>

--001a113f1e64d4880c052058d901--


--===============6421910160492081153==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

--===============6421910160492081153==--


From mirageos-devel-bounces@lists.xenproject.org Tue Sep 22 20:24:26 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 22 Sep 2015 20:24:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZeU6q-0006Vu-Mm; Tue, 22 Sep 2015 20:24:16 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <andrew.stuart@supercoders.com.au>)
	id 1ZeU6q-0006Vp-1A
	for mirageos-devel@lists.xenproject.org; Tue, 22 Sep 2015 20:24:16 +0000
Received: from [85.158.139.211] by server-9.bemta-5.messagelabs.com id
	C9/2C-30270-FE8B1065; Tue, 22 Sep 2015 20:24:15 +0000
X-Env-Sender: andrew.stuart@supercoders.com.au
X-Msg-Ref: server-15.tower-206.messagelabs.com!1442953454!21296133!1
X-Originating-IP: [54.215.13.78]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 23346 invoked from network); 22 Sep 2015 20:24:14 -0000
Received: from mail.supercoders.com.au (HELO mail.supercoders.com.au)
	(54.215.13.78) by server-15.tower-206.messagelabs.com with SMTP;
	22 Sep 2015 20:24:14 -0000
Received: from [192.168.1.100] (CPE-124-189-108-248.gziz1.win.bigpond.net.au
	[124.189.108.248])
	by mail.supercoders.com.au (Postfix) with ESMTPS id 8744C600C7
	for <mirageos-devel@lists.xenproject.org>;
	Tue, 22 Sep 2015 20:24:13 +0000 (UTC)
From: Andrew Stuart <andrew.stuart@supercoders.com.au>
Message-Id: <E9F8F6A6-C24D-425E-A772-3A1E5E5988AC@supercoders.com.au>
Date: Wed, 23 Sep 2015 06:24:11 +1000
To: mirageos-devel <mirageos-devel@lists.xenproject.org>
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\))
X-Mailer: Apple Mail (2.2104)
Subject: [MirageOS-devel] Blog and OPAM-aware static website generator
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

VGhlIFBpb25lZXIgUHJvamVjdHMgcGFnZSBodHRwczovL2dpdGh1Yi5jb20vbWlyYWdlL21pcmFn
ZS13d3cvd2lraS9QaW9uZWVyLVByb2plY3RzIG1lbnRpb25zICJCbG9nIGFuZCBPUEFNLWF3YXJl
IHN0YXRpYyB3ZWJzaXRlIGdlbmVyYXRvcuKAnS4KCkFueW9uZSBpbnRlcmVzdGVkIGluIGdlbmVy
YXRpbmcgc3RhdGljIHdlYnNpdGVzIHdvdWxkIGdhaW4gYSBncmVhdCBkZWFsIGZyb20gZmlyc3Qg
aW52ZXN0aWdhdGluZyBodHRyYWNrIC0gaXTigJlzIHRoZSBtb3N0IHBvd2VyZnVsIHN0YXRpYyBz
aXRlIGdlbmVyYXRvciBhbHRob3VnaCBub3QgbWFueSBwZW9wbGUgc2VlbSB0byBrbm93IG9mIGl0
LiAgaHR0cmFjayBjYW4gY29udmVydCBtb3N0IHdlYnNpdGVzIGludG8gc3RhdGljIEhUTUwgYW5k
IHRoZW4gdGhleSBqdXN0IG5lZWQgdG8gYmUgY29tcGlsZWQgaW50byBNaXJhZ2VPUy4KCmh0dHBz
Oi8vd3d3Lmh0dHJhY2suY29tCgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fCk1pcmFnZU9TLWRldmVsIG1haWxpbmcgbGlzdApNaXJhZ2VPUy1kZXZlbEBs
aXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9t
YWlsbWFuL2xpc3RpbmZvL21pcmFnZW9zLWRldmVsCg==

From mirageos-devel-bounces@lists.xenproject.org Tue Sep 22 20:24:26 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 22 Sep 2015 20:24:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZeU6q-0006Vu-Mm; Tue, 22 Sep 2015 20:24:16 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <andrew.stuart@supercoders.com.au>)
	id 1ZeU6q-0006Vp-1A
	for mirageos-devel@lists.xenproject.org; Tue, 22 Sep 2015 20:24:16 +0000
Received: from [85.158.139.211] by server-9.bemta-5.messagelabs.com id
	C9/2C-30270-FE8B1065; Tue, 22 Sep 2015 20:24:15 +0000
X-Env-Sender: andrew.stuart@supercoders.com.au
X-Msg-Ref: server-15.tower-206.messagelabs.com!1442953454!21296133!1
X-Originating-IP: [54.215.13.78]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 23346 invoked from network); 22 Sep 2015 20:24:14 -0000
Received: from mail.supercoders.com.au (HELO mail.supercoders.com.au)
	(54.215.13.78) by server-15.tower-206.messagelabs.com with SMTP;
	22 Sep 2015 20:24:14 -0000
Received: from [192.168.1.100] (CPE-124-189-108-248.gziz1.win.bigpond.net.au
	[124.189.108.248])
	by mail.supercoders.com.au (Postfix) with ESMTPS id 8744C600C7
	for <mirageos-devel@lists.xenproject.org>;
	Tue, 22 Sep 2015 20:24:13 +0000 (UTC)
From: Andrew Stuart <andrew.stuart@supercoders.com.au>
Message-Id: <E9F8F6A6-C24D-425E-A772-3A1E5E5988AC@supercoders.com.au>
Date: Wed, 23 Sep 2015 06:24:11 +1000
To: mirageos-devel <mirageos-devel@lists.xenproject.org>
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\))
X-Mailer: Apple Mail (2.2104)
Subject: [MirageOS-devel] Blog and OPAM-aware static website generator
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

VGhlIFBpb25lZXIgUHJvamVjdHMgcGFnZSBodHRwczovL2dpdGh1Yi5jb20vbWlyYWdlL21pcmFn
ZS13d3cvd2lraS9QaW9uZWVyLVByb2plY3RzIG1lbnRpb25zICJCbG9nIGFuZCBPUEFNLWF3YXJl
IHN0YXRpYyB3ZWJzaXRlIGdlbmVyYXRvcuKAnS4KCkFueW9uZSBpbnRlcmVzdGVkIGluIGdlbmVy
YXRpbmcgc3RhdGljIHdlYnNpdGVzIHdvdWxkIGdhaW4gYSBncmVhdCBkZWFsIGZyb20gZmlyc3Qg
aW52ZXN0aWdhdGluZyBodHRyYWNrIC0gaXTigJlzIHRoZSBtb3N0IHBvd2VyZnVsIHN0YXRpYyBz
aXRlIGdlbmVyYXRvciBhbHRob3VnaCBub3QgbWFueSBwZW9wbGUgc2VlbSB0byBrbm93IG9mIGl0
LiAgaHR0cmFjayBjYW4gY29udmVydCBtb3N0IHdlYnNpdGVzIGludG8gc3RhdGljIEhUTUwgYW5k
IHRoZW4gdGhleSBqdXN0IG5lZWQgdG8gYmUgY29tcGlsZWQgaW50byBNaXJhZ2VPUy4KCmh0dHBz
Oi8vd3d3Lmh0dHJhY2suY29tCgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fCk1pcmFnZU9TLWRldmVsIG1haWxpbmcgbGlzdApNaXJhZ2VPUy1kZXZlbEBs
aXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9t
YWlsbWFuL2xpc3RpbmZvL21pcmFnZW9zLWRldmVsCg==

From mirageos-devel-bounces@lists.xenproject.org Wed Sep 23 08:21:00 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 23 Sep 2015 08:21:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZefIK-0001XS-ND; Wed, 23 Sep 2015 08:20:52 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <gareth@morethanseven.net>) id 1ZefIK-0001XN-0s
	for mirageos-devel@lists.xenproject.org; Wed, 23 Sep 2015 08:20:52 +0000
Received: from [193.109.254.147] by server-3.bemta-14.messagelabs.com id
	CF/41-25435-3E062065; Wed, 23 Sep 2015 08:20:51 +0000
X-Env-Sender: gareth@morethanseven.net
X-Msg-Ref: server-15.tower-27.messagelabs.com!1442996449!33461159!1
X-Originating-IP: [209.85.213.182]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 24539 invoked from network); 23 Sep 2015 08:20:50 -0000
Received: from mail-ig0-f182.google.com (HELO mail-ig0-f182.google.com)
	(209.85.213.182)
	by server-15.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	23 Sep 2015 08:20:50 -0000
Received: by igbkq10 with SMTP id kq10so114901594igb.0
	for <mirageos-devel@lists.xenproject.org>;
	Wed, 23 Sep 2015 01:20:49 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:mime-version:in-reply-to:references:date
	:message-id:subject:from:to:cc:content-type
	:content-transfer-encoding;
	bh=5vh7bCWHPggaEiIGbdVbsnf0vE4cCVr1rZk4DgYu/g8=;
	b=gVA01tQBaz8zQ8dM+cMOAtiIoQgwDAy4RcXCT00YOE1700ryWZ5ZE5rJUGpELzcoai
	Be4P95xECHHa+uggWn54pTj07yP+dFGRyVNirHV6yygvjNUnIozZHqxlxZClZZ2YIwzD
	A0nUvcf+H70X6Jej1UE29NHZPSvOMfzTyJ+KRtfJH4kxrDh0hbgvEDF7pev80oLHzAaP
	xismCisyhqxNLajNf3sFW/sFPHbFpjRPZ+NSX6wae/rVTVZXVMnIZUAcBxgSSYsnQ1OB
	Z+Zzit3ifkuUU9sFuVDAPyNBe9KBAqea61FoHiy8HL5Cvbf7PaN/yRAkbf4hoVpzgvp7
	dNbw==
X-Gm-Message-State: ALoCoQn/UA+Dejt9OQNzu2HpXVPs87uVW62Jzxfa3ar4V5W625DZOpv6r5zj8cjOjNHer3TfKEfw
MIME-Version: 1.0
X-Received: by 10.50.87.98 with SMTP id w2mr22586696igz.60.1442996448756; Wed,
	23 Sep 2015 01:20:48 -0700 (PDT)
Received: by 10.107.35.82 with HTTP; Wed, 23 Sep 2015 01:20:48 -0700 (PDT)
In-Reply-To: <E9F8F6A6-C24D-425E-A772-3A1E5E5988AC@supercoders.com.au>
References: <E9F8F6A6-C24D-425E-A772-3A1E5E5988AC@supercoders.com.au>
Date: Wed, 23 Sep 2015 09:20:48 +0100
Message-ID: <CAFi_6yLoqJyT+TAYNx4xjrBC8Fmqyy1K+9UEQR+Lc49A=-3z6Q@mail.gmail.com>
From: Gareth Rushgrove <gareth@morethanseven.net>
To: Andrew Stuart <andrew.stuart@supercoders.com.au>
Cc: mirageos-devel <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Blog and OPAM-aware static website generator
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

T24gMjIgU2VwdGVtYmVyIDIwMTUgYXQgMjE6MjQsIEFuZHJldyBTdHVhcnQKPGFuZHJldy5zdHVh
cnRAc3VwZXJjb2RlcnMuY29tLmF1PiB3cm90ZToKPiBUaGUgUGlvbmVlciBQcm9qZWN0cyBwYWdl
IGh0dHBzOi8vZ2l0aHViLmNvbS9taXJhZ2UvbWlyYWdlLXd3dy93aWtpL1Bpb25lZXItUHJvamVj
dHMgbWVudGlvbnMgIkJsb2cgYW5kIE9QQU0tYXdhcmUgc3RhdGljIHdlYnNpdGUgZ2VuZXJhdG9y
4oCdLgo+Cj4gQW55b25lIGludGVyZXN0ZWQgaW4gZ2VuZXJhdGluZyBzdGF0aWMgd2Vic2l0ZXMg
d291bGQgZ2FpbiBhIGdyZWF0IGRlYWwgZnJvbSBmaXJzdCBpbnZlc3RpZ2F0aW5nIGh0dHJhY2sg
LSBpdOKAmXMgdGhlIG1vc3QgcG93ZXJmdWwgc3RhdGljIHNpdGUgZ2VuZXJhdG9yIGFsdGhvdWdo
IG5vdCBtYW55IHBlb3BsZSBzZWVtIHRvIGtub3cgb2YgaXQuICBodHRyYWNrIGNhbiBjb252ZXJ0
IG1vc3Qgd2Vic2l0ZXMgaW50byBzdGF0aWMgSFRNTCBhbmQgdGhlbiB0aGV5IGp1c3QgbmVlZCB0
byBiZSBjb21waWxlZCBpbnRvIE1pcmFnZU9TLgo+Cj4gaHR0cHM6Ly93d3cuaHR0cmFjay5jb20K
PgoKSSdkIHNlZSBodHR0cmFjayBhcyBtb3JlIG9mIGEgc3BpZGVyZXJpbmcgdG9vbCwgZm9yIGRv
d25sb2FkaW5nIGFuCmV4aXN0aW5nIHNpdGUuIExpa2Ugd2dldCBidXQgbW9yZSBzcGVjaWFsaXNl
ZC4gSXQncyBwcmV0dHkgZ3JlYXQuCgpJIF90aGlua18gdGhpcyBwcm9qZWN0IHJlZmVycyBtb3Jl
IHRvIGdlbmVyYXRpbmcgdGhlIEhUTUwgaW4gdGhlIGZpcnN0CnBsYWNlLCBvZnRlbiBmcm9tIHNv
bWV0aGluZyBsaWtlIGEgZGlyZWN0b3J5IG9mIG1hcmtkb3duIGZpbGVzLiBNb3N0Cmxhbmd1YWdl
cyBoYXZlIHNvbWV0aGluZyBzaW1pbGFyIGFuZCBpdCdzIG9mdGVuIGEgZ3JlYXQKbXktZmlyc3Qt
cnVubmluZy1hcHBsaWNhdGlvbiBwbGFjZSB0byBzdGFydCB3aXRoIGEgbmV3IGxhbmd1YWdlLiBB
cwppbnNwaXJhdGlvbiBmb3IgdGhhdCBzb3J0IG9mIHRoaW5nOgoKaHR0cHM6Ly9nb2h1Z28uaW8v
IChHbykKaHR0cDovL2Jsb2cuZ2V0cGVsaWNhbi5jb20vIChQeXRob24pCmh0dHBzOi8vc2N1bHBp
bi5pby8gKFBIUCkKaHR0cHM6Ly9qZWt5bGxyYi5jb20vIChSdWJ5KQpodHRwOi8vd2ludGVyc21p
dGguaW8vIChKYXZhU2NyaXB0KQoKR2FyZXRoCgo+Cj4KPiBfX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fXwo+IE1pcmFnZU9TLWRldmVsIG1haWxpbmcgbGlzdAo+
IE1pcmFnZU9TLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCj4gaHR0cDovL2xpc3RzLnhlbnBy
b2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby9taXJhZ2Vvcy1kZXZlbAoKCgotLSAK
R2FyZXRoIFJ1c2hncm92ZQpAZ2FyZXRocgoKZGV2b3Bzd2Vla2x5LmNvbQptb3JldGhhbnNldmVu
Lm5ldApnYXJldGhydXNoZ3JvdmUuY29tCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fXwpNaXJhZ2VPUy1kZXZlbCBtYWlsaW5nIGxpc3QKTWlyYWdlT1MtZGV2
ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cDovL2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1i
aW4vbWFpbG1hbi9saXN0aW5mby9taXJhZ2Vvcy1kZXZlbAo=

From mirageos-devel-bounces@lists.xenproject.org Wed Sep 23 08:21:00 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 23 Sep 2015 08:21:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZefIK-0001XS-ND; Wed, 23 Sep 2015 08:20:52 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <gareth@morethanseven.net>) id 1ZefIK-0001XN-0s
	for mirageos-devel@lists.xenproject.org; Wed, 23 Sep 2015 08:20:52 +0000
Received: from [193.109.254.147] by server-3.bemta-14.messagelabs.com id
	CF/41-25435-3E062065; Wed, 23 Sep 2015 08:20:51 +0000
X-Env-Sender: gareth@morethanseven.net
X-Msg-Ref: server-15.tower-27.messagelabs.com!1442996449!33461159!1
X-Originating-IP: [209.85.213.182]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 24539 invoked from network); 23 Sep 2015 08:20:50 -0000
Received: from mail-ig0-f182.google.com (HELO mail-ig0-f182.google.com)
	(209.85.213.182)
	by server-15.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	23 Sep 2015 08:20:50 -0000
Received: by igbkq10 with SMTP id kq10so114901594igb.0
	for <mirageos-devel@lists.xenproject.org>;
	Wed, 23 Sep 2015 01:20:49 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:mime-version:in-reply-to:references:date
	:message-id:subject:from:to:cc:content-type
	:content-transfer-encoding;
	bh=5vh7bCWHPggaEiIGbdVbsnf0vE4cCVr1rZk4DgYu/g8=;
	b=gVA01tQBaz8zQ8dM+cMOAtiIoQgwDAy4RcXCT00YOE1700ryWZ5ZE5rJUGpELzcoai
	Be4P95xECHHa+uggWn54pTj07yP+dFGRyVNirHV6yygvjNUnIozZHqxlxZClZZ2YIwzD
	A0nUvcf+H70X6Jej1UE29NHZPSvOMfzTyJ+KRtfJH4kxrDh0hbgvEDF7pev80oLHzAaP
	xismCisyhqxNLajNf3sFW/sFPHbFpjRPZ+NSX6wae/rVTVZXVMnIZUAcBxgSSYsnQ1OB
	Z+Zzit3ifkuUU9sFuVDAPyNBe9KBAqea61FoHiy8HL5Cvbf7PaN/yRAkbf4hoVpzgvp7
	dNbw==
X-Gm-Message-State: ALoCoQn/UA+Dejt9OQNzu2HpXVPs87uVW62Jzxfa3ar4V5W625DZOpv6r5zj8cjOjNHer3TfKEfw
MIME-Version: 1.0
X-Received: by 10.50.87.98 with SMTP id w2mr22586696igz.60.1442996448756; Wed,
	23 Sep 2015 01:20:48 -0700 (PDT)
Received: by 10.107.35.82 with HTTP; Wed, 23 Sep 2015 01:20:48 -0700 (PDT)
In-Reply-To: <E9F8F6A6-C24D-425E-A772-3A1E5E5988AC@supercoders.com.au>
References: <E9F8F6A6-C24D-425E-A772-3A1E5E5988AC@supercoders.com.au>
Date: Wed, 23 Sep 2015 09:20:48 +0100
Message-ID: <CAFi_6yLoqJyT+TAYNx4xjrBC8Fmqyy1K+9UEQR+Lc49A=-3z6Q@mail.gmail.com>
From: Gareth Rushgrove <gareth@morethanseven.net>
To: Andrew Stuart <andrew.stuart@supercoders.com.au>
Cc: mirageos-devel <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Blog and OPAM-aware static website generator
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

T24gMjIgU2VwdGVtYmVyIDIwMTUgYXQgMjE6MjQsIEFuZHJldyBTdHVhcnQKPGFuZHJldy5zdHVh
cnRAc3VwZXJjb2RlcnMuY29tLmF1PiB3cm90ZToKPiBUaGUgUGlvbmVlciBQcm9qZWN0cyBwYWdl
IGh0dHBzOi8vZ2l0aHViLmNvbS9taXJhZ2UvbWlyYWdlLXd3dy93aWtpL1Bpb25lZXItUHJvamVj
dHMgbWVudGlvbnMgIkJsb2cgYW5kIE9QQU0tYXdhcmUgc3RhdGljIHdlYnNpdGUgZ2VuZXJhdG9y
4oCdLgo+Cj4gQW55b25lIGludGVyZXN0ZWQgaW4gZ2VuZXJhdGluZyBzdGF0aWMgd2Vic2l0ZXMg
d291bGQgZ2FpbiBhIGdyZWF0IGRlYWwgZnJvbSBmaXJzdCBpbnZlc3RpZ2F0aW5nIGh0dHJhY2sg
LSBpdOKAmXMgdGhlIG1vc3QgcG93ZXJmdWwgc3RhdGljIHNpdGUgZ2VuZXJhdG9yIGFsdGhvdWdo
IG5vdCBtYW55IHBlb3BsZSBzZWVtIHRvIGtub3cgb2YgaXQuICBodHRyYWNrIGNhbiBjb252ZXJ0
IG1vc3Qgd2Vic2l0ZXMgaW50byBzdGF0aWMgSFRNTCBhbmQgdGhlbiB0aGV5IGp1c3QgbmVlZCB0
byBiZSBjb21waWxlZCBpbnRvIE1pcmFnZU9TLgo+Cj4gaHR0cHM6Ly93d3cuaHR0cmFjay5jb20K
PgoKSSdkIHNlZSBodHR0cmFjayBhcyBtb3JlIG9mIGEgc3BpZGVyZXJpbmcgdG9vbCwgZm9yIGRv
d25sb2FkaW5nIGFuCmV4aXN0aW5nIHNpdGUuIExpa2Ugd2dldCBidXQgbW9yZSBzcGVjaWFsaXNl
ZC4gSXQncyBwcmV0dHkgZ3JlYXQuCgpJIF90aGlua18gdGhpcyBwcm9qZWN0IHJlZmVycyBtb3Jl
IHRvIGdlbmVyYXRpbmcgdGhlIEhUTUwgaW4gdGhlIGZpcnN0CnBsYWNlLCBvZnRlbiBmcm9tIHNv
bWV0aGluZyBsaWtlIGEgZGlyZWN0b3J5IG9mIG1hcmtkb3duIGZpbGVzLiBNb3N0Cmxhbmd1YWdl
cyBoYXZlIHNvbWV0aGluZyBzaW1pbGFyIGFuZCBpdCdzIG9mdGVuIGEgZ3JlYXQKbXktZmlyc3Qt
cnVubmluZy1hcHBsaWNhdGlvbiBwbGFjZSB0byBzdGFydCB3aXRoIGEgbmV3IGxhbmd1YWdlLiBB
cwppbnNwaXJhdGlvbiBmb3IgdGhhdCBzb3J0IG9mIHRoaW5nOgoKaHR0cHM6Ly9nb2h1Z28uaW8v
IChHbykKaHR0cDovL2Jsb2cuZ2V0cGVsaWNhbi5jb20vIChQeXRob24pCmh0dHBzOi8vc2N1bHBp
bi5pby8gKFBIUCkKaHR0cHM6Ly9qZWt5bGxyYi5jb20vIChSdWJ5KQpodHRwOi8vd2ludGVyc21p
dGguaW8vIChKYXZhU2NyaXB0KQoKR2FyZXRoCgo+Cj4KPiBfX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fXwo+IE1pcmFnZU9TLWRldmVsIG1haWxpbmcgbGlzdAo+
IE1pcmFnZU9TLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCj4gaHR0cDovL2xpc3RzLnhlbnBy
b2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby9taXJhZ2Vvcy1kZXZlbAoKCgotLSAK
R2FyZXRoIFJ1c2hncm92ZQpAZ2FyZXRocgoKZGV2b3Bzd2Vla2x5LmNvbQptb3JldGhhbnNldmVu
Lm5ldApnYXJldGhydXNoZ3JvdmUuY29tCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fXwpNaXJhZ2VPUy1kZXZlbCBtYWlsaW5nIGxpc3QKTWlyYWdlT1MtZGV2
ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cDovL2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1i
aW4vbWFpbG1hbi9saXN0aW5mby9taXJhZ2Vvcy1kZXZlbAo=

From mirageos-devel-bounces@lists.xenproject.org Wed Sep 23 09:40:54 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 23 Sep 2015 09:40:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZegXe-0002H3-2f; Wed, 23 Sep 2015 09:40:46 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <amc79@cam.ac.uk>) id 1ZegXc-0002Gy-O7
	for mirageos-devel@lists.xenproject.org; Wed, 23 Sep 2015 09:40:44 +0000
Received: from [85.158.139.211] by server-14.bemta-5.messagelabs.com id
	DB/6B-19125-C9372065; Wed, 23 Sep 2015 09:40:44 +0000
X-Env-Sender: amc79@cam.ac.uk
X-Msg-Ref: server-12.tower-206.messagelabs.com!1443001242!37129638!1
X-Originating-IP: [131.111.8.140]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 18441 invoked from network); 23 Sep 2015 09:40:43 -0000
Received: from ppsw-40.csi.cam.ac.uk (HELO ppsw-40.csi.cam.ac.uk)
	(131.111.8.140)
	by server-12.tower-206.messagelabs.com with DHE-RSA-AES256-SHA
	encrypted SMTP; 23 Sep 2015 09:40:43 -0000
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: http://www.cam.ac.uk/cs/email/scanner/
Received: from [31.124.232.204] (port=59041 helo=[192.168.43.106])
	by ppsw-40.csi.cam.ac.uk (smtp.hermes.cam.ac.uk [131.111.8.156]:465)
	with esmtpsa (PLAIN:amc79) (TLSv1:ECDHE-RSA-AES256-SHA:256)
	id 1ZegXZ-0008Lf-lH (Exim 4.86_36-e07b163)
	(return-path <amc79@cam.ac.uk>); Wed, 23 Sep 2015 10:40:41 +0100
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\))
From: Amir Chaudhry <amc79@cam.ac.uk>
In-Reply-To: <CAFi_6yLoqJyT+TAYNx4xjrBC8Fmqyy1K+9UEQR+Lc49A=-3z6Q@mail.gmail.com>
Date: Wed, 23 Sep 2015 10:32:13 +0100
Message-Id: <DEAA2BEC-42E3-4AA1-A89B-2F20F85A7085@cam.ac.uk>
References: <E9F8F6A6-C24D-425E-A772-3A1E5E5988AC@supercoders.com.au>
	<CAFi_6yLoqJyT+TAYNx4xjrBC8Fmqyy1K+9UEQR+Lc49A=-3z6Q@mail.gmail.com>
To: Gareth Rushgrove <gareth@morethanseven.net>
X-Mailer: Apple Mail (2.2104)
Cc: mirageos-devel <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Blog and OPAM-aware static website generator
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

Cj4gT24gMjMgU2VwIDIwMTUsIGF0IDA5OjIwLCBHYXJldGggUnVzaGdyb3ZlIDxnYXJldGhAbW9y
ZXRoYW5zZXZlbi5uZXQ+IHdyb3RlOgo+IAo+IE9uIDIyIFNlcHRlbWJlciAyMDE1IGF0IDIxOjI0
LCBBbmRyZXcgU3R1YXJ0Cj4gPGFuZHJldy5zdHVhcnRAc3VwZXJjb2RlcnMuY29tLmF1PiB3cm90
ZToKPj4gVGhlIFBpb25lZXIgUHJvamVjdHMgcGFnZSBodHRwczovL2dpdGh1Yi5jb20vbWlyYWdl
L21pcmFnZS13d3cvd2lraS9QaW9uZWVyLVByb2plY3RzIG1lbnRpb25zICJCbG9nIGFuZCBPUEFN
LWF3YXJlIHN0YXRpYyB3ZWJzaXRlIGdlbmVyYXRvcuKAnS4KPj4gCj4+IEFueW9uZSBpbnRlcmVz
dGVkIGluIGdlbmVyYXRpbmcgc3RhdGljIHdlYnNpdGVzIHdvdWxkIGdhaW4gYSBncmVhdCBkZWFs
IGZyb20gZmlyc3QgaW52ZXN0aWdhdGluZyBodHRyYWNrIC0gaXTigJlzIHRoZSBtb3N0IHBvd2Vy
ZnVsIHN0YXRpYyBzaXRlIGdlbmVyYXRvciBhbHRob3VnaCBub3QgbWFueSBwZW9wbGUgc2VlbSB0
byBrbm93IG9mIGl0LiAgaHR0cmFjayBjYW4gY29udmVydCBtb3N0IHdlYnNpdGVzIGludG8gc3Rh
dGljIEhUTUwgYW5kIHRoZW4gdGhleSBqdXN0IG5lZWQgdG8gYmUgY29tcGlsZWQgaW50byBNaXJh
Z2VPUy4KPj4gCj4+IGh0dHBzOi8vd3d3Lmh0dHJhY2suY29tCj4+IAo+IAo+IEknZCBzZWUgaHR0
dHJhY2sgYXMgbW9yZSBvZiBhIHNwaWRlcmVyaW5nIHRvb2wsIGZvciBkb3dubG9hZGluZyBhbgo+
IGV4aXN0aW5nIHNpdGUuIExpa2Ugd2dldCBidXQgbW9yZSBzcGVjaWFsaXNlZC4gSXQncyBwcmV0
dHkgZ3JlYXQuCj4gCj4gSSBfdGhpbmtfIHRoaXMgcHJvamVjdCByZWZlcnMgbW9yZSB0byBnZW5l
cmF0aW5nIHRoZSBIVE1MIGluIHRoZSBmaXJzdAo+IHBsYWNlLCBvZnRlbiBmcm9tIHNvbWV0aGlu
ZyBsaWtlIGEgZGlyZWN0b3J5IG9mIG1hcmtkb3duIGZpbGVzLiBNb3N0Cj4gbGFuZ3VhZ2VzIGhh
dmUgc29tZXRoaW5nIHNpbWlsYXIgYW5kIGl0J3Mgb2Z0ZW4gYSBncmVhdAo+IG15LWZpcnN0LXJ1
bm5pbmctYXBwbGljYXRpb24gcGxhY2UgdG8gc3RhcnQgd2l0aCBhIG5ldyBsYW5ndWFnZS4gQXMK
PiBpbnNwaXJhdGlvbiBmb3IgdGhhdCBzb3J0IG9mIHRoaW5nOgo+IAo+IGh0dHBzOi8vZ29odWdv
LmlvLyAoR28pCj4gaHR0cDovL2Jsb2cuZ2V0cGVsaWNhbi5jb20vIChQeXRob24pCj4gaHR0cHM6
Ly9zY3VscGluLmlvLyAoUEhQKQo+IGh0dHBzOi8vamVreWxscmIuY29tLyAoUnVieSkKPiBodHRw
Oi8vd2ludGVyc21pdGguaW8vIChKYXZhU2NyaXB0KQoKWWVzLCB0aGlzIHByb2plY3QgaXMgYWJv
dXQgY3JlYXRpbmcgYSBwdXJlIE9DYW1sIHN0YXRpYy1zaXRlIGdlbmVyYXRvciwgYnV0IHdpdGgg
dGhlIGFkZGVkIGJlbmVmaXQgb2YgYmVpbmcgYWJsZSB0byBleHRlbmQgZnVuY3Rpb25hbGl0eSB0
byBtYWtlIHVzZSBvZiBvdGhlciBwYXJ0cyBvZiB0aGUgT0NhbWwgZWNvc3lzdGVtIChpLmUuIE9Q
QU0pLiAgCgpTb21lIHdvcmsgYmVnYW4gZWFybGllciB0aGlzIHllYXIgYW5kIHlvdSBjYW4gc2Vl
IHRoZSBjb3JlIG9mIGl0IGF0OiBodHRwczovL2dpdGh1Yi5jb20vZHNoZWV0cy90b3dlcgpJIHNo
b3VsZCBwcm9iYWJseSB3cml0ZSB1cCBhIHBvc3QgYWJvdXQgd2hhdCB3ZSB3ZXJlIGFpbWluZyBm
b3IgYW5kIHdoZXJlIHdlIGdvdCB0by4gOikKCkluIHRoZSBsb25nIHRlcm0sIGl0IHdvdWxkIGJl
IHByZXR0eSBjb29sIHRvIHNldCB1cCBpbmZyYXN0cnVjdHVyZSBsaWtlIEdpdEh1YiBwYWdlcyBm
b3IgdGhlIE9DYW1sIGNvbW11bml0eSwgd2hlcmUgdW5pa2VybmVsIHNpdGVzIGZvciBpbmRpdmlk
dWFscy9wcm9qZWN0cyBjb3VsZCBiZSBob3N0ZWQgKGFuZCB1c2luZyBzb21ldGhpbmcgbGlrZSBK
aXRzdSB3b3VsZCBtZWFuIHRoZXnigJlyZSBvbmx5IOKAmGFjdGl2ZeKAmSB3aGVuIHJlcXVpcmVk
KS4gIFRoYXTigJlzIGEgbGl0dGxlIHdheSBvZmYgdGhvdWdoLgoKSWYgYW55b25lIGlzIGludGVy
ZXN0ZWQgaW4gd29ya2luZyBvbiB0aGUgc3RhdGljIHNpdGUgZ2VuZXJhdG9yIHByb2plY3QsIHBs
ZWFzZSBkbyBnZXQgaW4gdG91Y2ghCgpBbWlyCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fCk1pcmFnZU9TLWRldmVsIG1haWxpbmcgbGlzdApNaXJhZ2VPUy1k
ZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dp
LWJpbi9tYWlsbWFuL2xpc3RpbmZvL21pcmFnZW9zLWRldmVsCg==

From mirageos-devel-bounces@lists.xenproject.org Wed Sep 23 09:40:54 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 23 Sep 2015 09:40:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZegXe-0002H3-2f; Wed, 23 Sep 2015 09:40:46 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <amc79@cam.ac.uk>) id 1ZegXc-0002Gy-O7
	for mirageos-devel@lists.xenproject.org; Wed, 23 Sep 2015 09:40:44 +0000
Received: from [85.158.139.211] by server-14.bemta-5.messagelabs.com id
	DB/6B-19125-C9372065; Wed, 23 Sep 2015 09:40:44 +0000
X-Env-Sender: amc79@cam.ac.uk
X-Msg-Ref: server-12.tower-206.messagelabs.com!1443001242!37129638!1
X-Originating-IP: [131.111.8.140]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 18441 invoked from network); 23 Sep 2015 09:40:43 -0000
Received: from ppsw-40.csi.cam.ac.uk (HELO ppsw-40.csi.cam.ac.uk)
	(131.111.8.140)
	by server-12.tower-206.messagelabs.com with DHE-RSA-AES256-SHA
	encrypted SMTP; 23 Sep 2015 09:40:43 -0000
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: http://www.cam.ac.uk/cs/email/scanner/
Received: from [31.124.232.204] (port=59041 helo=[192.168.43.106])
	by ppsw-40.csi.cam.ac.uk (smtp.hermes.cam.ac.uk [131.111.8.156]:465)
	with esmtpsa (PLAIN:amc79) (TLSv1:ECDHE-RSA-AES256-SHA:256)
	id 1ZegXZ-0008Lf-lH (Exim 4.86_36-e07b163)
	(return-path <amc79@cam.ac.uk>); Wed, 23 Sep 2015 10:40:41 +0100
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\))
From: Amir Chaudhry <amc79@cam.ac.uk>
In-Reply-To: <CAFi_6yLoqJyT+TAYNx4xjrBC8Fmqyy1K+9UEQR+Lc49A=-3z6Q@mail.gmail.com>
Date: Wed, 23 Sep 2015 10:32:13 +0100
Message-Id: <DEAA2BEC-42E3-4AA1-A89B-2F20F85A7085@cam.ac.uk>
References: <E9F8F6A6-C24D-425E-A772-3A1E5E5988AC@supercoders.com.au>
	<CAFi_6yLoqJyT+TAYNx4xjrBC8Fmqyy1K+9UEQR+Lc49A=-3z6Q@mail.gmail.com>
To: Gareth Rushgrove <gareth@morethanseven.net>
X-Mailer: Apple Mail (2.2104)
Cc: mirageos-devel <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Blog and OPAM-aware static website generator
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

Cj4gT24gMjMgU2VwIDIwMTUsIGF0IDA5OjIwLCBHYXJldGggUnVzaGdyb3ZlIDxnYXJldGhAbW9y
ZXRoYW5zZXZlbi5uZXQ+IHdyb3RlOgo+IAo+IE9uIDIyIFNlcHRlbWJlciAyMDE1IGF0IDIxOjI0
LCBBbmRyZXcgU3R1YXJ0Cj4gPGFuZHJldy5zdHVhcnRAc3VwZXJjb2RlcnMuY29tLmF1PiB3cm90
ZToKPj4gVGhlIFBpb25lZXIgUHJvamVjdHMgcGFnZSBodHRwczovL2dpdGh1Yi5jb20vbWlyYWdl
L21pcmFnZS13d3cvd2lraS9QaW9uZWVyLVByb2plY3RzIG1lbnRpb25zICJCbG9nIGFuZCBPUEFN
LWF3YXJlIHN0YXRpYyB3ZWJzaXRlIGdlbmVyYXRvcuKAnS4KPj4gCj4+IEFueW9uZSBpbnRlcmVz
dGVkIGluIGdlbmVyYXRpbmcgc3RhdGljIHdlYnNpdGVzIHdvdWxkIGdhaW4gYSBncmVhdCBkZWFs
IGZyb20gZmlyc3QgaW52ZXN0aWdhdGluZyBodHRyYWNrIC0gaXTigJlzIHRoZSBtb3N0IHBvd2Vy
ZnVsIHN0YXRpYyBzaXRlIGdlbmVyYXRvciBhbHRob3VnaCBub3QgbWFueSBwZW9wbGUgc2VlbSB0
byBrbm93IG9mIGl0LiAgaHR0cmFjayBjYW4gY29udmVydCBtb3N0IHdlYnNpdGVzIGludG8gc3Rh
dGljIEhUTUwgYW5kIHRoZW4gdGhleSBqdXN0IG5lZWQgdG8gYmUgY29tcGlsZWQgaW50byBNaXJh
Z2VPUy4KPj4gCj4+IGh0dHBzOi8vd3d3Lmh0dHJhY2suY29tCj4+IAo+IAo+IEknZCBzZWUgaHR0
dHJhY2sgYXMgbW9yZSBvZiBhIHNwaWRlcmVyaW5nIHRvb2wsIGZvciBkb3dubG9hZGluZyBhbgo+
IGV4aXN0aW5nIHNpdGUuIExpa2Ugd2dldCBidXQgbW9yZSBzcGVjaWFsaXNlZC4gSXQncyBwcmV0
dHkgZ3JlYXQuCj4gCj4gSSBfdGhpbmtfIHRoaXMgcHJvamVjdCByZWZlcnMgbW9yZSB0byBnZW5l
cmF0aW5nIHRoZSBIVE1MIGluIHRoZSBmaXJzdAo+IHBsYWNlLCBvZnRlbiBmcm9tIHNvbWV0aGlu
ZyBsaWtlIGEgZGlyZWN0b3J5IG9mIG1hcmtkb3duIGZpbGVzLiBNb3N0Cj4gbGFuZ3VhZ2VzIGhh
dmUgc29tZXRoaW5nIHNpbWlsYXIgYW5kIGl0J3Mgb2Z0ZW4gYSBncmVhdAo+IG15LWZpcnN0LXJ1
bm5pbmctYXBwbGljYXRpb24gcGxhY2UgdG8gc3RhcnQgd2l0aCBhIG5ldyBsYW5ndWFnZS4gQXMK
PiBpbnNwaXJhdGlvbiBmb3IgdGhhdCBzb3J0IG9mIHRoaW5nOgo+IAo+IGh0dHBzOi8vZ29odWdv
LmlvLyAoR28pCj4gaHR0cDovL2Jsb2cuZ2V0cGVsaWNhbi5jb20vIChQeXRob24pCj4gaHR0cHM6
Ly9zY3VscGluLmlvLyAoUEhQKQo+IGh0dHBzOi8vamVreWxscmIuY29tLyAoUnVieSkKPiBodHRw
Oi8vd2ludGVyc21pdGguaW8vIChKYXZhU2NyaXB0KQoKWWVzLCB0aGlzIHByb2plY3QgaXMgYWJv
dXQgY3JlYXRpbmcgYSBwdXJlIE9DYW1sIHN0YXRpYy1zaXRlIGdlbmVyYXRvciwgYnV0IHdpdGgg
dGhlIGFkZGVkIGJlbmVmaXQgb2YgYmVpbmcgYWJsZSB0byBleHRlbmQgZnVuY3Rpb25hbGl0eSB0
byBtYWtlIHVzZSBvZiBvdGhlciBwYXJ0cyBvZiB0aGUgT0NhbWwgZWNvc3lzdGVtIChpLmUuIE9Q
QU0pLiAgCgpTb21lIHdvcmsgYmVnYW4gZWFybGllciB0aGlzIHllYXIgYW5kIHlvdSBjYW4gc2Vl
IHRoZSBjb3JlIG9mIGl0IGF0OiBodHRwczovL2dpdGh1Yi5jb20vZHNoZWV0cy90b3dlcgpJIHNo
b3VsZCBwcm9iYWJseSB3cml0ZSB1cCBhIHBvc3QgYWJvdXQgd2hhdCB3ZSB3ZXJlIGFpbWluZyBm
b3IgYW5kIHdoZXJlIHdlIGdvdCB0by4gOikKCkluIHRoZSBsb25nIHRlcm0sIGl0IHdvdWxkIGJl
IHByZXR0eSBjb29sIHRvIHNldCB1cCBpbmZyYXN0cnVjdHVyZSBsaWtlIEdpdEh1YiBwYWdlcyBm
b3IgdGhlIE9DYW1sIGNvbW11bml0eSwgd2hlcmUgdW5pa2VybmVsIHNpdGVzIGZvciBpbmRpdmlk
dWFscy9wcm9qZWN0cyBjb3VsZCBiZSBob3N0ZWQgKGFuZCB1c2luZyBzb21ldGhpbmcgbGlrZSBK
aXRzdSB3b3VsZCBtZWFuIHRoZXnigJlyZSBvbmx5IOKAmGFjdGl2ZeKAmSB3aGVuIHJlcXVpcmVk
KS4gIFRoYXTigJlzIGEgbGl0dGxlIHdheSBvZmYgdGhvdWdoLgoKSWYgYW55b25lIGlzIGludGVy
ZXN0ZWQgaW4gd29ya2luZyBvbiB0aGUgc3RhdGljIHNpdGUgZ2VuZXJhdG9yIHByb2plY3QsIHBs
ZWFzZSBkbyBnZXQgaW4gdG91Y2ghCgpBbWlyCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fCk1pcmFnZU9TLWRldmVsIG1haWxpbmcgbGlzdApNaXJhZ2VPUy1k
ZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dp
LWJpbi9tYWlsbWFuL2xpc3RpbmZvL21pcmFnZW9zLWRldmVsCg==

From mirageos-devel-bounces@lists.xenproject.org Wed Sep 23 21:33:45 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 23 Sep 2015 21:33:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZerfU-0000yt-7S; Wed, 23 Sep 2015 21:33:36 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <dominic.j.price@googlemail.com>) id 1ZerfT-0000yo-CJ
	for mirageos-devel@lists.xenproject.org; Wed, 23 Sep 2015 21:33:35 +0000
Received: from [85.158.137.68] by server-5.bemta-3.messagelabs.com id
	82/6A-06021-EAA13065; Wed, 23 Sep 2015 21:33:34 +0000
X-Env-Sender: dominic.j.price@googlemail.com
X-Msg-Ref: server-15.tower-31.messagelabs.com!1443044013!46935581!1
X-Originating-IP: [209.85.212.173]
X-SpamReason: No, hits=0.5 required=7.0 tests=BODY_RANDOM_LONG
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 24976 invoked from network); 23 Sep 2015 21:33:33 -0000
Received: from mail-wi0-f173.google.com (HELO mail-wi0-f173.google.com)
	(209.85.212.173)
	by server-15.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	23 Sep 2015 21:33:33 -0000
Received: by wicfx3 with SMTP id fx3so2894043wic.1
	for <mirageos-devel@lists.xenproject.org>;
	Wed, 23 Sep 2015 14:33:33 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=subject:to:references:from:organization:message-id:date:user-agent
	:mime-version:in-reply-to:content-type:content-transfer-encoding;
	bh=Byu4TAzY6jvFxvgbNKqdqCOON4m4Fbm15c+sy+PFc1A=;
	b=VlFTQGzqwvJ8NSONuFBTzPhtBRDXjZr2ko80p9IdNVFiq2u7iuErUAz37xV0N5yyou
	hXt8lBovmZ64Rg4TlQU99ae2ks0e8UP42xyuQq/6f6CIab7e3hgBsVq801G9ZobZoAgo
	IuD7Gp6B0ttxumK1f+7iH0MJZ231EqNYbMv52sp1l748eKjyCy412epAJE9/snX4+c0d
	HbOhSfcYKffcEoRSXaUP0/0gGZX5h3pfTzo3m2+ityuSEYgJpBX3FGXJD38XaRrhjEGf
	0/GNtk2jAP0mp81js3P/1RtMDiqrj5Pcmt2m1sKelVpCr+hdA+/8HmtnCA7020gxHKbP
	NZVw==
X-Received: by 10.180.88.37 with SMTP id bd5mr6580321wib.82.1443044013049;
	Wed, 23 Sep 2015 14:33:33 -0700 (PDT)
Received: from HOR-MAC-24.local
	(cpc80681-stap13-2-0-cust221.12-2.cable.virginm.net. [86.17.36.222])
	by smtp.googlemail.com with ESMTPSA id
	gk9sm2311904wib.9.2015.09.23.14.33.32
	for <mirageos-devel@lists.xenproject.org>
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Wed, 23 Sep 2015 14:33:32 -0700 (PDT)
To: mirageos-devel@lists.xenproject.org
References: <E9F8F6A6-C24D-425E-A772-3A1E5E5988AC@supercoders.com.au>
	<CAFi_6yLoqJyT+TAYNx4xjrBC8Fmqyy1K+9UEQR+Lc49A=-3z6Q@mail.gmail.com>
	<DEAA2BEC-42E3-4AA1-A89B-2F20F85A7085@cam.ac.uk>
From: Dominic Price <dominic.price@nottingham.ac.uk>
Organization: Horizon Digital Economy Research, The University of Nottingham
Message-ID: <56031AAB.9010506@nottingham.ac.uk>
Date: Wed, 23 Sep 2015 22:33:31 +0100
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:38.0)
	Gecko/20100101 Thunderbird/38.2.0
MIME-Version: 1.0
In-Reply-To: <DEAA2BEC-42E3-4AA1-A89B-2F20F85A7085@cam.ac.uk>
Content-Length: 4288
Subject: Re: [MirageOS-devel] Blog and OPAM-aware static website generator
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

CgpPbiAyMy8wOS8yMDE1IDEwOjMyLCBBbWlyIENoYXVkaHJ5IHdyb3RlOgo+IAo+PiBPbiAyMyBT
ZXAgMjAxNSwgYXQgMDk6MjAsIEdhcmV0aCBSdXNoZ3JvdmUgPGdhcmV0aEBtb3JldGhhbnNldmVu
Lm5ldD4gd3JvdGU6Cj4+Cj4+IE9uIDIyIFNlcHRlbWJlciAyMDE1IGF0IDIxOjI0LCBBbmRyZXcg
U3R1YXJ0Cj4+IDxhbmRyZXcuc3R1YXJ0QHN1cGVyY29kZXJzLmNvbS5hdT4gd3JvdGU6Cj4+PiBU
aGUgUGlvbmVlciBQcm9qZWN0cyBwYWdlIGh0dHBzOi8vZ2l0aHViLmNvbS9taXJhZ2UvbWlyYWdl
LXd3dy93aWtpL1Bpb25lZXItUHJvamVjdHMgbWVudGlvbnMgIkJsb2cgYW5kIE9QQU0tYXdhcmUg
c3RhdGljIHdlYnNpdGUgZ2VuZXJhdG9y4oCdLgo+Pj4KPj4+IEFueW9uZSBpbnRlcmVzdGVkIGlu
IGdlbmVyYXRpbmcgc3RhdGljIHdlYnNpdGVzIHdvdWxkIGdhaW4gYSBncmVhdCBkZWFsIGZyb20g
Zmlyc3QgaW52ZXN0aWdhdGluZyBodHRyYWNrIC0gaXTigJlzIHRoZSBtb3N0IHBvd2VyZnVsIHN0
YXRpYyBzaXRlIGdlbmVyYXRvciBhbHRob3VnaCBub3QgbWFueSBwZW9wbGUgc2VlbSB0byBrbm93
IG9mIGl0LiAgaHR0cmFjayBjYW4gY29udmVydCBtb3N0IHdlYnNpdGVzIGludG8gc3RhdGljIEhU
TUwgYW5kIHRoZW4gdGhleSBqdXN0IG5lZWQgdG8gYmUgY29tcGlsZWQgaW50byBNaXJhZ2VPUy4K
Pj4+Cj4+PiBodHRwczovL3d3dy5odHRyYWNrLmNvbQo+Pj4KPj4KPj4gSSdkIHNlZSBodHR0cmFj
ayBhcyBtb3JlIG9mIGEgc3BpZGVyZXJpbmcgdG9vbCwgZm9yIGRvd25sb2FkaW5nIGFuCj4+IGV4
aXN0aW5nIHNpdGUuIExpa2Ugd2dldCBidXQgbW9yZSBzcGVjaWFsaXNlZC4gSXQncyBwcmV0dHkg
Z3JlYXQuCj4+Cj4+IEkgX3RoaW5rXyB0aGlzIHByb2plY3QgcmVmZXJzIG1vcmUgdG8gZ2VuZXJh
dGluZyB0aGUgSFRNTCBpbiB0aGUgZmlyc3QKPj4gcGxhY2UsIG9mdGVuIGZyb20gc29tZXRoaW5n
IGxpa2UgYSBkaXJlY3Rvcnkgb2YgbWFya2Rvd24gZmlsZXMuIE1vc3QKPj4gbGFuZ3VhZ2VzIGhh
dmUgc29tZXRoaW5nIHNpbWlsYXIgYW5kIGl0J3Mgb2Z0ZW4gYSBncmVhdAo+PiBteS1maXJzdC1y
dW5uaW5nLWFwcGxpY2F0aW9uIHBsYWNlIHRvIHN0YXJ0IHdpdGggYSBuZXcgbGFuZ3VhZ2UuIEFz
Cj4+IGluc3BpcmF0aW9uIGZvciB0aGF0IHNvcnQgb2YgdGhpbmc6Cj4+Cj4+IGh0dHBzOi8vZ29o
dWdvLmlvLyAoR28pCj4+IGh0dHA6Ly9ibG9nLmdldHBlbGljYW4uY29tLyAoUHl0aG9uKQo+PiBo
dHRwczovL3NjdWxwaW4uaW8vIChQSFApCj4+IGh0dHBzOi8vamVreWxscmIuY29tLyAoUnVieSkK
Pj4gaHR0cDovL3dpbnRlcnNtaXRoLmlvLyAoSmF2YVNjcmlwdCkKPiAKPiBZZXMsIHRoaXMgcHJv
amVjdCBpcyBhYm91dCBjcmVhdGluZyBhIHB1cmUgT0NhbWwgc3RhdGljLXNpdGUgZ2VuZXJhdG9y
LCBidXQgd2l0aCB0aGUgYWRkZWQgYmVuZWZpdCBvZiBiZWluZyBhYmxlIHRvIGV4dGVuZCBmdW5j
dGlvbmFsaXR5IHRvIG1ha2UgdXNlIG9mIG90aGVyIHBhcnRzIG9mIHRoZSBPQ2FtbCBlY29zeXN0
ZW0gKGkuZS4gT1BBTSkuICAKCk91dCBvZiBpbnRlcmVzdCwgaXMgdGhlcmUgYSBwYXJ0aWN1bGFy
IHJlYXNvbiBmb3Igd2FudGluZyBhIHB1cmUgT0NhbWwKdG9vbD8gSSB3YXMgdGhpbmtpbmcgYWJv
dXQgYSBzaW1pbGFyIHRvb2wgcmVjZW50bHkgYW5kIGFzIGEgc3RhcnRpbmcKcG9pbnQgSSB3YXMg
Z29pbmcgdG8gc3RhcnQgd2l0aCBzb21ldGhpbmcgc2ltcGxlIHRoYXQgY291bGQgdGFrZSB0aGUK
b3V0cHV0IGZyb20gSmVreWxsIChmb3IgZXhhbXBsZSkgYW5kIHdyYXAgaXQgdXAgYXMgYSB1bmlr
ZXJuZWwuCgpEb21pbmljCgo+IFNvbWUgd29yayBiZWdhbiBlYXJsaWVyIHRoaXMgeWVhciBhbmQg
eW91IGNhbiBzZWUgdGhlIGNvcmUgb2YgaXQgYXQ6IGh0dHBzOi8vZ2l0aHViLmNvbS9kc2hlZXRz
L3Rvd2VyCj4gSSBzaG91bGQgcHJvYmFibHkgd3JpdGUgdXAgYSBwb3N0IGFib3V0IHdoYXQgd2Ug
d2VyZSBhaW1pbmcgZm9yIGFuZCB3aGVyZSB3ZSBnb3QgdG8uIDopCj4gCj4gSW4gdGhlIGxvbmcg
dGVybSwgaXQgd291bGQgYmUgcHJldHR5IGNvb2wgdG8gc2V0IHVwIGluZnJhc3RydWN0dXJlIGxp
a2UgR2l0SHViIHBhZ2VzIGZvciB0aGUgT0NhbWwgY29tbXVuaXR5LCB3aGVyZSB1bmlrZXJuZWwg
c2l0ZXMgZm9yIGluZGl2aWR1YWxzL3Byb2plY3RzIGNvdWxkIGJlIGhvc3RlZCAoYW5kIHVzaW5n
IHNvbWV0aGluZyBsaWtlIEppdHN1IHdvdWxkIG1lYW4gdGhleeKAmXJlIG9ubHkg4oCYYWN0aXZl
4oCZIHdoZW4gcmVxdWlyZWQpLiAgVGhhdOKAmXMgYSBsaXR0bGUgd2F5IG9mZiB0aG91Z2guCj4g
Cj4gSWYgYW55b25lIGlzIGludGVyZXN0ZWQgaW4gd29ya2luZyBvbiB0aGUgc3RhdGljIHNpdGUg
Z2VuZXJhdG9yIHByb2plY3QsIHBsZWFzZSBkbyBnZXQgaW4gdG91Y2ghCj4gCj4gQW1pcgo+IF9f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gTWlyYWdlT1Mt
ZGV2ZWwgbWFpbGluZyBsaXN0Cj4gTWlyYWdlT1MtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcK
PiBodHRwOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL21p
cmFnZW9zLWRldmVsCj4gCgotLSAKRG9taW5pYyBQcmljZQpSZXNlYXJjaCBGZWxsb3cKSG9yaXpv
biBEaWdpdGFsIEVjb25vbXkgUmVzZWFyY2gKTm90dGluZ2hhbSBHZW9zcGF0aWFsIEJ1aWxkaW5n
ClVuaXZlcnNpdHkgb2YgTm90dGluZ2hhbSBJbm5vdmF0aW9uIFBhcmsKVHJpdW1waCBSb2FkCk5v
dHRpbmdoYW0KTkc3IDJUVQoKRW1haWw6IGRvbWluaWMucHJpY2VAbm90dGluZ2hhbS5hYy51awpT
a3lwZTogZG9taW5pYy5qLnByaWNlCk9mZmljZTogKzQ0ICgwKTExNSA4MiAzMjU1NApGYXg6ICs0
NCAoMCkxMTUgODIgMzI1NTEKCldlYjogaHR0cDovL3d3dy5jcy5ub3R0LmFjLnVrL35kanAKV2Vi
OiBodHRwOi8vd3d3Lmhvcml6b24uYWMudWsKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fCk1pcmFnZU9TLWRldmVsIG1haWxpbmcgbGlzdApNaXJhZ2VPUy1k
ZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dp
LWJpbi9tYWlsbWFuL2xpc3RpbmZvL21pcmFnZW9zLWRldmVsCg==

From mirageos-devel-bounces@lists.xenproject.org Wed Sep 23 21:33:45 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 23 Sep 2015 21:33:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZerfU-0000yt-7S; Wed, 23 Sep 2015 21:33:36 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <dominic.j.price@googlemail.com>) id 1ZerfT-0000yo-CJ
	for mirageos-devel@lists.xenproject.org; Wed, 23 Sep 2015 21:33:35 +0000
Received: from [85.158.137.68] by server-5.bemta-3.messagelabs.com id
	82/6A-06021-EAA13065; Wed, 23 Sep 2015 21:33:34 +0000
X-Env-Sender: dominic.j.price@googlemail.com
X-Msg-Ref: server-15.tower-31.messagelabs.com!1443044013!46935581!1
X-Originating-IP: [209.85.212.173]
X-SpamReason: No, hits=0.5 required=7.0 tests=BODY_RANDOM_LONG
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 24976 invoked from network); 23 Sep 2015 21:33:33 -0000
Received: from mail-wi0-f173.google.com (HELO mail-wi0-f173.google.com)
	(209.85.212.173)
	by server-15.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	23 Sep 2015 21:33:33 -0000
Received: by wicfx3 with SMTP id fx3so2894043wic.1
	for <mirageos-devel@lists.xenproject.org>;
	Wed, 23 Sep 2015 14:33:33 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=subject:to:references:from:organization:message-id:date:user-agent
	:mime-version:in-reply-to:content-type:content-transfer-encoding;
	bh=Byu4TAzY6jvFxvgbNKqdqCOON4m4Fbm15c+sy+PFc1A=;
	b=VlFTQGzqwvJ8NSONuFBTzPhtBRDXjZr2ko80p9IdNVFiq2u7iuErUAz37xV0N5yyou
	hXt8lBovmZ64Rg4TlQU99ae2ks0e8UP42xyuQq/6f6CIab7e3hgBsVq801G9ZobZoAgo
	IuD7Gp6B0ttxumK1f+7iH0MJZ231EqNYbMv52sp1l748eKjyCy412epAJE9/snX4+c0d
	HbOhSfcYKffcEoRSXaUP0/0gGZX5h3pfTzo3m2+ityuSEYgJpBX3FGXJD38XaRrhjEGf
	0/GNtk2jAP0mp81js3P/1RtMDiqrj5Pcmt2m1sKelVpCr+hdA+/8HmtnCA7020gxHKbP
	NZVw==
X-Received: by 10.180.88.37 with SMTP id bd5mr6580321wib.82.1443044013049;
	Wed, 23 Sep 2015 14:33:33 -0700 (PDT)
Received: from HOR-MAC-24.local
	(cpc80681-stap13-2-0-cust221.12-2.cable.virginm.net. [86.17.36.222])
	by smtp.googlemail.com with ESMTPSA id
	gk9sm2311904wib.9.2015.09.23.14.33.32
	for <mirageos-devel@lists.xenproject.org>
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Wed, 23 Sep 2015 14:33:32 -0700 (PDT)
To: mirageos-devel@lists.xenproject.org
References: <E9F8F6A6-C24D-425E-A772-3A1E5E5988AC@supercoders.com.au>
	<CAFi_6yLoqJyT+TAYNx4xjrBC8Fmqyy1K+9UEQR+Lc49A=-3z6Q@mail.gmail.com>
	<DEAA2BEC-42E3-4AA1-A89B-2F20F85A7085@cam.ac.uk>
From: Dominic Price <dominic.price@nottingham.ac.uk>
Organization: Horizon Digital Economy Research, The University of Nottingham
Message-ID: <56031AAB.9010506@nottingham.ac.uk>
Date: Wed, 23 Sep 2015 22:33:31 +0100
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:38.0)
	Gecko/20100101 Thunderbird/38.2.0
MIME-Version: 1.0
In-Reply-To: <DEAA2BEC-42E3-4AA1-A89B-2F20F85A7085@cam.ac.uk>
Content-Length: 4288
Subject: Re: [MirageOS-devel] Blog and OPAM-aware static website generator
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

CgpPbiAyMy8wOS8yMDE1IDEwOjMyLCBBbWlyIENoYXVkaHJ5IHdyb3RlOgo+IAo+PiBPbiAyMyBT
ZXAgMjAxNSwgYXQgMDk6MjAsIEdhcmV0aCBSdXNoZ3JvdmUgPGdhcmV0aEBtb3JldGhhbnNldmVu
Lm5ldD4gd3JvdGU6Cj4+Cj4+IE9uIDIyIFNlcHRlbWJlciAyMDE1IGF0IDIxOjI0LCBBbmRyZXcg
U3R1YXJ0Cj4+IDxhbmRyZXcuc3R1YXJ0QHN1cGVyY29kZXJzLmNvbS5hdT4gd3JvdGU6Cj4+PiBU
aGUgUGlvbmVlciBQcm9qZWN0cyBwYWdlIGh0dHBzOi8vZ2l0aHViLmNvbS9taXJhZ2UvbWlyYWdl
LXd3dy93aWtpL1Bpb25lZXItUHJvamVjdHMgbWVudGlvbnMgIkJsb2cgYW5kIE9QQU0tYXdhcmUg
c3RhdGljIHdlYnNpdGUgZ2VuZXJhdG9y4oCdLgo+Pj4KPj4+IEFueW9uZSBpbnRlcmVzdGVkIGlu
IGdlbmVyYXRpbmcgc3RhdGljIHdlYnNpdGVzIHdvdWxkIGdhaW4gYSBncmVhdCBkZWFsIGZyb20g
Zmlyc3QgaW52ZXN0aWdhdGluZyBodHRyYWNrIC0gaXTigJlzIHRoZSBtb3N0IHBvd2VyZnVsIHN0
YXRpYyBzaXRlIGdlbmVyYXRvciBhbHRob3VnaCBub3QgbWFueSBwZW9wbGUgc2VlbSB0byBrbm93
IG9mIGl0LiAgaHR0cmFjayBjYW4gY29udmVydCBtb3N0IHdlYnNpdGVzIGludG8gc3RhdGljIEhU
TUwgYW5kIHRoZW4gdGhleSBqdXN0IG5lZWQgdG8gYmUgY29tcGlsZWQgaW50byBNaXJhZ2VPUy4K
Pj4+Cj4+PiBodHRwczovL3d3dy5odHRyYWNrLmNvbQo+Pj4KPj4KPj4gSSdkIHNlZSBodHR0cmFj
ayBhcyBtb3JlIG9mIGEgc3BpZGVyZXJpbmcgdG9vbCwgZm9yIGRvd25sb2FkaW5nIGFuCj4+IGV4
aXN0aW5nIHNpdGUuIExpa2Ugd2dldCBidXQgbW9yZSBzcGVjaWFsaXNlZC4gSXQncyBwcmV0dHkg
Z3JlYXQuCj4+Cj4+IEkgX3RoaW5rXyB0aGlzIHByb2plY3QgcmVmZXJzIG1vcmUgdG8gZ2VuZXJh
dGluZyB0aGUgSFRNTCBpbiB0aGUgZmlyc3QKPj4gcGxhY2UsIG9mdGVuIGZyb20gc29tZXRoaW5n
IGxpa2UgYSBkaXJlY3Rvcnkgb2YgbWFya2Rvd24gZmlsZXMuIE1vc3QKPj4gbGFuZ3VhZ2VzIGhh
dmUgc29tZXRoaW5nIHNpbWlsYXIgYW5kIGl0J3Mgb2Z0ZW4gYSBncmVhdAo+PiBteS1maXJzdC1y
dW5uaW5nLWFwcGxpY2F0aW9uIHBsYWNlIHRvIHN0YXJ0IHdpdGggYSBuZXcgbGFuZ3VhZ2UuIEFz
Cj4+IGluc3BpcmF0aW9uIGZvciB0aGF0IHNvcnQgb2YgdGhpbmc6Cj4+Cj4+IGh0dHBzOi8vZ29o
dWdvLmlvLyAoR28pCj4+IGh0dHA6Ly9ibG9nLmdldHBlbGljYW4uY29tLyAoUHl0aG9uKQo+PiBo
dHRwczovL3NjdWxwaW4uaW8vIChQSFApCj4+IGh0dHBzOi8vamVreWxscmIuY29tLyAoUnVieSkK
Pj4gaHR0cDovL3dpbnRlcnNtaXRoLmlvLyAoSmF2YVNjcmlwdCkKPiAKPiBZZXMsIHRoaXMgcHJv
amVjdCBpcyBhYm91dCBjcmVhdGluZyBhIHB1cmUgT0NhbWwgc3RhdGljLXNpdGUgZ2VuZXJhdG9y
LCBidXQgd2l0aCB0aGUgYWRkZWQgYmVuZWZpdCBvZiBiZWluZyBhYmxlIHRvIGV4dGVuZCBmdW5j
dGlvbmFsaXR5IHRvIG1ha2UgdXNlIG9mIG90aGVyIHBhcnRzIG9mIHRoZSBPQ2FtbCBlY29zeXN0
ZW0gKGkuZS4gT1BBTSkuICAKCk91dCBvZiBpbnRlcmVzdCwgaXMgdGhlcmUgYSBwYXJ0aWN1bGFy
IHJlYXNvbiBmb3Igd2FudGluZyBhIHB1cmUgT0NhbWwKdG9vbD8gSSB3YXMgdGhpbmtpbmcgYWJv
dXQgYSBzaW1pbGFyIHRvb2wgcmVjZW50bHkgYW5kIGFzIGEgc3RhcnRpbmcKcG9pbnQgSSB3YXMg
Z29pbmcgdG8gc3RhcnQgd2l0aCBzb21ldGhpbmcgc2ltcGxlIHRoYXQgY291bGQgdGFrZSB0aGUK
b3V0cHV0IGZyb20gSmVreWxsIChmb3IgZXhhbXBsZSkgYW5kIHdyYXAgaXQgdXAgYXMgYSB1bmlr
ZXJuZWwuCgpEb21pbmljCgo+IFNvbWUgd29yayBiZWdhbiBlYXJsaWVyIHRoaXMgeWVhciBhbmQg
eW91IGNhbiBzZWUgdGhlIGNvcmUgb2YgaXQgYXQ6IGh0dHBzOi8vZ2l0aHViLmNvbS9kc2hlZXRz
L3Rvd2VyCj4gSSBzaG91bGQgcHJvYmFibHkgd3JpdGUgdXAgYSBwb3N0IGFib3V0IHdoYXQgd2Ug
d2VyZSBhaW1pbmcgZm9yIGFuZCB3aGVyZSB3ZSBnb3QgdG8uIDopCj4gCj4gSW4gdGhlIGxvbmcg
dGVybSwgaXQgd291bGQgYmUgcHJldHR5IGNvb2wgdG8gc2V0IHVwIGluZnJhc3RydWN0dXJlIGxp
a2UgR2l0SHViIHBhZ2VzIGZvciB0aGUgT0NhbWwgY29tbXVuaXR5LCB3aGVyZSB1bmlrZXJuZWwg
c2l0ZXMgZm9yIGluZGl2aWR1YWxzL3Byb2plY3RzIGNvdWxkIGJlIGhvc3RlZCAoYW5kIHVzaW5n
IHNvbWV0aGluZyBsaWtlIEppdHN1IHdvdWxkIG1lYW4gdGhleeKAmXJlIG9ubHkg4oCYYWN0aXZl
4oCZIHdoZW4gcmVxdWlyZWQpLiAgVGhhdOKAmXMgYSBsaXR0bGUgd2F5IG9mZiB0aG91Z2guCj4g
Cj4gSWYgYW55b25lIGlzIGludGVyZXN0ZWQgaW4gd29ya2luZyBvbiB0aGUgc3RhdGljIHNpdGUg
Z2VuZXJhdG9yIHByb2plY3QsIHBsZWFzZSBkbyBnZXQgaW4gdG91Y2ghCj4gCj4gQW1pcgo+IF9f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gTWlyYWdlT1Mt
ZGV2ZWwgbWFpbGluZyBsaXN0Cj4gTWlyYWdlT1MtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcK
PiBodHRwOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL21p
cmFnZW9zLWRldmVsCj4gCgotLSAKRG9taW5pYyBQcmljZQpSZXNlYXJjaCBGZWxsb3cKSG9yaXpv
biBEaWdpdGFsIEVjb25vbXkgUmVzZWFyY2gKTm90dGluZ2hhbSBHZW9zcGF0aWFsIEJ1aWxkaW5n
ClVuaXZlcnNpdHkgb2YgTm90dGluZ2hhbSBJbm5vdmF0aW9uIFBhcmsKVHJpdW1waCBSb2FkCk5v
dHRpbmdoYW0KTkc3IDJUVQoKRW1haWw6IGRvbWluaWMucHJpY2VAbm90dGluZ2hhbS5hYy51awpT
a3lwZTogZG9taW5pYy5qLnByaWNlCk9mZmljZTogKzQ0ICgwKTExNSA4MiAzMjU1NApGYXg6ICs0
NCAoMCkxMTUgODIgMzI1NTEKCldlYjogaHR0cDovL3d3dy5jcy5ub3R0LmFjLnVrL35kanAKV2Vi
OiBodHRwOi8vd3d3Lmhvcml6b24uYWMudWsKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fCk1pcmFnZU9TLWRldmVsIG1haWxpbmcgbGlzdApNaXJhZ2VPUy1k
ZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dp
LWJpbi9tYWlsbWFuL2xpc3RpbmZvL21pcmFnZW9zLWRldmVsCg==

From mirageos-devel-bounces@lists.xenproject.org Wed Sep 23 21:49:04 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 23 Sep 2015 21:49:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZeruQ-0002Ur-Os; Wed, 23 Sep 2015 21:49:02 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <andrew.stuart@supercoders.com.au>)
	id 1ZeruP-0002Ul-5x
	for mirageos-devel@lists.xenproject.org; Wed, 23 Sep 2015 21:49:01 +0000
Received: from [85.158.137.68] by server-4.bemta-3.messagelabs.com id
	8A/5C-09570-C4E13065; Wed, 23 Sep 2015 21:49:00 +0000
X-Env-Sender: andrew.stuart@supercoders.com.au
X-Msg-Ref: server-10.tower-31.messagelabs.com!1443044939!47058298!1
X-Originating-IP: [54.215.13.78]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 5841 invoked from network); 23 Sep 2015 21:49:00 -0000
Received: from mail.supercoders.com.au (HELO mail.supercoders.com.au)
	(54.215.13.78) by server-10.tower-31.messagelabs.com with SMTP;
	23 Sep 2015 21:49:00 -0000
Received: from [192.168.1.100] (CPE-124-189-108-248.gziz1.win.bigpond.net.au
	[124.189.108.248])
	by mail.supercoders.com.au (Postfix) with ESMTPS id EBA5F600C7
	for <mirageos-devel@lists.xenproject.org>;
	Wed, 23 Sep 2015 21:48:58 +0000 (UTC)
From: Andrew Stuart <andrew.stuart@supercoders.com.au>
Message-Id: <EA788F96-A5B5-40A2-8460-FF7B24D4BF16@supercoders.com.au>
Date: Thu, 24 Sep 2015 07:48:56 +1000
To: mirageos-devel <mirageos-devel@lists.xenproject.org>
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\))
X-Mailer: Apple Mail (2.2104)
Subject: [MirageOS-devel] Possible to build for Xen HVM?
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

Q2FuIEkgYnVpbGQgZm9yIFhlbiBIVk0gb3IgaXMgb25seSBQViBzdXBwb3J0ZWQ/CgpJZiBJIGNh
biBidWlsZCBmb3IgWGVuIEhWTSwgd291bGQgc29tZW9uZSBtaW5kIHBvaW50aW5nIG1lIHRvIHRo
ZSBpbnN0cnVjdGlvbnMgcGxlYXNlIGFzIHNvIGZhciBJIGNhbuKAmXQgc2VlIHRoZW0uCgoKdGhh
bmtzCgphcwoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
Ck1pcmFnZU9TLWRldmVsIG1haWxpbmcgbGlzdApNaXJhZ2VPUy1kZXZlbEBsaXN0cy54ZW5wcm9q
ZWN0Lm9yZwpodHRwOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3Rp
bmZvL21pcmFnZW9zLWRldmVsCg==

From mirageos-devel-bounces@lists.xenproject.org Wed Sep 23 21:49:04 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 23 Sep 2015 21:49:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZeruQ-0002Ur-Os; Wed, 23 Sep 2015 21:49:02 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <andrew.stuart@supercoders.com.au>)
	id 1ZeruP-0002Ul-5x
	for mirageos-devel@lists.xenproject.org; Wed, 23 Sep 2015 21:49:01 +0000
Received: from [85.158.137.68] by server-4.bemta-3.messagelabs.com id
	8A/5C-09570-C4E13065; Wed, 23 Sep 2015 21:49:00 +0000
X-Env-Sender: andrew.stuart@supercoders.com.au
X-Msg-Ref: server-10.tower-31.messagelabs.com!1443044939!47058298!1
X-Originating-IP: [54.215.13.78]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 5841 invoked from network); 23 Sep 2015 21:49:00 -0000
Received: from mail.supercoders.com.au (HELO mail.supercoders.com.au)
	(54.215.13.78) by server-10.tower-31.messagelabs.com with SMTP;
	23 Sep 2015 21:49:00 -0000
Received: from [192.168.1.100] (CPE-124-189-108-248.gziz1.win.bigpond.net.au
	[124.189.108.248])
	by mail.supercoders.com.au (Postfix) with ESMTPS id EBA5F600C7
	for <mirageos-devel@lists.xenproject.org>;
	Wed, 23 Sep 2015 21:48:58 +0000 (UTC)
From: Andrew Stuart <andrew.stuart@supercoders.com.au>
Message-Id: <EA788F96-A5B5-40A2-8460-FF7B24D4BF16@supercoders.com.au>
Date: Thu, 24 Sep 2015 07:48:56 +1000
To: mirageos-devel <mirageos-devel@lists.xenproject.org>
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\))
X-Mailer: Apple Mail (2.2104)
Subject: [MirageOS-devel] Possible to build for Xen HVM?
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

Q2FuIEkgYnVpbGQgZm9yIFhlbiBIVk0gb3IgaXMgb25seSBQViBzdXBwb3J0ZWQ/CgpJZiBJIGNh
biBidWlsZCBmb3IgWGVuIEhWTSwgd291bGQgc29tZW9uZSBtaW5kIHBvaW50aW5nIG1lIHRvIHRo
ZSBpbnN0cnVjdGlvbnMgcGxlYXNlIGFzIHNvIGZhciBJIGNhbuKAmXQgc2VlIHRoZW0uCgoKdGhh
bmtzCgphcwoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
Ck1pcmFnZU9TLWRldmVsIG1haWxpbmcgbGlzdApNaXJhZ2VPUy1kZXZlbEBsaXN0cy54ZW5wcm9q
ZWN0Lm9yZwpodHRwOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3Rp
bmZvL21pcmFnZW9zLWRldmVsCg==

From mirageos-devel-bounces@lists.xenproject.org Wed Sep 23 21:53:45 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 23 Sep 2015 21:53:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1Zeryz-0002er-67; Wed, 23 Sep 2015 21:53:45 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <amc79@cam.ac.uk>) id 1Zeryx-0002em-GR
	for mirageos-devel@lists.xenproject.org; Wed, 23 Sep 2015 21:53:43 +0000
Received: from [85.158.137.68] by server-10.bemta-3.messagelabs.com id
	68/83-23203-66F13065; Wed, 23 Sep 2015 21:53:42 +0000
X-Env-Sender: amc79@cam.ac.uk
X-Msg-Ref: server-5.tower-31.messagelabs.com!1443045221!47124793!1
X-Originating-IP: [131.111.8.140]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 32723 invoked from network); 23 Sep 2015 21:53:41 -0000
Received: from ppsw-40.csi.cam.ac.uk (HELO ppsw-40.csi.cam.ac.uk)
	(131.111.8.140)
	by server-5.tower-31.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 23 Sep 2015 21:53:41 -0000
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: http://www.cam.ac.uk/cs/email/scanner/
Received: from cpc21-cmbg14-2-0-cust311.5-4.cable.virginm.net
	([86.6.27.56]:37567 helo=[10.0.1.14])
	by ppsw-40.csi.cam.ac.uk (smtp.hermes.cam.ac.uk [131.111.8.156]:465)
	with esmtpsa (PLAIN:amc79) (TLSv1:ECDHE-RSA-AES256-SHA:256)
	id 1Zerys-00064Z-jg (Exim 4.86_36-e07b163)
	(return-path <amc79@cam.ac.uk>); Wed, 23 Sep 2015 22:53:38 +0100
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\))
From: Amir Chaudhry <amc79@cam.ac.uk>
In-Reply-To: <56031AAB.9010506@nottingham.ac.uk>
Date: Wed, 23 Sep 2015 22:53:37 +0100
Message-Id: <139A4137-1F6B-4230-9982-631D14CBB019@cam.ac.uk>
References: <E9F8F6A6-C24D-425E-A772-3A1E5E5988AC@supercoders.com.au>
	<CAFi_6yLoqJyT+TAYNx4xjrBC8Fmqyy1K+9UEQR+Lc49A=-3z6Q@mail.gmail.com>
	<DEAA2BEC-42E3-4AA1-A89B-2F20F85A7085@cam.ac.uk>
	<56031AAB.9010506@nottingham.ac.uk>
To: Dominic Price <dominic.price@nottingham.ac.uk>
X-Mailer: Apple Mail (2.2104)
Cc: mirageos-devel@lists.xenproject.org
Subject: Re: [MirageOS-devel] Blog and OPAM-aware static website generator
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

Cj4gT24gMjMgU2VwIDIwMTUsIGF0IDIyOjMzLCBEb21pbmljIFByaWNlIDxkb21pbmljLnByaWNl
QG5vdHRpbmdoYW0uYWMudWs+IHdyb3RlOgo+IAo+IAo+IAo+IE9uIDIzLzA5LzIwMTUgMTA6MzIs
IEFtaXIgQ2hhdWRocnkgd3JvdGU6Cj4+IAo+Pj4gT24gMjMgU2VwIDIwMTUsIGF0IDA5OjIwLCBH
YXJldGggUnVzaGdyb3ZlIDxnYXJldGhAbW9yZXRoYW5zZXZlbi5uZXQ+IHdyb3RlOgo+Pj4gCj4+
PiBPbiAyMiBTZXB0ZW1iZXIgMjAxNSBhdCAyMToyNCwgQW5kcmV3IFN0dWFydAo+Pj4gPGFuZHJl
dy5zdHVhcnRAc3VwZXJjb2RlcnMuY29tLmF1PiB3cm90ZToKPj4+PiBUaGUgUGlvbmVlciBQcm9q
ZWN0cyBwYWdlIGh0dHBzOi8vZ2l0aHViLmNvbS9taXJhZ2UvbWlyYWdlLXd3dy93aWtpL1Bpb25l
ZXItUHJvamVjdHMgbWVudGlvbnMgIkJsb2cgYW5kIE9QQU0tYXdhcmUgc3RhdGljIHdlYnNpdGUg
Z2VuZXJhdG9y4oCdLgo+Pj4+IAo+Pj4+IEFueW9uZSBpbnRlcmVzdGVkIGluIGdlbmVyYXRpbmcg
c3RhdGljIHdlYnNpdGVzIHdvdWxkIGdhaW4gYSBncmVhdCBkZWFsIGZyb20gZmlyc3QgaW52ZXN0
aWdhdGluZyBodHRyYWNrIC0gaXTigJlzIHRoZSBtb3N0IHBvd2VyZnVsIHN0YXRpYyBzaXRlIGdl
bmVyYXRvciBhbHRob3VnaCBub3QgbWFueSBwZW9wbGUgc2VlbSB0byBrbm93IG9mIGl0LiAgaHR0
cmFjayBjYW4gY29udmVydCBtb3N0IHdlYnNpdGVzIGludG8gc3RhdGljIEhUTUwgYW5kIHRoZW4g
dGhleSBqdXN0IG5lZWQgdG8gYmUgY29tcGlsZWQgaW50byBNaXJhZ2VPUy4KPj4+PiAKPj4+PiBo
dHRwczovL3d3dy5odHRyYWNrLmNvbQo+Pj4+IAo+Pj4gCj4+PiBJJ2Qgc2VlIGh0dHRyYWNrIGFz
IG1vcmUgb2YgYSBzcGlkZXJlcmluZyB0b29sLCBmb3IgZG93bmxvYWRpbmcgYW4KPj4+IGV4aXN0
aW5nIHNpdGUuIExpa2Ugd2dldCBidXQgbW9yZSBzcGVjaWFsaXNlZC4gSXQncyBwcmV0dHkgZ3Jl
YXQuCj4+PiAKPj4+IEkgX3RoaW5rXyB0aGlzIHByb2plY3QgcmVmZXJzIG1vcmUgdG8gZ2VuZXJh
dGluZyB0aGUgSFRNTCBpbiB0aGUgZmlyc3QKPj4+IHBsYWNlLCBvZnRlbiBmcm9tIHNvbWV0aGlu
ZyBsaWtlIGEgZGlyZWN0b3J5IG9mIG1hcmtkb3duIGZpbGVzLiBNb3N0Cj4+PiBsYW5ndWFnZXMg
aGF2ZSBzb21ldGhpbmcgc2ltaWxhciBhbmQgaXQncyBvZnRlbiBhIGdyZWF0Cj4+PiBteS1maXJz
dC1ydW5uaW5nLWFwcGxpY2F0aW9uIHBsYWNlIHRvIHN0YXJ0IHdpdGggYSBuZXcgbGFuZ3VhZ2Uu
IEFzCj4+PiBpbnNwaXJhdGlvbiBmb3IgdGhhdCBzb3J0IG9mIHRoaW5nOgo+Pj4gCj4+PiBodHRw
czovL2dvaHVnby5pby8gKEdvKQo+Pj4gaHR0cDovL2Jsb2cuZ2V0cGVsaWNhbi5jb20vIChQeXRo
b24pCj4+PiBodHRwczovL3NjdWxwaW4uaW8vIChQSFApCj4+PiBodHRwczovL2pla3lsbHJiLmNv
bS8gKFJ1YnkpCj4+PiBodHRwOi8vd2ludGVyc21pdGguaW8vIChKYXZhU2NyaXB0KQo+PiAKPj4g
WWVzLCB0aGlzIHByb2plY3QgaXMgYWJvdXQgY3JlYXRpbmcgYSBwdXJlIE9DYW1sIHN0YXRpYy1z
aXRlIGdlbmVyYXRvciwgYnV0IHdpdGggdGhlIGFkZGVkIGJlbmVmaXQgb2YgYmVpbmcgYWJsZSB0
byBleHRlbmQgZnVuY3Rpb25hbGl0eSB0byBtYWtlIHVzZSBvZiBvdGhlciBwYXJ0cyBvZiB0aGUg
T0NhbWwgZWNvc3lzdGVtIChpLmUuIE9QQU0pLiAgCj4gCj4gT3V0IG9mIGludGVyZXN0LCBpcyB0
aGVyZSBhIHBhcnRpY3VsYXIgcmVhc29uIGZvciB3YW50aW5nIGEgcHVyZSBPQ2FtbAo+IHRvb2w/
IEkgd2FzIHRoaW5raW5nIGFib3V0IGEgc2ltaWxhciB0b29sIHJlY2VudGx5IGFuZCBhcyBhIHN0
YXJ0aW5nCj4gcG9pbnQgSSB3YXMgZ29pbmcgdG8gc3RhcnQgd2l0aCBzb21ldGhpbmcgc2ltcGxl
IHRoYXQgY291bGQgdGFrZSB0aGUKPiBvdXRwdXQgZnJvbSBKZWt5bGwgKGZvciBleGFtcGxlKSBh
bmQgd3JhcCBpdCB1cCBhcyBhIHVuaWtlcm5lbC4KCk1ha2luZyBhIHVuaWtlcm5lbCBmcm9tIHRo
ZSBvdXB1dCBvZiBKZWt5bGwgKG9yIGFueSBzdGF0aWMgd2Vic2l0ZSBnZW5lcmF0b3IpIGlzIHBy
ZXR0eSBzdHJhaWdodGZvcndhcmQgYWxyZWFkeSBhbmQgY2FuIGV2ZW4gYmUgZG9uZSB3aXRob3V0
IGEgbG9jYWwgT0NhbWwgZW52aXJvbm1lbnQgKGUuZyB1c2luZyBUcmF2aXNDSSkgWzFdLgoKSGF2
aW5nIGEgcHVyZSBPQ2FtbCB2ZXJzaW9uIHdvdWxkIG1ha2UgaXQgZWFzaWVyIHRvIHBsdWcgaW50
byB0aGUgZXhpc3RpbmcgdG9vbGNoYWluLCB3aXRob3V0IHJlcXVpcmluZyBkaWZmZXJlbnQgZW52
aXJvbm1lbnRzIChlLmcgUnVieSBmb3IgSmVreWxsKSBvciBjb21wbGljYXRlZCBoYWNrcy4gSXQg
d291bGQgdGhlbiBiZSBlYXNpZXIgdG8gaG9vayB1cCB0byBvdGhlciB0aGluZ3MsIGluIHRlcm1z
IG9mIGF1dG9tYXRlZCBzaXRlIGdlbmVyYXRpb24gKEnigJltIHRoaW5raW5nIGRhc2hib2FyZHMs
IHByb2plY3RzIHNpdGVzLCBldGMpLiBJbiBhZGRpdGlvbiwgdGhlIHByb2Nlc3Mgb2YgYnVpbGRp
bmcgdGhlIHRvb2xpbmcgc2hvdWxkIGFsc28gbGVhZCB0byBhIG51bWJlciBvZiByZXVzYWJsZSBj
b21wb25lbnRzIHRvbyAoZS5nIHRlbXBsYXRpbmcpLgoKQW1pcgoKWzFdIGh0dHA6Ly9hbWlyY2hh
dWRocnkuY29tL2Zyb20tamVreWxsLXRvLXVuaWtlcm5lbC1pbi1maWZ0eS1saW5lcy8KCgpfX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpNaXJhZ2VPUy1kZXZl
bCBtYWlsaW5nIGxpc3QKTWlyYWdlT1MtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cDov
L2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby9taXJhZ2Vvcy1k
ZXZlbAo=

From mirageos-devel-bounces@lists.xenproject.org Wed Sep 23 21:53:45 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 23 Sep 2015 21:53:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1Zeryz-0002er-67; Wed, 23 Sep 2015 21:53:45 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <amc79@cam.ac.uk>) id 1Zeryx-0002em-GR
	for mirageos-devel@lists.xenproject.org; Wed, 23 Sep 2015 21:53:43 +0000
Received: from [85.158.137.68] by server-10.bemta-3.messagelabs.com id
	68/83-23203-66F13065; Wed, 23 Sep 2015 21:53:42 +0000
X-Env-Sender: amc79@cam.ac.uk
X-Msg-Ref: server-5.tower-31.messagelabs.com!1443045221!47124793!1
X-Originating-IP: [131.111.8.140]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 32723 invoked from network); 23 Sep 2015 21:53:41 -0000
Received: from ppsw-40.csi.cam.ac.uk (HELO ppsw-40.csi.cam.ac.uk)
	(131.111.8.140)
	by server-5.tower-31.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 23 Sep 2015 21:53:41 -0000
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: http://www.cam.ac.uk/cs/email/scanner/
Received: from cpc21-cmbg14-2-0-cust311.5-4.cable.virginm.net
	([86.6.27.56]:37567 helo=[10.0.1.14])
	by ppsw-40.csi.cam.ac.uk (smtp.hermes.cam.ac.uk [131.111.8.156]:465)
	with esmtpsa (PLAIN:amc79) (TLSv1:ECDHE-RSA-AES256-SHA:256)
	id 1Zerys-00064Z-jg (Exim 4.86_36-e07b163)
	(return-path <amc79@cam.ac.uk>); Wed, 23 Sep 2015 22:53:38 +0100
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\))
From: Amir Chaudhry <amc79@cam.ac.uk>
In-Reply-To: <56031AAB.9010506@nottingham.ac.uk>
Date: Wed, 23 Sep 2015 22:53:37 +0100
Message-Id: <139A4137-1F6B-4230-9982-631D14CBB019@cam.ac.uk>
References: <E9F8F6A6-C24D-425E-A772-3A1E5E5988AC@supercoders.com.au>
	<CAFi_6yLoqJyT+TAYNx4xjrBC8Fmqyy1K+9UEQR+Lc49A=-3z6Q@mail.gmail.com>
	<DEAA2BEC-42E3-4AA1-A89B-2F20F85A7085@cam.ac.uk>
	<56031AAB.9010506@nottingham.ac.uk>
To: Dominic Price <dominic.price@nottingham.ac.uk>
X-Mailer: Apple Mail (2.2104)
Cc: mirageos-devel@lists.xenproject.org
Subject: Re: [MirageOS-devel] Blog and OPAM-aware static website generator
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

Cj4gT24gMjMgU2VwIDIwMTUsIGF0IDIyOjMzLCBEb21pbmljIFByaWNlIDxkb21pbmljLnByaWNl
QG5vdHRpbmdoYW0uYWMudWs+IHdyb3RlOgo+IAo+IAo+IAo+IE9uIDIzLzA5LzIwMTUgMTA6MzIs
IEFtaXIgQ2hhdWRocnkgd3JvdGU6Cj4+IAo+Pj4gT24gMjMgU2VwIDIwMTUsIGF0IDA5OjIwLCBH
YXJldGggUnVzaGdyb3ZlIDxnYXJldGhAbW9yZXRoYW5zZXZlbi5uZXQ+IHdyb3RlOgo+Pj4gCj4+
PiBPbiAyMiBTZXB0ZW1iZXIgMjAxNSBhdCAyMToyNCwgQW5kcmV3IFN0dWFydAo+Pj4gPGFuZHJl
dy5zdHVhcnRAc3VwZXJjb2RlcnMuY29tLmF1PiB3cm90ZToKPj4+PiBUaGUgUGlvbmVlciBQcm9q
ZWN0cyBwYWdlIGh0dHBzOi8vZ2l0aHViLmNvbS9taXJhZ2UvbWlyYWdlLXd3dy93aWtpL1Bpb25l
ZXItUHJvamVjdHMgbWVudGlvbnMgIkJsb2cgYW5kIE9QQU0tYXdhcmUgc3RhdGljIHdlYnNpdGUg
Z2VuZXJhdG9y4oCdLgo+Pj4+IAo+Pj4+IEFueW9uZSBpbnRlcmVzdGVkIGluIGdlbmVyYXRpbmcg
c3RhdGljIHdlYnNpdGVzIHdvdWxkIGdhaW4gYSBncmVhdCBkZWFsIGZyb20gZmlyc3QgaW52ZXN0
aWdhdGluZyBodHRyYWNrIC0gaXTigJlzIHRoZSBtb3N0IHBvd2VyZnVsIHN0YXRpYyBzaXRlIGdl
bmVyYXRvciBhbHRob3VnaCBub3QgbWFueSBwZW9wbGUgc2VlbSB0byBrbm93IG9mIGl0LiAgaHR0
cmFjayBjYW4gY29udmVydCBtb3N0IHdlYnNpdGVzIGludG8gc3RhdGljIEhUTUwgYW5kIHRoZW4g
dGhleSBqdXN0IG5lZWQgdG8gYmUgY29tcGlsZWQgaW50byBNaXJhZ2VPUy4KPj4+PiAKPj4+PiBo
dHRwczovL3d3dy5odHRyYWNrLmNvbQo+Pj4+IAo+Pj4gCj4+PiBJJ2Qgc2VlIGh0dHRyYWNrIGFz
IG1vcmUgb2YgYSBzcGlkZXJlcmluZyB0b29sLCBmb3IgZG93bmxvYWRpbmcgYW4KPj4+IGV4aXN0
aW5nIHNpdGUuIExpa2Ugd2dldCBidXQgbW9yZSBzcGVjaWFsaXNlZC4gSXQncyBwcmV0dHkgZ3Jl
YXQuCj4+PiAKPj4+IEkgX3RoaW5rXyB0aGlzIHByb2plY3QgcmVmZXJzIG1vcmUgdG8gZ2VuZXJh
dGluZyB0aGUgSFRNTCBpbiB0aGUgZmlyc3QKPj4+IHBsYWNlLCBvZnRlbiBmcm9tIHNvbWV0aGlu
ZyBsaWtlIGEgZGlyZWN0b3J5IG9mIG1hcmtkb3duIGZpbGVzLiBNb3N0Cj4+PiBsYW5ndWFnZXMg
aGF2ZSBzb21ldGhpbmcgc2ltaWxhciBhbmQgaXQncyBvZnRlbiBhIGdyZWF0Cj4+PiBteS1maXJz
dC1ydW5uaW5nLWFwcGxpY2F0aW9uIHBsYWNlIHRvIHN0YXJ0IHdpdGggYSBuZXcgbGFuZ3VhZ2Uu
IEFzCj4+PiBpbnNwaXJhdGlvbiBmb3IgdGhhdCBzb3J0IG9mIHRoaW5nOgo+Pj4gCj4+PiBodHRw
czovL2dvaHVnby5pby8gKEdvKQo+Pj4gaHR0cDovL2Jsb2cuZ2V0cGVsaWNhbi5jb20vIChQeXRo
b24pCj4+PiBodHRwczovL3NjdWxwaW4uaW8vIChQSFApCj4+PiBodHRwczovL2pla3lsbHJiLmNv
bS8gKFJ1YnkpCj4+PiBodHRwOi8vd2ludGVyc21pdGguaW8vIChKYXZhU2NyaXB0KQo+PiAKPj4g
WWVzLCB0aGlzIHByb2plY3QgaXMgYWJvdXQgY3JlYXRpbmcgYSBwdXJlIE9DYW1sIHN0YXRpYy1z
aXRlIGdlbmVyYXRvciwgYnV0IHdpdGggdGhlIGFkZGVkIGJlbmVmaXQgb2YgYmVpbmcgYWJsZSB0
byBleHRlbmQgZnVuY3Rpb25hbGl0eSB0byBtYWtlIHVzZSBvZiBvdGhlciBwYXJ0cyBvZiB0aGUg
T0NhbWwgZWNvc3lzdGVtIChpLmUuIE9QQU0pLiAgCj4gCj4gT3V0IG9mIGludGVyZXN0LCBpcyB0
aGVyZSBhIHBhcnRpY3VsYXIgcmVhc29uIGZvciB3YW50aW5nIGEgcHVyZSBPQ2FtbAo+IHRvb2w/
IEkgd2FzIHRoaW5raW5nIGFib3V0IGEgc2ltaWxhciB0b29sIHJlY2VudGx5IGFuZCBhcyBhIHN0
YXJ0aW5nCj4gcG9pbnQgSSB3YXMgZ29pbmcgdG8gc3RhcnQgd2l0aCBzb21ldGhpbmcgc2ltcGxl
IHRoYXQgY291bGQgdGFrZSB0aGUKPiBvdXRwdXQgZnJvbSBKZWt5bGwgKGZvciBleGFtcGxlKSBh
bmQgd3JhcCBpdCB1cCBhcyBhIHVuaWtlcm5lbC4KCk1ha2luZyBhIHVuaWtlcm5lbCBmcm9tIHRo
ZSBvdXB1dCBvZiBKZWt5bGwgKG9yIGFueSBzdGF0aWMgd2Vic2l0ZSBnZW5lcmF0b3IpIGlzIHBy
ZXR0eSBzdHJhaWdodGZvcndhcmQgYWxyZWFkeSBhbmQgY2FuIGV2ZW4gYmUgZG9uZSB3aXRob3V0
IGEgbG9jYWwgT0NhbWwgZW52aXJvbm1lbnQgKGUuZyB1c2luZyBUcmF2aXNDSSkgWzFdLgoKSGF2
aW5nIGEgcHVyZSBPQ2FtbCB2ZXJzaW9uIHdvdWxkIG1ha2UgaXQgZWFzaWVyIHRvIHBsdWcgaW50
byB0aGUgZXhpc3RpbmcgdG9vbGNoYWluLCB3aXRob3V0IHJlcXVpcmluZyBkaWZmZXJlbnQgZW52
aXJvbm1lbnRzIChlLmcgUnVieSBmb3IgSmVreWxsKSBvciBjb21wbGljYXRlZCBoYWNrcy4gSXQg
d291bGQgdGhlbiBiZSBlYXNpZXIgdG8gaG9vayB1cCB0byBvdGhlciB0aGluZ3MsIGluIHRlcm1z
IG9mIGF1dG9tYXRlZCBzaXRlIGdlbmVyYXRpb24gKEnigJltIHRoaW5raW5nIGRhc2hib2FyZHMs
IHByb2plY3RzIHNpdGVzLCBldGMpLiBJbiBhZGRpdGlvbiwgdGhlIHByb2Nlc3Mgb2YgYnVpbGRp
bmcgdGhlIHRvb2xpbmcgc2hvdWxkIGFsc28gbGVhZCB0byBhIG51bWJlciBvZiByZXVzYWJsZSBj
b21wb25lbnRzIHRvbyAoZS5nIHRlbXBsYXRpbmcpLgoKQW1pcgoKWzFdIGh0dHA6Ly9hbWlyY2hh
dWRocnkuY29tL2Zyb20tamVreWxsLXRvLXVuaWtlcm5lbC1pbi1maWZ0eS1saW5lcy8KCgpfX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpNaXJhZ2VPUy1kZXZl
bCBtYWlsaW5nIGxpc3QKTWlyYWdlT1MtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cDov
L2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby9taXJhZ2Vvcy1k
ZXZlbAo=

From mirageos-devel-bounces@lists.xenproject.org Wed Sep 23 22:42:59 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 23 Sep 2015 22:42:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZeskV-0006bJ-E6; Wed, 23 Sep 2015 22:42:51 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <len@inthemail.org>) id 1ZeskU-0006bE-7u
	for mirageos-devel@lists.xenproject.org; Wed, 23 Sep 2015 22:42:50 +0000
Received: from [85.158.139.211] by server-17.bemta-5.messagelabs.com id
	DA/FF-02380-9EA23065; Wed, 23 Sep 2015 22:42:49 +0000
X-Env-Sender: len@inthemail.org
X-Msg-Ref: server-6.tower-206.messagelabs.com!1443048166!37330969!1
X-Originating-IP: [209.85.160.179]
X-SpamReason: No, hits=1.4 required=7.0 tests=BODY_RANDOM_LONG,
	HTML_40_50,HTML_MESSAGE,RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 598 invoked from network); 23 Sep 2015 22:42:46 -0000
Received: from mail-yk0-f179.google.com (HELO mail-yk0-f179.google.com)
	(209.85.160.179)
	by server-6.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
	23 Sep 2015 22:42:46 -0000
Received: by ykdz138 with SMTP id z138so56852568ykd.2
	for <mirageos-devel@lists.xenproject.org>;
	Wed, 23 Sep 2015 15:42:45 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:mime-version:in-reply-to:references:date
	:message-id:subject:from:to:cc:content-type;
	bh=wng/vdQkwnw3XTXhoUv1dtXlOPRGS0H1qKtgXcf9x3E=;
	b=J4M55ZjtRyeyT3nEFZsNlCIY/0HL4qWJ/Hyy+Gk5+WA0kOvTDNkDS95PAkRcRrDoJx
	Uv1waoDpVmvrW2EdNq4tPPHCLyis9NuOirlUTJgKwocY9Gji/AR2yRYkCbytURHhI3WD
	9mWay7i9up7YEakrhCnzrJXoI8JkFXvQYPWn42Gy/PfIsyuI6EvcpTadDakuNoCTny8Q
	0xDyTcJ3VctK3G0R8fbW+atRTbp0DIg/UUUsA19A2M0O15THmShMNKYEGSh52eczYzQk
	s8fz7HZX6aJ9auLZe7M3Qh7UwAKDFzMJ9PNLjQoVHTor8ROXB0aA0YJfj4ynTKJsO2G2
	qgaA==
X-Gm-Message-State: ALoCoQlpfmwiLUYVu6Vu6dM2ayL+PCdo2h5OD+t3MZCoJsNeJlh+3ZVT0vsuO+NdVtVRHooyXgg+
MIME-Version: 1.0
X-Received: by 10.170.94.70 with SMTP id l67mr28358966yka.57.1443048165646;
	Wed, 23 Sep 2015 15:42:45 -0700 (PDT)
Received: by 10.37.201.4 with HTTP; Wed, 23 Sep 2015 15:42:45 -0700 (PDT)
In-Reply-To: <56031AAB.9010506@nottingham.ac.uk>
References: <E9F8F6A6-C24D-425E-A772-3A1E5E5988AC@supercoders.com.au>
	<CAFi_6yLoqJyT+TAYNx4xjrBC8Fmqyy1K+9UEQR+Lc49A=-3z6Q@mail.gmail.com>
	<DEAA2BEC-42E3-4AA1-A89B-2F20F85A7085@cam.ac.uk>
	<56031AAB.9010506@nottingham.ac.uk>
Date: Wed, 23 Sep 2015 18:42:45 -0400
Message-ID: <CAHwFrZdqf-36f9WSv7ObYkJ4spxiJ3u-EO7y9cZaD4GpP-UJrA@mail.gmail.com>
From: Len Maxwell <len@lnmx.org>
To: Dominic Price <dominic.price@nottingham.ac.uk>
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Blog and OPAM-aware static website generator
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============5402931463459137021=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============5402931463459137021==
Content-Type: multipart/alternative; boundary=001a113a371a4ed7ed052071d551

--001a113a371a4ed7ed052071d551
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

On Wed, Sep 23, 2015 at 5:33 PM, Dominic Price <
dominic.price@nottingham.ac.uk> wrote:

>
>
> On 23/09/2015 10:32, Amir Chaudhry wrote:
> >
> >> On 23 Sep 2015, at 09:20, Gareth Rushgrove <gareth@morethanseven.net>
> wrote:
> >>
> >> On 22 September 2015 at 21:24, Andrew Stuart
> >> <andrew.stuart@supercoders.com.au> wrote:
> >>> The Pioneer Projects page
> https://github.com/mirage/mirage-www/wiki/Pioneer-Projects mentions "Blog
> and OPAM-aware static website generator=E2=80=9D.
> >>>
> >>> Anyone interested in generating static websites would gain a great
> deal from first investigating httrack - it=E2=80=99s the most powerful st=
atic site
> generator although not many people seem to know of it.  httrack can conve=
rt
> most websites into static HTML and then they just need to be compiled int=
o
> MirageOS.
> >>>
> >>> https://www.httrack.com
> >>>
> >>
> >> I'd see htttrack as more of a spiderering tool, for downloading an
> >> existing site. Like wget but more specialised. It's pretty great.
> >>
> >> I _think_ this project refers more to generating the HTML in the first
> >> place, often from something like a directory of markdown files. Most
> >> languages have something similar and it's often a great
> >> my-first-running-application place to start with a new language. As
> >> inspiration for that sort of thing:
> >>
> >> https://gohugo.io/ (Go)
> >> http://blog.getpelican.com/ (Python)
> >> https://sculpin.io/ (PHP)
> >> https://jekyllrb.com/ (Ruby)
> >> http://wintersmith.io/ (JavaScript)
> >
> > Yes, this project is about creating a pure OCaml static-site generator,
> but with the added benefit of being able to extend functionality to make
> use of other parts of the OCaml ecosystem (i.e. OPAM).
>
> Out of interest, is there a particular reason for wanting a pure OCaml
> tool? I was thinking about a similar tool recently and as a starting
> point I was going to start with something simple that could take the
> output from Jekyll (for example) and wrap it up as a unikernel.
>
> Dominic
>

Hi Dominic,

FYI, the mirage-seal tool will take a directory of content and wrap it up
as a unikernel, with (optional) HTTPS support:

https://github.com/mirage/mirage-seal

https://mirage.io/blog/mirage-seal


cheers,
--
Len


>
> > Some work began earlier this year and you can see the core of it at:
> https://github.com/dsheets/tower
> > I should probably write up a post about what we were aiming for and
> where we got to. :)
> >
> > In the long term, it would be pretty cool to set up infrastructure like
> GitHub pages for the OCaml community, where unikernel sites for
> individuals/projects could be hosted (and using something like Jitsu woul=
d
> mean they=E2=80=99re only =E2=80=98active=E2=80=99 when required).  That=
=E2=80=99s a little way off though.
> >
> > If anyone is interested in working on the static site generator project=
,
> please do get in touch!
> >
> > Amir
> > _______________________________________________
> > MirageOS-devel mailing list
> > MirageOS-devel@lists.xenproject.org
> > http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
> >
>
> --
> Dominic Price
> Research Fellow
> Horizon Digital Economy Research
> Nottingham Geospatial Building
> University of Nottingham Innovation Park
> Triumph Road
> Nottingham
> NG7 2TU
>
> Email: dominic.price@nottingham.ac.uk
> Skype: dominic.j.price
> Office: +44 (0)115 82 32554
> Fax: +44 (0)115 82 32551
>
> Web: http://www.cs.nott.ac.uk/~djp
> Web: http://www.horizon.ac.uk
>
> _______________________________________________
> MirageOS-devel mailing list
> MirageOS-devel@lists.xenproject.org
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
>

--001a113a371a4ed7ed052071d551
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><br><div class=3D"gmail_extra"><br><div class=3D"gmail_quo=
te">On Wed, Sep 23, 2015 at 5:33 PM, Dominic Price <span dir=3D"ltr">&lt;<a=
 href=3D"mailto:dominic.price@nottingham.ac.uk" target=3D"_blank">dominic.p=
rice@nottingham.ac.uk</a>&gt;</span> wrote:<br><blockquote class=3D"gmail_q=
uote" style=3D"margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-c=
olor:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><span class=
=3D""><br>
<br>
On 23/09/2015 10:32, Amir Chaudhry wrote:<br>
&gt;<br>
&gt;&gt; On 23 Sep 2015, at 09:20, Gareth Rushgrove &lt;<a href=3D"mailto:g=
areth@morethanseven.net">gareth@morethanseven.net</a>&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; On 22 September 2015 at 21:24, Andrew Stuart<br>
&gt;&gt; &lt;<a href=3D"mailto:andrew.stuart@supercoders.com.au">andrew.stu=
art@supercoders.com.au</a>&gt; wrote:<br>
&gt;&gt;&gt; The Pioneer Projects page <a href=3D"https://github.com/mirage=
/mirage-www/wiki/Pioneer-Projects" rel=3D"noreferrer" target=3D"_blank">htt=
ps://github.com/mirage/mirage-www/wiki/Pioneer-Projects</a> mentions &quot;=
Blog and OPAM-aware static website generator=E2=80=9D.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Anyone interested in generating static websites would gain a g=
reat deal from first investigating httrack - it=E2=80=99s the most powerful=
 static site generator although not many people seem to know of it.=C2=A0 h=
ttrack can convert most websites into static HTML and then they just need t=
o be compiled into MirageOS.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; <a href=3D"https://www.httrack.com" rel=3D"noreferrer" target=
=3D"_blank">https://www.httrack.com</a><br>
&gt;&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; I&#39;d see htttrack as more of a spiderering tool, for downloadin=
g an<br>
&gt;&gt; existing site. Like wget but more specialised. It&#39;s pretty gre=
at.<br>
&gt;&gt;<br>
&gt;&gt; I _think_ this project refers more to generating the HTML in the f=
irst<br>
&gt;&gt; place, often from something like a directory of markdown files. Mo=
st<br>
&gt;&gt; languages have something similar and it&#39;s often a great<br>
&gt;&gt; my-first-running-application place to start with a new language. A=
s<br>
&gt;&gt; inspiration for that sort of thing:<br>
&gt;&gt;<br>
&gt;&gt; <a href=3D"https://gohugo.io/" rel=3D"noreferrer" target=3D"_blank=
">https://gohugo.io/</a> (Go)<br>
&gt;&gt; <a href=3D"http://blog.getpelican.com/" rel=3D"noreferrer" target=
=3D"_blank">http://blog.getpelican.com/</a> (Python)<br>
&gt;&gt; <a href=3D"https://sculpin.io/" rel=3D"noreferrer" target=3D"_blan=
k">https://sculpin.io/</a> (PHP)<br>
&gt;&gt; <a href=3D"https://jekyllrb.com/" rel=3D"noreferrer" target=3D"_bl=
ank">https://jekyllrb.com/</a> (Ruby)<br>
&gt;&gt; <a href=3D"http://wintersmith.io/" rel=3D"noreferrer" target=3D"_b=
lank">http://wintersmith.io/</a> (JavaScript)<br>
&gt;<br>
&gt; Yes, this project is about creating a pure OCaml static-site generator=
, but with the added benefit of being able to extend functionality to make =
use of other parts of the OCaml ecosystem (i.e. OPAM).<br>
<br>
</span>Out of interest, is there a particular reason for wanting a pure OCa=
ml<br>
tool? I was thinking about a similar tool recently and as a starting<br>
point I was going to start with something simple that could take the<br>
output from Jekyll (for example) and wrap it up as a unikernel.<br>
<br>
Dominic<br></blockquote><div><br></div><div>Hi Dominic,</div><div><br></div=
><div>FYI, the mirage-seal tool will take a directory of content and wrap i=
t up as a unikernel, with (optional) HTTPS support:</div><div><br></div><di=
v><a href=3D"https://github.com/mirage/mirage-seal">https://github.com/mira=
ge/mirage-seal</a></div><div><br></div><div><a href=3D"https://mirage.io/bl=
og/mirage-seal">https://mirage.io/blog/mirage-seal</a><br></div><div><br></=
div><div><br></div><div>cheers,</div><div>--</div><div>Len</div><div>=C2=A0=
</div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;b=
order-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:s=
olid;padding-left:1ex">
<span class=3D""><br>
&gt; Some work began earlier this year and you can see the core of it at: <=
a href=3D"https://github.com/dsheets/tower" rel=3D"noreferrer" target=3D"_b=
lank">https://github.com/dsheets/tower</a><br>
&gt; I should probably write up a post about what we were aiming for and wh=
ere we got to. :)<br>
&gt;<br>
&gt; In the long term, it would be pretty cool to set up infrastructure lik=
e GitHub pages for the OCaml community, where unikernel sites for individua=
ls/projects could be hosted (and using something like Jitsu would mean they=
=E2=80=99re only =E2=80=98active=E2=80=99 when required).=C2=A0 That=E2=80=
=99s a little way off though.<br>
&gt;<br>
&gt; If anyone is interested in working on the static site generator projec=
t, please do get in touch!<br>
&gt;<br>
&gt; Amir<br>
&gt; _______________________________________________<br>
&gt; MirageOS-devel mailing list<br>
&gt; <a href=3D"mailto:MirageOS-devel@lists.xenproject.org">MirageOS-devel@=
lists.xenproject.org</a><br>
&gt; <a href=3D"http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirage=
os-devel" rel=3D"noreferrer" target=3D"_blank">http://lists.xenproject.org/=
cgi-bin/mailman/listinfo/mirageos-devel</a><br>
&gt;<br>
<br>
</span>--<br>
Dominic Price<br>
Research Fellow<br>
Horizon Digital Economy Research<br>
Nottingham Geospatial Building<br>
University of Nottingham Innovation Park<br>
Triumph Road<br>
Nottingham<br>
NG7 2TU<br>
<br>
Email: <a href=3D"mailto:dominic.price@nottingham.ac.uk">dominic.price@nott=
ingham.ac.uk</a><br>
Skype: dominic.j.price<br>
Office: +44 (0)115 82 32554<br>
Fax: +44 (0)115 82 32551<br>
<br>
Web: <a href=3D"http://www.cs.nott.ac.uk/~djp" rel=3D"noreferrer" target=3D=
"_blank">http://www.cs.nott.ac.uk/~djp</a><br>
Web: <a href=3D"http://www.horizon.ac.uk" rel=3D"noreferrer" target=3D"_bla=
nk">http://www.horizon.ac.uk</a><br>
<div class=3D""><div class=3D"h5"><br>
_______________________________________________<br>
MirageOS-devel mailing list<br>
<a href=3D"mailto:MirageOS-devel@lists.xenproject.org">MirageOS-devel@lists=
.xenproject.org</a><br>
<a href=3D"http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-de=
vel" rel=3D"noreferrer" target=3D"_blank">http://lists.xenproject.org/cgi-b=
in/mailman/listinfo/mirageos-devel</a><br>
</div></div></blockquote></div><br></div></div>

--001a113a371a4ed7ed052071d551--


--===============5402931463459137021==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

--===============5402931463459137021==--


From mirageos-devel-bounces@lists.xenproject.org Wed Sep 23 22:42:59 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 23 Sep 2015 22:42:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZeskV-0006bJ-E6; Wed, 23 Sep 2015 22:42:51 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <len@inthemail.org>) id 1ZeskU-0006bE-7u
	for mirageos-devel@lists.xenproject.org; Wed, 23 Sep 2015 22:42:50 +0000
Received: from [85.158.139.211] by server-17.bemta-5.messagelabs.com id
	DA/FF-02380-9EA23065; Wed, 23 Sep 2015 22:42:49 +0000
X-Env-Sender: len@inthemail.org
X-Msg-Ref: server-6.tower-206.messagelabs.com!1443048166!37330969!1
X-Originating-IP: [209.85.160.179]
X-SpamReason: No, hits=1.4 required=7.0 tests=BODY_RANDOM_LONG,
	HTML_40_50,HTML_MESSAGE,RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 598 invoked from network); 23 Sep 2015 22:42:46 -0000
Received: from mail-yk0-f179.google.com (HELO mail-yk0-f179.google.com)
	(209.85.160.179)
	by server-6.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
	23 Sep 2015 22:42:46 -0000
Received: by ykdz138 with SMTP id z138so56852568ykd.2
	for <mirageos-devel@lists.xenproject.org>;
	Wed, 23 Sep 2015 15:42:45 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:mime-version:in-reply-to:references:date
	:message-id:subject:from:to:cc:content-type;
	bh=wng/vdQkwnw3XTXhoUv1dtXlOPRGS0H1qKtgXcf9x3E=;
	b=J4M55ZjtRyeyT3nEFZsNlCIY/0HL4qWJ/Hyy+Gk5+WA0kOvTDNkDS95PAkRcRrDoJx
	Uv1waoDpVmvrW2EdNq4tPPHCLyis9NuOirlUTJgKwocY9Gji/AR2yRYkCbytURHhI3WD
	9mWay7i9up7YEakrhCnzrJXoI8JkFXvQYPWn42Gy/PfIsyuI6EvcpTadDakuNoCTny8Q
	0xDyTcJ3VctK3G0R8fbW+atRTbp0DIg/UUUsA19A2M0O15THmShMNKYEGSh52eczYzQk
	s8fz7HZX6aJ9auLZe7M3Qh7UwAKDFzMJ9PNLjQoVHTor8ROXB0aA0YJfj4ynTKJsO2G2
	qgaA==
X-Gm-Message-State: ALoCoQlpfmwiLUYVu6Vu6dM2ayL+PCdo2h5OD+t3MZCoJsNeJlh+3ZVT0vsuO+NdVtVRHooyXgg+
MIME-Version: 1.0
X-Received: by 10.170.94.70 with SMTP id l67mr28358966yka.57.1443048165646;
	Wed, 23 Sep 2015 15:42:45 -0700 (PDT)
Received: by 10.37.201.4 with HTTP; Wed, 23 Sep 2015 15:42:45 -0700 (PDT)
In-Reply-To: <56031AAB.9010506@nottingham.ac.uk>
References: <E9F8F6A6-C24D-425E-A772-3A1E5E5988AC@supercoders.com.au>
	<CAFi_6yLoqJyT+TAYNx4xjrBC8Fmqyy1K+9UEQR+Lc49A=-3z6Q@mail.gmail.com>
	<DEAA2BEC-42E3-4AA1-A89B-2F20F85A7085@cam.ac.uk>
	<56031AAB.9010506@nottingham.ac.uk>
Date: Wed, 23 Sep 2015 18:42:45 -0400
Message-ID: <CAHwFrZdqf-36f9WSv7ObYkJ4spxiJ3u-EO7y9cZaD4GpP-UJrA@mail.gmail.com>
From: Len Maxwell <len@lnmx.org>
To: Dominic Price <dominic.price@nottingham.ac.uk>
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Blog and OPAM-aware static website generator
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============5402931463459137021=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============5402931463459137021==
Content-Type: multipart/alternative; boundary=001a113a371a4ed7ed052071d551

--001a113a371a4ed7ed052071d551
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

On Wed, Sep 23, 2015 at 5:33 PM, Dominic Price <
dominic.price@nottingham.ac.uk> wrote:

>
>
> On 23/09/2015 10:32, Amir Chaudhry wrote:
> >
> >> On 23 Sep 2015, at 09:20, Gareth Rushgrove <gareth@morethanseven.net>
> wrote:
> >>
> >> On 22 September 2015 at 21:24, Andrew Stuart
> >> <andrew.stuart@supercoders.com.au> wrote:
> >>> The Pioneer Projects page
> https://github.com/mirage/mirage-www/wiki/Pioneer-Projects mentions "Blog
> and OPAM-aware static website generator=E2=80=9D.
> >>>
> >>> Anyone interested in generating static websites would gain a great
> deal from first investigating httrack - it=E2=80=99s the most powerful st=
atic site
> generator although not many people seem to know of it.  httrack can conve=
rt
> most websites into static HTML and then they just need to be compiled int=
o
> MirageOS.
> >>>
> >>> https://www.httrack.com
> >>>
> >>
> >> I'd see htttrack as more of a spiderering tool, for downloading an
> >> existing site. Like wget but more specialised. It's pretty great.
> >>
> >> I _think_ this project refers more to generating the HTML in the first
> >> place, often from something like a directory of markdown files. Most
> >> languages have something similar and it's often a great
> >> my-first-running-application place to start with a new language. As
> >> inspiration for that sort of thing:
> >>
> >> https://gohugo.io/ (Go)
> >> http://blog.getpelican.com/ (Python)
> >> https://sculpin.io/ (PHP)
> >> https://jekyllrb.com/ (Ruby)
> >> http://wintersmith.io/ (JavaScript)
> >
> > Yes, this project is about creating a pure OCaml static-site generator,
> but with the added benefit of being able to extend functionality to make
> use of other parts of the OCaml ecosystem (i.e. OPAM).
>
> Out of interest, is there a particular reason for wanting a pure OCaml
> tool? I was thinking about a similar tool recently and as a starting
> point I was going to start with something simple that could take the
> output from Jekyll (for example) and wrap it up as a unikernel.
>
> Dominic
>

Hi Dominic,

FYI, the mirage-seal tool will take a directory of content and wrap it up
as a unikernel, with (optional) HTTPS support:

https://github.com/mirage/mirage-seal

https://mirage.io/blog/mirage-seal


cheers,
--
Len


>
> > Some work began earlier this year and you can see the core of it at:
> https://github.com/dsheets/tower
> > I should probably write up a post about what we were aiming for and
> where we got to. :)
> >
> > In the long term, it would be pretty cool to set up infrastructure like
> GitHub pages for the OCaml community, where unikernel sites for
> individuals/projects could be hosted (and using something like Jitsu woul=
d
> mean they=E2=80=99re only =E2=80=98active=E2=80=99 when required).  That=
=E2=80=99s a little way off though.
> >
> > If anyone is interested in working on the static site generator project=
,
> please do get in touch!
> >
> > Amir
> > _______________________________________________
> > MirageOS-devel mailing list
> > MirageOS-devel@lists.xenproject.org
> > http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
> >
>
> --
> Dominic Price
> Research Fellow
> Horizon Digital Economy Research
> Nottingham Geospatial Building
> University of Nottingham Innovation Park
> Triumph Road
> Nottingham
> NG7 2TU
>
> Email: dominic.price@nottingham.ac.uk
> Skype: dominic.j.price
> Office: +44 (0)115 82 32554
> Fax: +44 (0)115 82 32551
>
> Web: http://www.cs.nott.ac.uk/~djp
> Web: http://www.horizon.ac.uk
>
> _______________________________________________
> MirageOS-devel mailing list
> MirageOS-devel@lists.xenproject.org
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
>

--001a113a371a4ed7ed052071d551
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><br><div class=3D"gmail_extra"><br><div class=3D"gmail_quo=
te">On Wed, Sep 23, 2015 at 5:33 PM, Dominic Price <span dir=3D"ltr">&lt;<a=
 href=3D"mailto:dominic.price@nottingham.ac.uk" target=3D"_blank">dominic.p=
rice@nottingham.ac.uk</a>&gt;</span> wrote:<br><blockquote class=3D"gmail_q=
uote" style=3D"margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-c=
olor:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><span class=
=3D""><br>
<br>
On 23/09/2015 10:32, Amir Chaudhry wrote:<br>
&gt;<br>
&gt;&gt; On 23 Sep 2015, at 09:20, Gareth Rushgrove &lt;<a href=3D"mailto:g=
areth@morethanseven.net">gareth@morethanseven.net</a>&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; On 22 September 2015 at 21:24, Andrew Stuart<br>
&gt;&gt; &lt;<a href=3D"mailto:andrew.stuart@supercoders.com.au">andrew.stu=
art@supercoders.com.au</a>&gt; wrote:<br>
&gt;&gt;&gt; The Pioneer Projects page <a href=3D"https://github.com/mirage=
/mirage-www/wiki/Pioneer-Projects" rel=3D"noreferrer" target=3D"_blank">htt=
ps://github.com/mirage/mirage-www/wiki/Pioneer-Projects</a> mentions &quot;=
Blog and OPAM-aware static website generator=E2=80=9D.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Anyone interested in generating static websites would gain a g=
reat deal from first investigating httrack - it=E2=80=99s the most powerful=
 static site generator although not many people seem to know of it.=C2=A0 h=
ttrack can convert most websites into static HTML and then they just need t=
o be compiled into MirageOS.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; <a href=3D"https://www.httrack.com" rel=3D"noreferrer" target=
=3D"_blank">https://www.httrack.com</a><br>
&gt;&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; I&#39;d see htttrack as more of a spiderering tool, for downloadin=
g an<br>
&gt;&gt; existing site. Like wget but more specialised. It&#39;s pretty gre=
at.<br>
&gt;&gt;<br>
&gt;&gt; I _think_ this project refers more to generating the HTML in the f=
irst<br>
&gt;&gt; place, often from something like a directory of markdown files. Mo=
st<br>
&gt;&gt; languages have something similar and it&#39;s often a great<br>
&gt;&gt; my-first-running-application place to start with a new language. A=
s<br>
&gt;&gt; inspiration for that sort of thing:<br>
&gt;&gt;<br>
&gt;&gt; <a href=3D"https://gohugo.io/" rel=3D"noreferrer" target=3D"_blank=
">https://gohugo.io/</a> (Go)<br>
&gt;&gt; <a href=3D"http://blog.getpelican.com/" rel=3D"noreferrer" target=
=3D"_blank">http://blog.getpelican.com/</a> (Python)<br>
&gt;&gt; <a href=3D"https://sculpin.io/" rel=3D"noreferrer" target=3D"_blan=
k">https://sculpin.io/</a> (PHP)<br>
&gt;&gt; <a href=3D"https://jekyllrb.com/" rel=3D"noreferrer" target=3D"_bl=
ank">https://jekyllrb.com/</a> (Ruby)<br>
&gt;&gt; <a href=3D"http://wintersmith.io/" rel=3D"noreferrer" target=3D"_b=
lank">http://wintersmith.io/</a> (JavaScript)<br>
&gt;<br>
&gt; Yes, this project is about creating a pure OCaml static-site generator=
, but with the added benefit of being able to extend functionality to make =
use of other parts of the OCaml ecosystem (i.e. OPAM).<br>
<br>
</span>Out of interest, is there a particular reason for wanting a pure OCa=
ml<br>
tool? I was thinking about a similar tool recently and as a starting<br>
point I was going to start with something simple that could take the<br>
output from Jekyll (for example) and wrap it up as a unikernel.<br>
<br>
Dominic<br></blockquote><div><br></div><div>Hi Dominic,</div><div><br></div=
><div>FYI, the mirage-seal tool will take a directory of content and wrap i=
t up as a unikernel, with (optional) HTTPS support:</div><div><br></div><di=
v><a href=3D"https://github.com/mirage/mirage-seal">https://github.com/mira=
ge/mirage-seal</a></div><div><br></div><div><a href=3D"https://mirage.io/bl=
og/mirage-seal">https://mirage.io/blog/mirage-seal</a><br></div><div><br></=
div><div><br></div><div>cheers,</div><div>--</div><div>Len</div><div>=C2=A0=
</div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;b=
order-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:s=
olid;padding-left:1ex">
<span class=3D""><br>
&gt; Some work began earlier this year and you can see the core of it at: <=
a href=3D"https://github.com/dsheets/tower" rel=3D"noreferrer" target=3D"_b=
lank">https://github.com/dsheets/tower</a><br>
&gt; I should probably write up a post about what we were aiming for and wh=
ere we got to. :)<br>
&gt;<br>
&gt; In the long term, it would be pretty cool to set up infrastructure lik=
e GitHub pages for the OCaml community, where unikernel sites for individua=
ls/projects could be hosted (and using something like Jitsu would mean they=
=E2=80=99re only =E2=80=98active=E2=80=99 when required).=C2=A0 That=E2=80=
=99s a little way off though.<br>
&gt;<br>
&gt; If anyone is interested in working on the static site generator projec=
t, please do get in touch!<br>
&gt;<br>
&gt; Amir<br>
&gt; _______________________________________________<br>
&gt; MirageOS-devel mailing list<br>
&gt; <a href=3D"mailto:MirageOS-devel@lists.xenproject.org">MirageOS-devel@=
lists.xenproject.org</a><br>
&gt; <a href=3D"http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirage=
os-devel" rel=3D"noreferrer" target=3D"_blank">http://lists.xenproject.org/=
cgi-bin/mailman/listinfo/mirageos-devel</a><br>
&gt;<br>
<br>
</span>--<br>
Dominic Price<br>
Research Fellow<br>
Horizon Digital Economy Research<br>
Nottingham Geospatial Building<br>
University of Nottingham Innovation Park<br>
Triumph Road<br>
Nottingham<br>
NG7 2TU<br>
<br>
Email: <a href=3D"mailto:dominic.price@nottingham.ac.uk">dominic.price@nott=
ingham.ac.uk</a><br>
Skype: dominic.j.price<br>
Office: +44 (0)115 82 32554<br>
Fax: +44 (0)115 82 32551<br>
<br>
Web: <a href=3D"http://www.cs.nott.ac.uk/~djp" rel=3D"noreferrer" target=3D=
"_blank">http://www.cs.nott.ac.uk/~djp</a><br>
Web: <a href=3D"http://www.horizon.ac.uk" rel=3D"noreferrer" target=3D"_bla=
nk">http://www.horizon.ac.uk</a><br>
<div class=3D""><div class=3D"h5"><br>
_______________________________________________<br>
MirageOS-devel mailing list<br>
<a href=3D"mailto:MirageOS-devel@lists.xenproject.org">MirageOS-devel@lists=
.xenproject.org</a><br>
<a href=3D"http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-de=
vel" rel=3D"noreferrer" target=3D"_blank">http://lists.xenproject.org/cgi-b=
in/mailman/listinfo/mirageos-devel</a><br>
</div></div></blockquote></div><br></div></div>

--001a113a371a4ed7ed052071d551--


--===============5402931463459137021==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

--===============5402931463459137021==--


From mirageos-devel-bounces@lists.xenproject.org Thu Sep 24 00:55:50 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 24 Sep 2015 00:55:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1Zeup4-00008p-Pt; Thu, 24 Sep 2015 00:55:42 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <sadieperkins@riseup.net>) id 1Zeup3-00008k-9G
	for mirageos-devel@lists.xenproject.org; Thu, 24 Sep 2015 00:55:41 +0000
Received: from [85.158.137.68] by server-1.bemta-3.messagelabs.com id
	27/BA-01421-C0A43065; Thu, 24 Sep 2015 00:55:40 +0000
X-Env-Sender: sadieperkins@riseup.net
X-Msg-Ref: server-12.tower-31.messagelabs.com!1443056138!47034506!1
X-Originating-IP: [198.252.153.129]
X-SpamReason: No, hits=0.0 required=7.0 tests=UNPARSEABLE_RELAY
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 8595 invoked from network); 24 Sep 2015 00:55:39 -0000
Received: from mx1.riseup.net (HELO mx1.riseup.net) (198.252.153.129)
	by server-12.tower-31.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 24 Sep 2015 00:55:39 -0000
Received: from cotinga.riseup.net (unknown [10.0.1.161])
	(using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits))
	(Client CN "*.riseup.net",
	Issuer "COMODO RSA Domain Validation Secure Server CA" (verified OK))
	by mx1.riseup.net (Postfix) with ESMTPS id A4ACFC2B68;
	Wed, 23 Sep 2015 17:55:37 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=riseup.net; s=squak;
	t=1443056137; bh=FJZHWS1fYyd9yr2JbMQqleSW22jQHbmRsBYWfjQjUZU=;
	h=Date:From:To:Cc:Subject:From;
	b=B96yvhBxqu/v77QTYspr0rK5alDg+RWHgbgaY6qQl83uSf9fQMqb54PJwuDDS3yiq
	l62fjyS+vD1nEzHykXKlkEUgcWD0UfCITVxXMAREZKFN1nv6ebFNH0o88nbpnd3OVk
	/ue7FqjbYCfNxS+v2epcu3TF2QKHqwptMOLtlMKc=
Received: from [127.0.0.1] (localhost [127.0.0.1])
	(Authenticated sender: sadieperkins) with ESMTPSA id 3E5471C01EE
Date: Thu, 24 Sep 2015 00:55:35 +0000
From: Kia <sadieperkins@riseup.net>
To: mirageos-devel@lists.xenproject.org
Message-ID: <20150924005535.GB30106@localhost>
MIME-Version: 1.0
Content-Disposition: inline
User-Agent: Mutt/1.5.23 (2014-03-12)
X-Virus-Scanned: clamav-milter 0.98.7 at mx1.riseup.net
X-Virus-Status: Clean
Subject: [MirageOS-devel] getting started with outreachy program
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

I am interested in participating in round 11 of the Outreachy program
(https://wiki.gnome.org/Outreachy/2015/DecemberMarch). I looked at 
https://github.com/mirage/mirage-www/wiki/Pioneer-Projects and am interested
in doing the NTP implementation (I've done things with precision timekeeping
before so I already have some interest and experience with this). I am
wondering what I need to do / who I need to be in contact with (I'm not sure
who'll be my mentor and stuff) before preparing my Outreachy application.  

-- 
Kia


_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Thu Sep 24 00:55:50 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 24 Sep 2015 00:55:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1Zeup4-00008p-Pt; Thu, 24 Sep 2015 00:55:42 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <sadieperkins@riseup.net>) id 1Zeup3-00008k-9G
	for mirageos-devel@lists.xenproject.org; Thu, 24 Sep 2015 00:55:41 +0000
Received: from [85.158.137.68] by server-1.bemta-3.messagelabs.com id
	27/BA-01421-C0A43065; Thu, 24 Sep 2015 00:55:40 +0000
X-Env-Sender: sadieperkins@riseup.net
X-Msg-Ref: server-12.tower-31.messagelabs.com!1443056138!47034506!1
X-Originating-IP: [198.252.153.129]
X-SpamReason: No, hits=0.0 required=7.0 tests=UNPARSEABLE_RELAY
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 8595 invoked from network); 24 Sep 2015 00:55:39 -0000
Received: from mx1.riseup.net (HELO mx1.riseup.net) (198.252.153.129)
	by server-12.tower-31.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 24 Sep 2015 00:55:39 -0000
Received: from cotinga.riseup.net (unknown [10.0.1.161])
	(using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits))
	(Client CN "*.riseup.net",
	Issuer "COMODO RSA Domain Validation Secure Server CA" (verified OK))
	by mx1.riseup.net (Postfix) with ESMTPS id A4ACFC2B68;
	Wed, 23 Sep 2015 17:55:37 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=riseup.net; s=squak;
	t=1443056137; bh=FJZHWS1fYyd9yr2JbMQqleSW22jQHbmRsBYWfjQjUZU=;
	h=Date:From:To:Cc:Subject:From;
	b=B96yvhBxqu/v77QTYspr0rK5alDg+RWHgbgaY6qQl83uSf9fQMqb54PJwuDDS3yiq
	l62fjyS+vD1nEzHykXKlkEUgcWD0UfCITVxXMAREZKFN1nv6ebFNH0o88nbpnd3OVk
	/ue7FqjbYCfNxS+v2epcu3TF2QKHqwptMOLtlMKc=
Received: from [127.0.0.1] (localhost [127.0.0.1])
	(Authenticated sender: sadieperkins) with ESMTPSA id 3E5471C01EE
Date: Thu, 24 Sep 2015 00:55:35 +0000
From: Kia <sadieperkins@riseup.net>
To: mirageos-devel@lists.xenproject.org
Message-ID: <20150924005535.GB30106@localhost>
MIME-Version: 1.0
Content-Disposition: inline
User-Agent: Mutt/1.5.23 (2014-03-12)
X-Virus-Scanned: clamav-milter 0.98.7 at mx1.riseup.net
X-Virus-Status: Clean
Subject: [MirageOS-devel] getting started with outreachy program
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

I am interested in participating in round 11 of the Outreachy program
(https://wiki.gnome.org/Outreachy/2015/DecemberMarch). I looked at 
https://github.com/mirage/mirage-www/wiki/Pioneer-Projects and am interested
in doing the NTP implementation (I've done things with precision timekeeping
before so I already have some interest and experience with this). I am
wondering what I need to do / who I need to be in contact with (I'm not sure
who'll be my mentor and stuff) before preparing my Outreachy application.  

-- 
Kia


_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Thu Sep 24 08:41:49 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 24 Sep 2015 08:41:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1Zf261-0003RS-4t; Thu, 24 Sep 2015 08:41:41 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <richard.mortier@gmail.com>) id 1Zf25z-0003RG-Sm
	for mirageos-devel@lists.xenproject.org; Thu, 24 Sep 2015 08:41:40 +0000
Received: from [85.158.139.211] by server-12.bemta-5.messagelabs.com id
	03/63-19220-347B3065; Thu, 24 Sep 2015 08:41:39 +0000
X-Env-Sender: richard.mortier@gmail.com
X-Msg-Ref: server-10.tower-206.messagelabs.com!1443084098!32130264!1
X-Originating-IP: [209.85.212.177]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 19924 invoked from network); 24 Sep 2015 08:41:38 -0000
Received: from mail-wi0-f177.google.com (HELO mail-wi0-f177.google.com)
	(209.85.212.177)
	by server-10.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
	24 Sep 2015 08:41:38 -0000
Received: by wicgb1 with SMTP id gb1so239497097wic.1
	for <mirageos-devel@lists.xenproject.org>;
	Thu, 24 Sep 2015 01:41:38 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=mime-version:in-reply-to:references:date:message-id:subject:from:to
	:cc:content-type;
	bh=RNJYbCtf3k9K5hoc3AGUxUmPXVC0YdhSWUdUWVMIds4=;
	b=TWgiPh2Mb8+6wTByJaFlY354ipOx7er3j4MU27cMiV5KhgcMQCD6OyPiaKSabR8Vly
	Uqtq6JKV6E3sUXY5/UmsXFtE3TkZJaZSmWofOHH8hHMVaCzkEjA4IzntlpCKVkoqYBsg
	iiOXDvYt1Jr9/lB8FQJoUu2Z9pMCUb7ffQ7/oGXJewnBpsdzS90WFsPUvS7xtMH1Syy5
	Vn8Fmolo+O4i4m7CESUlCxpLNU7G30gqrDvzEcRG+ny5Q+7dLV6AwBBoamE6Ia/cVSVJ
	iugsAu7Nw4r63vttN5LQdtfmrBvbHRk9/lGtICYA5s+VutEO00kShJm2vR98LsmmjwVm
	ZsFQ==
X-Received: by 10.180.8.164 with SMTP id s4mr9089960wia.5.1443084098271;
	Thu, 24 Sep 2015 01:41:38 -0700 (PDT)
Received: from mail-wi0-f174.google.com (mail-wi0-f174.google.com.
	[209.85.212.174]) by smtp.gmail.com with ESMTPSA id
	fr10sm4344007wib.14.2015.09.24.01.41.36
	for <mirageos-devel@lists.xenproject.org>
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Thu, 24 Sep 2015 01:41:38 -0700 (PDT)
Received: by wicfx3 with SMTP id fx3so102518759wic.0
	for <mirageos-devel@lists.xenproject.org>;
	Thu, 24 Sep 2015 01:41:36 -0700 (PDT)
MIME-Version: 1.0
X-Received: by 10.194.87.129 with SMTP id ay1mr27528268wjb.110.1443084096901; 
	Thu, 24 Sep 2015 01:41:36 -0700 (PDT)
Received: by 10.28.130.67 with HTTP; Thu, 24 Sep 2015 01:41:36 -0700 (PDT)
In-Reply-To: <20150924005535.GB30106@localhost>
References: <20150924005535.GB30106@localhost>
Date: Thu, 24 Sep 2015 10:41:36 +0200
Message-ID: <CAN2Hq040aaBub19sKEU9wOY98M5G+kyt_8sr7EQHnD-1VHyasg@mail.gmail.com>
From: Richard Mortier <richard.mortier@cl.cam.ac.uk>
To: Kia <sadieperkins@riseup.net>, Hannes Mehnert <hannes@mehnert.org>
Cc: mirageos-devel <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] getting started with outreachy program
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

Hi;

On 24 September 2015 at 02:55, Kia <sadieperkins@riseup.net> wrote:
> I am interested in participating in round 11 of the Outreachy program
> (https://wiki.gnome.org/Outreachy/2015/DecemberMarch). I looked at
> https://github.com/mirage/mirage-www/wiki/Pioneer-Projects and am interested
> in doing the NTP implementation (I've done things with precision timekeeping
> before so I already have some interest and experience with this).

Cool! :)

> I am
> wondering what I need to do / who I need to be in contact with (I'm not sure
> who'll be my mentor and stuff) before preparing my Outreachy application.

Hannes (CC'd) is listed as the mentor for that project on the pioneer
projects page...

-- 
Richard Mortier
richard.mortier@cl.cam.ac.uk

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Thu Sep 24 08:41:49 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 24 Sep 2015 08:41:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1Zf261-0003RS-4t; Thu, 24 Sep 2015 08:41:41 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <richard.mortier@gmail.com>) id 1Zf25z-0003RG-Sm
	for mirageos-devel@lists.xenproject.org; Thu, 24 Sep 2015 08:41:40 +0000
Received: from [85.158.139.211] by server-12.bemta-5.messagelabs.com id
	03/63-19220-347B3065; Thu, 24 Sep 2015 08:41:39 +0000
X-Env-Sender: richard.mortier@gmail.com
X-Msg-Ref: server-10.tower-206.messagelabs.com!1443084098!32130264!1
X-Originating-IP: [209.85.212.177]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 19924 invoked from network); 24 Sep 2015 08:41:38 -0000
Received: from mail-wi0-f177.google.com (HELO mail-wi0-f177.google.com)
	(209.85.212.177)
	by server-10.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
	24 Sep 2015 08:41:38 -0000
Received: by wicgb1 with SMTP id gb1so239497097wic.1
	for <mirageos-devel@lists.xenproject.org>;
	Thu, 24 Sep 2015 01:41:38 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=mime-version:in-reply-to:references:date:message-id:subject:from:to
	:cc:content-type;
	bh=RNJYbCtf3k9K5hoc3AGUxUmPXVC0YdhSWUdUWVMIds4=;
	b=TWgiPh2Mb8+6wTByJaFlY354ipOx7er3j4MU27cMiV5KhgcMQCD6OyPiaKSabR8Vly
	Uqtq6JKV6E3sUXY5/UmsXFtE3TkZJaZSmWofOHH8hHMVaCzkEjA4IzntlpCKVkoqYBsg
	iiOXDvYt1Jr9/lB8FQJoUu2Z9pMCUb7ffQ7/oGXJewnBpsdzS90WFsPUvS7xtMH1Syy5
	Vn8Fmolo+O4i4m7CESUlCxpLNU7G30gqrDvzEcRG+ny5Q+7dLV6AwBBoamE6Ia/cVSVJ
	iugsAu7Nw4r63vttN5LQdtfmrBvbHRk9/lGtICYA5s+VutEO00kShJm2vR98LsmmjwVm
	ZsFQ==
X-Received: by 10.180.8.164 with SMTP id s4mr9089960wia.5.1443084098271;
	Thu, 24 Sep 2015 01:41:38 -0700 (PDT)
Received: from mail-wi0-f174.google.com (mail-wi0-f174.google.com.
	[209.85.212.174]) by smtp.gmail.com with ESMTPSA id
	fr10sm4344007wib.14.2015.09.24.01.41.36
	for <mirageos-devel@lists.xenproject.org>
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Thu, 24 Sep 2015 01:41:38 -0700 (PDT)
Received: by wicfx3 with SMTP id fx3so102518759wic.0
	for <mirageos-devel@lists.xenproject.org>;
	Thu, 24 Sep 2015 01:41:36 -0700 (PDT)
MIME-Version: 1.0
X-Received: by 10.194.87.129 with SMTP id ay1mr27528268wjb.110.1443084096901; 
	Thu, 24 Sep 2015 01:41:36 -0700 (PDT)
Received: by 10.28.130.67 with HTTP; Thu, 24 Sep 2015 01:41:36 -0700 (PDT)
In-Reply-To: <20150924005535.GB30106@localhost>
References: <20150924005535.GB30106@localhost>
Date: Thu, 24 Sep 2015 10:41:36 +0200
Message-ID: <CAN2Hq040aaBub19sKEU9wOY98M5G+kyt_8sr7EQHnD-1VHyasg@mail.gmail.com>
From: Richard Mortier <richard.mortier@cl.cam.ac.uk>
To: Kia <sadieperkins@riseup.net>, Hannes Mehnert <hannes@mehnert.org>
Cc: mirageos-devel <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] getting started with outreachy program
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

Hi;

On 24 September 2015 at 02:55, Kia <sadieperkins@riseup.net> wrote:
> I am interested in participating in round 11 of the Outreachy program
> (https://wiki.gnome.org/Outreachy/2015/DecemberMarch). I looked at
> https://github.com/mirage/mirage-www/wiki/Pioneer-Projects and am interested
> in doing the NTP implementation (I've done things with precision timekeeping
> before so I already have some interest and experience with this).

Cool! :)

> I am
> wondering what I need to do / who I need to be in contact with (I'm not sure
> who'll be my mentor and stuff) before preparing my Outreachy application.

Hannes (CC'd) is listed as the mentor for that project on the pioneer
projects page...

-- 
Richard Mortier
richard.mortier@cl.cam.ac.uk

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Thu Sep 24 08:46:01 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 24 Sep 2015 08:46:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1Zf2AB-0003hs-TL; Thu, 24 Sep 2015 08:45:59 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <richard.mortier@gmail.com>) id 1Zf2AA-0003hn-Le
	for mirageos-devel@lists.xenproject.org; Thu, 24 Sep 2015 08:45:59 +0000
Received: from [193.109.254.147] by server-15.bemta-14.messagelabs.com id
	E4/AD-18886-548B3065; Thu, 24 Sep 2015 08:45:57 +0000
X-Env-Sender: richard.mortier@gmail.com
X-Msg-Ref: server-9.tower-27.messagelabs.com!1443084354!52580654!1
X-Originating-IP: [209.85.212.174]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 30152 invoked from network); 24 Sep 2015 08:45:54 -0000
Received: from mail-wi0-f174.google.com (HELO mail-wi0-f174.google.com)
	(209.85.212.174)
	by server-9.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	24 Sep 2015 08:45:54 -0000
Received: by wicgb1 with SMTP id gb1so239642668wic.1
	for <mirageos-devel@lists.xenproject.org>;
	Thu, 24 Sep 2015 01:45:54 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:sender:in-reply-to:references:date:message-id:subject
	:from:to:cc:content-type:content-transfer-encoding;
	bh=df2adIdipup54PdKOzRxQ8/1huRDYqC4YsIG8vPBlk0=;
	b=mGqcCSyI4epbkhPulsmGM6vz0W5YZVrD7fN2CXRAb326D/UaHoFxuvlFKDskT6V0lP
	wMozRUS1bihBk/kR7OsZTJZjl+En1h2lHXcMFUlQywjqvKRJci8Hrk4Gs1PoizmbKTC1
	LkKl5IYpOmfE9Tv4eD8h92ml/Nb3f+9TklooyvFmZhi4f2TzYdTc4ukNR3dHdYrKzG/A
	iZH1vUGo+R3DLhtoDOkckf5kLOGrIFopctv/Ed38Tm3ekPiRhLeZRYU3Olt6vk8ZG711
	a6toMSK1CKSvF04WRw3hS1xpFIB6Iv21WWPCC18iUYOdYka5fLQRvDg8zuyjzefRNQyj
	a46A==
MIME-Version: 1.0
X-Received: by 10.180.10.170 with SMTP id j10mr9137902wib.77.1443084353869;
	Thu, 24 Sep 2015 01:45:53 -0700 (PDT)
Received: by 10.28.130.67 with HTTP; Thu, 24 Sep 2015 01:45:53 -0700 (PDT)
In-Reply-To: <CAHwFrZdqf-36f9WSv7ObYkJ4spxiJ3u-EO7y9cZaD4GpP-UJrA@mail.gmail.com>
References: <E9F8F6A6-C24D-425E-A772-3A1E5E5988AC@supercoders.com.au>
	<CAFi_6yLoqJyT+TAYNx4xjrBC8Fmqyy1K+9UEQR+Lc49A=-3z6Q@mail.gmail.com>
	<DEAA2BEC-42E3-4AA1-A89B-2F20F85A7085@cam.ac.uk>
	<56031AAB.9010506@nottingham.ac.uk>
	<CAHwFrZdqf-36f9WSv7ObYkJ4spxiJ3u-EO7y9cZaD4GpP-UJrA@mail.gmail.com>
Date: Thu, 24 Sep 2015 10:45:53 +0200
X-Google-Sender-Auth: 4BUoHi8LQVP7624TVRyna4KqjO0
Message-ID: <CAN2Hq04H4OGQNxcPNZ3Y_ytvA5uwA7Cc6N8Bu-ZGZaiLUn_bPQ@mail.gmail.com>
From: Richard Mortier <mort@cantab.net>
To: Dominic Price <dominic.price@nottingham.ac.uk>
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Blog and OPAM-aware static website generator
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

Li4uYW5kIGlmIHlvdSBwcmVmZXIgdGhlIG9sZCBzdGVhbSBwb3dlcmVkIHdheSwgbXkgc2l0ZQoo
aHR0cDovL21vcnQuaW8pIHdyYXBzIHVwIGEgSmVreWxsIGdlbmVyYXRlZCBzaXRlIG9uIFRyYXZp
cy4gQSBibG9nCnBvc3QgYWJvdXQgdGhlIHByb2Nlc3MgaXMgYXQKaHR0cDovL21vcnQuaW8vYmxv
Zy8yMDE1LzA1LzIwL21vdmluZy1vbnRvLW1pcmFnZS8gdGhvdWdoIGl0J3Mgbm93IGEKbGl0dGxl
IG91dC1vZi1kYXRlIGFzIChlZykgdGhlIGVudiB2YXJzIHNldCBpbiB0aGUgLnRyYXZpcy55bWwg
aGF2ZQpjaGFuZ2VkLS0gaHR0cHM6Ly9naXRodWIuY29tL21vcjEvbW9yMS5naXRodWIuaW8gZm9y
IHRoZSByZWFsIGRlYWwuLi4KOikKCk9uIDI0IFNlcHRlbWJlciAyMDE1IGF0IDAwOjQyLCBMZW4g
TWF4d2VsbCA8bGVuQGxubXgub3JnPiB3cm90ZToKPgo+Cj4gT24gV2VkLCBTZXAgMjMsIDIwMTUg
YXQgNTozMyBQTSwgRG9taW5pYyBQcmljZQo+IDxkb21pbmljLnByaWNlQG5vdHRpbmdoYW0uYWMu
dWs+IHdyb3RlOgo+Pgo+Pgo+Pgo+PiBPbiAyMy8wOS8yMDE1IDEwOjMyLCBBbWlyIENoYXVkaHJ5
IHdyb3RlOgo+PiA+Cj4+ID4+IE9uIDIzIFNlcCAyMDE1LCBhdCAwOToyMCwgR2FyZXRoIFJ1c2hn
cm92ZSA8Z2FyZXRoQG1vcmV0aGFuc2V2ZW4ubmV0Pgo+PiA+PiB3cm90ZToKPj4gPj4KPj4gPj4g
T24gMjIgU2VwdGVtYmVyIDIwMTUgYXQgMjE6MjQsIEFuZHJldyBTdHVhcnQKPj4gPj4gPGFuZHJl
dy5zdHVhcnRAc3VwZXJjb2RlcnMuY29tLmF1PiB3cm90ZToKPj4gPj4+IFRoZSBQaW9uZWVyIFBy
b2plY3RzIHBhZ2UKPj4gPj4+IGh0dHBzOi8vZ2l0aHViLmNvbS9taXJhZ2UvbWlyYWdlLXd3dy93
aWtpL1Bpb25lZXItUHJvamVjdHMgbWVudGlvbnMgIkJsb2cKPj4gPj4+IGFuZCBPUEFNLWF3YXJl
IHN0YXRpYyB3ZWJzaXRlIGdlbmVyYXRvcuKAnS4KPj4gPj4+Cj4+ID4+PiBBbnlvbmUgaW50ZXJl
c3RlZCBpbiBnZW5lcmF0aW5nIHN0YXRpYyB3ZWJzaXRlcyB3b3VsZCBnYWluIGEgZ3JlYXQKPj4g
Pj4+IGRlYWwgZnJvbSBmaXJzdCBpbnZlc3RpZ2F0aW5nIGh0dHJhY2sgLSBpdOKAmXMgdGhlIG1v
c3QgcG93ZXJmdWwgc3RhdGljIHNpdGUKPj4gPj4+IGdlbmVyYXRvciBhbHRob3VnaCBub3QgbWFu
eSBwZW9wbGUgc2VlbSB0byBrbm93IG9mIGl0LiAgaHR0cmFjayBjYW4gY29udmVydAo+PiA+Pj4g
bW9zdCB3ZWJzaXRlcyBpbnRvIHN0YXRpYyBIVE1MIGFuZCB0aGVuIHRoZXkganVzdCBuZWVkIHRv
IGJlIGNvbXBpbGVkIGludG8KPj4gPj4+IE1pcmFnZU9TLgo+PiA+Pj4KPj4gPj4+IGh0dHBzOi8v
d3d3Lmh0dHJhY2suY29tCj4+ID4+Pgo+PiA+Pgo+PiA+PiBJJ2Qgc2VlIGh0dHRyYWNrIGFzIG1v
cmUgb2YgYSBzcGlkZXJlcmluZyB0b29sLCBmb3IgZG93bmxvYWRpbmcgYW4KPj4gPj4gZXhpc3Rp
bmcgc2l0ZS4gTGlrZSB3Z2V0IGJ1dCBtb3JlIHNwZWNpYWxpc2VkLiBJdCdzIHByZXR0eSBncmVh
dC4KPj4gPj4KPj4gPj4gSSBfdGhpbmtfIHRoaXMgcHJvamVjdCByZWZlcnMgbW9yZSB0byBnZW5l
cmF0aW5nIHRoZSBIVE1MIGluIHRoZSBmaXJzdAo+PiA+PiBwbGFjZSwgb2Z0ZW4gZnJvbSBzb21l
dGhpbmcgbGlrZSBhIGRpcmVjdG9yeSBvZiBtYXJrZG93biBmaWxlcy4gTW9zdAo+PiA+PiBsYW5n
dWFnZXMgaGF2ZSBzb21ldGhpbmcgc2ltaWxhciBhbmQgaXQncyBvZnRlbiBhIGdyZWF0Cj4+ID4+
IG15LWZpcnN0LXJ1bm5pbmctYXBwbGljYXRpb24gcGxhY2UgdG8gc3RhcnQgd2l0aCBhIG5ldyBs
YW5ndWFnZS4gQXMKPj4gPj4gaW5zcGlyYXRpb24gZm9yIHRoYXQgc29ydCBvZiB0aGluZzoKPj4g
Pj4KPj4gPj4gaHR0cHM6Ly9nb2h1Z28uaW8vIChHbykKPj4gPj4gaHR0cDovL2Jsb2cuZ2V0cGVs
aWNhbi5jb20vIChQeXRob24pCj4+ID4+IGh0dHBzOi8vc2N1bHBpbi5pby8gKFBIUCkKPj4gPj4g
aHR0cHM6Ly9qZWt5bGxyYi5jb20vIChSdWJ5KQo+PiA+PiBodHRwOi8vd2ludGVyc21pdGguaW8v
IChKYXZhU2NyaXB0KQo+PiA+Cj4+ID4gWWVzLCB0aGlzIHByb2plY3QgaXMgYWJvdXQgY3JlYXRp
bmcgYSBwdXJlIE9DYW1sIHN0YXRpYy1zaXRlIGdlbmVyYXRvciwKPj4gPiBidXQgd2l0aCB0aGUg
YWRkZWQgYmVuZWZpdCBvZiBiZWluZyBhYmxlIHRvIGV4dGVuZCBmdW5jdGlvbmFsaXR5IHRvIG1h
a2UgdXNlCj4+ID4gb2Ygb3RoZXIgcGFydHMgb2YgdGhlIE9DYW1sIGVjb3N5c3RlbSAoaS5lLiBP
UEFNKS4KPj4KPj4gT3V0IG9mIGludGVyZXN0LCBpcyB0aGVyZSBhIHBhcnRpY3VsYXIgcmVhc29u
IGZvciB3YW50aW5nIGEgcHVyZSBPQ2FtbAo+PiB0b29sPyBJIHdhcyB0aGlua2luZyBhYm91dCBh
IHNpbWlsYXIgdG9vbCByZWNlbnRseSBhbmQgYXMgYSBzdGFydGluZwo+PiBwb2ludCBJIHdhcyBn
b2luZyB0byBzdGFydCB3aXRoIHNvbWV0aGluZyBzaW1wbGUgdGhhdCBjb3VsZCB0YWtlIHRoZQo+
PiBvdXRwdXQgZnJvbSBKZWt5bGwgKGZvciBleGFtcGxlKSBhbmQgd3JhcCBpdCB1cCBhcyBhIHVu
aWtlcm5lbC4KPj4KPj4gRG9taW5pYwo+Cj4KPiBIaSBEb21pbmljLAo+Cj4gRllJLCB0aGUgbWly
YWdlLXNlYWwgdG9vbCB3aWxsIHRha2UgYSBkaXJlY3Rvcnkgb2YgY29udGVudCBhbmQgd3JhcCBp
dCB1cCBhcwo+IGEgdW5pa2VybmVsLCB3aXRoIChvcHRpb25hbCkgSFRUUFMgc3VwcG9ydDoKPgo+
IGh0dHBzOi8vZ2l0aHViLmNvbS9taXJhZ2UvbWlyYWdlLXNlYWwKPgo+IGh0dHBzOi8vbWlyYWdl
LmlvL2Jsb2cvbWlyYWdlLXNlYWwKPgo+Cj4gY2hlZXJzLAo+IC0tCj4gTGVuCj4KPj4KPj4KPj4g
PiBTb21lIHdvcmsgYmVnYW4gZWFybGllciB0aGlzIHllYXIgYW5kIHlvdSBjYW4gc2VlIHRoZSBj
b3JlIG9mIGl0IGF0Ogo+PiA+IGh0dHBzOi8vZ2l0aHViLmNvbS9kc2hlZXRzL3Rvd2VyCj4+ID4g
SSBzaG91bGQgcHJvYmFibHkgd3JpdGUgdXAgYSBwb3N0IGFib3V0IHdoYXQgd2Ugd2VyZSBhaW1p
bmcgZm9yIGFuZAo+PiA+IHdoZXJlIHdlIGdvdCB0by4gOikKPj4gPgo+PiA+IEluIHRoZSBsb25n
IHRlcm0sIGl0IHdvdWxkIGJlIHByZXR0eSBjb29sIHRvIHNldCB1cCBpbmZyYXN0cnVjdHVyZSBs
aWtlCj4+ID4gR2l0SHViIHBhZ2VzIGZvciB0aGUgT0NhbWwgY29tbXVuaXR5LCB3aGVyZSB1bmlr
ZXJuZWwgc2l0ZXMgZm9yCj4+ID4gaW5kaXZpZHVhbHMvcHJvamVjdHMgY291bGQgYmUgaG9zdGVk
IChhbmQgdXNpbmcgc29tZXRoaW5nIGxpa2UgSml0c3Ugd291bGQKPj4gPiBtZWFuIHRoZXnigJly
ZSBvbmx5IOKAmGFjdGl2ZeKAmSB3aGVuIHJlcXVpcmVkKS4gIFRoYXTigJlzIGEgbGl0dGxlIHdh
eSBvZmYgdGhvdWdoLgo+PiA+Cj4+ID4gSWYgYW55b25lIGlzIGludGVyZXN0ZWQgaW4gd29ya2lu
ZyBvbiB0aGUgc3RhdGljIHNpdGUgZ2VuZXJhdG9yIHByb2plY3QsCj4+ID4gcGxlYXNlIGRvIGdl
dCBpbiB0b3VjaCEKPj4gPgo+PiA+IEFtaXIKPj4gPiBfX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fXwo+PiA+IE1pcmFnZU9TLWRldmVsIG1haWxpbmcgbGlzdAo+
PiA+IE1pcmFnZU9TLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCj4+ID4gaHR0cDovL2xpc3Rz
LnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby9taXJhZ2Vvcy1kZXZlbAo+
PiA+Cj4+Cj4+IC0tCj4+IERvbWluaWMgUHJpY2UKPj4gUmVzZWFyY2ggRmVsbG93Cj4+IEhvcml6
b24gRGlnaXRhbCBFY29ub215IFJlc2VhcmNoCj4+IE5vdHRpbmdoYW0gR2Vvc3BhdGlhbCBCdWls
ZGluZwo+PiBVbml2ZXJzaXR5IG9mIE5vdHRpbmdoYW0gSW5ub3ZhdGlvbiBQYXJrCj4+IFRyaXVt
cGggUm9hZAo+PiBOb3R0aW5naGFtCj4+IE5HNyAyVFUKPj4KPj4gRW1haWw6IGRvbWluaWMucHJp
Y2VAbm90dGluZ2hhbS5hYy51awo+PiBTa3lwZTogZG9taW5pYy5qLnByaWNlCj4+IE9mZmljZTog
KzQ0ICgwKTExNSA4MiAzMjU1NAo+PiBGYXg6ICs0NCAoMCkxMTUgODIgMzI1NTEKPj4KPj4gV2Vi
OiBodHRwOi8vd3d3LmNzLm5vdHQuYWMudWsvfmRqcAo+PiBXZWI6IGh0dHA6Ly93d3cuaG9yaXpv
bi5hYy51awo+Pgo+PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fXwo+PiBNaXJhZ2VPUy1kZXZlbCBtYWlsaW5nIGxpc3QKPj4gTWlyYWdlT1MtZGV2ZWxAbGlz
dHMueGVucHJvamVjdC5vcmcKPj4gaHR0cDovL2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4v
bWFpbG1hbi9saXN0aW5mby9taXJhZ2Vvcy1kZXZlbAo+Cj4KPgo+IF9fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gTWlyYWdlT1MtZGV2ZWwgbWFpbGluZyBs
aXN0Cj4gTWlyYWdlT1MtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKPiBodHRwOi8vbGlzdHMu
eGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL21pcmFnZW9zLWRldmVsCj4K
CgoKLS0gClJpY2hhcmQgTW9ydGllcgptb3J0QGNhbnRhYi5uZXQKCl9fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk1pcmFnZU9TLWRldmVsIG1haWxpbmcgbGlz
dApNaXJhZ2VPUy1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwOi8vbGlzdHMueGVucHJv
amVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL21pcmFnZW9zLWRldmVsCg==

From mirageos-devel-bounces@lists.xenproject.org Thu Sep 24 08:46:01 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 24 Sep 2015 08:46:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1Zf2AB-0003hs-TL; Thu, 24 Sep 2015 08:45:59 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <richard.mortier@gmail.com>) id 1Zf2AA-0003hn-Le
	for mirageos-devel@lists.xenproject.org; Thu, 24 Sep 2015 08:45:59 +0000
Received: from [193.109.254.147] by server-15.bemta-14.messagelabs.com id
	E4/AD-18886-548B3065; Thu, 24 Sep 2015 08:45:57 +0000
X-Env-Sender: richard.mortier@gmail.com
X-Msg-Ref: server-9.tower-27.messagelabs.com!1443084354!52580654!1
X-Originating-IP: [209.85.212.174]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 30152 invoked from network); 24 Sep 2015 08:45:54 -0000
Received: from mail-wi0-f174.google.com (HELO mail-wi0-f174.google.com)
	(209.85.212.174)
	by server-9.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	24 Sep 2015 08:45:54 -0000
Received: by wicgb1 with SMTP id gb1so239642668wic.1
	for <mirageos-devel@lists.xenproject.org>;
	Thu, 24 Sep 2015 01:45:54 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:sender:in-reply-to:references:date:message-id:subject
	:from:to:cc:content-type:content-transfer-encoding;
	bh=df2adIdipup54PdKOzRxQ8/1huRDYqC4YsIG8vPBlk0=;
	b=mGqcCSyI4epbkhPulsmGM6vz0W5YZVrD7fN2CXRAb326D/UaHoFxuvlFKDskT6V0lP
	wMozRUS1bihBk/kR7OsZTJZjl+En1h2lHXcMFUlQywjqvKRJci8Hrk4Gs1PoizmbKTC1
	LkKl5IYpOmfE9Tv4eD8h92ml/Nb3f+9TklooyvFmZhi4f2TzYdTc4ukNR3dHdYrKzG/A
	iZH1vUGo+R3DLhtoDOkckf5kLOGrIFopctv/Ed38Tm3ekPiRhLeZRYU3Olt6vk8ZG711
	a6toMSK1CKSvF04WRw3hS1xpFIB6Iv21WWPCC18iUYOdYka5fLQRvDg8zuyjzefRNQyj
	a46A==
MIME-Version: 1.0
X-Received: by 10.180.10.170 with SMTP id j10mr9137902wib.77.1443084353869;
	Thu, 24 Sep 2015 01:45:53 -0700 (PDT)
Received: by 10.28.130.67 with HTTP; Thu, 24 Sep 2015 01:45:53 -0700 (PDT)
In-Reply-To: <CAHwFrZdqf-36f9WSv7ObYkJ4spxiJ3u-EO7y9cZaD4GpP-UJrA@mail.gmail.com>
References: <E9F8F6A6-C24D-425E-A772-3A1E5E5988AC@supercoders.com.au>
	<CAFi_6yLoqJyT+TAYNx4xjrBC8Fmqyy1K+9UEQR+Lc49A=-3z6Q@mail.gmail.com>
	<DEAA2BEC-42E3-4AA1-A89B-2F20F85A7085@cam.ac.uk>
	<56031AAB.9010506@nottingham.ac.uk>
	<CAHwFrZdqf-36f9WSv7ObYkJ4spxiJ3u-EO7y9cZaD4GpP-UJrA@mail.gmail.com>
Date: Thu, 24 Sep 2015 10:45:53 +0200
X-Google-Sender-Auth: 4BUoHi8LQVP7624TVRyna4KqjO0
Message-ID: <CAN2Hq04H4OGQNxcPNZ3Y_ytvA5uwA7Cc6N8Bu-ZGZaiLUn_bPQ@mail.gmail.com>
From: Richard Mortier <mort@cantab.net>
To: Dominic Price <dominic.price@nottingham.ac.uk>
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Blog and OPAM-aware static website generator
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

Li4uYW5kIGlmIHlvdSBwcmVmZXIgdGhlIG9sZCBzdGVhbSBwb3dlcmVkIHdheSwgbXkgc2l0ZQoo
aHR0cDovL21vcnQuaW8pIHdyYXBzIHVwIGEgSmVreWxsIGdlbmVyYXRlZCBzaXRlIG9uIFRyYXZp
cy4gQSBibG9nCnBvc3QgYWJvdXQgdGhlIHByb2Nlc3MgaXMgYXQKaHR0cDovL21vcnQuaW8vYmxv
Zy8yMDE1LzA1LzIwL21vdmluZy1vbnRvLW1pcmFnZS8gdGhvdWdoIGl0J3Mgbm93IGEKbGl0dGxl
IG91dC1vZi1kYXRlIGFzIChlZykgdGhlIGVudiB2YXJzIHNldCBpbiB0aGUgLnRyYXZpcy55bWwg
aGF2ZQpjaGFuZ2VkLS0gaHR0cHM6Ly9naXRodWIuY29tL21vcjEvbW9yMS5naXRodWIuaW8gZm9y
IHRoZSByZWFsIGRlYWwuLi4KOikKCk9uIDI0IFNlcHRlbWJlciAyMDE1IGF0IDAwOjQyLCBMZW4g
TWF4d2VsbCA8bGVuQGxubXgub3JnPiB3cm90ZToKPgo+Cj4gT24gV2VkLCBTZXAgMjMsIDIwMTUg
YXQgNTozMyBQTSwgRG9taW5pYyBQcmljZQo+IDxkb21pbmljLnByaWNlQG5vdHRpbmdoYW0uYWMu
dWs+IHdyb3RlOgo+Pgo+Pgo+Pgo+PiBPbiAyMy8wOS8yMDE1IDEwOjMyLCBBbWlyIENoYXVkaHJ5
IHdyb3RlOgo+PiA+Cj4+ID4+IE9uIDIzIFNlcCAyMDE1LCBhdCAwOToyMCwgR2FyZXRoIFJ1c2hn
cm92ZSA8Z2FyZXRoQG1vcmV0aGFuc2V2ZW4ubmV0Pgo+PiA+PiB3cm90ZToKPj4gPj4KPj4gPj4g
T24gMjIgU2VwdGVtYmVyIDIwMTUgYXQgMjE6MjQsIEFuZHJldyBTdHVhcnQKPj4gPj4gPGFuZHJl
dy5zdHVhcnRAc3VwZXJjb2RlcnMuY29tLmF1PiB3cm90ZToKPj4gPj4+IFRoZSBQaW9uZWVyIFBy
b2plY3RzIHBhZ2UKPj4gPj4+IGh0dHBzOi8vZ2l0aHViLmNvbS9taXJhZ2UvbWlyYWdlLXd3dy93
aWtpL1Bpb25lZXItUHJvamVjdHMgbWVudGlvbnMgIkJsb2cKPj4gPj4+IGFuZCBPUEFNLWF3YXJl
IHN0YXRpYyB3ZWJzaXRlIGdlbmVyYXRvcuKAnS4KPj4gPj4+Cj4+ID4+PiBBbnlvbmUgaW50ZXJl
c3RlZCBpbiBnZW5lcmF0aW5nIHN0YXRpYyB3ZWJzaXRlcyB3b3VsZCBnYWluIGEgZ3JlYXQKPj4g
Pj4+IGRlYWwgZnJvbSBmaXJzdCBpbnZlc3RpZ2F0aW5nIGh0dHJhY2sgLSBpdOKAmXMgdGhlIG1v
c3QgcG93ZXJmdWwgc3RhdGljIHNpdGUKPj4gPj4+IGdlbmVyYXRvciBhbHRob3VnaCBub3QgbWFu
eSBwZW9wbGUgc2VlbSB0byBrbm93IG9mIGl0LiAgaHR0cmFjayBjYW4gY29udmVydAo+PiA+Pj4g
bW9zdCB3ZWJzaXRlcyBpbnRvIHN0YXRpYyBIVE1MIGFuZCB0aGVuIHRoZXkganVzdCBuZWVkIHRv
IGJlIGNvbXBpbGVkIGludG8KPj4gPj4+IE1pcmFnZU9TLgo+PiA+Pj4KPj4gPj4+IGh0dHBzOi8v
d3d3Lmh0dHJhY2suY29tCj4+ID4+Pgo+PiA+Pgo+PiA+PiBJJ2Qgc2VlIGh0dHRyYWNrIGFzIG1v
cmUgb2YgYSBzcGlkZXJlcmluZyB0b29sLCBmb3IgZG93bmxvYWRpbmcgYW4KPj4gPj4gZXhpc3Rp
bmcgc2l0ZS4gTGlrZSB3Z2V0IGJ1dCBtb3JlIHNwZWNpYWxpc2VkLiBJdCdzIHByZXR0eSBncmVh
dC4KPj4gPj4KPj4gPj4gSSBfdGhpbmtfIHRoaXMgcHJvamVjdCByZWZlcnMgbW9yZSB0byBnZW5l
cmF0aW5nIHRoZSBIVE1MIGluIHRoZSBmaXJzdAo+PiA+PiBwbGFjZSwgb2Z0ZW4gZnJvbSBzb21l
dGhpbmcgbGlrZSBhIGRpcmVjdG9yeSBvZiBtYXJrZG93biBmaWxlcy4gTW9zdAo+PiA+PiBsYW5n
dWFnZXMgaGF2ZSBzb21ldGhpbmcgc2ltaWxhciBhbmQgaXQncyBvZnRlbiBhIGdyZWF0Cj4+ID4+
IG15LWZpcnN0LXJ1bm5pbmctYXBwbGljYXRpb24gcGxhY2UgdG8gc3RhcnQgd2l0aCBhIG5ldyBs
YW5ndWFnZS4gQXMKPj4gPj4gaW5zcGlyYXRpb24gZm9yIHRoYXQgc29ydCBvZiB0aGluZzoKPj4g
Pj4KPj4gPj4gaHR0cHM6Ly9nb2h1Z28uaW8vIChHbykKPj4gPj4gaHR0cDovL2Jsb2cuZ2V0cGVs
aWNhbi5jb20vIChQeXRob24pCj4+ID4+IGh0dHBzOi8vc2N1bHBpbi5pby8gKFBIUCkKPj4gPj4g
aHR0cHM6Ly9qZWt5bGxyYi5jb20vIChSdWJ5KQo+PiA+PiBodHRwOi8vd2ludGVyc21pdGguaW8v
IChKYXZhU2NyaXB0KQo+PiA+Cj4+ID4gWWVzLCB0aGlzIHByb2plY3QgaXMgYWJvdXQgY3JlYXRp
bmcgYSBwdXJlIE9DYW1sIHN0YXRpYy1zaXRlIGdlbmVyYXRvciwKPj4gPiBidXQgd2l0aCB0aGUg
YWRkZWQgYmVuZWZpdCBvZiBiZWluZyBhYmxlIHRvIGV4dGVuZCBmdW5jdGlvbmFsaXR5IHRvIG1h
a2UgdXNlCj4+ID4gb2Ygb3RoZXIgcGFydHMgb2YgdGhlIE9DYW1sIGVjb3N5c3RlbSAoaS5lLiBP
UEFNKS4KPj4KPj4gT3V0IG9mIGludGVyZXN0LCBpcyB0aGVyZSBhIHBhcnRpY3VsYXIgcmVhc29u
IGZvciB3YW50aW5nIGEgcHVyZSBPQ2FtbAo+PiB0b29sPyBJIHdhcyB0aGlua2luZyBhYm91dCBh
IHNpbWlsYXIgdG9vbCByZWNlbnRseSBhbmQgYXMgYSBzdGFydGluZwo+PiBwb2ludCBJIHdhcyBn
b2luZyB0byBzdGFydCB3aXRoIHNvbWV0aGluZyBzaW1wbGUgdGhhdCBjb3VsZCB0YWtlIHRoZQo+
PiBvdXRwdXQgZnJvbSBKZWt5bGwgKGZvciBleGFtcGxlKSBhbmQgd3JhcCBpdCB1cCBhcyBhIHVu
aWtlcm5lbC4KPj4KPj4gRG9taW5pYwo+Cj4KPiBIaSBEb21pbmljLAo+Cj4gRllJLCB0aGUgbWly
YWdlLXNlYWwgdG9vbCB3aWxsIHRha2UgYSBkaXJlY3Rvcnkgb2YgY29udGVudCBhbmQgd3JhcCBp
dCB1cCBhcwo+IGEgdW5pa2VybmVsLCB3aXRoIChvcHRpb25hbCkgSFRUUFMgc3VwcG9ydDoKPgo+
IGh0dHBzOi8vZ2l0aHViLmNvbS9taXJhZ2UvbWlyYWdlLXNlYWwKPgo+IGh0dHBzOi8vbWlyYWdl
LmlvL2Jsb2cvbWlyYWdlLXNlYWwKPgo+Cj4gY2hlZXJzLAo+IC0tCj4gTGVuCj4KPj4KPj4KPj4g
PiBTb21lIHdvcmsgYmVnYW4gZWFybGllciB0aGlzIHllYXIgYW5kIHlvdSBjYW4gc2VlIHRoZSBj
b3JlIG9mIGl0IGF0Ogo+PiA+IGh0dHBzOi8vZ2l0aHViLmNvbS9kc2hlZXRzL3Rvd2VyCj4+ID4g
SSBzaG91bGQgcHJvYmFibHkgd3JpdGUgdXAgYSBwb3N0IGFib3V0IHdoYXQgd2Ugd2VyZSBhaW1p
bmcgZm9yIGFuZAo+PiA+IHdoZXJlIHdlIGdvdCB0by4gOikKPj4gPgo+PiA+IEluIHRoZSBsb25n
IHRlcm0sIGl0IHdvdWxkIGJlIHByZXR0eSBjb29sIHRvIHNldCB1cCBpbmZyYXN0cnVjdHVyZSBs
aWtlCj4+ID4gR2l0SHViIHBhZ2VzIGZvciB0aGUgT0NhbWwgY29tbXVuaXR5LCB3aGVyZSB1bmlr
ZXJuZWwgc2l0ZXMgZm9yCj4+ID4gaW5kaXZpZHVhbHMvcHJvamVjdHMgY291bGQgYmUgaG9zdGVk
IChhbmQgdXNpbmcgc29tZXRoaW5nIGxpa2UgSml0c3Ugd291bGQKPj4gPiBtZWFuIHRoZXnigJly
ZSBvbmx5IOKAmGFjdGl2ZeKAmSB3aGVuIHJlcXVpcmVkKS4gIFRoYXTigJlzIGEgbGl0dGxlIHdh
eSBvZmYgdGhvdWdoLgo+PiA+Cj4+ID4gSWYgYW55b25lIGlzIGludGVyZXN0ZWQgaW4gd29ya2lu
ZyBvbiB0aGUgc3RhdGljIHNpdGUgZ2VuZXJhdG9yIHByb2plY3QsCj4+ID4gcGxlYXNlIGRvIGdl
dCBpbiB0b3VjaCEKPj4gPgo+PiA+IEFtaXIKPj4gPiBfX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fXwo+PiA+IE1pcmFnZU9TLWRldmVsIG1haWxpbmcgbGlzdAo+
PiA+IE1pcmFnZU9TLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCj4+ID4gaHR0cDovL2xpc3Rz
LnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby9taXJhZ2Vvcy1kZXZlbAo+
PiA+Cj4+Cj4+IC0tCj4+IERvbWluaWMgUHJpY2UKPj4gUmVzZWFyY2ggRmVsbG93Cj4+IEhvcml6
b24gRGlnaXRhbCBFY29ub215IFJlc2VhcmNoCj4+IE5vdHRpbmdoYW0gR2Vvc3BhdGlhbCBCdWls
ZGluZwo+PiBVbml2ZXJzaXR5IG9mIE5vdHRpbmdoYW0gSW5ub3ZhdGlvbiBQYXJrCj4+IFRyaXVt
cGggUm9hZAo+PiBOb3R0aW5naGFtCj4+IE5HNyAyVFUKPj4KPj4gRW1haWw6IGRvbWluaWMucHJp
Y2VAbm90dGluZ2hhbS5hYy51awo+PiBTa3lwZTogZG9taW5pYy5qLnByaWNlCj4+IE9mZmljZTog
KzQ0ICgwKTExNSA4MiAzMjU1NAo+PiBGYXg6ICs0NCAoMCkxMTUgODIgMzI1NTEKPj4KPj4gV2Vi
OiBodHRwOi8vd3d3LmNzLm5vdHQuYWMudWsvfmRqcAo+PiBXZWI6IGh0dHA6Ly93d3cuaG9yaXpv
bi5hYy51awo+Pgo+PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fXwo+PiBNaXJhZ2VPUy1kZXZlbCBtYWlsaW5nIGxpc3QKPj4gTWlyYWdlT1MtZGV2ZWxAbGlz
dHMueGVucHJvamVjdC5vcmcKPj4gaHR0cDovL2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4v
bWFpbG1hbi9saXN0aW5mby9taXJhZ2Vvcy1kZXZlbAo+Cj4KPgo+IF9fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gTWlyYWdlT1MtZGV2ZWwgbWFpbGluZyBs
aXN0Cj4gTWlyYWdlT1MtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKPiBodHRwOi8vbGlzdHMu
eGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL21pcmFnZW9zLWRldmVsCj4K
CgoKLS0gClJpY2hhcmQgTW9ydGllcgptb3J0QGNhbnRhYi5uZXQKCl9fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk1pcmFnZU9TLWRldmVsIG1haWxpbmcgbGlz
dApNaXJhZ2VPUy1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwOi8vbGlzdHMueGVucHJv
amVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL21pcmFnZW9zLWRldmVsCg==

From mirageos-devel-bounces@lists.xenproject.org Thu Sep 24 10:52:27 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 24 Sep 2015 10:52:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1Zf48Q-0008QN-Ev; Thu, 24 Sep 2015 10:52:18 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <anil@recoil.org>) id 1Zf48P-0008PG-St
	for mirageos-devel@lists.xenproject.org; Thu, 24 Sep 2015 10:52:17 +0000
Received: from [193.109.254.147] by server-1.bemta-14.messagelabs.com id
	90/4F-28791-1E5D3065; Thu, 24 Sep 2015 10:52:17 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-8.tower-27.messagelabs.com!1443091935!52672654!1
X-Originating-IP: [5.153.225.51]
X-SpamReason: No, hits=0.2 required=7.0 tests=RCVD_ILLEGAL_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 12538 invoked from network); 24 Sep 2015 10:52:16 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-8.tower-27.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 24 Sep 2015 10:52:16 -0000
Received: from [10.0.1.37] (AOrleans-656-1-39-10.w90-21.abo.wanadoo.fr
	[90.21.46.10])
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id fdf2bf03
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Thu, 24 Sep 2015 11:52:15 +0100 (BST)
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <EA788F96-A5B5-40A2-8460-FF7B24D4BF16@supercoders.com.au>
Date: Thu, 24 Sep 2015 12:52:13 +0200
Message-Id: <ED8B15E1-1CE5-41DA-A942-77C5740FDFA7@recoil.org>
References: <EA788F96-A5B5-40A2-8460-FF7B24D4BF16@supercoders.com.au>
To: Andrew Stuart <andrew.stuart@supercoders.com.au>
X-Mailer: Apple Mail (2.2104)
Cc: mirageos-devel <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Possible to build for Xen HVM?
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

T24gMjMgU2VwIDIwMTUsIGF0IDIzOjQ4LCBBbmRyZXcgU3R1YXJ0IDxhbmRyZXcuc3R1YXJ0QHN1
cGVyY29kZXJzLmNvbS5hdT4gd3JvdGU6Cj4gCj4gQ2FuIEkgYnVpbGQgZm9yIFhlbiBIVk0gb3Ig
aXMgb25seSBQViBzdXBwb3J0ZWQ/Cj4gCj4gSWYgSSBjYW4gYnVpbGQgZm9yIFhlbiBIVk0sIHdv
dWxkIHNvbWVvbmUgbWluZCBwb2ludGluZyBtZSB0byB0aGUgaW5zdHJ1Y3Rpb25zIHBsZWFzZSBh
cyBzbyBmYXIgSSBjYW7igJl0IHNlZSB0aGVtLgo+IAoKT25seSBQViBpcyBzdXBwb3J0ZWQgcmln
aHQgbm93LCBhbHRob3VnaCB0aGVyZSBoYXZlIGJlZW4gdHdvIGVmZm9ydHMgaW4gdGhlIHBhc3Qu
CgpKb24gTHVkbGFtIHBvc3RlZCBzb21lIHBhdGNoZXMgZm9yIGFuIEhWTSBNaW5pT1MsIGJ1dCB0
aGVyZSBoYXZlIGJlZW4gc2lnbmlmaWNhbnQgY2hhbmdlcyBpbiBpdCBzaW5jZSAoQVJNIHN1cHBv
cnQsIGFuZCBhIHNlcGFyYXRlIHVwc3RyZWFtKSB0aGF0IGl0IHdpbGwgbmVlZCBzb21lIHdvcmsg
dG8gcmUtYWRhcHQuCgpNYXJ0aW4gTHVjaW5hIGhhcyBnb3QgYSB2ZXJzaW9uIG9mIE1pcmFnZSB0
aGF0IGJ1aWxkcyB1c2luZyBSdW1wcnVuLCB3aGljaCByZXF1aXJlcyBhIGJpdCBvZiBjcm9zcy1j
b21waWxhdGlvbi4gIFRoZSByZXN1bHRpbmcga2VybmVsIGJvb3RzIGFzIEhWTSwgYnV0IHRoZSBw
YXRjaGVzIGhhdmVuJ3QgYmVlbiBpbmxpbmVkIHlldC4KCldoYXQncyB5b3VyIFhlbi9IVk0gdXNl
Y2FzZT8gIElzIGl0IGEgY2xvdWQgcHJvdmlkZXIgdGhhdCBvbmx5IHN1cHBvcnRzIGl0LCBvciBz
b21lIG90aGVyIHJlYXNvbiB3aHkgUFYgYm9vdCBpc24ndCBlbm91Z2g/CgotYQpfX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpNaXJhZ2VPUy1kZXZlbCBtYWls
aW5nIGxpc3QKTWlyYWdlT1MtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cDovL2xpc3Rz
LnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby9taXJhZ2Vvcy1kZXZlbAo=

From mirageos-devel-bounces@lists.xenproject.org Thu Sep 24 10:52:27 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 24 Sep 2015 10:52:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1Zf48Q-0008QN-Ev; Thu, 24 Sep 2015 10:52:18 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <anil@recoil.org>) id 1Zf48P-0008PG-St
	for mirageos-devel@lists.xenproject.org; Thu, 24 Sep 2015 10:52:17 +0000
Received: from [193.109.254.147] by server-1.bemta-14.messagelabs.com id
	90/4F-28791-1E5D3065; Thu, 24 Sep 2015 10:52:17 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-8.tower-27.messagelabs.com!1443091935!52672654!1
X-Originating-IP: [5.153.225.51]
X-SpamReason: No, hits=0.2 required=7.0 tests=RCVD_ILLEGAL_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 12538 invoked from network); 24 Sep 2015 10:52:16 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-8.tower-27.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 24 Sep 2015 10:52:16 -0000
Received: from [10.0.1.37] (AOrleans-656-1-39-10.w90-21.abo.wanadoo.fr
	[90.21.46.10])
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id fdf2bf03
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Thu, 24 Sep 2015 11:52:15 +0100 (BST)
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <EA788F96-A5B5-40A2-8460-FF7B24D4BF16@supercoders.com.au>
Date: Thu, 24 Sep 2015 12:52:13 +0200
Message-Id: <ED8B15E1-1CE5-41DA-A942-77C5740FDFA7@recoil.org>
References: <EA788F96-A5B5-40A2-8460-FF7B24D4BF16@supercoders.com.au>
To: Andrew Stuart <andrew.stuart@supercoders.com.au>
X-Mailer: Apple Mail (2.2104)
Cc: mirageos-devel <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Possible to build for Xen HVM?
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

T24gMjMgU2VwIDIwMTUsIGF0IDIzOjQ4LCBBbmRyZXcgU3R1YXJ0IDxhbmRyZXcuc3R1YXJ0QHN1
cGVyY29kZXJzLmNvbS5hdT4gd3JvdGU6Cj4gCj4gQ2FuIEkgYnVpbGQgZm9yIFhlbiBIVk0gb3Ig
aXMgb25seSBQViBzdXBwb3J0ZWQ/Cj4gCj4gSWYgSSBjYW4gYnVpbGQgZm9yIFhlbiBIVk0sIHdv
dWxkIHNvbWVvbmUgbWluZCBwb2ludGluZyBtZSB0byB0aGUgaW5zdHJ1Y3Rpb25zIHBsZWFzZSBh
cyBzbyBmYXIgSSBjYW7igJl0IHNlZSB0aGVtLgo+IAoKT25seSBQViBpcyBzdXBwb3J0ZWQgcmln
aHQgbm93LCBhbHRob3VnaCB0aGVyZSBoYXZlIGJlZW4gdHdvIGVmZm9ydHMgaW4gdGhlIHBhc3Qu
CgpKb24gTHVkbGFtIHBvc3RlZCBzb21lIHBhdGNoZXMgZm9yIGFuIEhWTSBNaW5pT1MsIGJ1dCB0
aGVyZSBoYXZlIGJlZW4gc2lnbmlmaWNhbnQgY2hhbmdlcyBpbiBpdCBzaW5jZSAoQVJNIHN1cHBv
cnQsIGFuZCBhIHNlcGFyYXRlIHVwc3RyZWFtKSB0aGF0IGl0IHdpbGwgbmVlZCBzb21lIHdvcmsg
dG8gcmUtYWRhcHQuCgpNYXJ0aW4gTHVjaW5hIGhhcyBnb3QgYSB2ZXJzaW9uIG9mIE1pcmFnZSB0
aGF0IGJ1aWxkcyB1c2luZyBSdW1wcnVuLCB3aGljaCByZXF1aXJlcyBhIGJpdCBvZiBjcm9zcy1j
b21waWxhdGlvbi4gIFRoZSByZXN1bHRpbmcga2VybmVsIGJvb3RzIGFzIEhWTSwgYnV0IHRoZSBw
YXRjaGVzIGhhdmVuJ3QgYmVlbiBpbmxpbmVkIHlldC4KCldoYXQncyB5b3VyIFhlbi9IVk0gdXNl
Y2FzZT8gIElzIGl0IGEgY2xvdWQgcHJvdmlkZXIgdGhhdCBvbmx5IHN1cHBvcnRzIGl0LCBvciBz
b21lIG90aGVyIHJlYXNvbiB3aHkgUFYgYm9vdCBpc24ndCBlbm91Z2g/CgotYQpfX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpNaXJhZ2VPUy1kZXZlbCBtYWls
aW5nIGxpc3QKTWlyYWdlT1MtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cDovL2xpc3Rz
LnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby9taXJhZ2Vvcy1kZXZlbAo=

From mirageos-devel-bounces@lists.xenproject.org Thu Sep 24 14:39:11 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 24 Sep 2015 14:39:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1Zf7fr-0000SF-9U; Thu, 24 Sep 2015 14:39:03 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <gt303@cam.ac.uk>) id 1Zf7fp-0000S2-BM
	for mirageos-devel@lists.xenproject.org; Thu, 24 Sep 2015 14:39:02 +0000
Received: from [85.158.139.211] by server-6.bemta-5.messagelabs.com id
	F5/14-22089-40B04065; Thu, 24 Sep 2015 14:39:00 +0000
X-Env-Sender: gt303@cam.ac.uk
X-Msg-Ref: server-7.tower-206.messagelabs.com!1443105540!13182280!1
X-Originating-IP: [131.111.8.151]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
	VHJ1c3RlZCBJUDogMTMxLjExMS44LjE1MSA9PiAxNDE4OTU=\n
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 11037 invoked from network); 24 Sep 2015 14:39:00 -0000
Received: from ppsw-51.csi.cam.ac.uk (HELO ppsw-51.csi.cam.ac.uk)
	(131.111.8.151)
	by server-7.tower-206.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 24 Sep 2015 14:39:00 -0000
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: http://www.cam.ac.uk/cs/email/scanner/
Received: from ool-44c27273.dyn.optonline.net ([68.194.114.115]:61059
	helo=[192.168.0.3])
	by ppsw-51.csi.cam.ac.uk (smtp.hermes.cam.ac.uk [131.111.8.159]:465)
	with esmtpsa (PLAIN:gt303) (TLSv1:ECDHE-RSA-AES256-SHA:256)
	id 1Zf7fn-0002Ma-Ye (Exim 4.86_36-e07b163) for
	mirageos-devel@lists.xenproject.org
	(return-path <gt303@cam.ac.uk>); Thu, 24 Sep 2015 15:38:59 +0100
From: Gregory Tsipenyuk <gt303@cam.ac.uk>
Message-Id: <F526A525-CA2A-4750-9669-4BD984B67703@cam.ac.uk>
Date: Thu, 24 Sep 2015 10:38:58 -0400
To: mirageos-devel <mirageos-devel@lists.xenproject.org>
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\))
X-Mailer: Apple Mail (2.2104)
Subject: [MirageOS-devel] irmin compression (git backend)
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

Hello everyone,

Is there a way to disable compression in Irmin (git backend)?

Thanks,
Gregory

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Thu Sep 24 14:39:11 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 24 Sep 2015 14:39:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1Zf7fr-0000SF-9U; Thu, 24 Sep 2015 14:39:03 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <gt303@cam.ac.uk>) id 1Zf7fp-0000S2-BM
	for mirageos-devel@lists.xenproject.org; Thu, 24 Sep 2015 14:39:02 +0000
Received: from [85.158.139.211] by server-6.bemta-5.messagelabs.com id
	F5/14-22089-40B04065; Thu, 24 Sep 2015 14:39:00 +0000
X-Env-Sender: gt303@cam.ac.uk
X-Msg-Ref: server-7.tower-206.messagelabs.com!1443105540!13182280!1
X-Originating-IP: [131.111.8.151]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
	VHJ1c3RlZCBJUDogMTMxLjExMS44LjE1MSA9PiAxNDE4OTU=\n
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 11037 invoked from network); 24 Sep 2015 14:39:00 -0000
Received: from ppsw-51.csi.cam.ac.uk (HELO ppsw-51.csi.cam.ac.uk)
	(131.111.8.151)
	by server-7.tower-206.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 24 Sep 2015 14:39:00 -0000
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: http://www.cam.ac.uk/cs/email/scanner/
Received: from ool-44c27273.dyn.optonline.net ([68.194.114.115]:61059
	helo=[192.168.0.3])
	by ppsw-51.csi.cam.ac.uk (smtp.hermes.cam.ac.uk [131.111.8.159]:465)
	with esmtpsa (PLAIN:gt303) (TLSv1:ECDHE-RSA-AES256-SHA:256)
	id 1Zf7fn-0002Ma-Ye (Exim 4.86_36-e07b163) for
	mirageos-devel@lists.xenproject.org
	(return-path <gt303@cam.ac.uk>); Thu, 24 Sep 2015 15:38:59 +0100
From: Gregory Tsipenyuk <gt303@cam.ac.uk>
Message-Id: <F526A525-CA2A-4750-9669-4BD984B67703@cam.ac.uk>
Date: Thu, 24 Sep 2015 10:38:58 -0400
To: mirageos-devel <mirageos-devel@lists.xenproject.org>
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\))
X-Mailer: Apple Mail (2.2104)
Subject: [MirageOS-devel] irmin compression (git backend)
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

Hello everyone,

Is there a way to disable compression in Irmin (git backend)?

Thanks,
Gregory

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Thu Sep 24 16:09:32 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 24 Sep 2015 16:09:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1Zf95I-0001Pe-1h; Thu, 24 Sep 2015 16:09:24 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <comethalley61@gmail.com>) id 1Zf95F-0001PR-3A
	for mirageos-devel@lists.xenproject.org; Thu, 24 Sep 2015 16:09:22 +0000
Received: from [85.158.137.68] by server-3.bemta-3.messagelabs.com id
	BE/BE-01753-03024065; Thu, 24 Sep 2015 16:09:20 +0000
X-Env-Sender: comethalley61@gmail.com
X-Msg-Ref: server-5.tower-31.messagelabs.com!1443110945!47422434!1
X-Originating-IP: [209.85.213.170]
X-SpamReason: No, hits=3.3 required=7.0 tests=BODY_RANDOM_LONG,
	DEAR_SOMETHING,HTML_40_50,HTML_MESSAGE,MAILTO_TO_SPAM_ADDR,RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 18590 invoked from network); 24 Sep 2015 16:09:06 -0000
Received: from mail-ig0-f170.google.com (HELO mail-ig0-f170.google.com)
	(209.85.213.170)
	by server-5.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	24 Sep 2015 16:09:06 -0000
Received: by igbkq10 with SMTP id kq10so18645638igb.0
	for <mirageos-devel@lists.xenproject.org>;
	Thu, 24 Sep 2015 09:09:05 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:in-reply-to:references:date:message-id:subject:from:to
	:cc:content-type;
	bh=dOGMrzZaSqw1vDWNkSzOzcBMxCfxGszBn8+Pe7Nt5fc=;
	b=xp5iX30a03FoF9+biGKHypXnE0WxZY7GrS3Vtir0hK5Zbi87Cx8kKxWB9lrtPwNq+4
	si+kdYu7w3FYyOcq+Rc+kSyEwYaZr2Ix1qTqvXQP/aFWnBrMm9CbUJ2Jgq6ScQwei0Pz
	IDz9zjTMdDHQcO+IKVxj34iC/3bEmnJDPc7Z0NWS+cNj/Ne9A9i6Us23q1exkpvz5CDx
	0/sZsmI+Qf08xosFap7VEu8DeH5li62BiiCjmX70ptWMEpfELr0KZyd3sBLAIE7CqHBL
	sgFHQy9ybvUjjPnFjoe+BqIV+ncgSDqw1XqnFwo8nK1+Tpgf1pqAeS+IJI319+2DKMb4
	QZEQ==
MIME-Version: 1.0
X-Received: by 10.50.138.227 with SMTP id qt3mr1575582igb.58.1443110945061;
	Thu, 24 Sep 2015 09:09:05 -0700 (PDT)
Received: by 10.107.180.149 with HTTP; Thu, 24 Sep 2015 09:09:04 -0700 (PDT)
In-Reply-To: <CAAbK429TUAiBS+wRLuBFb3L2P4ymbbAu5e0rQdSn_U74_QtuWg@mail.gmail.com>
References: <CAAbK429srd4r7Kp10nPK5vndcZYLoXOsh9W=K_E4mpKVrVpZXA@mail.gmail.com>
	<56009188.1070102@somerandomidiot.com>
	<CAAbK429psAZAncgBwHP4t=hcBB104dY5T+Mefn0ze-SEYz4dDA@mail.gmail.com>
	<EF478C7D-4CF9-41FD-9309-A6602819AE4B@recoil.org>
	<CAAbK429TUAiBS+wRLuBFb3L2P4ymbbAu5e0rQdSn_U74_QtuWg@mail.gmail.com>
Date: Thu, 24 Sep 2015 21:39:04 +0530
Message-ID: <CAAbK42_Zsyy-UYgT2yvtBat9QjaDyk2v-T1tpxYcnyf4pdL1tA@mail.gmail.com>
From: Lasya Venneti <comethalley61@gmail.com>
To: mirageos-devel@lists.xenproject.org
Content-Type: multipart/mixed; boundary=089e0122a09c40be5005208073b0
Cc: Lars Kurth <lars.kurth@citrix.com>, Anil Madhavapeddy <anil@recoil.org>
Subject: Re: [MirageOS-devel] Getting Started
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--089e0122a09c40be5005208073b0
Content-Type: multipart/alternative; boundary=089e0122a09c40be4c05208073ae

--089e0122a09c40be4c05208073ae
Content-Type: text/plain; charset=UTF-8

Dear all,

While following the installation instructions, the 'opam init' command has
failed with the error :
Sys_error("/home/lasya/.opam/repo/default/packages/alcotest/alcotest.0.4.1/opam:
Too many open files")
I have also attached the screen log to the mail. My laptop is mid 2014
Lenovo-Y510p with Ubuntu 14.04 64 bit. Can somebody tell me how do I solve
this and why is this happening? Am I doing something wrong?

Thanks.

Sincerely,
Lasya V

On 22 September 2015 at 22:24, Lasya Venneti <comethalley61@gmail.com>
wrote:

> Dear Sir,
> Thank you! :) Sure thing! I would love to contribute to documentation too,
>  once I start getting the hang of things.
>
> Sincerely,
> Lasya V
>
> On 22 September 2015 at 15:54, Anil Madhavapeddy <anil@recoil.org> wrote:
>
>> And above all, welcome!  Feel free to ask questions as you learn and
>> explore the various components.  As Mindy notes, there's still quite a bit
>> of "institutional knowledge" that hasn't been captured in our
>> documentation, so patches to improve mirage-www (which is the live website)
>> are most welcome, as are any pieces that you find confusing or difficult to
>> get started with.
>>
>> Anil
>>
>> On 22 Sep 2015, at 10:06, Lasya Venneti <comethalley61@gmail.com> wrote:
>>
>> Dear Ma'am,
>>
>> Thanks for such an informative mail! I will get started with contributing
>> right away!
>>
>> Sincerely,
>> Lasya V
>>
>> On 22 September 2015 at 04:53, Mindy <mindy@somerandomidiot.com> wrote:
>>
>>> Hi Lasya,
>>>
>>> Glad to hear you're interested in MirageOS!  Here's a short list of
>>> links you may find helpful in getting started.
>>>
>>> The documentation page of the MirageOS website ( https://mirage.io/docs/
>>> ) has a list of links for getting started, the first of which is here:
>>> https://mirage.io/wiki/install .  A quick guide to contributing is
>>> available here: https://mirage.io/wiki/contributing .
>>>
>>> Any fixes for unclear or confusing bits of text you find in the above
>>> documents can be submitted as pull requests to the mirage-www repository at
>>> https://github.com/mirage/mirage-www , and would make excellent
>>> contributions.
>>>
>>> You may be interested in the list of "pioneer projects":
>>> https://github.com/mirage/mirage-www/wiki/Pioneer-Projects .  The
>>> projects listed are too large for a first contribution of the type
>>> requested by (for example) the Outreachy application process, but some of
>>> are approximately the right size for the internship itself.
>>>
>>> Many known issues in MirageOS are listed via the GitHub issue tracker
>>> for the `mirage` tool: https://github.com/mirage/mirage/issues .  There
>>> are others on the repositories for specific libraries (e.g. the
>>> mirage-tcpip repository issue tracker at
>>> https://github.com/mirage/mirage-tcpip ).  We don't have a nice way to
>>> aggregate all open issues at the moment as far as I know (but someone
>>> please correct me if I'm wrong!)
>>>
>>> Cheers,
>>> Mindy Preston
>>>
>>>
>>> On 09/20/2015 07:42 AM, Lasya Venneti wrote:
>>>
>>> Hi all,
>>>
>>> I'm Lasya, a student pursuing Computer Science Engineering from IIIT-H,
>>> Hyderabad, India.
>>>
>>> I wish to get started with contributing to Mirage OS. I have conceptual
>>> knowledge about Computer system architecture, and OS concepts like
>>> Virtualization. I hope they will be useful while contributing to the
>>> community, I am willing to learn with your help & guidance. :)
>>>
>>> Request to link me to some pages/docs that I am supposed to read to help
>>> me setup the environment and start contributing, & a few beginner bugs that
>>> I can try my hand at.
>>>
>>> Sincerely,
>>> Lasya V
>>>
>>>
>>> _______________________________________________
>>> MirageOS-devel mailing listMirageOS-devel@lists.xenproject.orghttp://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
>>>
>>>
>>>
>>> _______________________________________________
>>> MirageOS-devel mailing list
>>> MirageOS-devel@lists.xenproject.org
>>> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
>>>
>>>
>> _______________________________________________
>> MirageOS-devel mailing list
>> MirageOS-devel@lists.xenproject.org
>> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
>>
>>
>>
>

--089e0122a09c40be4c05208073ae
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Dear all,<div><br></div><div>While following the installat=
ion instructions, the &#39;opam init&#39; command has failed with the error=
 : Sys_error(&quot;/home/lasya/.opam/repo/default/packages/alcotest/alcotes=
t.0.4.1/opam: Too many open files&quot;)</div><div>I have also attached the=
 screen log to the mail. My laptop is mid 2014 Lenovo-Y510p with Ubuntu 14.=
04 64 bit. Can somebody tell me how do I solve this and why is this happeni=
ng? Am I doing something wrong?=C2=A0</div><div><br></div><div>Thanks.</div=
><div><br></div><div>Sincerely,</div><div>Lasya V=C2=A0</div></div><div cla=
ss=3D"gmail_extra"><br><div class=3D"gmail_quote">On 22 September 2015 at 2=
2:24, Lasya Venneti <span dir=3D"ltr">&lt;<a href=3D"mailto:comethalley61@g=
mail.com" target=3D"_blank">comethalley61@gmail.com</a>&gt;</span> wrote:<b=
r><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:=
1px #ccc solid;padding-left:1ex"><div dir=3D"ltr">Dear Sir,<div>Thank you! =
:) Sure thing! I would love to contribute to documentation too, =C2=A0once =
I start getting the hang of things.=C2=A0</div><div><br></div><div>Sincerel=
y,</div><div>Lasya V=C2=A0</div></div><div class=3D"HOEnZb"><div class=3D"h=
5"><div class=3D"gmail_extra"><br><div class=3D"gmail_quote">On 22 Septembe=
r 2015 at 15:54, Anil Madhavapeddy <span dir=3D"ltr">&lt;<a href=3D"mailto:=
anil@recoil.org" target=3D"_blank">anil@recoil.org</a>&gt;</span> wrote:<br=
><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1=
px #ccc solid;padding-left:1ex"><div style=3D"word-wrap:break-word">And abo=
ve all, welcome!=C2=A0 Feel free to ask questions as you learn and explore =
the various components.=C2=A0 As Mindy notes, there&#39;s still quite a bit=
 of &quot;institutional knowledge&quot; that hasn&#39;t been captured in ou=
r documentation, so patches to improve mirage-www (which is the live websit=
e) are most welcome, as are any pieces that you find confusing or difficult=
 to get started with.<span><font color=3D"#888888"><div><br></div><div>Anil=
</div></font></span><div><div><div><br><div><blockquote type=3D"cite"><div>=
On 22 Sep 2015, at 10:06, Lasya Venneti &lt;<a href=3D"mailto:comethalley61=
@gmail.com" target=3D"_blank">comethalley61@gmail.com</a>&gt; wrote:</div><=
br><div><div dir=3D"ltr">Dear Ma&#39;am,<div><br></div><div>Thanks for such=
 an informative mail! I will get started with contributing right away!=C2=
=A0</div><div><br></div><div>Sincerely,</div><div>Lasya V=C2=A0</div></div>=
<div class=3D"gmail_extra"><br><div class=3D"gmail_quote">On 22 September 2=
015 at 04:53, Mindy <span dir=3D"ltr">&lt;<a href=3D"mailto:mindy@somerando=
midiot.com" target=3D"_blank">mindy@somerandomidiot.com</a>&gt;</span> wrot=
e:<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-l=
eft:1px #ccc solid;padding-left:1ex">
 =20
   =20
 =20
  <div text=3D"#000000" bgcolor=3D"#FFFFFF">
    Hi Lasya,<br>
    <br>
    Glad to hear you&#39;re interested in MirageOS!=C2=A0 Here&#39;s a shor=
t list of
    links you may find helpful in getting started.<br>
    <br>
    The documentation page of the MirageOS website (
    <a href=3D"https://mirage.io/docs/" target=3D"_blank">https://mirage.io=
/docs/</a> ) has a list of links for getting started,
    the first of which is here: <a href=3D"https://mirage.io/wiki/install" =
target=3D"_blank">https://mirage.io/wiki/install</a> .=C2=A0 A
    quick guide to contributing is available here:
    <a href=3D"https://mirage.io/wiki/contributing" target=3D"_blank">https=
://mirage.io/wiki/contributing</a> .<br>
    <br>
    Any fixes for unclear or confusing bits of text you find in the
    above documents can be submitted as pull requests to the mirage-www
    repository at <a href=3D"https://github.com/mirage/mirage-www" target=
=3D"_blank">https://github.com/mirage/mirage-www</a> , and would make
    excellent contributions.<br>
    <br>
    You may be interested in the list of &quot;pioneer projects&quot;:
    <a href=3D"https://github.com/mirage/mirage-www/wiki/Pioneer-Projects" =
target=3D"_blank">https://github.com/mirage/mirage-www/wiki/Pioneer-Project=
s</a> .=C2=A0 The
    projects listed are too large for a first contribution of the type
    requested by (for example) the Outreachy application process, but
    some of are approximately the right size for the internship itself.<br>
    <br>
    Many known issues in MirageOS are listed via the GitHub issue
    tracker for the `mirage` tool:
    <a href=3D"https://github.com/mirage/mirage/issues" target=3D"_blank">h=
ttps://github.com/mirage/mirage/issues</a> .=C2=A0 There are others on the
    repositories for specific libraries (e.g. the mirage-tcpip
    repository issue tracker at <a href=3D"https://github.com/mirage/mirage=
-tcpip" target=3D"_blank">https://github.com/mirage/mirage-tcpip</a>
    ).=C2=A0 We don&#39;t have a nice way to aggregate all open issues at t=
he
    moment as far as I know (but someone please correct me if I&#39;m
    wrong!)<br>
    <br>
    Cheers,<br>
    Mindy Preston<div><div><br>
    <br>
    <div>On 09/20/2015 07:42 AM, Lasya Venneti
      wrote:<br>
    </div>
    </div></div><blockquote type=3D"cite"><div><div>
      <div dir=3D"ltr">Hi all,=C2=A0
        <div><br>
        </div>
        <div>I&#39;m Lasya, a student pursuing Computer Science Engineering
          from IIIT-H, Hyderabad, India.=C2=A0</div>
        <div><br>
        </div>
        <div>I wish to get started with contributing to Mirage OS. I
          have conceptual knowledge about Computer system architecture,
          and OS concepts like Virtualization. I hope they will be
          useful while contributing to the community, I am willing to
          learn with your help &amp; guidance. :)</div>
        <div><br>
        </div>
        <div>Request to link me to some pages/docs that I am supposed to
          read to help me setup the environment and start contributing,
          &amp; a few beginner bugs that I can try my hand at.</div>
        <div><br>
        </div>
        <div>Sincerely,</div>
        <div>Lasya V =C2=A0=C2=A0</div>
      </div>
      <br>
      <fieldset></fieldset>
      <br>
      </div></div><pre>_______________________________________________
MirageOS-devel mailing list
<a href=3D"mailto:MirageOS-devel@lists.xenproject.org" target=3D"_blank">Mi=
rageOS-devel@lists.xenproject.org</a>
<a href=3D"http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-de=
vel" target=3D"_blank">http://lists.xenproject.org/cgi-bin/mailman/listinfo=
/mirageos-devel</a>
</pre>
    </blockquote>
    <br>
  </div>

<br>_______________________________________________<br>
MirageOS-devel mailing list<br>
<a href=3D"mailto:MirageOS-devel@lists.xenproject.org" target=3D"_blank">Mi=
rageOS-devel@lists.xenproject.org</a><br>
<a href=3D"http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-de=
vel" rel=3D"noreferrer" target=3D"_blank">http://lists.xenproject.org/cgi-b=
in/mailman/listinfo/mirageos-devel</a><br>
<br></blockquote></div><br></div>
_______________________________________________<br>MirageOS-devel mailing l=
ist<br><a href=3D"mailto:MirageOS-devel@lists.xenproject.org" target=3D"_bl=
ank">MirageOS-devel@lists.xenproject.org</a><br><a href=3D"http://lists.xen=
project.org/cgi-bin/mailman/listinfo/mirageos-devel" target=3D"_blank">http=
://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel</a><br></di=
v></blockquote></div><br></div></div></div></div></blockquote></div><br></d=
iv>
</div></div></blockquote></div><br></div>

--089e0122a09c40be4c05208073ae--
--089e0122a09c40be5005208073b0
Content-Type: text/x-log; charset=US-ASCII; name="screen.log"
Content-Disposition: attachment; filename="screen.log"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_ieyev83k0

U2NyaXB0IHN0YXJ0ZWQgb24gVGh1cnNkYXkgMjQgU2VwdGVtYmVyIDIwMTUgMDk6Mjg6NDMgUE0g
SVNUChtdMDtsYXN5YUB0aGVnb2xkZW5zbml0Y2g6IH4HbGFzeWFAdGhlZ29sZGVuc25pdGNoOn4k
IG9wYW0gdXBkYXRlIC11DQobWzMxbVtFUlJPUl0bW20gUGxlYXNlIHJ1biAnb3BhbSBpbml0JyBm
aXJzdCB0byBpbml0aWFsaXplIHRoZSBzdGF0ZSBvZiBPUEFNLg0KJ29wYW0gdXBkYXRlIC11JyBm
YWlsZWQuDQobXTA7bGFzeWFAdGhlZ29sZGVuc25pdGNoOiB+B2xhc3lhQHRoZWdvbGRlbnNuaXRj
aDp+JCBvcGFtIGluaXQNCmRlZmF1bHQgICAgRG93bmxvYWRpbmcgaHR0cHM6Ly9vcGFtLm9jYW1s
Lm9yZy91cmxzLnR4dA0KZGVmYXVsdCAgICBEb3dubG9hZGluZyBodHRwczovL29wYW0ub2NhbWwu
b3JnL2luZGV4LnRhci5neg0KVXBkYXRpbmcgfi8ub3BhbS9yZXBvL2NvbXBpbGVyLWluZGV4IC4u
Lg0KVXBkYXRpbmcgfi8ub3BhbS9jb21waWxlcnMvIC4uLg0KVXBkYXRpbmcgfi8ub3BhbS9yZXBv
L3BhY2thZ2UtaW5kZXggLi4uDQpVcGRhdGluZyB+Ly5vcGFtL3BhY2thZ2VzLyAuLi4NChtbMzFt
W0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5v
dWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvMGluc3RhbGwvMGluc3Rh
bGwuMi45LjEvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQg
bGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtb
bSBFcnJvcnMgd2hpbGUgcGFyc2luZyAwaW5zdGFsbC4yLjkuMSBPUEFNIGZpbGUsIHNraXBwaW5n
Lg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJl
Y2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9hYWNwbHVz
L2FhY3BsdXMuMC4yLjIvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lv
biAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJO
SU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBhYWNwbHVzLjAuMi4yIE9QQU0gZmlsZSwgc2tp
cHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBu
b3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2Fn
by9hZ28uMC4xL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0
IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10b
W20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgYWdvLjAuMSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1sz
MW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBl
bm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9hZ28vYWdvLjAuMi9v
cGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIp
IHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3
aGlsZSBwYXJzaW5nIGFnby4wLjIgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtb
bSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJl
YWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvYWdvL2Fnby4wLjMvb3BhbS4gVXBncmFk
ZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRo
aXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2lu
ZyBhZ28uMC4zIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJz
aW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0v
cmVwby9kZWZhdWx0L3BhY2thZ2VzL2FsYmVydG8vYWxiZXJ0by4wLjMvb3BhbS4gVXBncmFkZSBP
UEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMg
ZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBh
bGJlcnRvLjAuMyBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVy
c2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFt
L3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9hbGJlcnRvL2FsYmVydG8uMC40L29wYW0uIFVwZ3JhZGUg
T1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlz
IGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcg
YWxiZXJ0by4wLjQgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZl
cnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3Bh
bS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvYWxjb3Rlc3QvYWxjb3Rlc3QuMC4xLjAvb3BhbS4gVXBn
cmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFk
IHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFy
c2luZyBhbGNvdGVzdC4wLjEuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1tt
IFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVh
ZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9hbGNvdGVzdC9hbGNvdGVzdC4wLjIuMC9v
cGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIp
IHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3
aGlsZSBwYXJzaW5nIGFsY290ZXN0LjAuMi4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtF
UlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3Vn
aCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2FsY290ZXN0L2FsY290ZXN0
LjAuMy4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxl
YXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20g
RXJyb3JzIHdoaWxlIHBhcnNpbmcgYWxjb3Rlc3QuMC4zLjAgT1BBTSBmaWxlLCBza2lwcGluZy4N
ChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNl
bnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvYWxjb3Rlc3Qv
YWxjb3Rlc3QuMC4zLjEvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lv
biAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJO
SU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBhbGNvdGVzdC4wLjMuMSBPUEFNIGZpbGUsIHNr
aXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMg
bm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9h
bGNvdGVzdC9hbGNvdGVzdC4wLjMuMi9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2Vu
dCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtb
MzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGFsY290ZXN0LjAuMy4yIE9QQU0g
ZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEu
MS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3Bh
Y2thZ2VzL2FsY290ZXN0L2FsY290ZXN0LjAuMy4zL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1v
cmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVj
dGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgYWxjb3Rlc3QuMC4z
LjMgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2Yg
T1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2Rl
ZmF1bHQvcGFja2FnZXMvYWxjb3Rlc3QvYWxjb3Rlc3QuMC40LjAvb3BhbS4gVXBncmFkZSBPUEFN
IHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmls
ZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBhbGNv
dGVzdC4wLjQuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVy
c2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFt
L3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9hbGNvdGVzdC9hbGNvdGVzdC4wLjQuMS9vcGFtLiBVcGdy
YWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQg
dGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJz
aW5nIGFsY290ZXN0LjAuNC4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20g
WW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFk
IH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2FsY290ZXN0L2FsY290ZXN0LjAuNC4yL29w
YW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikg
dG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdo
aWxlIHBhcnNpbmcgYWxjb3Rlc3QuMC40LjIgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VS
Uk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdo
IHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvYWxjb3Rlc3QvYWxjb3Rlc3Qu
MC40LjMvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVh
c3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBF
cnJvcnMgd2hpbGUgcGFyc2luZyBhbGNvdGVzdC4wLjQuMyBPUEFNIGZpbGUsIHNraXBwaW5nLg0K
G1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2Vu
dCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9hbGNvdGVzdC9h
bGNvdGVzdC4wLjQuNC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9u
IChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5J
TkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGFsY290ZXN0LjAuNC40IE9QQU0gZmlsZSwgc2tp
cHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBu
b3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2Fs
Y290ZXN0L2FsY290ZXN0LjAuNC41L29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50
IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1sz
M21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgYWxjb3Rlc3QuMC40LjUgT1BBTSBm
aWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4x
LjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFj
a2FnZXMvYWxzYS9hbHNhLjAuMi4yL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50
IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1sz
M21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgYWxzYS4wLjIuMiBPUEFNIGZpbGUs
IHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkg
aXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdl
cy9hbm5vdC9hbm5vdC4xLjEuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2
ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNt
W1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGFubm90LjEuMS4wIE9QQU0gZmlsZSwg
c2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBp
cyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2Vz
L2FvL2FvLjAuMi4xL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24g
KGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklO
R10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgYW8uMC4yLjEgT1BBTSBmaWxlLCBza2lwcGluZy4N
ChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNl
bnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvYXByb24vYXBy
b24uMjAxNTA4MjAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAo
YXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5H
XRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBhcHJvbi4yMDE1MDgyMCBPUEFNIGZpbGUsIHNraXBw
aW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90
IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9hcmFr
b29uL2FyYWtvb24uMS44LjYvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVy
c2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtX
QVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBhcmFrb29uLjEuOC42IE9QQU0gZmlsZSwg
c2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBp
cyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2Vz
L2FyYWtvb24vYXJha29vbi4xLjguNy9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2Vu
dCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtb
MzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGFyYWtvb24uMS44LjcgT1BBTSBm
aWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4x
LjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFj
a2FnZXMvYXJha29vbi9hcmFrb29uLjEuOC44L29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUg
cmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5
Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgYXJha29vbi4xLjguOCBP
UEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFN
ICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVs
dC9wYWNrYWdlcy9hcmNoaW1lZGVzL2FyY2hpbWVkZXMuMC40LjE3L29wYW0uIFVwZ3JhZGUgT1BB
TSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZp
bGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgYXJj
aGltZWRlcy4wLjQuMTcgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3Vy
IHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8u
b3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvYXNjaWk4NS9hc2NpaTg1LjAuMi9vcGFtLiBVcGdy
YWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQg
dGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJz
aW5nIGFzY2lpODUuMC4yIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91
ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4v
Lm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2FzY2lpODUvYXNjaWk4NS4wLjMvb3BhbS4gVXBn
cmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFk
IHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFy
c2luZyBhc2NpaTg1LjAuMyBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlv
dXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+
Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9hc24xLWNvbWJpbmF0b3JzL2FzbjEtY29tYmlu
YXRvcnMuMC4xLjEvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAo
YXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5H
XRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBhc24xLWNvbWJpbmF0b3JzLjAuMS4xIE9QQU0gZmls
ZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4x
KSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2th
Z2VzL2FzbjEtY29tYmluYXRvcnMvYXNuMS1jb21iaW5hdG9ycy4wLjEuMi9vcGFtLiBVcGdyYWRl
IE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhp
cyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5n
IGFzbjEtY29tYmluYXRvcnMuMC4xLjIgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9S
XRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRv
IHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvYXNzZXJ0aW9ucy9hc3NlcnRpb25z
LjAuMS9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFz
dCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVy
cm9ycyB3aGlsZSBwYXJzaW5nIGFzc2VydGlvbnMuMC4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQob
WzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50
IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2FzeW5jL2FzeW5j
LjExMi4zNS4wMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChh
dCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkdd
G1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGFzeW5jLjExMi4zNS4wMCBPUEFNIGZpbGUsIHNraXBw
aW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90
IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9hc3lu
Yy9hc3luYy4xMTMuMDAuMDAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVy
c2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtX
QVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBhc3luYy4xMTMuMDAuMDAgT1BBTSBmaWxl
LCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEp
IGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2Fn
ZXMvYXN5bmMtbXZhci9hc3luYy1tdmFyLjAuMS4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1v
cmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVj
dGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgYXN5bmMtbXZhci4w
LjEuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBv
ZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8v
ZGVmYXVsdC9wYWNrYWdlcy9hc3luYy16bXEvYXN5bmMtem1xLjAuMS4wL29wYW0uIFVwZ3JhZGUg
T1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlz
IGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcg
YXN5bmMtem1xLjAuMS4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91
ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4v
Lm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2FzeW5jX2V4dGVuZGVkL2FzeW5jX2V4dGVuZGVk
LjExMi4zNS4wMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChh
dCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkdd
G1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGFzeW5jX2V4dGVuZGVkLjExMi4zNS4wMCBPUEFNIGZp
bGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEu
MSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNr
YWdlcy9hc3luY19leHRlbmRlZC9hc3luY19leHRlbmRlZC4xMTMuMDAuMDAvb3BhbS4gVXBncmFk
ZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRo
aXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2lu
ZyBhc3luY19leHRlbmRlZC4xMTMuMDAuMDAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VS
Uk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdo
IHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvYXN5bmNfZXh0cmEvYXN5bmNf
ZXh0cmEuMTEyLjM1LjAwL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNp
b24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FS
TklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgYXN5bmNfZXh0cmEuMTEyLjM1LjAwIE9QQU0g
ZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEu
MS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3Bh
Y2thZ2VzL2FzeW5jX2V4dHJhL2FzeW5jX2V4dHJhLjExMy4wMC4wMC9vcGFtLiBVcGdyYWRlIE9Q
QU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBm
aWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGFz
eW5jX2V4dHJhLjExMy4wMC4wMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1tt
IFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVh
ZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9hc3luY19maW5kL2FzeW5jX2ZpbmQuMTEx
LjI4LjAwL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxl
YXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20g
RXJyb3JzIHdoaWxlIHBhcnNpbmcgYXN5bmNfZmluZC4xMTEuMjguMDAgT1BBTSBmaWxlLCBza2lw
cGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5v
dCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvYXN5
bmNfaW5vdGlmeS9hc3luY19pbm90aWZ5LjExMy4wMC4wMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8g
YSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNv
cnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGFzeW5jX2lu
b3RpZnkuMTEzLjAwLjAwIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91
ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4v
Lm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2FzeW5jX2tlcm5lbC9hc3luY19rZXJuZWwuMTEy
LjM1LjAwL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxl
YXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20g
RXJyb3JzIHdoaWxlIHBhcnNpbmcgYXN5bmNfa2VybmVsLjExMi4zNS4wMCBPUEFNIGZpbGUsIHNr
aXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMg
bm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9h
c3luY19rZXJuZWwvYXN5bmNfa2VybmVsLjExMy4wMC4wMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8g
YSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNv
cnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGFzeW5jX2tl
cm5lbC4xMTMuMDAuMDAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3Vy
IHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8u
b3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvYXN5bmNfcGFyYWxsZWwvYXN5bmNfcGFyYWxsZWwu
MTEyLjM1LjAwL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0
IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10b
W20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgYXN5bmNfcGFyYWxsZWwuMTEyLjM1LjAwIE9QQU0gZmls
ZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4x
KSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2th
Z2VzL2FzeW5jX3BhcmFsbGVsL2FzeW5jX3BhcmFsbGVsLjExMy4wMC4wMC9vcGFtLiBVcGdyYWRl
IE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhp
cyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5n
IGFzeW5jX3BhcmFsbGVsLjExMy4wMC4wMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJS
T1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2gg
dG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9hc3luY19ycGNfa2VybmVsL2Fz
eW5jX3JwY19rZXJuZWwuMTEyLjM1LjAwL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVj
ZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0K
G1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgYXN5bmNfcnBjX2tlcm5lbC4x
MTIuMzUuMDAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNp
b24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9y
ZXBvL2RlZmF1bHQvcGFja2FnZXMvYXN5bmNfcnBjX2tlcm5lbC9hc3luY19ycGNfa2VybmVsLjEx
My4wMC4wMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBs
ZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1tt
IEVycm9ycyB3aGlsZSBwYXJzaW5nIGFzeW5jX3JwY19rZXJuZWwuMTEzLjAwLjAwIE9QQU0gZmls
ZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4x
KSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2th
Z2VzL2FzeW5jX3NoZWxsL2FzeW5jX3NoZWxsLjEwOS4yOC4wMy9vcGFtLiBVcGdyYWRlIE9QQU0g
dG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxl
IGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGFzeW5j
X3NoZWxsLjEwOS4yOC4wMyBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlv
dXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+
Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9hc3luY19zbXRwL2FzeW5jX3NtdHAuMTEyLjM1
LjAwL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0
IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJy
b3JzIHdoaWxlIHBhcnNpbmcgYXN5bmNfc210cC4xMTIuMzUuMDAgT1BBTSBmaWxlLCBza2lwcGlu
Zy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCBy
ZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvYXN5bmNf
c210cC9hc3luY19zbXRwLjExMy4wMC4wMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJl
Y2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4N
ChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGFzeW5jX3NtdHAuMTEzLjAw
LjAwIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9m
IE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9k
ZWZhdWx0L3BhY2thZ2VzL2FzeW5jX3NzbC9hc3luY19zc2wuMTEyLjI0LjAyL29wYW0uIFVwZ3Jh
ZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0
aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNp
bmcgYXN5bmNfc3NsLjExMi4yNC4wMiBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1Jd
G1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8g
cmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9hc3luY19zc2wvYXN5bmNfc3NsLjEx
Mi4yNC4wMy9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBs
ZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1tt
IEVycm9ycyB3aGlsZSBwYXJzaW5nIGFzeW5jX3NzbC4xMTIuMjQuMDMgT1BBTSBmaWxlLCBza2lw
cGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5v
dCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvYXN5
bmNfc3NsL2FzeW5jX3NzbC4xMTIuMzUuMDAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSBy
ZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHku
DQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBhc3luY19zc2wuMTEyLjM1
LjAwIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9m
IE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9k
ZWZhdWx0L3BhY2thZ2VzL2FzeW5jX3NzbC9hc3luY19zc2wuMTEzLjAwLjAwL29wYW0uIFVwZ3Jh
ZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0
aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNp
bmcgYXN5bmNfc3NsLjExMy4wMC4wMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1Jd
G1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8g
cmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9hc3luY191bml4L2FzeW5jX3VuaXgu
MTEyLjM1LjAwL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0
IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10b
W20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgYXN5bmNfdW5peC4xMTIuMzUuMDAgT1BBTSBmaWxlLCBz
a2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlz
IG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMv
YXN5bmNfdW5peC9hc3luY191bml4LjExMy4wMC4wMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBt
b3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJl
Y3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGFzeW5jX3VuaXgu
MTEzLjAwLjAwIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJz
aW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0v
cmVwby9kZWZhdWx0L3BhY2thZ2VzL2F0ZGdlbi9hdGRnZW4uMS43LjEvb3BhbS4gVXBncmFkZSBP
UEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMg
ZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBh
dGRnZW4uMS43LjEgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZl
cnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3Bh
bS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvYXZyb2MvYXZyb2MuMC4wLjEvb3BhbS4gVXBncmFkZSBP
UEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMg
ZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBh
dnJvYy4wLjAuMSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVy
c2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFt
L3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9iYXAvYmFwLjAuOS4xL29wYW0uIFVwZ3JhZGUgT1BBTSB0
byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUg
Y29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgYmFwLjAu
OS4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9m
IE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9k
ZWZhdWx0L3BhY2thZ2VzL2JhcC9iYXAuMC45LjIvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9y
ZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0
bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBiYXAuMC45LjIgT1BB
TSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAo
MS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQv
cGFja2FnZXMvYmFwL2JhcC4wLjkuMy9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2Vu
dCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtb
MzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGJhcC4wLjkuMyBPUEFNIGZpbGUs
IHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkg
aXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdl
cy9iYXAvYmFwLjAuOS40L29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNp
b24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FS
TklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgYmFwLjAuOS40IE9QQU0gZmlsZSwgc2tpcHBp
bmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3Qg
cmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2JhcC9i
YXAuMC45LjUvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQg
bGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtb
bSBFcnJvcnMgd2hpbGUgcGFyc2luZyBiYXAuMC45LjUgT1BBTSBmaWxlLCBza2lwcGluZy4NChtb
MzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQg
ZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvYmFwL2JhcC4wLjku
Ni9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAx
LjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9y
cyB3aGlsZSBwYXJzaW5nIGJhcC4wLjkuNiBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJS
T1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2gg
dG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9iYXAvYmFwLjAuOS43L29wYW0u
IFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8g
cmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxl
IHBhcnNpbmcgYmFwLjAuOS43IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20g
WW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFk
IH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2JhcC9iYXAuMC45Ljgvb3BhbS4gVXBncmFk
ZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRo
aXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2lu
ZyBiYXAuMC45LjggT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZl
cnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3Bh
bS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvYmFwL2JhcC4wLjkuOS9vcGFtLiBVcGdyYWRlIE9QQU0g
dG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxl
IGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGJhcC4w
LjkuOSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBv
ZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8v
ZGVmYXVsdC9wYWNrYWdlcy9iYXNlLW1ldGFvY2FtbC1vY2FtbGZpbmQvYmFzZS1tZXRhb2NhbWwt
b2NhbWxmaW5kLmJhc2Uvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lv
biAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJO
SU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBiYXNlLW1ldGFvY2FtbC1vY2FtbGZpbmQuYmFz
ZSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBP
UEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVm
YXVsdC9wYWNrYWdlcy9iYXNlLW5vLXBweC9iYXNlLW5vLXBweC5iYXNlL29wYW0uIFVwZ3JhZGUg
T1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlz
IGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcg
YmFzZS1uby1wcHguYmFzZSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlv
dXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+
Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9iYXNlNjQvYmFzZTY0LjEuMS4wL29wYW0uIFVw
Z3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVh
ZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBh
cnNpbmcgYmFzZTY0LjEuMS4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20g
WW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFk
IH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2Jhc2U2NC9iYXNlNjQuMi4wLjAvb3BhbS4g
VXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byBy
ZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUg
cGFyc2luZyBiYXNlNjQuMi4wLjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtb
bSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJl
YWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvYmVhci9iZWFyLjAuMC4xL29wYW0uIFVw
Z3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVh
ZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBh
cnNpbmcgYmVhci4wLjAuMSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlv
dXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+
Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9iZWx1Z2EvYmVsdWdhLjAuOC4yL29wYW0uIFVw
Z3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVh
ZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBh
cnNpbmcgYmVsdWdhLjAuOC4yIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20g
WW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFk
IH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2JlbmNobWFyay9iZW5jaG1hcmsuMS40L29w
YW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikg
dG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdo
aWxlIHBhcnNpbmcgYmVuY2htYXJrLjEuNCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJS
T1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2gg
dG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9iaWdudW0vYmlnbnVtLjExMi4z
NS4wMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFz
dCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVy
cm9ycyB3aGlsZSBwYXJzaW5nIGJpZ251bS4xMTIuMzUuMDAgT1BBTSBmaWxlLCBza2lwcGluZy4N
ChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNl
bnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvYmlnbnVtL2Jp
Z251bS4xMTMuMDAuMDAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lv
biAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJO
SU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBiaWdudW0uMTEzLjAwLjAwIE9QQU0gZmlsZSwg
c2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBp
cyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2Vz
L2Jpbl9wcm90L2Jpbl9wcm90LjExMi4zNS4wMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3Jl
IHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3Rs
eS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGJpbl9wcm90LjExMi4z
NS4wMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBv
ZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8v
ZGVmYXVsdC9wYWNrYWdlcy9iaW5fcHJvdC9iaW5fcHJvdC4xMTMuMDAuMDAvb3BhbS4gVXBncmFk
ZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRo
aXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2lu
ZyBiaW5fcHJvdC4xMTMuMDAuMDAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtb
bSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJl
YWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvYmlzZWN0X3BweC9iaXNlY3RfcHB4LjAu
MS9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAx
LjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9y
cyB3aGlsZSBwYXJzaW5nIGJpc2VjdF9wcHguMC4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMx
bVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVu
b3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2Jpc2VjdF9wcHgvYmlz
ZWN0X3BweC4wLjIvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAo
YXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5H
XRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBiaXNlY3RfcHB4LjAuMiBPUEFNIGZpbGUsIHNraXBw
aW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90
IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9iaXNl
Y3RfcHB4L2Jpc2VjdF9wcHguMC4yLjIvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNl
bnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQob
WzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBiaXNlY3RfcHB4LjAuMi4yIE9Q
QU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0g
KDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0
L3BhY2thZ2VzL2Jpc2VjdF9wcHgvYmlzZWN0X3BweC4wLjIuMy9vcGFtLiBVcGdyYWRlIE9QQU0g
dG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxl
IGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGJpc2Vj
dF9wcHguMC4yLjMgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZl
cnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3Bh
bS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvYmlzZWN0X3BweC9iaXNlY3RfcHB4LjAuMi40L29wYW0u
IFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8g
cmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxl
IHBhcnNpbmcgYmlzZWN0X3BweC4wLjIuNCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJS
T1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2gg
dG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9iaXNlY3RfcHB4L2Jpc2VjdF9w
cHguMC4yLjUvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQg
bGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtb
bSBFcnJvcnMgd2hpbGUgcGFyc2luZyBiaXNlY3RfcHB4LjAuMi41IE9QQU0gZmlsZSwgc2tpcHBp
bmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3Qg
cmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2JpdGNv
aW4vYml0Y29pbi4xLjEvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lv
biAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJO
SU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBiaXRjb2luLjEuMSBPUEFNIGZpbGUsIHNraXBw
aW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90
IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9iaXRj
b2luL2JpdGNvaW4uMS4xLjEvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVy
c2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtX
QVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBiaXRjb2luLjEuMS4xIE9QQU0gZmlsZSwg
c2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBp
cyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2Vz
L2JpdGNvaW4vYml0Y29pbi4yLjAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQg
dmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMz
bVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBiaXRjb2luLjIuMCBPUEFNIGZpbGUs
IHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkg
aXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdl
cy9iaXRzdHJpbmcvYml0c3RyaW5nLjIuMC40L29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUg
cmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5
Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgYml0c3RyaW5nLjIuMC40
IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9Q
QU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZh
dWx0L3BhY2thZ2VzL2JqYWNrL2JqYWNrLjAuMS41L29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1v
cmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVj
dGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgYmphY2suMC4xLjUg
T1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BB
TSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1
bHQvcGFja2FnZXMvYmxhaGNhbWwvYmxhaGNhbWwuMi4xL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBh
IG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29y
cmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgYmxhaGNhbWwu
Mi4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9m
IE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9k
ZWZhdWx0L3BhY2thZ2VzL2Jvb2thbWwvYm9va2FtbC4yLjAvb3BhbS4gVXBncmFkZSBPUEFNIHRv
IGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBj
b3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBib29rYW1s
LjIuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBv
ZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8v
ZGVmYXVsdC9wYWNrYWdlcy9ib29rYW1sL2Jvb2thbWwuMi4xL29wYW0uIFVwZ3JhZGUgT1BBTSB0
byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUg
Y29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgYm9va2Ft
bC4yLjEgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24g
b2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBv
L2RlZmF1bHQvcGFja2FnZXMvYm9va2FtbC9ib29rYW1sLjMuMC9vcGFtLiBVcGdyYWRlIE9QQU0g
dG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxl
IGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGJvb2th
bWwuMy4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9u
IG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVw
by9kZWZhdWx0L3BhY2thZ2VzL2Jyb2tlbi9icm9rZW4uMC4zLjAvb3BhbS4gVXBncmFkZSBPUEFN
IHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmls
ZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBicm9r
ZW4uMC4zLjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNp
b24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9y
ZXBvL2RlZmF1bHQvcGFja2FnZXMvYnJva2VuL2Jyb2tlbi4wLjQuMi9vcGFtLiBVcGdyYWRlIE9Q
QU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBm
aWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGJy
b2tlbi4wLjQuMiBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVy
c2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFt
L3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9ic2Rvd2wvYnNkb3dsLjMuMC4wLTIwMTUwNDAxL29wYW0u
IFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8g
cmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxl
IHBhcnNpbmcgYnNkb3dsLjMuMC4wLTIwMTUwNDAxIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMx
bVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVu
b3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2JzZG93bC9ic2Rvd2wu
My4wLjAtMjAxNTA4MzAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lv
biAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJO
SU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBic2Rvd2wuMy4wLjAtMjAxNTA4MzAgT1BBTSBm
aWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4x
LjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFj
a2FnZXMvY2Fpcm8yL2NhaXJvMi4wLjUvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNl
bnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQob
WzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBjYWlybzIuMC41IE9QQU0gZmls
ZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4x
KSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2th
Z2VzL2NhbWwtbW9kZS9jYW1sLW1vZGUuNC4wMi9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3Jl
IHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3Rs
eS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGNhbWwtbW9kZS40LjAy
IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9Q
QU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZh
dWx0L3BhY2thZ2VzL2NhbWxoaWdobGlnaHQvY2FtbGhpZ2hsaWdodC4zLjAvb3BhbS4gVXBncmFk
ZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRo
aXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2lu
ZyBjYW1saGlnaGxpZ2h0LjMuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1tt
IFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVh
ZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9jYW1saW1hZ2VzL2NhbWxpbWFnZXMuNC4y
LjEvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3Qg
MS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJv
cnMgd2hpbGUgcGFyc2luZyBjYW1saW1hZ2VzLjQuMi4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQob
WzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50
IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2NhbWxwNC9jYW1s
cDQuNC4wMS9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBs
ZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1tt
IEVycm9ycyB3aGlsZSBwYXJzaW5nIGNhbWxwNC40LjAxIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQob
WzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50
IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2NhbWxwNC9jYW1s
cDQuNC4wMStzeXN0ZW0vb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lv
biAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJO
SU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBjYW1scDQuNC4wMStzeXN0ZW0gT1BBTSBmaWxl
LCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEp
IGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2Fn
ZXMvY2FtbHA0L2NhbWxwNC40LjAyKzEvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNl
bnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQob
WzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBjYW1scDQuNC4wMisxIE9QQU0g
ZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEu
MS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3Bh
Y2thZ2VzL2NhbWxwNC9jYW1scDQuNC4wMisyL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUg
cmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5
Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgY2FtbHA0LjQuMDIrMiBP
UEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFN
ICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVs
dC9wYWNrYWdlcy9jYW1scDQvY2FtbHA0LjQuMDIrMy9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBt
b3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJl
Y3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGNhbWxwNC40LjAy
KzMgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2Yg
T1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2Rl
ZmF1bHQvcGFja2FnZXMvY2FtbHA0L2NhbWxwNC40LjAyKzQvb3BhbS4gVXBncmFkZSBPUEFNIHRv
IGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBj
b3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBjYW1scDQu
NC4wMis0IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9u
IG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVw
by9kZWZhdWx0L3BhY2thZ2VzL2NhbWxwNC9jYW1scDQuNC4wMis2L29wYW0uIFVwZ3JhZGUgT1BB
TSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZp
bGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgY2Ft
bHA0LjQuMDIrNiBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVy
c2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFt
L3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9jYW1scDQvY2FtbHA0LjQuMDIrc3lzdGVtL29wYW0uIFVw
Z3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVh
ZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBh
cnNpbmcgY2FtbHA0LjQuMDIrc3lzdGVtIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJP
Ul0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0
byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2NhbWxwNC9jYW1scDQuNC4wMi4w
LTFtb2R1bGFyLWltcGxpY2l0cy9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2
ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNt
W1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGNhbWxwNC40LjAyLjAtMW1vZHVsYXIt
aW1wbGljaXRzIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJz
aW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0v
cmVwby9kZWZhdWx0L3BhY2thZ2VzL2NhbWxwNC9jYW1scDQuNC4wMy9vcGFtLiBVcGdyYWRlIE9Q
QU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBm
aWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGNh
bWxwNC40LjAzIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJz
aW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0v
cmVwby9kZWZhdWx0L3BhY2thZ2VzL2NhbWxwNS9jYW1scDUuNi4xMi9vcGFtLiBVcGdyYWRlIE9Q
QU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBm
aWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGNh
bWxwNS42LjEyIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJz
aW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0v
cmVwby9kZWZhdWx0L3BhY2thZ2VzL2NhbWxwNS9jYW1scDUuNi4xMy9vcGFtLiBVcGdyYWRlIE9Q
QU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBm
aWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGNh
bWxwNS42LjEzIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJz
aW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0v
cmVwby9kZWZhdWx0L3BhY2thZ2VzL2NhbWxwNS9jYW1scDUuNi4xNC9vcGFtLiBVcGdyYWRlIE9Q
QU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBm
aWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGNh
bWxwNS42LjE0IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJz
aW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0v
cmVwby9kZWZhdWx0L3BhY2thZ2VzL2NhbWxwcmltZS9jYW1scHJpbWUuMC41L29wYW0uIFVwZ3Jh
ZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0
aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNp
bmcgY2FtbHByaW1lLjAuNSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlv
dXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+
Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9jYXBucC9jYXBucC4yLjEuMC9vcGFtLiBVcGdy
YWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQg
dGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJz
aW5nIGNhcG5wLjIuMS4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91
ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4v
Lm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2NhcHR1cmVpby9jYXB0dXJlaW8uMC4xLjEvb3Bh
bS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0
byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hp
bGUgcGFyc2luZyBjYXB0dXJlaW8uMC4xLjEgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VS
Uk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdo
IHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvY2FwdHVyZWlvL2NhcHR1cmVp
by4wLjEuMi9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBs
ZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1tt
IEVycm9ycyB3aGlsZSBwYXJzaW5nIGNhcHR1cmVpby4wLjEuMiBPUEFNIGZpbGUsIHNraXBwaW5n
Lg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJl
Y2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9jY29udi9j
Y29udi4wLjIvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQg
bGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtb
bSBFcnJvcnMgd2hpbGUgcGFyc2luZyBjY29udi4wLjIgT1BBTSBmaWxlLCBza2lwcGluZy4NChtb
MzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQg
ZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvY2NvbnYvY2NvbnYu
MC4zL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0
IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJy
b3JzIHdoaWxlIHBhcnNpbmcgY2NvbnYuMC4zIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtF
UlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3Vn
aCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2Njb252L2Njb252LjAuMy4x
L29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEu
MikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3Jz
IHdoaWxlIHBhcnNpbmcgY2NvbnYuMC4zLjEgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VS
Uk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdo
IHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvY2Nzcy9jY3NzLjEuNC9vcGFt
LiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRv
IHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGls
ZSBwYXJzaW5nIGNjc3MuMS40IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20g
WW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFk
IH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2Njc3MvY2Nzcy4xLjUvb3BhbS4gVXBncmFk
ZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRo
aXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2lu
ZyBjY3NzLjEuNSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVy
c2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFt
L3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9jZnN0cmVhbS9jZnN0cmVhbS4xLjIuMC9vcGFtLiBVcGdy
YWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQg
dGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJz
aW5nIGNmc3RyZWFtLjEuMi4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20g
WW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFk
IH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2Nncm91cHMvY2dyb3Vwcy4wLjEvb3BhbS4g
VXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byBy
ZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUg
cGFyc2luZyBjZ3JvdXBzLjAuMSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1tt
IFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVh
ZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9jaGFubmVsL2NoYW5uZWwuMS4wLjAvb3Bh
bS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0
byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hp
bGUgcGFyc2luZyBjaGFubmVsLjEuMC4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJP
Ul0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0
byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2NpbC9jaWwuMS41LjEvb3BhbS4g
VXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byBy
ZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUg
cGFyc2luZyBjaWwuMS41LjEgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZ
b3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQg
fi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvY2lsL2NpbC4xLjcuMy9vcGFtLiBVcGdyYWRl
IE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhp
cyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5n
IGNpbC4xLjcuMyBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVy
c2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFt
L3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9jbGFuZ21sL2NsYW5nbWwuMC41LjIvb3BhbS4gVXBncmFk
ZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRo
aXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2lu
ZyBjbGFuZ21sLjAuNS4yIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91
ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4v
Lm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2NsYW5nbWwvY2xhbmdtbC4zLjYuMC9vcGFtLiBV
cGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJl
YWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBw
YXJzaW5nIGNsYW5nbWwuMy42LjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtb
bSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJl
YWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvY2xhbmdtbC9jbGFuZ21sLjMuNi4wLjEv
b3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4y
KSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMg
d2hpbGUgcGFyc2luZyBjbGFuZ21sLjMuNi4wLjEgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFt
W0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5v
dWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvY21kbGluZXIvY21kbGlu
ZXIuMC45LjYvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQg
bGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtb
bSBFcnJvcnMgd2hpbGUgcGFyc2luZyBjbWRsaW5lci4wLjkuNiBPUEFNIGZpbGUsIHNraXBwaW5n
Lg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJl
Y2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9jbWRsaW5l
ci9jbWRsaW5lci4wLjkuNy9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJz
aW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dB
Uk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGNtZGxpbmVyLjAuOS43IE9QQU0gZmlsZSwg
c2tpcHBpbmcuDQobWzMzbVtXQVJOSU5HXRtbbSBpbnN0YWxsIGlzIGFuIHVua25vd24gZmllbGQg
aW4gL2hvbWUvbGFzeWEvLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2NvY2NpbmVsbGUvY29j
Y2luZWxsZS4xLjAuMi9vcGFtOiBpcyB5b3VyIE9QQU0gdXAtdG8tZGF0ZSA/DQobWzMxbVtFUlJP
Ul0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0
byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2NvaHR0cC9jb2h0dHAuMC45LjEw
L29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEu
MikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3Jz
IHdoaWxlIHBhcnNpbmcgY29odHRwLjAuOS4xMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1b
RVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91
Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9jb2h0dHAvY29odHRwLjAu
OS4xMS9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFz
dCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVy
cm9ycyB3aGlsZSBwYXJzaW5nIGNvaHR0cC4wLjkuMTEgT1BBTSBmaWxlLCBza2lwcGluZy4NChtb
MzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQg
ZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvY29odHRwL2NvaHR0
cC4wLjkuMTIvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQg
bGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtb
bSBFcnJvcnMgd2hpbGUgcGFyc2luZyBjb2h0dHAuMC45LjEyIE9QQU0gZmlsZSwgc2tpcHBpbmcu
DQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVj
ZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2NvaHR0cC9j
b2h0dHAuMC45LjEzL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24g
KGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklO
R10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgY29odHRwLjAuOS4xMyBPUEFNIGZpbGUsIHNraXBw
aW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90
IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9jb2h0
dHAvY29odHRwLjAuOS4xNC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJz
aW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dB
Uk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGNvaHR0cC4wLjkuMTQgT1BBTSBmaWxlLCBz
a2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlz
IG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMv
Y29odHRwL2NvaHR0cC4wLjkuMTUvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQg
dmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMz
bVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBjb2h0dHAuMC45LjE1IE9QQU0gZmls
ZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4x
KSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2th
Z2VzL2NvaHR0cC9jb2h0dHAuMC45LjE2L29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVj
ZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0K
G1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgY29odHRwLjAuOS4xNiBPUEFN
IGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgx
LjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9w
YWNrYWdlcy9jb2h0dHAvY29odHRwLjAuMTAuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3Jl
IHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3Rs
eS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGNvaHR0cC4wLjEwLjAg
T1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BB
TSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1
bHQvcGFja2FnZXMvY29odHRwL2NvaHR0cC4wLjEwLjEvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEg
bW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3Jy
ZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBjb2h0dHAuMC4x
MC4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9m
IE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9k
ZWZhdWx0L3BhY2thZ2VzL2NvaHR0cC9jb2h0dHAuMC4xNC4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0
byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUg
Y29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgY29odHRw
LjAuMTQuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lv
biBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3Jl
cG8vZGVmYXVsdC9wYWNrYWdlcy9jb2h0dHAvY29odHRwLjAuMTUuMC9vcGFtLiBVcGdyYWRlIE9Q
QU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBm
aWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGNv
aHR0cC4wLjE1LjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZl
cnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3Bh
bS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvY29odHRwL2NvaHR0cC4wLjE1LjEvb3BhbS4gVXBncmFk
ZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRo
aXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2lu
ZyBjb2h0dHAuMC4xNS4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91
ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4v
Lm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2NvaHR0cC9jb2h0dHAuMC4xNS4yL29wYW0uIFVw
Z3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVh
ZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBh
cnNpbmcgY29odHRwLjAuMTUuMiBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1tt
IFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVh
ZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9jb2h0dHAvY29odHRwLjAuMTYuMC9vcGFt
LiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRv
IHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGls
ZSBwYXJzaW5nIGNvaHR0cC4wLjE2LjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9S
XRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRv
IHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvY29odHRwL2NvaHR0cC4wLjE2LjEv
b3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4y
KSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMg
d2hpbGUgcGFyc2luZyBjb2h0dHAuMC4xNi4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtF
UlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3Vn
aCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2NvaHR0cC9jb2h0dHAuMC4x
Ny4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0
IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJy
b3JzIHdoaWxlIHBhcnNpbmcgY29odHRwLjAuMTcuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1sz
MW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBl
bm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9jb2h0dHAvY29odHRw
LjAuMTcuMS9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBs
ZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1tt
IEVycm9ycyB3aGlsZSBwYXJzaW5nIGNvaHR0cC4wLjE3LjEgT1BBTSBmaWxlLCBza2lwcGluZy4N
ChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNl
bnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvY29odHRwL2Nv
aHR0cC4wLjE3LjIvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAo
YXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5H
XRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBjb2h0dHAuMC4xNy4yIE9QQU0gZmlsZSwgc2tpcHBp
bmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3Qg
cmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2NvaHR0
cC9jb2h0dHAuMC4xOC4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNp
b24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FS
TklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgY29odHRwLjAuMTguMCBPUEFNIGZpbGUsIHNr
aXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMg
bm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9j
b2h0dHAvY29odHRwLjAuMTguMS9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2
ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNt
W1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGNvaHR0cC4wLjE4LjEgT1BBTSBmaWxl
LCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEp
IGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2Fn
ZXMvY29odHRwL2NvaHR0cC4wLjE4LjIvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNl
bnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQob
WzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBjb2h0dHAuMC4xOC4yIE9QQU0g
ZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEu
MS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3Bh
Y2thZ2VzL2NvaHR0cC9jb2h0dHAuMC4xOC4zL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUg
cmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5
Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgY29odHRwLjAuMTguMyBP
UEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFN
ICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVs
dC9wYWNrYWdlcy9jb2h0dHAvY29odHRwLjAuMTkuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBt
b3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJl
Y3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGNvaHR0cC4wLjE5
LjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2Yg
T1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2Rl
ZmF1bHQvcGFja2FnZXMvY29odHRwL2NvaHR0cC4wLjE5LjEvb3BhbS4gVXBncmFkZSBPUEFNIHRv
IGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBj
b3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBjb2h0dHAu
MC4xOS4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9u
IG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVw
by9kZWZhdWx0L3BhY2thZ2VzL2NvaHR0cC9jb2h0dHAuMC4xOS4yL29wYW0uIFVwZ3JhZGUgT1BB
TSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZp
bGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgY29o
dHRwLjAuMTkuMiBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVy
c2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFt
L3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9jb21wYXJlbGliL2NvbXBhcmVsaWIuMTEzLjAwLjAwL29w
YW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikg
dG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdo
aWxlIHBhcnNpbmcgY29tcGFyZWxpYi4xMTMuMDAuMDAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtb
MzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQg
ZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvY29uZHVpdC9jb25k
dWl0LjAuOC4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0
IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10b
W20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgY29uZHVpdC4wLjguMCBPUEFNIGZpbGUsIHNraXBwaW5n
Lg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJl
Y2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9jb25kdWl0
L2NvbmR1aXQuMC44LjEvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lv
biAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJO
SU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBjb25kdWl0LjAuOC4xIE9QQU0gZmlsZSwgc2tp
cHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBu
b3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2Nv
bmR1aXQvY29uZHVpdC4wLjguMi9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2
ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNt
W1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGNvbmR1aXQuMC44LjIgT1BBTSBmaWxl
LCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEp
IGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2Fn
ZXMvY29uZHVpdC9jb25kdWl0LjAuOC40L29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVj
ZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0K
G1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgY29uZHVpdC4wLjguNCBPUEFN
IGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgx
LjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9w
YWNrYWdlcy9jb25kdWl0L2NvbmR1aXQuMC44LjUvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9y
ZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0
bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBjb25kdWl0LjAuOC41
IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9Q
QU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZh
dWx0L3BhY2thZ2VzL2NvbmR1aXQvY29uZHVpdC4wLjguNi9vcGFtLiBVcGdyYWRlIE9QQU0gdG8g
YSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNv
cnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGNvbmR1aXQu
MC44LjYgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24g
b2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBv
L2RlZmF1bHQvcGFja2FnZXMvY29uZHVpdC9jb25kdWl0LjAuOC43L29wYW0uIFVwZ3JhZGUgT1BB
TSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZp
bGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgY29u
ZHVpdC4wLjguNyBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVy
c2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFt
L3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9jb25kdWl0L2NvbmR1aXQuMC44Ljgvb3BhbS4gVXBncmFk
ZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRo
aXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2lu
ZyBjb25kdWl0LjAuOC44IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMzbVtXQVJOSU5HXRtbbSBF
cnJvcnMgd2hpbGUgcGFyc2luZyBjb25mLWdtcC4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMx
bVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVu
b3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2NvbmYtZ251dGxzL2Nv
bmYtZ251dGxzLjEvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAo
YXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5H
XRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBjb25mLWdudXRscy4xIE9QQU0gZmlsZSwgc2tpcHBp
bmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3Qg
cmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2NvbmYt
Z3NzYXBpL2NvbmYtZ3NzYXBpLjEvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQg
dmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMz
bVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBjb25mLWdzc2FwaS4xIE9QQU0gZmls
ZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4x
KSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2th
Z2VzL2NvbmYtbGlidXYvY29uZi1saWJ1di4xL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUg
cmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5
Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgY29uZi1saWJ1di4xIE9Q
QU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0g
KDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0
L3BhY2thZ2VzL2NvbmYtbXBmci9jb25mLW1wZnIuMS9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBt
b3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJl
Y3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGNvbmYtbXBmci4x
IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9Q
QU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZh
dWx0L3BhY2thZ2VzL2NvbmYtcHBsL2NvbmYtcHBsLjEvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEg
bW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3Jy
ZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBjb25mLXBwbC4x
IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9Q
QU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZh
dWx0L3BhY2thZ2VzL2NvbmZpZ3VyYXRpb24vY29uZmlndXJhdGlvbi4wLjQuMC9vcGFtLiBVcGdy
YWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQg
dGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJz
aW5nIGNvbmZpZ3VyYXRpb24uMC40LjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9S
XRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRv
IHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvY29udGFpbmVycy9jb250YWluZXJz
LjAuNS9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFz
dCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVy
cm9ycyB3aGlsZSBwYXJzaW5nIGNvbnRhaW5lcnMuMC41IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQob
WzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50
IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2NvbnRhaW5lcnMv
Y29udGFpbmVycy4wLjYvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lv
biAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJO
SU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBjb250YWluZXJzLjAuNiBPUEFNIGZpbGUsIHNr
aXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMg
bm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9j
b250YWluZXJzL2NvbnRhaW5lcnMuMC42LjEvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSBy
ZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHku
DQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBjb250YWluZXJzLjAuNi4x
IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9Q
QU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZh
dWx0L3BhY2thZ2VzL2NvbnRhaW5lcnMvY29udGFpbmVycy4wLjcvb3BhbS4gVXBncmFkZSBPUEFN
IHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmls
ZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBjb250
YWluZXJzLjAuNyBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVy
c2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFt
L3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9jb250YWluZXJzL2NvbnRhaW5lcnMuMC44L29wYW0uIFVw
Z3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVh
ZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBh
cnNpbmcgY29udGFpbmVycy4wLjggT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtb
bSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJl
YWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvY29udGFpbmVycy9jb250YWluZXJzLjAu
OS9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAx
LjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9y
cyB3aGlsZSBwYXJzaW5nIGNvbnRhaW5lcnMuMC45IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMx
bVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVu
b3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2NvbnRhaW5lcnMvY29u
dGFpbmVycy4wLjEwL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24g
KGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklO
R10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgY29udGFpbmVycy4wLjEwIE9QQU0gZmlsZSwgc2tp
cHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBu
b3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2Nv
bnRhaW5lcnMvY29udGFpbmVycy4wLjExL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVj
ZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0K
G1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgY29udGFpbmVycy4wLjExIE9Q
QU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0g
KDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0
L3BhY2thZ2VzL2NvbnRhaW5lcnMvY29udGFpbmVycy4wLjEyL29wYW0uIFVwZ3JhZGUgT1BBTSB0
byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUg
Y29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgY29udGFp
bmVycy4wLjEyIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJz
aW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0v
cmVwby9kZWZhdWx0L3BhY2thZ2VzL2NvbnRhaW5lcnMvY29udGFpbmVycy4wLjEzL29wYW0uIFVw
Z3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVh
ZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBh
cnNpbmcgY29udGFpbmVycy4wLjEzIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0b
W20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byBy
ZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2NvcS9jb3EuOC40LjUvb3BhbS4gVXBn
cmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFk
IHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFy
c2luZyBjb3EuOC40LjUgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3Vy
IHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8u
b3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvY29xL2NvcS44LjQuNn5jYW1scDQvb3BhbS4gVXBn
cmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFk
IHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFy
c2luZyBjb3EuOC40LjZ+Y2FtbHA0IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0b
W20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byBy
ZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2NvcS9jb3EuOC40LjYvb3BhbS4gVXBn
cmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFk
IHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFy
c2luZyBjb3EuOC40LjYgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3Vy
IHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8u
b3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvY29xOnNoZWxsL2NvcTpzaGVsbC4xL29wYW0uIFVw
Z3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVh
ZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBh
cnNpbmcgY29xOnNoZWxsLjEgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZ
b3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQg
fi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvY29yZS9jb3JlLjExMi4zNS4wMC9vcGFtLiBV
cGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJl
YWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBw
YXJzaW5nIGNvcmUuMTEyLjM1LjAwIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0b
W20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byBy
ZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2NvcmUvY29yZS4xMTIuMzUuMDEvb3Bh
bS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0
byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hp
bGUgcGFyc2luZyBjb3JlLjExMi4zNS4wMSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJS
T1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2gg
dG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9jb3JlL2NvcmUuMTEzLjAwLjAw
L29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEu
MikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3Jz
IHdoaWxlIHBhcnNpbmcgY29yZS4xMTMuMDAuMDAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFt
W0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5v
dWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvY29yZV9iZW5jaC9jb3Jl
X2JlbmNoLjExMi4zNS4wMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJz
aW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dB
Uk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGNvcmVfYmVuY2guMTEyLjM1LjAwIE9QQU0g
ZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEu
MS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3Bh
Y2thZ2VzL2NvcmVfZXh0ZW5kZWQvY29yZV9leHRlbmRlZC4xMTIuMzUuMDAvb3BhbS4gVXBncmFk
ZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRo
aXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2lu
ZyBjb3JlX2V4dGVuZGVkLjExMi4zNS4wMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJS
T1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2gg
dG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9jb3JlX2V4dGVuZGVkL2NvcmVf
ZXh0ZW5kZWQuMTEzLjAwLjAwL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZl
cnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21b
V0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgY29yZV9leHRlbmRlZC4xMTMuMDAuMDAg
T1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BB
TSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1
bHQvcGFja2FnZXMvY29yZV9rZXJuZWwvY29yZV9rZXJuZWwuMTEyLjM1LjAwL29wYW0uIFVwZ3Jh
ZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0
aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNp
bmcgY29yZV9rZXJuZWwuMTEyLjM1LjAwIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJP
Ul0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0
byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2NvcmVfa2VybmVsL2NvcmVfa2Vy
bmVsLjExMy4wMC4wMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9u
IChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5J
TkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGNvcmVfa2VybmVsLjExMy4wMC4wMCBPUEFNIGZp
bGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEu
MSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNr
YWdlcy9jb3JlX3Byb2ZpbGVyL2NvcmVfcHJvZmlsZXIuMTEyLjM1LjAwL29wYW0uIFVwZ3JhZGUg
T1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlz
IGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcg
Y29yZV9wcm9maWxlci4xMTIuMzUuMDAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9S
XRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRv
IHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvY29yZV9wcm9maWxlci9jb3JlX3By
b2ZpbGVyLjExMy4wMC4wMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJz
aW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dB
Uk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGNvcmVfcHJvZmlsZXIuMTEzLjAwLjAwIE9Q
QU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0g
KDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0
L3BhY2thZ2VzL2Nvdy9jb3cuMS4xLjAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNl
bnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQob
WzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBjb3cuMS4xLjAgT1BBTSBmaWxl
LCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEp
IGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2Fn
ZXMvY293L2Nvdy4xLjIuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJz
aW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dB
Uk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGNvdy4xLjIuMCBPUEFNIGZpbGUsIHNraXBw
aW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90
IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9jb3cv
Y293LjEuMi4xL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0
IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10b
W20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgY293LjEuMi4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQob
WzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50
IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2Nvdy9jb3cuMS4y
LjIvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3Qg
MS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJv
cnMgd2hpbGUgcGFyc2luZyBjb3cuMS4yLjIgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VS
Uk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdo
IHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvY293L2Nvdy4xLjMuMC9vcGFt
LiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRv
IHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGls
ZSBwYXJzaW5nIGNvdy4xLjMuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1tt
IFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVh
ZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9jcHBvL2NwcG8uMS4yLjIvb3BhbS4gVXBn
cmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFk
IHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFy
c2luZyBjcHBvLjEuMi4yIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91
ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4v
Lm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2NwcG8vY3Bwby4xLjMuMC9vcGFtLiBVcGdyYWRl
IE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhp
cyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5n
IGNwcG8uMS4zLjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZl
cnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3Bh
bS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvY3Bwby9jcHBvLjEuMy4xL29wYW0uIFVwZ3JhZGUgT1BB
TSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZp
bGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgY3Bw
by4xLjMuMSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lv
biBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3Jl
cG8vZGVmYXVsdC9wYWNrYWdlcy9jcnVuY2gvY3J1bmNoLjEuNC4wL29wYW0uIFVwZ3JhZGUgT1BB
TSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZp
bGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgY3J1
bmNoLjEuNC4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJz
aW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0v
cmVwby9kZWZhdWx0L3BhY2thZ2VzL2NyeS9jcnkuMC4zLjAvb3BhbS4gVXBncmFkZSBPUEFNIHRv
IGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBj
b3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBjcnkuMC4z
LjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2Yg
T1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2Rl
ZmF1bHQvcGFja2FnZXMvY3J5cHRvaGFzaC9jcnlwdG9oYXNoLjAuMS9vcGFtLiBVcGdyYWRlIE9Q
QU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBm
aWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGNy
eXB0b2hhc2guMC4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2
ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9w
YW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2NzdHJ1Y3QvY3N0cnVjdC4xLjUuMC9vcGFtLiBVcGdy
YWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQg
dGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJz
aW5nIGNzdHJ1Y3QuMS41LjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZ
b3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQg
fi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvY3N0cnVjdC9jc3RydWN0LjEuNi4wL29wYW0u
IFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8g
cmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxl
IHBhcnNpbmcgY3N0cnVjdC4xLjYuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1Jd
G1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8g
cmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9jc3RydWN0L2NzdHJ1Y3QuMS43LjAv
b3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4y
KSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMg
d2hpbGUgcGFyc2luZyBjc3RydWN0LjEuNy4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtF
UlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3Vn
aCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2Nzdi9jc3YuMS4zLjQvb3Bh
bS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0
byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hp
bGUgcGFyc2luZyBjc3YuMS4zLjQgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtb
bSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJl
YWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvY3N2L2Nzdi4xLjQvb3BhbS4gVXBncmFk
ZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRo
aXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2lu
ZyBjc3YuMS40IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJz
aW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0v
cmVwby9kZWZhdWx0L3BhY2thZ2VzL2Nzdi9jc3YuMS40LjEvb3BhbS4gVXBncmFkZSBPUEFNIHRv
IGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBj
b3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBjc3YuMS40
LjEgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2Yg
T1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2Rl
ZmF1bHQvcGFja2FnZXMvY3R5cGVzL2N0eXBlcy4wLjQuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8g
YSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNv
cnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGN0eXBlcy4w
LjQuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBv
ZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8v
ZGVmYXVsdC9wYWNrYWdlcy9jdHlwZXMvY3R5cGVzLjAuNC4xL29wYW0uIFVwZ3JhZGUgT1BBTSB0
byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUg
Y29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgY3R5cGVz
LjAuNC4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9u
IG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVw
by9kZWZhdWx0L3BhY2thZ2VzL2N0eXBlcy1mb3JlaWduL2N0eXBlcy1mb3JlaWduLjAuNC4wL29w
YW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikg
dG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdo
aWxlIHBhcnNpbmcgY3R5cGVzLWZvcmVpZ24uMC40LjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtb
MzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQg
ZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvY3VzdG9tX3ByaW50
Zi9jdXN0b21fcHJpbnRmLjExMy4wMC4wMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJl
Y2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4N
ChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGN1c3RvbV9wcmludGYuMTEz
LjAwLjAwIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9u
IG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVw
by9kZWZhdWx0L3BhY2thZ2VzL2RlY29tcHJlc3MvZGVjb21wcmVzcy4wLjEvb3BhbS4gVXBncmFk
ZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRo
aXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2lu
ZyBkZWNvbXByZXNzLjAuMSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlv
dXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+
Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9kZWNvbXByZXNzL2RlY29tcHJlc3MuMC4yL29w
YW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikg
dG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdo
aWxlIHBhcnNpbmcgZGVjb21wcmVzcy4wLjIgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VS
Uk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdo
IHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvZGVwZXh0L2RlcGV4dC4wLjIv
b3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4y
KSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMg
d2hpbGUgcGFyc2luZyBkZXBleHQuMC4yIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJP
Ul0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0
byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2RlcGV4dC9kZXBleHQuMC4zL29w
YW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikg
dG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdo
aWxlIHBhcnNpbmcgZGVwZXh0LjAuMyBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1Jd
G1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8g
cmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9kZXBleHQvZGVwZXh0LjAuNC9vcGFt
LiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRv
IHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGls
ZSBwYXJzaW5nIGRlcGV4dC4wLjQgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtb
bSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJl
YWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvZGVwZXh0L2RlcGV4dC4wLjUvb3BhbS4g
VXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byBy
ZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUg
cGFyc2luZyBkZXBleHQuMC41IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20g
WW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFk
IH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2RlcGV4dC9kZXBleHQuMC42L29wYW0uIFVw
Z3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVh
ZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBh
cnNpbmcgZGVwZXh0LjAuNiBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlv
dXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+
Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9kZXBleHQvZGVwZXh0LjAuNy9vcGFtLiBVcGdy
YWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQg
dGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJz
aW5nIGRlcGV4dC4wLjcgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3Vy
IHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8u
b3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvZGVwZXh0L2RlcGV4dC4wLjgvb3BhbS4gVXBncmFk
ZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRo
aXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2lu
ZyBkZXBleHQuMC44IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2
ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9w
YW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2RlcGV4dC9kZXBleHQuMC44LjEvb3BhbS4gVXBncmFk
ZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRo
aXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2lu
ZyBkZXBleHQuMC44LjEgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3Vy
IHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8u
b3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvZGV2a2l0L2RldmtpdC4wLjMvb3BhbS4gVXBncmFk
ZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRo
aXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2lu
ZyBkZXZraXQuMC4zIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2
ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9w
YW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2RpeS9kaXkuNS4wMS9vcGFtLiBVcGdyYWRlIE9QQU0g
dG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxl
IGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGRpeS41
LjAxIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9m
IE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9k
ZWZhdWx0L3BhY2thZ2VzL2Rucy9kbnMuMC4xMy4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1v
cmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVj
dGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgZG5zLjAuMTMuMCBP
UEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFN
ICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVs
dC9wYWNrYWdlcy9kbnMvZG5zLjAuMTQuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJl
Y2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4N
ChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGRucy4wLjE0LjAgT1BBTSBm
aWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4x
LjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFj
a2FnZXMvZG5zL2Rucy4wLjE0LjEvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQg
dmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMz
bVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBkbnMuMC4xNC4xIE9QQU0gZmlsZSwg
c2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBp
cyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2Vz
L2Rucy9kbnMuMC4xNS4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNp
b24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FS
TklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgZG5zLjAuMTUuMCBPUEFNIGZpbGUsIHNraXBw
aW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90
IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9kbnMv
ZG5zLjAuMTUuMS9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChh
dCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkdd
G1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGRucy4wLjE1LjEgT1BBTSBmaWxlLCBza2lwcGluZy4N
ChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNl
bnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvZG5zL2Rucy4w
LjE1LjIvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVh
c3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBF
cnJvcnMgd2hpbGUgcGFyc2luZyBkbnMuMC4xNS4yIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMx
bVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVu
b3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2Rucy9kbnMuMC4xNS4z
L29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEu
MikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3Jz
IHdoaWxlIHBhcnNpbmcgZG5zLjAuMTUuMyBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJS
T1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2gg
dG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9kb2NrZXJmaWxlL2RvY2tlcmZp
bGUuMS4wLjAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQg
bGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtb
bSBFcnJvcnMgd2hpbGUgcGFyc2luZyBkb2NrZXJmaWxlLjEuMC4wIE9QQU0gZmlsZSwgc2tpcHBp
bmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3Qg
cmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2RvY2tl
cmZpbGUvZG9ja2VyZmlsZS4xLjEuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2Vu
dCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtb
MzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGRvY2tlcmZpbGUuMS4xLjAgT1BB
TSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAo
MS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQv
cGFja2FnZXMvZG9ja2VyZmlsZS9kb2NrZXJmaWxlLjEuMS4xL29wYW0uIFVwZ3JhZGUgT1BBTSB0
byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUg
Y29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgZG9ja2Vy
ZmlsZS4xLjEuMSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVy
c2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFt
L3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9kb2cvZG9nLjAuMS4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0
byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUg
Y29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgZG9nLjAu
MS4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9m
IE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9k
ZWZhdWx0L3BhY2thZ2VzL2RvZy9kb2cuMC4yLjAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9y
ZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0
bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBkb2cuMC4yLjAgT1BB
TSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAo
MS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQv
cGFja2FnZXMvZG9sb2cvZG9sb2cuMS4xL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVj
ZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0K
G1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgZG9sb2cuMS4xIE9QQU0gZmls
ZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4x
KSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2th
Z2VzL2Rvc2UvZG9zZS4zLjMvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVy
c2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtX
QVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBkb3NlLjMuMyBPUEFNIGZpbGUsIHNraXBw
aW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90
IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9kb3Nl
L2Rvc2UuNC4wLXJjMy9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9u
IChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5J
TkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGRvc2UuNC4wLXJjMyBPUEFNIGZpbGUsIHNraXBw
aW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90
IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9kcm9w
Ym94L2Ryb3Bib3guMC4xfjc3MmM0YTYvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNl
bnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQob
WzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBkcm9wYm94LjAuMX43NzJjNGE2
IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9Q
QU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZh
dWx0L3BhY2thZ2VzL2Rzc2kvZHNzaS4wLjEuMi9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3Jl
IHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3Rs
eS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGRzc2kuMC4xLjIgT1BB
TSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAo
MS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQv
cGFja2FnZXMvZHRvb2xzL2R0b29scy4wLjMuMi9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3Jl
IHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3Rs
eS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGR0b29scy4wLjMuMiBP
UEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFN
ICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVs
dC9wYWNrYWdlcy9kdW1wYXN0L2R1bXBhc3QuMC4yLjAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEg
bW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3Jy
ZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBkdW1wYXN0LjAu
Mi4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9m
IE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9k
ZWZhdWx0L3BhY2thZ2VzL2R1cHB5L2R1cHB5LjAuNS4yL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBh
IG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29y
cmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgZHVwcHkuMC41
LjIgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2Yg
T1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2Rl
ZmF1bHQvcGFja2FnZXMvZWZsL2VmbC4xLjEyLjAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9y
ZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0
bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBlZmwuMS4xMi4wIE9Q
QU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0g
KDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0
L3BhY2thZ2VzL2VmbC9lZmwuMS4xMy4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVj
ZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0K
G1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgZWZsLjEuMTMuMCBPUEFNIGZp
bGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEu
MSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNr
YWdlcy9lbGYyanNvbi9lbGYyanNvbi4xLjAuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3Jl
IHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3Rs
eS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGVsZjJqc29uLjEuMC4w
IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9Q
QU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZh
dWx0L3BhY2thZ2VzL2VsaW9tL2VsaW9tLjQuMC4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1v
cmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVj
dGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgZWxpb20uNC4wLjAg
T1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BB
TSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1
bHQvcGFja2FnZXMvZWxpb20vZWxpb20uNC4xLjAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9y
ZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0
bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBlbGlvbS40LjEuMCBP
UEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFN
ICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVs
dC9wYWNrYWdlcy9lbGlvbS9lbGlvbS40LjIuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3Jl
IHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3Rs
eS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGVsaW9tLjQuMi4wIE9Q
QU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0g
KDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0
L3BhY2thZ2VzL2VtYWlsX21lc3NhZ2UvZW1haWxfbWVzc2FnZS4xMTIuMzUuMDAvb3BhbS4gVXBn
cmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFk
IHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFy
c2luZyBlbWFpbF9tZXNzYWdlLjExMi4zNS4wMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1b
RVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91
Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9lbWFpbF9tZXNzYWdlL2Vt
YWlsX21lc3NhZ2UuMTEzLjAwLjAwL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50
IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1sz
M21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgZW1haWxfbWVzc2FnZS4xMTMuMDAu
MDAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2Yg
T1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2Rl
ZmF1bHQvcGFja2FnZXMvZW51bWVyYXRlL2VudW1lcmF0ZS4xMTEuMDguMDAvb3BhbS4gVXBncmFk
ZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRo
aXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2lu
ZyBlbnVtZXJhdGUuMTExLjA4LjAwIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0b
W20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byBy
ZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2VudW1lcmF0b3JzL2VudW1lcmF0b3Jz
LjAuMS4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxl
YXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20g
RXJyb3JzIHdoaWxlIHBhcnNpbmcgZW51bWVyYXRvcnMuMC4xLjAgT1BBTSBmaWxlLCBza2lwcGlu
Zy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCBy
ZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvZXh0bGli
L2V4dGxpYi4xLjcuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9u
IChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5J
TkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGV4dGxpYi4xLjcuMCBPUEFNIGZpbGUsIHNraXBw
aW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90
IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9leHRs
aWItY29tcGF0L2V4dGxpYi1jb21wYXQuMS42LjEvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9y
ZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0
bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBleHRsaWItY29tcGF0
LjEuNi4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9u
IG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVw
by9kZWZhdWx0L3BhY2thZ2VzL2V4dGxpYi1jb21wYXQvZXh0bGliLWNvbXBhdC4xLjcuMC9vcGFt
LiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRv
IHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGls
ZSBwYXJzaW5nIGV4dGxpYi1jb21wYXQuMS43LjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFt
W0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5v
dWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvZXh0dW5peC9leHR1bml4
LjAuMS4xL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxl
YXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20g
RXJyb3JzIHdoaWxlIHBhcnNpbmcgZXh0dW5peC4wLjEuMSBPUEFNIGZpbGUsIHNraXBwaW5nLg0K
G1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2Vu
dCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9leHR1bml4L2V4
dHVuaXguMC4xLjIvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAo
YXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5H
XRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBleHR1bml4LjAuMS4yIE9QQU0gZmlsZSwgc2tpcHBp
bmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3Qg
cmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2V6anNv
bm0vZXpqc29ubS4wLjMuMS9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJz
aW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dB
Uk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGV6anNvbm0uMC4zLjEgT1BBTSBmaWxlLCBz
a2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlz
IG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMv
ZXpqc29ubS9lempzb25tLjAuNC4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50
IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1sz
M21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgZXpqc29ubS4wLjQuMCBPUEFNIGZp
bGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEu
MSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNr
YWdlcy9lempzb25tL2V6anNvbm0uMC40LjEvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSBy
ZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHku
DQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBlempzb25tLjAuNC4xIE9Q
QU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0g
KDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0
L3BhY2thZ2VzL2V6anNvbm0vZXpqc29ubS4wLjQuMi9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBt
b3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJl
Y3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGV6anNvbm0uMC40
LjIgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2Yg
T1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2Rl
ZmF1bHQvcGFja2FnZXMvZmFhZC9mYWFkLjAuMy4zL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1v
cmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVj
dGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgZmFhZC4wLjMuMyBP
UEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFN
ICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVs
dC9wYWNrYWdlcy9mYXQtZmlsZXN5c3RlbS9mYXQtZmlsZXN5c3RlbS4wLjEwLjMvb3BhbS4gVXBn
cmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFk
IHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFy
c2luZyBmYXQtZmlsZXN5c3RlbS4wLjEwLjMgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VS
Uk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdo
IHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvZmZtcGVnL2ZmbXBlZy4wLjEu
MS9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAx
LjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9y
cyB3aGlsZSBwYXJzaW5nIGZmbXBlZy4wLjEuMSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1b
RVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91
Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9mZnR3My9mZnR3My4wLjcu
MS9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAx
LjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9y
cyB3aGlsZSBwYXJzaW5nIGZmdHczLjAuNy4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtF
UlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3Vn
aCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2ZmdHczL2ZmdHczLjAuNy4y
L29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEu
MikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3Jz
IHdoaWxlIHBhcnNpbmcgZmZ0dzMuMC43LjIgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VS
Uk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdo
IHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvZmllbGRzbGliL2ZpZWxkc2xp
Yi4xMTMuMDAuMDAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAo
YXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5H
XRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBmaWVsZHNsaWIuMTEzLjAwLjAwIE9QQU0gZmlsZSwg
c2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBp
cyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2Vz
L2ZsYWMvZmxhYy4wLjEuMi9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJz
aW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dB
Uk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGZsYWMuMC4xLjIgT1BBTSBmaWxlLCBza2lw
cGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5v
dCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvZmxv
d3R5cGUvZmxvd3R5cGUuMC4xLjAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQg
dmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMz
bVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBmbG93dHlwZS4wLjEuMCBPUEFNIGZp
bGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEu
MSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNr
YWdlcy9mbG93dHlwZS9mbG93dHlwZS4wLjMuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3Jl
IHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3Rs
eS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGZsb3d0eXBlLjAuMy4w
IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9Q
QU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZh
dWx0L3BhY2thZ2VzL2Zsb3d0eXBlL2Zsb3d0eXBlLjAuNC4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0
byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUg
Y29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgZmxvd3R5
cGUuMC40LjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNp
b24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9y
ZXBvL2RlZmF1bHQvcGFja2FnZXMvZmxvd3R5cGUvZmxvd3R5cGUuMC41LjAvb3BhbS4gVXBncmFk
ZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRo
aXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2lu
ZyBmbG93dHlwZS4wLjUuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlv
dXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+
Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9mbG93dHlwZS9mbG93dHlwZS4wLjYuMC9vcGFt
LiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRv
IHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGls
ZSBwYXJzaW5nIGZsb3d0eXBlLjAuNi4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJP
Ul0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0
byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2Zsb3d0eXBlL2Zsb3d0eXBlLjAu
Ny4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0
IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJy
b3JzIHdoaWxlIHBhcnNpbmcgZmxvd3R5cGUuMC43LjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtb
MzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQg
ZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvZmxvd3R5cGUvZmxv
d3R5cGUuMC44LjAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAo
YXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5H
XRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBmbG93dHlwZS4wLjguMCBPUEFNIGZpbGUsIHNraXBw
aW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90
IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9mbG93
dHlwZS9mbG93dHlwZS4wLjkuMS9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2
ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNt
W1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGZsb3d0eXBlLjAuOS4xIE9QQU0gZmls
ZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4x
KSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2th
Z2VzL2Zsb3d0eXBlL2Zsb3d0eXBlLjAuOS4yL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUg
cmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5
Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgZmxvd3R5cGUuMC45LjIg
T1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BB
TSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1
bHQvcGFja2FnZXMvZmxvd3R5cGUvZmxvd3R5cGUuMC4xMC4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0
byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUg
Y29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgZmxvd3R5
cGUuMC4xMC4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJz
aW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0v
cmVwby9kZWZhdWx0L3BhY2thZ2VzL2Zsb3d0eXBlL2Zsb3d0eXBlLjAuMTEuMC9vcGFtLiBVcGdy
YWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQg
dGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJz
aW5nIGZsb3d0eXBlLjAuMTEuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1tt
IFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVh
ZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9mbG93dHlwZS9mbG93dHlwZS4wLjEzLjEv
b3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4y
KSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMg
d2hpbGUgcGFyc2luZyBmbG93dHlwZS4wLjEzLjEgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFt
W0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5v
dWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvZmxvd3R5cGUvZmxvd3R5
cGUuMC4xNC4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0
IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10b
W20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgZmxvd3R5cGUuMC4xNC4wIE9QQU0gZmlsZSwgc2tpcHBp
bmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3Qg
cmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2Zsb3d0
eXBlL2Zsb3d0eXBlLjAuMTUuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2
ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNt
W1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGZsb3d0eXBlLjAuMTUuMCBPUEFNIGZp
bGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEu
MSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNr
YWdlcy9mbXQvZm10LjAuNy4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZl
cnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21b
V0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgZm10LjAuNy4wIE9QQU0gZmlsZSwgc2tp
cHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBu
b3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2Zy
YW1hLWMvZnJhbWEtYy4yMDE0MDMwMS9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2Vu
dCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIuMCkgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0K
G1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgZnJhbWEtYy4yMDE0MDMwMSBP
UEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFN
ICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVs
dC9wYWNrYWdlcy9mcmFtYS1jL2ZyYW1hLWMuMjAxNTAyMDEvb3BhbS4gVXBncmFkZSBPUEFNIHRv
IGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBj
b3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBmcmFtYS1j
LjIwMTUwMjAxIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJz
aW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0v
cmVwby9kZWZhdWx0L3BhY2thZ2VzL2ZyYW1hLWMtYmFzZS9mcmFtYS1jLWJhc2UuMjAxNTAyMDEv
b3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4y
KSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMg
d2hpbGUgcGFyc2luZyBmcmFtYS1jLWJhc2UuMjAxNTAyMDEgT1BBTSBmaWxlLCBza2lwcGluZy4N
ChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNl
bnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvZnJhbWEtYy1l
LWFjc2wvZnJhbWEtYy1lLWFjc2wuMC41L29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVj
ZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0K
G1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgZnJhbWEtYy1lLWFjc2wuMC41
IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9Q
QU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZh
dWx0L3BhY2thZ2VzL2ZyZWkwci9mcmVpMHIuMC4xLjEvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEg
bW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3Jy
ZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBmcmVpMHIuMC4x
LjEgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2Yg
T1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2Rl
ZmF1bHQvcGFja2FnZXMvZnJlbmV0aWMvZnJlbmV0aWMuMy4yLjAvb3BhbS4gVXBncmFkZSBPUEFN
IHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmls
ZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBmcmVu
ZXRpYy4zLjIuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVy
c2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFt
L3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9mcmVuZXRpYy9mcmVuZXRpYy4zLjMuMC9vcGFtLiBVcGdy
YWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQg
dGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJz
aW5nIGZyZW5ldGljLjMuMy4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20g
WW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFk
IH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2ZyZW5ldGljL2ZyZW5ldGljLjMuNC4wL29w
YW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikg
dG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdo
aWxlIHBhcnNpbmcgZnJlbmV0aWMuMy40LjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VS
Uk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdo
IHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvZnJlbmV0aWMvZnJlbmV0aWMu
My40LjEvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVh
c3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBF
cnJvcnMgd2hpbGUgcGFyc2luZyBmcmVuZXRpYy4zLjQuMSBPUEFNIGZpbGUsIHNraXBwaW5nLg0K
G1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2Vu
dCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9mc3Rhci9mc3Rh
ci4wLjkuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBs
ZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1tt
IEVycm9ycyB3aGlsZSBwYXJzaW5nIGZzdGFyLjAuOS4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQob
WzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50
IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2ZzdHJlYW1zL2Zz
dHJlYW1zLjAuMi4xL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24g
KGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklO
R10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgZnN0cmVhbXMuMC4yLjEgT1BBTSBmaWxlLCBza2lw
cGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5v
dCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvZ2Ft
bXUvZ2FtbXUuMC45LjMvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lv
biAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJO
SU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBnYW1tdS4wLjkuMyBPUEFNIGZpbGUsIHNraXBw
aW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90
IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9nYXNv
bGluZS9nYXNvbGluZS4wLjMuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2
ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNt
W1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGdhc29saW5lLjAuMy4wIE9QQU0gZmls
ZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4x
KSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2th
Z2VzL2dhdmwvZ2F2bC4wLjEuNi9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2
ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNt
W1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGdhdmwuMC4xLjYgT1BBTSBmaWxlLCBz
a2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlz
IG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMv
Z2RhbC9nZGFsLjAuOC4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNp
b24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FS
TklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgZ2RhbC4wLjguMCBPUEFNIGZpbGUsIHNraXBw
aW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90
IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9nZGIv
Z2RiLjAuMy9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBs
ZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1tt
IEVycm9ycyB3aGlsZSBwYXJzaW5nIGdkYi4wLjMgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFt
W0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5v
dWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvZ2VkY29tL2dlZGNvbS4x
LjAuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFz
dCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVy
cm9ycyB3aGlsZSBwYXJzaW5nIGdlZGNvbS4xLjAuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1sz
MW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBl
bm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9nZW4vZ2VuLjAuMi4y
L29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEu
MikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3Jz
IHdoaWxlIHBhcnNpbmcgZ2VuLjAuMi4yIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJP
Ul0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0
byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2dlbi9nZW4uMC4yLjMvb3BhbS4g
VXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byBy
ZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUg
cGFyc2luZyBnZW4uMC4yLjMgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZ
b3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQg
fi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvZ2VuL2dlbi4wLjIuNC9vcGFtLiBVcGdyYWRl
IE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhp
cyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5n
IGdlbi4wLjIuNCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVy
c2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFt
L3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9nZW5sZXQvZ2VubGV0LjIwMTQwNi9vcGFtLiBVcGdyYWRl
IE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhp
cyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5n
IGdlbmxldC4yMDE0MDYgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3Vy
IHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8u
b3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvZ2Vuc3FsaXRlL2dlbnNxbGl0ZS4wLjEvb3BhbS4g
VXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byBy
ZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUg
cGFyc2luZyBnZW5zcWxpdGUuMC4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0b
W20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byBy
ZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2dldG9wdHMvZ2V0b3B0cy4wLjMuMi9v
cGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIp
IHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3
aGlsZSBwYXJzaW5nIGdldG9wdHMuMC4zLjIgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VS
Uk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdo
IHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvZ2cvZ2cuMC45LjEvb3BhbS4g
VXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byBy
ZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUg
cGFyc2luZyBnZy4wLjkuMSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlv
dXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+
Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9naXQvZ2l0LjEuMC4wL29wYW0uIFVwZ3JhZGUg
T1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlz
IGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcg
Z2l0LjEuMC4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJz
aW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0v
cmVwby9kZWZhdWx0L3BhY2thZ2VzL2dpdC9naXQuMS4wLjEvb3BhbS4gVXBncmFkZSBPUEFNIHRv
IGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBj
b3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBnaXQuMS4w
LjEgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2Yg
T1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2Rl
ZmF1bHQvcGFja2FnZXMvZ2l0L2dpdC4xLjAuMi9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3Jl
IHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3Rs
eS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGdpdC4xLjAuMiBPUEFN
IGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgx
LjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9w
YWNrYWdlcy9naXQvZ2l0LjEuMS4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50
IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1sz
M21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgZ2l0LjEuMS4wIE9QQU0gZmlsZSwg
c2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBp
cyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2Vz
L2dpdC9naXQuMS4yLjAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lv
biAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJO
SU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBnaXQuMS4yLjAgT1BBTSBmaWxlLCBza2lwcGlu
Zy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCBy
ZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvZ2l0L2dp
dC4xLjMuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBs
ZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1tt
IEVycm9ycyB3aGlsZSBwYXJzaW5nIGdpdC4xLjMuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1sz
MW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBl
bm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9naXQvZ2l0LjEuNC4w
L29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEu
MikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3Jz
IHdoaWxlIHBhcnNpbmcgZ2l0LjEuNC4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJP
Ul0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0
byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2dpdC9naXQuMS40LjEvb3BhbS4g
VXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byBy
ZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUg
cGFyc2luZyBnaXQuMS40LjEgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZ
b3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQg
fi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvZ2l0L2dpdC4xLjQuMi9vcGFtLiBVcGdyYWRl
IE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhp
cyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5n
IGdpdC4xLjQuMiBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVy
c2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFt
L3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9naXQvZ2l0LjEuNC4zL29wYW0uIFVwZ3JhZGUgT1BBTSB0
byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUg
Y29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgZ2l0LjEu
NC4zIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9m
IE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9k
ZWZhdWx0L3BhY2thZ2VzL2dpdC9naXQuMS40LjQvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9y
ZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0
bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBnaXQuMS40LjQgT1BB
TSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAo
MS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQv
cGFja2FnZXMvZ2l0L2dpdC4xLjQuNS9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2Vu
dCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtb
MzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGdpdC4xLjQuNSBPUEFNIGZpbGUs
IHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkg
aXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdl
cy9naXQvZ2l0LjEuNC42L29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNp
b24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FS
TklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgZ2l0LjEuNC42IE9QQU0gZmlsZSwgc2tpcHBp
bmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3Qg
cmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2dpdC9n
aXQuMS40Ljcvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQg
bGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtb
bSBFcnJvcnMgd2hpbGUgcGFyc2luZyBnaXQuMS40LjcgT1BBTSBmaWxlLCBza2lwcGluZy4NChtb
MzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQg
ZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvZ2l0L2dpdC4xLjQu
OC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAx
LjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9y
cyB3aGlsZSBwYXJzaW5nIGdpdC4xLjQuOCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJS
T1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2gg
dG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9naXQvZ2l0LjEuNC45L29wYW0u
IFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8g
cmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxl
IHBhcnNpbmcgZ2l0LjEuNC45IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20g
WW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFk
IH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2dpdC9naXQuMS40LjEwL29wYW0uIFVwZ3Jh
ZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0
aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNp
bmcgZ2l0LjEuNC4xMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIg
dmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5v
cGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9naXQvZ2l0LjEuNC4xMS9vcGFtLiBVcGdyYWRlIE9Q
QU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBm
aWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGdp
dC4xLjQuMTEgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNp
b24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9y
ZXBvL2RlZmF1bHQvcGFja2FnZXMvZ2l0L2dpdC4xLjUuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8g
YSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNv
cnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGdpdC4xLjUu
MCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBP
UEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVm
YXVsdC9wYWNrYWdlcy9naXQvZ2l0LjEuNS4xL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUg
cmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5
Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgZ2l0LjEuNS4xIE9QQU0g
ZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEu
MS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3Bh
Y2thZ2VzL2dpdC9naXQuMS41LjIvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQg
dmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMz
bVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBnaXQuMS41LjIgT1BBTSBmaWxlLCBz
a2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlz
IG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMv
Z2l0L2dpdC4xLjUuMy9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9u
IChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5J
TkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGdpdC4xLjUuMyBPUEFNIGZpbGUsIHNraXBwaW5n
Lg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJl
Y2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9naXQvZ2l0
LjEuNi4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxl
YXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20g
RXJyb3JzIHdoaWxlIHBhcnNpbmcgZ2l0LjEuNi4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMx
bVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVu
b3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2dpdC9naXQuMS42LjEv
b3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4y
KSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMg
d2hpbGUgcGFyc2luZyBnaXQuMS42LjEgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9S
XRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRv
IHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvZ2l0L2dpdC4xLjYuMi9vcGFtLiBV
cGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJl
YWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBw
YXJzaW5nIGdpdC4xLjYuMiBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlv
dXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+
Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9naXQvZ2l0LjEuNy4wL29wYW0uIFVwZ3JhZGUg
T1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlz
IGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcg
Z2l0LjEuNy4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJz
aW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0v
cmVwby9kZWZhdWx0L3BhY2thZ2VzL2dpdC9naXQuMS43LjEvb3BhbS4gVXBncmFkZSBPUEFNIHRv
IGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBj
b3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBnaXQuMS43
LjEgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2Yg
T1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2Rl
ZmF1bHQvcGFja2FnZXMvZ2l0aHViL2dpdGh1Yi4wLjkuMy9vcGFtLiBVcGdyYWRlIE9QQU0gdG8g
YSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNv
cnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGdpdGh1Yi4w
LjkuMyBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBv
ZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8v
ZGVmYXVsdC9wYWNrYWdlcy9naXRodWIvZ2l0aHViLjAuOS40L29wYW0uIFVwZ3JhZGUgT1BBTSB0
byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUg
Y29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgZ2l0aHVi
LjAuOS40IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9u
IG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVw
by9kZWZhdWx0L3BhY2thZ2VzL2dpdGh1Yi9naXRodWIuMS4wLjAvb3BhbS4gVXBncmFkZSBPUEFN
IHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmls
ZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBnaXRo
dWIuMS4wLjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNp
b24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9y
ZXBvL2RlZmF1bHQvcGFja2FnZXMvZ2xpY2FsL2dsaWNhbC4wLjAuNC9vcGFtLiBVcGdyYWRlIE9Q
QU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBm
aWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGds
aWNhbC4wLjAuNCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVy
c2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFt
L3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9nbXAteGVuL2dtcC14ZW4uNi4wLjAvb3BhbS4gVXBncmFk
ZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRo
aXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2lu
ZyBnbXAteGVuLjYuMC4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91
ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4v
Lm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2dudXBsb3QvZ251cGxvdC4wLjUuMC9vcGFtLiBV
cGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJl
YWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBw
YXJzaW5nIGdudXBsb3QuMC41LjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtb
bSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJl
YWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvZ29vZ2xlLWRyaXZlLW9jYW1sZnVzZS9n
b29nbGUtZHJpdmUtb2NhbWxmdXNlLjAuNS4xNy9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3Jl
IHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3Rs
eS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGdvb2dsZS1kcml2ZS1v
Y2FtbGZ1c2UuMC41LjE3IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91
ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4v
Lm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2dvb2dsZS1kcml2ZS1vY2FtbGZ1c2UvZ29vZ2xl
LWRyaXZlLW9jYW1sZnVzZS4wLjUuMTgvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNl
bnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQob
WzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBnb29nbGUtZHJpdmUtb2NhbWxm
dXNlLjAuNS4xOCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVy
c2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFt
L3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9ncHIvZ3ByLjEuMi4xL29wYW0uIFVwZ3JhZGUgT1BBTSB0
byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUg
Y29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgZ3ByLjEu
Mi4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9m
IE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9k
ZWZhdWx0L3BhY2thZ2VzL2dweC9ncHguMS4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUg
cmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5
Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgZ3B4LjEuMCBPUEFNIGZp
bGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEu
MSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNr
YWdlcy9ncHgvZ3B4LjEuMC4xL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZl
cnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21b
V0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgZ3B4LjEuMC4xIE9QQU0gZmlsZSwgc2tp
cHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBu
b3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2dw
eC9ncHguMS4wLjIvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAo
YXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5H
XRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBncHguMS4wLjIgT1BBTSBmaWxlLCBza2lwcGluZy4N
ChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNl
bnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvZ3B4L2dweC4x
LjEuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFz
dCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVy
cm9ycyB3aGlsZSBwYXJzaW5nIGdweC4xLjEuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1b
RVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91
Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9ncHgvZ3B4LjEuMS4xL29w
YW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikg
dG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdo
aWxlIHBhcnNpbmcgZ3B4LjEuMS4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0b
W20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byBy
ZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2dyaWIvZ3JpYi4wLjExLjAvb3BhbS4g
VXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byBy
ZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUg
cGFyc2luZyBncmliLjAuMTEuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1tt
IFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVh
ZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9nc2wvZ3NsLjEuMTguMi9vcGFtLiBVcGdy
YWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQg
dGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJz
aW5nIGdzbC4xLjE4LjIgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3Vy
IHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8u
b3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvZ3NsL2dzbC4xLjE4LjMvb3BhbS4gVXBncmFkZSBP
UEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMg
ZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBn
c2wuMS4xOC4zIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJz
aW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0v
cmVwby9kZWZhdWx0L3BhY2thZ2VzL2dzbC9nc2wuMS4xOC40L29wYW0uIFVwZ3JhZGUgT1BBTSB0
byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUg
Y29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgZ3NsLjEu
MTguNCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBv
ZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8v
ZGVmYXVsdC9wYWNrYWdlcy9nc2wvZ3NsLjEuMTguNS9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBt
b3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJl
Y3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGdzbC4xLjE4LjUg
T1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BB
TSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1
bHQvcGFja2FnZXMvZ3N0cmVhbWVyL2dzdHJlYW1lci4wLjIuMS9vcGFtLiBVcGdyYWRlIE9QQU0g
dG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxl
IGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGdzdHJl
YW1lci4wLjIuMSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVy
c2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFt
L3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9oYXJkY2FtbC9oYXJkY2FtbC4xLjEuMC9vcGFtLiBVcGdy
YWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQg
dGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJz
aW5nIGhhcmRjYW1sLjEuMS4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20g
WW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFk
IH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2hhcmRjYW1sLWV4YW1wbGVzL2hhcmRjYW1s
LWV4YW1wbGVzLjAuMS4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNp
b24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FS
TklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgaGFyZGNhbWwtZXhhbXBsZXMuMC4xLjAgT1BB
TSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAo
MS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQv
cGFja2FnZXMvaGFyZGNhbWwtZXhhbXBsZXMvaGFyZGNhbWwtZXhhbXBsZXMuMC4yL29wYW0uIFVw
Z3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVh
ZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBh
cnNpbmcgaGFyZGNhbWwtZXhhbXBsZXMuMC4yIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtF
UlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3Vn
aCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2hhcmRjYW1sLXJlZWRzb2xv
bW9uL2hhcmRjYW1sLXJlZWRzb2xvbW9uLjAuMS9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3Jl
IHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3Rs
eS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGhhcmRjYW1sLXJlZWRz
b2xvbW9uLjAuMSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVy
c2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFt
L3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9oYXJkY2FtbC1yZWVkc29sb21vbi9oYXJkY2FtbC1yZWVk
c29sb21vbi4wLjIvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAo
YXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5H
XRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBoYXJkY2FtbC1yZWVkc29sb21vbi4wLjIgT1BBTSBm
aWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4x
LjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFj
a2FnZXMvaGFyZGNhbWwtdnBpL2hhcmRjYW1sLXZwaS4wLjEuMC9vcGFtLiBVcGdyYWRlIE9QQU0g
dG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxl
IGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGhhcmRj
YW1sLXZwaS4wLjEuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIg
dmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5v
cGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9oYXJkY2FtbC12cGkvaGFyZGNhbWwtdnBpLjAuMi9v
cGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIp
IHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3
aGlsZSBwYXJzaW5nIGhhcmRjYW1sLXZwaS4wLjIgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFt
W0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5v
dWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvaGFyZGNhbWwtd2F2ZXRl
cm0vaGFyZGNhbWwtd2F2ZXRlcm0uMC4xLjAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSBy
ZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHku
DQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBoYXJkY2FtbC13YXZldGVy
bS4wLjEuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lv
biBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3Jl
cG8vZGVmYXVsdC9wYWNrYWdlcy9oYXNoY29ucy9oYXNoY29ucy4xLjAuMS9vcGFtLiBVcGdyYWRl
IE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhp
cyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5n
IGhhc2hjb25zLjEuMC4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91
ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4v
Lm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2hkZjUvaGRmNS4wLjEvb3BhbS4gVXBncmFkZSBP
UEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMg
ZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBo
ZGY1LjAuMSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lv
biBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3Jl
cG8vZGVmYXVsdC9wYWNrYWdlcy9oZXB0YWdvbi9oZXB0YWdvbi4xLjAxLjAwL29wYW0uIFVwZ3Jh
ZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0
aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNp
bmcgaGVwdGFnb24uMS4wMS4wMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1tt
IFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVh
ZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9oZXJlbGliL2hlcmVsaWIuMTEyLjM1LjAw
L29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEu
MikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3Jz
IHdoaWxlIHBhcnNpbmcgaGVyZWxpYi4xMTIuMzUuMDAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtb
MzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQg
ZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvaGV2ZWEvaGV2ZWEu
Mi4yNS9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFz
dCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVy
cm9ycyB3aGlsZSBwYXJzaW5nIGhldmVhLjIuMjUgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFt
W0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5v
dWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvaGV4L2hleC4wLjIuMC9v
cGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIp
IHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3
aGlsZSBwYXJzaW5nIGhleC4wLjIuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1Jd
G1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8g
cmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9odW1hbmUtcmUvaHVtYW5lLXJlLjAu
MS4xL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0
IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJy
b3JzIHdoaWxlIHBhcnNpbmcgaHVtYW5lLXJlLjAuMS4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQob
WzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50
IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2lieC9pYnguMC44
LjAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3Qg
MS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJv
cnMgd2hpbGUgcGFyc2luZyBpYnguMC44LjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VS
Uk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdo
IHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvaW1hcC9pbWFwLjEuMC9vcGFt
LiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRv
IHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGls
ZSBwYXJzaW5nIGltYXAuMS4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20g
WW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFk
IH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2ltYXAvaW1hcC4xLjEuMC9vcGFtLiBVcGdy
YWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQg
dGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJz
aW5nIGltYXAuMS4xLjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3Vy
IHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8u
b3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvaW1hcC9pbWFwLjEuMS4xL29wYW0uIFVwZ3JhZGUg
T1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlz
IGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcg
aW1hcC4xLjEuMSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVy
c2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFt
L3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9pbWFwbGV0LWx3dC9pbWFwbGV0LWx3dC4wLjEuMi9vcGFt
LiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRv
IHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGls
ZSBwYXJzaW5nIGltYXBsZXQtbHd0LjAuMS4yIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtF
UlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3Vn
aCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2ltYXBsZXQtbHd0L2ltYXBs
ZXQtbHd0LjAuMS4zL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24g
KGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklO
R10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgaW1hcGxldC1sd3QuMC4xLjMgT1BBTSBmaWxlLCBz
a2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlz
IG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMv
aW1hcGxldC1sd3QvaW1hcGxldC1sd3QuMC4xLjQvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9y
ZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0
bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBpbWFwbGV0LWx3dC4w
LjEuNCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBv
ZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8v
ZGVmYXVsdC9wYWNrYWdlcy9pbWFwbGV0LWx3dC9pbWFwbGV0LWx3dC4wLjEuOC9vcGFtLiBVcGdy
YWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQg
dGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJz
aW5nIGltYXBsZXQtbHd0LjAuMS44IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0b
W20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byBy
ZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2ltYXBsZXQtbHd0L2ltYXBsZXQtbHd0
LjAuMS45L29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxl
YXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20g
RXJyb3JzIHdoaWxlIHBhcnNpbmcgaW1hcGxldC1sd3QuMC4xLjkgT1BBTSBmaWxlLCBza2lwcGlu
Zy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCBy
ZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvaW1hcGxl
dC1sd3QvaW1hcGxldC1sd3QuMC4xLjEwL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVj
ZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0K
G1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgaW1hcGxldC1sd3QuMC4xLjEw
IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9Q
QU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZh
dWx0L3BhY2thZ2VzL2ltYXBsZXQtbHd0L2ltYXBsZXQtbHd0LjAuMS4xMS9vcGFtLiBVcGdyYWRl
IE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhp
cyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5n
IGltYXBsZXQtbHd0LjAuMS4xMSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1tt
IFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVh
ZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9pbWFwbGV0LWx3dC9pbWFwbGV0LWx3dC4w
LjEuMTIvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVh
c3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBF
cnJvcnMgd2hpbGUgcGFyc2luZyBpbWFwbGV0LWx3dC4wLjEuMTIgT1BBTSBmaWxlLCBza2lwcGlu
Zy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCBy
ZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvaW1hcGxl
dC1sd3QvaW1hcGxldC1sd3QuMC4xLjEzL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVj
ZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0K
G1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgaW1hcGxldC1sd3QuMC4xLjEz
IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9Q
QU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZh
dWx0L3BhY2thZ2VzL2ltYXBsZXQtbHd0L2ltYXBsZXQtbHd0LjAuMS4xNC9vcGFtLiBVcGdyYWRl
IE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhp
cyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5n
IGltYXBsZXQtbHd0LjAuMS4xNCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1tt
IFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVh
ZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9pbmNyZW1lbnRhbC9pbmNyZW1lbnRhbC4x
MTIuMzUuMDAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQg
bGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtb
bSBFcnJvcnMgd2hpbGUgcGFyc2luZyBpbmNyZW1lbnRhbC4xMTIuMzUuMDAgT1BBTSBmaWxlLCBz
a2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlz
IG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMv
aW5jcmVtZW50YWwvaW5jcmVtZW50YWwuMTEzLjAwLjAwL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBh
IG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29y
cmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgaW5jcmVtZW50
YWwuMTEzLjAwLjAwIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2
ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9w
YW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2lvLXBhZ2UvaW8tcGFnZS4xLjIuMC9vcGFtLiBVcGdy
YWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQg
dGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJz
aW5nIGlvLXBhZ2UuMS4yLjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZ
b3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQg
fi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvaW8tcGFnZS9pby1wYWdlLjEuMy4wL29wYW0u
IFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8g
cmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxl
IHBhcnNpbmcgaW8tcGFnZS4xLjMuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1Jd
G1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8g
cmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9pby1wYWdlL2lvLXBhZ2UuMS40LjAv
b3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4y
KSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMg
d2hpbGUgcGFyc2luZyBpby1wYWdlLjEuNC4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtF
UlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3Vn
aCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2lvLXBhZ2UvaW8tcGFnZS4x
LjUuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFz
dCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVy
cm9ycyB3aGlsZSBwYXJzaW5nIGlvLXBhZ2UuMS41LjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtb
MzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQg
ZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvaW8tcGFnZS9pby1w
YWdlLjEuNS4xL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0
IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10b
W20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgaW8tcGFnZS4xLjUuMSBPUEFNIGZpbGUsIHNraXBwaW5n
Lg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJl
Y2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9pb2NhbWwv
aW9jYW1sLjAuNC43L29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24g
KGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklO
R10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgaW9jYW1sLjAuNC43IE9QQU0gZmlsZSwgc2tpcHBp
bmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3Qg
cmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2lwYWRk
ci9pcGFkZHIuMi42LjAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lv
biAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJO
SU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBpcGFkZHIuMi42LjAgT1BBTSBmaWxlLCBza2lw
cGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5v
dCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvaXBh
ZGRyL2lwYWRkci4yLjYuMS9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJz
aW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dB
Uk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGlwYWRkci4yLjYuMSBPUEFNIGZpbGUsIHNr
aXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMg
bm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9p
cm1pbi9pcm1pbi4wLjcuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJz
aW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dB
Uk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGlybWluLjAuNy4wIE9QQU0gZmlsZSwgc2tp
cHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBu
b3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2ly
bWluL2lybWluLjAuOC4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNp
b24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FS
TklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgaXJtaW4uMC44LjAgT1BBTSBmaWxlLCBza2lw
cGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5v
dCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvaXJt
aW4vaXJtaW4uMC44LjEvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lv
biAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJO
SU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBpcm1pbi4wLjguMSBPUEFNIGZpbGUsIHNraXBw
aW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90
IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9pcm1p
bi9pcm1pbi4wLjguMi9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9u
IChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5J
TkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGlybWluLjAuOC4yIE9QQU0gZmlsZSwgc2tpcHBp
bmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3Qg
cmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2lybWlu
L2lybWluLjAuOC4zL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24g
KGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklO
R10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgaXJtaW4uMC44LjMgT1BBTSBmaWxlLCBza2lwcGlu
Zy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCBy
ZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvaXJtaW4v
aXJtaW4uMC45LjAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAo
YXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5H
XRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBpcm1pbi4wLjkuMCBPUEFNIGZpbGUsIHNraXBwaW5n
Lg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJl
Y2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9pcm1pbi9p
cm1pbi4wLjkuMS9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChh
dCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkdd
G1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGlybWluLjAuOS4xIE9QQU0gZmlsZSwgc2tpcHBpbmcu
DQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVj
ZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2lybWluL2ly
bWluLjAuOS4yL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0
IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10b
W20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgaXJtaW4uMC45LjIgT1BBTSBmaWxlLCBza2lwcGluZy4N
ChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNl
bnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvaXJtaW4vaXJt
aW4uMC45LjMvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQg
bGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtb
bSBFcnJvcnMgd2hpbGUgcGFyc2luZyBpcm1pbi4wLjkuMyBPUEFNIGZpbGUsIHNraXBwaW5nLg0K
G1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2Vu
dCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9pcm1pbi9pcm1p
bi4wLjkuNC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBs
ZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1tt
IEVycm9ycyB3aGlsZSBwYXJzaW5nIGlybWluLjAuOS40IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQob
WzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50
IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2lybWluL2lybWlu
LjAuOS41L29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxl
YXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20g
RXJyb3JzIHdoaWxlIHBhcnNpbmcgaXJtaW4uMC45LjUgT1BBTSBmaWxlLCBza2lwcGluZy4NChtb
MzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQg
ZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvaXJtaW4vaXJtaW4u
MC45LjYvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVh
c3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBF
cnJvcnMgd2hpbGUgcGFyc2luZyBpcm1pbi4wLjkuNiBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1sz
MW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBl
bm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9pcm1pbi9pcm1pbi4w
LjkuNy9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFz
dCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVy
cm9ycyB3aGlsZSBwYXJzaW5nIGlybWluLjAuOS43IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMx
bVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVu
b3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2lybWluL2lybWluLjAu
OS44L29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0
IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJy
b3JzIHdoaWxlIHBhcnNpbmcgaXJtaW4uMC45LjggT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFt
W0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5v
dWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvaXJtaW4vaXJtaW4uMC45
Ljkvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3Qg
MS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJv
cnMgd2hpbGUgcGFyc2luZyBpcm1pbi4wLjkuOSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1b
RVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91
Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9pcm1pbi1pbmRleGVkZGIv
aXJtaW4taW5kZXhlZGRiLjAuMS9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2
ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNt
W1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGlybWluLWluZGV4ZWRkYi4wLjEgT1BB
TSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAo
MS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQv
cGFja2FnZXMvaXJtaW4tdW5peC9pcm1pbi11bml4LjAuOS40L29wYW0uIFVwZ3JhZGUgT1BBTSB0
byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUg
Y29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgaXJtaW4t
dW5peC4wLjkuNCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVy
c2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFt
L3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9pcm1pbi11bml4L2lybWluLXVuaXguMC45Ljkvb3BhbS4g
VXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byBy
ZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUg
cGFyc2luZyBpcm1pbi11bml4LjAuOS45IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJP
Ul0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0
byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL0lTTzg2MDEvSVNPODYwMS4wLjEu
Mi9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAx
LjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9y
cyB3aGlsZSBwYXJzaW5nIElTTzg2MDEuMC4xLjIgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFt
W0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5v
dWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvSVNPODYwMS9JU084NjAx
LjAuMi4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxl
YXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20g
RXJyb3JzIHdoaWxlIHBhcnNpbmcgSVNPODYwMS4wLjIuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0K
G1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2Vu
dCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9JU084NjAxL0lT
Tzg2MDEuMC4yLjIvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAo
YXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5H
XRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBJU084NjAxLjAuMi4yIE9QQU0gZmlsZSwgc2tpcHBp
bmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3Qg
cmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL0lTTzg2
MDEvSVNPODYwMS4wLjIuMy9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJz
aW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dB
Uk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIElTTzg2MDEuMC4yLjMgT1BBTSBmaWxlLCBz
a2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlz
IG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMv
SVNPODYwMS9JU084NjAxLjAuMi40L29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50
IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1sz
M21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgSVNPODYwMS4wLjIuNCBPUEFNIGZp
bGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEu
MSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNr
YWdlcy9pdnkvaXZ5LjEuMy4xL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZl
cnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21b
V0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgaXZ5LjEuMy4xIE9QQU0gZmlsZSwgc2tp
cHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBu
b3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2ph
dmFsaWIvamF2YWxpYi4yLjMuMS9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2
ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNt
W1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGphdmFsaWIuMi4zLjEgT1BBTSBmaWxl
LCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEp
IGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2Fn
ZXMvamVuZ2EvamVuZ2EuMTEyLjM1LjAwL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVj
ZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0K
G1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgamVuZ2EuMTEyLjM1LjAwIE9Q
QU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0g
KDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0
L3BhY2thZ2VzL2plbmdhL2plbmdhLjExMy4wMC4wMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBt
b3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJl
Y3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGplbmdhLjExMy4w
MC4wMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBv
ZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8v
ZGVmYXVsdC9wYWNrYWdlcy9qaW5nb28vamluZ29vLjEuMi45L29wYW0uIFVwZ3JhZGUgT1BBTSB0
byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUg
Y29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgamluZ29v
LjEuMi45IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9u
IG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVw
by9kZWZhdWx0L3BhY2thZ2VzL2ppdHN1L2ppdHN1LjAuMi9vcGFtLiBVcGdyYWRlIE9QQU0gdG8g
YSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNv
cnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGppdHN1LjAu
MiBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBP
UEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVm
YXVsdC9wYWNrYWdlcy9qc19vZl9vY2FtbC9qc19vZl9vY2FtbC4xLjIvb3BhbS4gVXBncmFkZSBP
UEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMg
ZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBq
c19vZl9vY2FtbC4xLjIgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3Vy
IHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8u
b3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvanNfb2Zfb2NhbWwvanNfb2Zfb2NhbWwuMS4zLjEv
b3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4y
KSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMg
d2hpbGUgcGFyc2luZyBqc19vZl9vY2FtbC4xLjMuMSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1sz
MW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBl
bm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9qc19vZl9vY2FtbC9q
c19vZl9vY2FtbC4xLjMuMi9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJz
aW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dB
Uk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGpzX29mX29jYW1sLjEuMy4yIE9QQU0gZmls
ZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4x
KSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2th
Z2VzL2pzX29mX29jYW1sL2pzX29mX29jYW1sLjEuNC4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBh
IG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29y
cmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcganNfb2Zfb2Nh
bWwuMS40LjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNp
b24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9y
ZXBvL2RlZmF1bHQvcGFja2FnZXMvanNfb2Zfb2NhbWwvanNfb2Zfb2NhbWwuMi4wL29wYW0uIFVw
Z3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVh
ZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBh
cnNpbmcganNfb2Zfb2NhbWwuMi4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0b
W20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byBy
ZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2pzX29mX29jYW1sL2pzX29mX29jYW1s
LjIuMS9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFz
dCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVy
cm9ycyB3aGlsZSBwYXJzaW5nIGpzX29mX29jYW1sLjIuMSBPUEFNIGZpbGUsIHNraXBwaW5nLg0K
G1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2Vu
dCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9qc19vZl9vY2Ft
bC9qc19vZl9vY2FtbC4yLjIvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVy
c2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtX
QVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBqc19vZl9vY2FtbC4yLjIgT1BBTSBmaWxl
LCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEp
IGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2Fn
ZXMvanNfb2Zfb2NhbWwvanNfb2Zfb2NhbWwuMi4zL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1v
cmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVj
dGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcganNfb2Zfb2NhbWwu
Mi4zIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9m
IE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9k
ZWZhdWx0L3BhY2thZ2VzL2pzX29mX29jYW1sL2pzX29mX29jYW1sLjIuNC9vcGFtLiBVcGdyYWRl
IE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhp
cyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5n
IGpzX29mX29jYW1sLjIuNCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlv
dXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+
Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9qc19vZl9vY2FtbC9qc19vZl9vY2FtbC4yLjQu
MS9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAx
LjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9y
cyB3aGlsZSBwYXJzaW5nIGpzX29mX29jYW1sLjIuNC4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQob
WzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50
IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2pzX29mX29jYW1s
L2pzX29mX29jYW1sLjIuNS9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJz
aW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dB
Uk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGpzX29mX29jYW1sLjIuNSBPUEFNIGZpbGUs
IHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkg
aXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdl
cy9qc19vZl9vY2FtbC9qc19vZl9vY2FtbC4yLjYvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9y
ZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0
bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBqc19vZl9vY2FtbC4y
LjYgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2Yg
T1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2Rl
ZmF1bHQvcGFja2FnZXMva2Fma2Eva2Fma2EuMC4yL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1v
cmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVj
dGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcga2Fma2EuMC4yIE9Q
QU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0g
KDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0
L3BhY2thZ2VzL0thU2ltL0thU2ltLjMuNS4xNDExMTIvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEg
bW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3Jy
ZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBLYVNpbS4zLjUu
MTQxMTEyIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9u
IG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVw
by9kZWZhdWx0L3BhY2thZ2VzL2tldHJldy9rZXRyZXcuMS4xLjEvb3BhbS4gVXBncmFkZSBPUEFN
IHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmls
ZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBrZXRy
ZXcuMS4xLjEgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNp
b24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9y
ZXBvL2RlZmF1bHQvcGFja2FnZXMva2V0cmV3L2tldHJldy4yLjAuMC9vcGFtLiBVcGdyYWRlIE9Q
QU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBm
aWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGtl
dHJldy4yLjAuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVy
c2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFt
L3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9raW5ldGljLWNsaWVudC9raW5ldGljLWNsaWVudC4wLjAu
MS9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAx
LjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9y
cyB3aGlsZSBwYXJzaW5nIGtpbmV0aWMtY2xpZW50LjAuMC4xIE9QQU0gZmlsZSwgc2tpcHBpbmcu
DQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVj
ZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2tpbmV0aWMt
Y2xpZW50L2tpbmV0aWMtY2xpZW50LjAuMC4zL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUg
cmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5
Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcga2luZXRpYy1jbGllbnQu
MC4wLjMgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24g
b2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBv
L2RlZmF1bHQvcGFja2FnZXMva2luZXRpYy1jbGllbnQva2luZXRpYy1jbGllbnQuMC4wLjQvb3Bh
bS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0
byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hp
bGUgcGFyc2luZyBraW5ldGljLWNsaWVudC4wLjAuNCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1sz
MW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBl
bm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9raW5ldGljLWNsaWVu
dC9raW5ldGljLWNsaWVudC4wLjAuNS9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2Vu
dCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtb
MzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGtpbmV0aWMtY2xpZW50LjAuMC41
IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9Q
QU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZh
dWx0L3BhY2thZ2VzL2tpbmV0aWMtY2xpZW50L2tpbmV0aWMtY2xpZW50LjAuMC42L29wYW0uIFVw
Z3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVh
ZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBh
cnNpbmcga2luZXRpYy1jbGllbnQuMC4wLjYgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VS
Uk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdo
IHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvbGFjYW1sL2xhY2FtbC43LjIu
MC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAx
LjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9y
cyB3aGlsZSBwYXJzaW5nIGxhY2FtbC43LjIuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1b
RVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91
Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9sYWNhbWwvbGFjYW1sLjcu
Mi4xL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0
IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJy
b3JzIHdoaWxlIHBhcnNpbmcgbGFjYW1sLjcuMi4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMx
bVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVu
b3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2xhY2FtbC9sYWNhbWwu
Ny4yLjIvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVh
c3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBF
cnJvcnMgd2hpbGUgcGFyc2luZyBsYWNhbWwuNy4yLjIgT1BBTSBmaWxlLCBza2lwcGluZy4NChtb
MzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQg
ZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvbGFjYW1sL2xhY2Ft
bC43LjIuMy9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBs
ZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1tt
IEVycm9ycyB3aGlsZSBwYXJzaW5nIGxhY2FtbC43LjIuMyBPUEFNIGZpbGUsIHNraXBwaW5nLg0K
G1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2Vu
dCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9sYWNhbWwvbGFj
YW1sLjcuMi40L29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0
IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10b
W20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgbGFjYW1sLjcuMi40IE9QQU0gZmlsZSwgc2tpcHBpbmcu
DQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVj
ZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2xhY2FtbC9s
YWNhbWwuNy4yLjUvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAo
YXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5H
XRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBsYWNhbWwuNy4yLjUgT1BBTSBmaWxlLCBza2lwcGlu
Zy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCBy
ZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvbGFjYW1s
L2xhY2FtbC43LjIuNi9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9u
IChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5J
TkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGxhY2FtbC43LjIuNiBPUEFNIGZpbGUsIHNraXBw
aW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90
IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9sYWRz
cGEvbGFkc3BhLjAuMS41L29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNp
b24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FS
TklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgbGFkc3BhLjAuMS41IE9QQU0gZmlsZSwgc2tp
cHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBu
b3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2xh
bWJkYS10ZXJtL2xhbWJkYS10ZXJtLjEuOS9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJl
Y2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4N
ChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGxhbWJkYS10ZXJtLjEuOSBP
UEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFN
ICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVs
dC9wYWNrYWdlcy9sYW1iZG9jL2xhbWJkb2MuMS4wLWJldGEyL29wYW0uIFVwZ3JhZGUgT1BBTSB0
byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUg
Y29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgbGFtYmRv
Yy4xLjAtYmV0YTIgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZl
cnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3Bh
bS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvbGFtYmRvYy9sYW1iZG9jLjEuMC1iZXRhMy9vcGFtLiBV
cGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJl
YWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBw
YXJzaW5nIGxhbWJkb2MuMS4wLWJldGEzIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJP
Ul0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0
byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2xhbWJkb2MvbGFtYmRvYy4xLjAt
YmV0YTQvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVh
c3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBF
cnJvcnMgd2hpbGUgcGFyc2luZyBsYW1iZG9jLjEuMC1iZXRhNCBPUEFNIGZpbGUsIHNraXBwaW5n
Lg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJl
Y2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9sYW1lL2xh
bWUuMC4zLjMvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQg
bGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtb
bSBFcnJvcnMgd2hpbGUgcGFyc2luZyBsYW1lLjAuMy4zIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQob
WzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50
IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2xhc3RmbS9sYXN0
Zm0uMC4zLjEvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQg
bGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtb
bSBFcnJvcnMgd2hpbGUgcGFyc2luZyBsYXN0Zm0uMC4zLjEgT1BBTSBmaWxlLCBza2lwcGluZy4N
ChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNl
bnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvbGJmZ3MvbGJm
Z3MuMC44LjYvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQg
bGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtb
bSBFcnJvcnMgd2hpbGUgcGFyc2luZyBsYmZncy4wLjguNiBPUEFNIGZpbGUsIHNraXBwaW5nLg0K
G1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2Vu
dCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9sYmZncy9sYmZn
cy4wLjguNy9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBs
ZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1tt
IEVycm9ycyB3aGlsZSBwYXJzaW5nIGxiZmdzLjAuOC43IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQob
WzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50
IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2xlbW9uYWRlL2xl
bW9uYWRlLjAuMi4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24g
KGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklO
R10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgbGVtb25hZGUuMC4yLjAgT1BBTSBmaWxlLCBza2lw
cGluZy4NChtbMzFtW0VSUk9SXRtbbSBGaWxlICIvaG9tZS9sYXN5YS8ub3BhbS9yZXBvL2RlZmF1
bHQvcGFja2FnZXMvbGVucy9sZW5zLjEuMC4wL29wYW0iLCBsaW5lIDQsIGNoYXJhY3RlciAyNS0y
NjogcGFyc2UgZXJyb3IuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBs
ZW5zLjEuMC4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJz
aW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0v
cmVwby9kZWZhdWx0L3BhY2thZ2VzL2xlbnMvbGVucy4xLjAuMi9vcGFtLiBVcGdyYWRlIE9QQU0g
dG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxl
IGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGxlbnMu
MS4wLjIgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24g
b2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBv
L2RlZmF1bHQvcGFja2FnZXMvbGV2ZWxkYi9sZXZlbGRiLjEuMS4wL29wYW0uIFVwZ3JhZGUgT1BB
TSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZp
bGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgbGV2
ZWxkYi4xLjEuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVy
c2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFt
L3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9saWJldmVudC9saWJldmVudC4wLjcuMC9vcGFtLiBVcGdy
YWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQg
dGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJz
aW5nIGxpYmV2ZW50LjAuNy4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20g
WW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFk
IH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2xpYnJhLXRrL2xpYnJhLXRrLjEuMS4yL29w
YW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikg
dG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdo
aWxlIHBhcnNpbmcgbGlicmEtdGsuMS4xLjIgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VS
Uk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdo
IHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvbGlicmVzMy9saWJyZXMzLjEu
MC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAx
LjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9y
cyB3aGlsZSBwYXJzaW5nIGxpYnJlczMuMS4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtF
UlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3Vn
aCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2xpYnJlczMvbGlicmVzMy4x
LjEvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3Qg
MS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJv
cnMgd2hpbGUgcGFyc2luZyBsaWJyZXMzLjEuMSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1b
RVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91
Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9saWxpcy9saWxpcy4wLjIu
MS9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAx
LjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9y
cyB3aGlsZSBwYXJzaW5nIGxpbGlzLjAuMi4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtF
UlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3Vn
aCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2xpcHN1bS9saXBzdW0uMC4y
L29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEu
MikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3Jz
IHdoaWxlIHBhcnNpbmcgbGlwc3VtLjAuMiBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szM21bV0FS
TklOR10bW20gaW5zdGFsbCBhbmQgZGV2LXJlcG8gYXJlIHVua25vd24gZmllbGRzIGluIC9ob21l
L2xhc3lhLy5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9saXF1aWRzb2FwL2xpcXVpZHNvYXAu
MS4xLjEvb3BhbTogaXMgeW91ciBPUEFNIHVwLXRvLWRhdGUgPw0KG1szMW1bRVJST1JdG1ttIFlv
dXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+
Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9saXRpb20vbGl0aW9tLjIuMS9vcGFtLiBVcGdy
YWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQg
dGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJz
aW5nIGxpdGlvbS4yLjEgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3Vy
IHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8u
b3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvbGl0aW9tL2xpdGlvbS4zLjAvb3BhbS4gVXBncmFk
ZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRo
aXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2lu
ZyBsaXRpb20uMy4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2
ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9w
YW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2xpdGlvbS9saXRpb20uNC4wL29wYW0uIFVwZ3JhZGUg
T1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlz
IGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcg
bGl0aW9tLjQuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVy
c2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFt
L3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9sbHZtL2xsdm0uMy42L29wYW0uIFVwZ3JhZGUgT1BBTSB0
byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUg
Y29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgbGx2bS4z
LjYgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2Yg
T1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2Rl
ZmF1bHQvcGFja2FnZXMvbGx2bS9sbHZtLjMuNy9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3Jl
IHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3Rs
eS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGxsdm0uMy43IE9QQU0g
ZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEu
MS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3Bh
Y2thZ2VzL2xsdm1ncmFwaC9sbHZtZ3JhcGguMC4xL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1v
cmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVj
dGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgbGx2bWdyYXBoLjAu
MSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBP
UEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVm
YXVsdC9wYWNrYWdlcy9sbHZtZ3JhcGgvbGx2bWdyYXBoLjAuMi9vcGFtLiBVcGdyYWRlIE9QQU0g
dG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxl
IGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGxsdm1n
cmFwaC4wLjIgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNp
b24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9y
ZXBvL2RlZmF1bHQvcGFja2FnZXMvbG8vbG8uMC4xLjEvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEg
bW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3Jy
ZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBsby4wLjEuMSBP
UEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFN
ICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVs
dC9wYWNrYWdlcy9scGQvbHBkLjEuMi4xL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVj
ZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0K
G1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgbHBkLjEuMi4xIE9QQU0gZmls
ZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4x
KSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2th
Z2VzL2x3dC9sd3QuMi40LjYvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVy
c2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtX
QVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBsd3QuMi40LjYgT1BBTSBmaWxlLCBza2lw
cGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5v
dCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvbHd0
L2x3dC4yLjQuNy9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChh
dCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkdd
G1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGx3dC4yLjQuNyBPUEFNIGZpbGUsIHNraXBwaW5nLg0K
G1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2Vu
dCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9sd3QvbHd0LjIu
NC44L29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0
IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJy
b3JzIHdoaWxlIHBhcnNpbmcgbHd0LjIuNC44IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtF
UlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3Vn
aCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2x3dC9sd3QuMi41LjAvb3Bh
bS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0
byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hp
bGUgcGFyc2luZyBsd3QuMi41LjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtb
bSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJl
YWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvbHd0LXBhcmFsbGVsL2x3dC1wYXJhbGxl
bC4wLjEuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBs
ZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1tt
IEVycm9ycyB3aGlsZSBwYXJzaW5nIGx3dC1wYXJhbGxlbC4wLjEuMCBPUEFNIGZpbGUsIHNraXBw
aW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90
IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9sejQv
bHo0LjEuMC4xL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0
IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10b
W20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgbHo0LjEuMC4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQob
WzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50
IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2x6NC9sejQuMS4x
LjAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3Qg
MS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJv
cnMgd2hpbGUgcGFyc2luZyBsejQuMS4xLjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VS
Uk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdo
IHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvbWFjYXF1ZS9tYWNhcXVlLjAu
Ny9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAx
LjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9y
cyB3aGlsZSBwYXJzaW5nIG1hY2FxdWUuMC43IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtF
UlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3Vn
aCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL21hY2FxdWUvbWFjYXF1ZS4w
LjcuMS9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFz
dCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVy
cm9ycyB3aGlsZSBwYXJzaW5nIG1hY2FxdWUuMC43LjEgT1BBTSBmaWxlLCBza2lwcGluZy4NChtb
MzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQg
ZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvbWFjYXF1ZS9tYWNh
cXVlLjAuNy4yL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0
IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10b
W20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgbWFjYXF1ZS4wLjcuMiBPUEFNIGZpbGUsIHNraXBwaW5n
Lg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJl
Y2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9tYWNhcm9v
bnMvbWFjYXJvb25zLjAuMS4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZl
cnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21b
V0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgbWFjYXJvb25zLjAuMS4wIE9QQU0gZmls
ZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4x
KSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2th
Z2VzL21hZC9tYWQuMC40LjUvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVy
c2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtX
QVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBtYWQuMC40LjUgT1BBTSBmaWxlLCBza2lw
cGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5v
dCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvbWFn
aWMtbWltZS9tYWdpYy1taW1lLjEuMC4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVj
ZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0K
G1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgbWFnaWMtbWltZS4xLjAuMCBP
UEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFN
ICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVs
dC9wYWNrYWdlcy9tYXhtaW5kZGIvbWF4bWluZGRiLjAuMy9vcGFtLiBVcGdyYWRlIE9QQU0gdG8g
YSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNv
cnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIG1heG1pbmRk
Yi4wLjMgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24g
b2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBv
L2RlZmF1bHQvcGFja2FnZXMvbWF4bWluZGRiL21heG1pbmRkYi4wLjQvb3BhbS4gVXBncmFkZSBP
UEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMg
ZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBt
YXhtaW5kZGIuMC40IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2
ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9w
YW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL21heG1pbmRkYi9tYXhtaW5kZGIuMC41L29wYW0uIFVw
Z3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVh
ZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBh
cnNpbmcgbWF4bWluZGRiLjAuNSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1tt
IFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVh
ZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9tYXhtaW5kZGIvbWF4bWluZGRiLjAuNi9v
cGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIp
IHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3
aGlsZSBwYXJzaW5nIG1heG1pbmRkYi4wLjYgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VS
Uk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdo
IHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvbWVuaGlyL21lbmhpci4yMDE1
MDkyMS9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFz
dCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVy
cm9ycyB3aGlsZSBwYXJzaW5nIG1lbmhpci4yMDE1MDkyMSBPUEFNIGZpbGUsIHNraXBwaW5nLg0K
G1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2Vu
dCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9tZXJnZS1xdWV1
ZXMvbWVyZ2UtcXVldWVzLjAuMi4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50
IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1sz
M21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgbWVyZ2UtcXVldWVzLjAuMi4wIE9Q
QU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0g
KDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0
L3BhY2thZ2VzL21lcmdlLXJvcGVzL21lcmdlLXJvcGVzLjAuMi4wL29wYW0uIFVwZ3JhZGUgT1BB
TSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZp
bGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgbWVy
Z2Utcm9wZXMuMC4yLjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3Vy
IHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8u
b3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvbWVybGluL21lcmxpbi4yLjEuMC9vcGFtLiBVcGdy
YWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQg
dGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJz
aW5nIG1lcmxpbi4yLjEuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlv
dXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+
Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9tZXJsaW4vbWVybGluLjIuMS4xL29wYW0uIFVw
Z3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVh
ZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBh
cnNpbmcgbWVybGluLjIuMS4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20g
WW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFk
IH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL21lcmxpbi9tZXJsaW4uMi4xLjIvb3BhbS4g
VXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byBy
ZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUg
cGFyc2luZyBtZXJsaW4uMi4xLjIgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtb
bSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJl
YWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvbWVybGluL21lcmxpbi4yLjIvb3BhbS4g
VXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byBy
ZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUg
cGFyc2luZyBtZXJsaW4uMi4yIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20g
WW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFk
IH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL21lc2gvbWVzaC4wLjguNi9vcGFtLiBVcGdy
YWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQg
dGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJz
aW5nIG1lc2guMC44LjYgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3Vy
IHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8u
b3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvbWlrbWF0Y2gvbWlrbWF0Y2guMS4wLjUvb3BhbS4g
VXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byBy
ZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUg
cGFyc2luZyBtaWttYXRjaC4xLjAuNSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1Jd
G1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8g
cmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9taWttYXRjaC9taWttYXRjaC4xLjAu
Ni9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAx
LjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9y
cyB3aGlsZSBwYXJzaW5nIG1pa21hdGNoLjEuMC42IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMx
bVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVu
b3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL21pa21hdGNoL21pa21h
dGNoLjEuMC43L29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0
IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10b
W20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgbWlrbWF0Y2guMS4wLjcgT1BBTSBmaWxlLCBza2lwcGlu
Zy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCBy
ZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvbWlrbWF0
Y2gvbWlrbWF0Y2guMS4wLjgvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVy
c2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtX
QVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBtaWttYXRjaC4xLjAuOCBPUEFNIGZpbGUs
IHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkg
aXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdl
cy9taW5kc3Rvcm0vbWluZHN0b3JtLjAuNS40L29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUg
cmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5
Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgbWluZHN0b3JtLjAuNS40
IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9Q
QU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZh
dWx0L3BhY2thZ2VzL21pbmRzdG9ybS9taW5kc3Rvcm0uMC42L29wYW0uIFVwZ3JhZGUgT1BBTSB0
byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUg
Y29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgbWluZHN0
b3JtLjAuNiBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lv
biBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3Jl
cG8vZGVmYXVsdC9wYWNrYWdlcy9taW5pbGlnaHQvbWluaWxpZ2h0LjEuNi9vcGFtLiBVcGdyYWRl
IE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhp
cyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5n
IG1pbmlsaWdodC4xLjYgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3Vy
IHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8u
b3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvbWluaW9zLXhlbi9taW5pb3MteGVuLjAuNy9vcGFt
LiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRv
IHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGls
ZSBwYXJzaW5nIG1pbmlvcy14ZW4uMC43IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJP
Ul0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0
byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL21pcmFnZS9taXJhZ2UuMi40LjAv
b3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4y
KSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMg
d2hpbGUgcGFyc2luZyBtaXJhZ2UuMi40LjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VS
Uk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdo
IHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvbWlyYWdlL21pcmFnZS4yLjUu
MC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAx
LjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9y
cyB3aGlsZSBwYXJzaW5nIG1pcmFnZS4yLjUuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1b
RVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91
Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9taXJhZ2UvbWlyYWdlLjIu
Ni4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0
IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJy
b3JzIHdoaWxlIHBhcnNpbmcgbWlyYWdlLjIuNi4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMx
bVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVu
b3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL21pcmFnZS9taXJhZ2Uu
Mi42LjEvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVh
c3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBF
cnJvcnMgd2hpbGUgcGFyc2luZyBtaXJhZ2UuMi42LjEgT1BBTSBmaWxlLCBza2lwcGluZy4NChtb
MzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQg
ZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvbWlyYWdlLWJsb2Nr
LWNjbS9taXJhZ2UtYmxvY2stY2NtLjEuMC4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUg
cmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5
Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgbWlyYWdlLWJsb2NrLWNj
bS4xLjAuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lv
biBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3Jl
cG8vZGVmYXVsdC9wYWNrYWdlcy9taXJhZ2UtYmxvY2stdW5peC9taXJhZ2UtYmxvY2stdW5peC4x
LjIuMi9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFz
dCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVy
cm9ycyB3aGlsZSBwYXJzaW5nIG1pcmFnZS1ibG9jay11bml4LjEuMi4yIE9QQU0gZmlsZSwgc2tp
cHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBu
b3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL21p
cmFnZS1ibG9jay11bml4L21pcmFnZS1ibG9jay11bml4LjIuMC4wL29wYW0uIFVwZ3JhZGUgT1BB
TSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZp
bGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgbWly
YWdlLWJsb2NrLXVuaXguMi4wLjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtb
bSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJl
YWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvbWlyYWdlLWJsb2NrLXhlbi9taXJhZ2Ut
YmxvY2steGVuLjEuMy4xL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNp
b24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FS
TklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgbWlyYWdlLWJsb2NrLXhlbi4xLjMuMSBPUEFN
IGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgx
LjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9w
YWNrYWdlcy9taXJhZ2UtYm9vdHZhci14ZW4vbWlyYWdlLWJvb3R2YXIteGVuLjAuMi9vcGFtLiBV
cGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJl
YWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBw
YXJzaW5nIG1pcmFnZS1ib290dmFyLXhlbi4wLjIgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFt
W0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5v
dWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvbWlyYWdlLWJvb3R2YXIt
eGVuL21pcmFnZS1ib290dmFyLXhlbi4wLjMvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSBy
ZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHku
DQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBtaXJhZ2UtYm9vdHZhci14
ZW4uMC4zIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9u
IG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVw
by9kZWZhdWx0L3BhY2thZ2VzL21pcmFnZS1jb25kdWl0L21pcmFnZS1jb25kdWl0LjIuMS4wL29w
YW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikg
dG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdo
aWxlIHBhcnNpbmcgbWlyYWdlLWNvbmR1aXQuMi4xLjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtb
MzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQg
ZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvbWlyYWdlLWNvbmR1
aXQvbWlyYWdlLWNvbmR1aXQuMi4yLjAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNl
bnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQob
WzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBtaXJhZ2UtY29uZHVpdC4yLjIu
MCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBP
UEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVm
YXVsdC9wYWNrYWdlcy9taXJhZ2UtY29uc29sZS9taXJhZ2UtY29uc29sZS4yLjEuMi9vcGFtLiBV
cGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJl
YWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBw
YXJzaW5nIG1pcmFnZS1jb25zb2xlLjIuMS4yIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtF
UlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3Vn
aCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL21pcmFnZS1jb25zb2xlL21p
cmFnZS1jb25zb2xlLjIuMS4zL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZl
cnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21b
V0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgbWlyYWdlLWNvbnNvbGUuMi4xLjMgT1BB
TSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAo
MS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQv
cGFja2FnZXMvbWlyYWdlLWRucy9taXJhZ2UtZG5zLjIuNS4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0
byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUg
Y29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgbWlyYWdl
LWRucy4yLjUuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVy
c2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFt
L3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9taXJhZ2UtZW50cm9weS14ZW4vbWlyYWdlLWVudHJvcHkt
eGVuLjAuMy4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0
IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10b
W20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgbWlyYWdlLWVudHJvcHkteGVuLjAuMy4wIE9QQU0gZmls
ZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4x
KSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2th
Z2VzL21pcmFnZS1mbG93L21pcmFnZS1mbG93LjEuMC4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBh
IG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29y
cmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgbWlyYWdlLWZs
b3cuMS4wLjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNp
b24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9y
ZXBvL2RlZmF1bHQvcGFja2FnZXMvbWlyYWdlLWZsb3cvbWlyYWdlLWZsb3cuMS4wLjEvb3BhbS4g
VXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byBy
ZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUg
cGFyc2luZyBtaXJhZ2UtZmxvdy4xLjAuMSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJS
T1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2gg
dG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9taXJhZ2UtZmxvdy9taXJhZ2Ut
Zmxvdy4xLjAuMi9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChh
dCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkdd
G1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIG1pcmFnZS1mbG93LjEuMC4yIE9QQU0gZmlsZSwgc2tp
cHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBu
b3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL21p
cmFnZS1mbG93L21pcmFnZS1mbG93LjEuMC4zL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUg
cmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5
Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgbWlyYWdlLWZsb3cuMS4w
LjMgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2Yg
T1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2Rl
ZmF1bHQvcGFja2FnZXMvbWlyYWdlLWZzLXVuaXgvbWlyYWdlLWZzLXVuaXguMS4xLjQvb3BhbS4g
VXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byBy
ZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUg
cGFyc2luZyBtaXJhZ2UtZnMtdW5peC4xLjEuNCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1b
RVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91
Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9taXJhZ2UtZnMtdW5peC9t
aXJhZ2UtZnMtdW5peC4xLjIuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2
ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNt
W1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIG1pcmFnZS1mcy11bml4LjEuMi4wIE9Q
QU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0g
KDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0
L3BhY2thZ2VzL21pcmFnZS1naXQvbWlyYWdlLWdpdC4xLjYuMC9vcGFtLiBVcGdyYWRlIE9QQU0g
dG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxl
IGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIG1pcmFn
ZS1naXQuMS42LjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZl
cnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3Bh
bS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvbWlyYWdlLWh0dHAvbWlyYWdlLWh0dHAuMi4yLjAvb3Bh
bS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0
byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hp
bGUgcGFyc2luZyBtaXJhZ2UtaHR0cC4yLjIuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1b
RVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91
Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9taXJhZ2UtaHR0cC9taXJh
Z2UtaHR0cC4yLjMuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9u
IChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5J
TkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIG1pcmFnZS1odHRwLjIuMy4wIE9QQU0gZmlsZSwg
c2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBp
cyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2Vz
L21pcmFnZS1odHRwL21pcmFnZS1odHRwLjIuNC4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1v
cmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVj
dGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgbWlyYWdlLWh0dHAu
Mi40LjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24g
b2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBv
L2RlZmF1bHQvcGFja2FnZXMvbWlyYWdlLWh0dHAvbWlyYWdlLWh0dHAuMi41LjAvb3BhbS4gVXBn
cmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFk
IHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFy
c2luZyBtaXJhZ2UtaHR0cC4yLjUuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1Jd
G1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8g
cmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9taXJhZ2UtaHR0cC9taXJhZ2UtaHR0
cC4yLjUuMS9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBs
ZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1tt
IEVycm9ycyB3aGlsZSBwYXJzaW5nIG1pcmFnZS1odHRwLjIuNS4xIE9QQU0gZmlsZSwgc2tpcHBp
bmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3Qg
cmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL21pcmFn
ZS1pcm1pbi9taXJhZ2UtaXJtaW4uMC45Ljgvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSBy
ZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHku
DQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBtaXJhZ2UtaXJtaW4uMC45
LjggT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2Yg
T1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2Rl
ZmF1bHQvcGFja2FnZXMvbWlyYWdlLW5ldC1tYWNvc3gvbWlyYWdlLW5ldC1tYWNvc3guMS4wLjAv
b3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4y
KSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMg
d2hpbGUgcGFyc2luZyBtaXJhZ2UtbmV0LW1hY29zeC4xLjAuMCBPUEFNIGZpbGUsIHNraXBwaW5n
Lg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJl
Y2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9taXJhZ2Ut
bmV0LW1hY29zeC9taXJhZ2UtbmV0LW1hY29zeC4xLjEuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8g
YSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNv
cnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIG1pcmFnZS1u
ZXQtbWFjb3N4LjEuMS4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91
ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4v
Lm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL21pcmFnZS1uZXQtdW5peC9taXJhZ2UtbmV0LXVu
aXguMi4yLjAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQg
bGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtb
bSBFcnJvcnMgd2hpbGUgcGFyc2luZyBtaXJhZ2UtbmV0LXVuaXguMi4yLjAgT1BBTSBmaWxlLCBz
a2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlz
IG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMv
bWlyYWdlLW5ldC11bml4L21pcmFnZS1uZXQtdW5peC4yLjIuMS9vcGFtLiBVcGdyYWRlIE9QQU0g
dG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxl
IGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIG1pcmFn
ZS1uZXQtdW5peC4yLjIuMSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlv
dXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+
Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9taXJhZ2UtbmV0LXVuaXgvbWlyYWdlLW5ldC11
bml4LjIuMi4yL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0
IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10b
W20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgbWlyYWdlLW5ldC11bml4LjIuMi4yIE9QQU0gZmlsZSwg
c2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBp
cyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2Vz
L21pcmFnZS1uZXQteGVuL21pcmFnZS1uZXQteGVuLjEuMi4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0
byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUg
Y29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgbWlyYWdl
LW5ldC14ZW4uMS4yLjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3Vy
IHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8u
b3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvbWlyYWdlLW5ldC14ZW4vbWlyYWdlLW5ldC14ZW4u
MS4zLjAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVh
c3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBF
cnJvcnMgd2hpbGUgcGFyc2luZyBtaXJhZ2UtbmV0LXhlbi4xLjMuMCBPUEFNIGZpbGUsIHNraXBw
aW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90
IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9taXJh
Z2UtbmV0LXhlbi9taXJhZ2UtbmV0LXhlbi4xLjQuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBt
b3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJl
Y3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIG1pcmFnZS1uZXQt
eGVuLjEuNC4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJz
aW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0v
cmVwby9kZWZhdWx0L3BhY2thZ2VzL21pcmFnZS1uZXQteGVuL21pcmFnZS1uZXQteGVuLjEuNC4x
L29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEu
MikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3Jz
IHdoaWxlIHBhcnNpbmcgbWlyYWdlLW5ldC14ZW4uMS40LjEgT1BBTSBmaWxlLCBza2lwcGluZy4N
ChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNl
bnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvbWlyYWdlLXBy
b2ZpbGUvbWlyYWdlLXByb2ZpbGUuMC4xL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVj
ZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0K
G1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgbWlyYWdlLXByb2ZpbGUuMC4x
IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9Q
QU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZh
dWx0L3BhY2thZ2VzL21pcmFnZS1wcm9maWxlL21pcmFnZS1wcm9maWxlLjAuMy9vcGFtLiBVcGdy
YWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQg
dGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJz
aW5nIG1pcmFnZS1wcm9maWxlLjAuMyBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1Jd
G1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8g
cmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9taXJhZ2UtcHJvZmlsZS9taXJhZ2Ut
cHJvZmlsZS4wLjQvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAo
YXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5H
XRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBtaXJhZ2UtcHJvZmlsZS4wLjQgT1BBTSBmaWxlLCBz
a2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlz
IG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMv
bWlyYWdlLXByb2ZpbGUvbWlyYWdlLXByb2ZpbGUuMC41L29wYW0uIFVwZ3JhZGUgT1BBTSB0byBh
IG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29y
cmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgbWlyYWdlLXBy
b2ZpbGUuMC41IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJz
aW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0v
cmVwby9kZWZhdWx0L3BhY2thZ2VzL21pcmFnZS1zZWFsL21pcmFnZS1zZWFsLjAuMy4wL29wYW0u
IFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8g
cmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxl
IHBhcnNpbmcgbWlyYWdlLXNlYWwuMC4zLjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VS
Uk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdo
IHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvbWlyYWdlLXNlYWwvbWlyYWdl
LXNlYWwuMC4zLjEvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAo
YXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5H
XRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBtaXJhZ2Utc2VhbC4wLjMuMSBPUEFNIGZpbGUsIHNr
aXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMg
bm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9t
aXJhZ2Utc2VhbC9taXJhZ2Utc2VhbC4wLjQuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3Jl
IHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3Rs
eS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIG1pcmFnZS1zZWFsLjAu
NC4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9m
IE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9k
ZWZhdWx0L3BhY2thZ2VzL21pcmFnZS1zZWFsL21pcmFnZS1zZWFsLjAuNC4xL29wYW0uIFVwZ3Jh
ZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0
aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNp
bmcgbWlyYWdlLXNlYWwuMC40LjEgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtb
bSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJl
YWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvbWlyYWdlLXNlYWwvbWlyYWdlLXNlYWwu
MC40LjIvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVh
c3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBF
cnJvcnMgd2hpbGUgcGFyc2luZyBtaXJhZ2Utc2VhbC4wLjQuMiBPUEFNIGZpbGUsIHNraXBwaW5n
Lg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJl
Y2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9taXJhZ2Ut
dGMvbWlyYWdlLXRjLjAuMS4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZl
cnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21b
V0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgbWlyYWdlLXRjLjAuMS4wIE9QQU0gZmls
ZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4x
KSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2th
Z2VzL21pcmFnZS10Yy9taXJhZ2UtdGMuMC4yLjAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9y
ZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0
bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBtaXJhZ2UtdGMuMC4y
LjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2Yg
T1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2Rl
ZmF1bHQvcGFja2FnZXMvbWlyYWdlLXRjL21pcmFnZS10Yy4wLjIuMS9vcGFtLiBVcGdyYWRlIE9Q
QU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBm
aWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIG1p
cmFnZS10Yy4wLjIuMSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIg
dmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5v
cGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9taXJhZ2UtdGMvbWlyYWdlLXRjLjAuMy4wL29wYW0u
IFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8g
cmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxl
IHBhcnNpbmcgbWlyYWdlLXRjLjAuMy4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJP
Ul0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0
byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL21pcmFnZS10eXBlcy9taXJhZ2Ut
dHlwZXMuMi4zLjAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAo
YXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5H
XRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBtaXJhZ2UtdHlwZXMuMi4zLjAgT1BBTSBmaWxlLCBz
a2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlz
IG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMv
bWlyYWdlLXR5cGVzL21pcmFnZS10eXBlcy4yLjUuMS9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBt
b3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJl
Y3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIG1pcmFnZS10eXBl
cy4yLjUuMSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lv
biBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3Jl
cG8vZGVmYXVsdC9wYWNrYWdlcy9taXJhZ2UtdHlwZXMvbWlyYWdlLXR5cGVzLjIuNi4wL29wYW0u
IFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8g
cmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxl
IHBhcnNpbmcgbWlyYWdlLXR5cGVzLjIuNi4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtF
UlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3Vn
aCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL21pcmFnZS10eXBlcy1sd3Qv
bWlyYWdlLXR5cGVzLWx3dC4yLjMuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2Vu
dCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtb
MzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIG1pcmFnZS10eXBlcy1sd3QuMi4z
LjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2Yg
T1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2Rl
ZmF1bHQvcGFja2FnZXMvbWlyYWdlLXR5cGVzLWx3dC9taXJhZ2UtdHlwZXMtbHd0LjIuNS4wL29w
YW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikg
dG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdo
aWxlIHBhcnNpbmcgbWlyYWdlLXR5cGVzLWx3dC4yLjUuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0K
G1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2Vu
dCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9taXJhZ2UtdHlw
ZXMtbHd0L21pcmFnZS10eXBlcy1sd3QuMi42LjAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9y
ZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0
bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBtaXJhZ2UtdHlwZXMt
bHd0LjIuNi4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJz
aW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0v
cmVwby9kZWZhdWx0L3BhY2thZ2VzL21pcmFnZS11bml4L21pcmFnZS11bml4LjIuMi4zL29wYW0u
IFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8g
cmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxl
IHBhcnNpbmcgbWlyYWdlLXVuaXguMi4yLjMgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VS
Uk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdo
IHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvbWlyYWdlLXVuaXgvbWlyYWdl
LXVuaXguMi4zLjEvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAo
YXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5H
XRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBtaXJhZ2UtdW5peC4yLjMuMSBPUEFNIGZpbGUsIHNr
aXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMg
bm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9t
aXJhZ2Utdm5ldGlmL21pcmFnZS12bmV0aWYuMC4xLjAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEg
bW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3Jy
ZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBtaXJhZ2Utdm5l
dGlmLjAuMS4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJz
aW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0v
cmVwby9kZWZhdWx0L3BhY2thZ2VzL21pcmFnZS14ZW4vbWlyYWdlLXhlbi4yLjIuMC9vcGFtLiBV
cGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJl
YWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBw
YXJzaW5nIG1pcmFnZS14ZW4uMi4yLjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9S
XRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRv
IHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvbWlyYWdlLXhlbi9taXJhZ2UteGVu
LjIuMi4xL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxl
YXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20g
RXJyb3JzIHdoaWxlIHBhcnNpbmcgbWlyYWdlLXhlbi4yLjIuMSBPUEFNIGZpbGUsIHNraXBwaW5n
Lg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJl
Y2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9taXJhZ2Ut
eGVuL21pcmFnZS14ZW4uMi4yLjIvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQg
dmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMz
bVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBtaXJhZ2UteGVuLjIuMi4yIE9QQU0g
ZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEu
MS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3Bh
Y2thZ2VzL21pcmFnZS14ZW4vbWlyYWdlLXhlbi4yLjMuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8g
YSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNv
cnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIG1pcmFnZS14
ZW4uMi4zLjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNp
b24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9y
ZXBvL2RlZmF1bHQvcGFja2FnZXMvbWlyYWdlLXhlbi9taXJhZ2UteGVuLjIuMy4xL29wYW0uIFVw
Z3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVh
ZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBh
cnNpbmcgbWlyYWdlLXhlbi4yLjMuMSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1Jd
G1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8g
cmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9taXJhZ2UteGVuL21pcmFnZS14ZW4u
Mi4zLjIvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVh
c3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBF
cnJvcnMgd2hpbGUgcGFyc2luZyBtaXJhZ2UteGVuLjIuMy4yIE9QQU0gZmlsZSwgc2tpcHBpbmcu
DQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVj
ZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL21pcmFnZS14
ZW4vbWlyYWdlLXhlbi4yLjMuMy9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2
ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNt
W1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIG1pcmFnZS14ZW4uMi4zLjMgT1BBTSBm
aWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4x
LjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFj
a2FnZXMvbWlyYWdlLXhlbi1taW5pb3MvbWlyYWdlLXhlbi1taW5pb3MuMC44LjAvb3BhbS4gVXBn
cmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFk
IHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFy
c2luZyBtaXJhZ2UteGVuLW1pbmlvcy4wLjguMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1b
RVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91
Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9taXJhZ2UteGVuLW9jYW1s
L21pcmFnZS14ZW4tb2NhbWwuMi4zLjAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNl
bnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQob
WzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBtaXJhZ2UteGVuLW9jYW1sLjIu
My4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9m
IE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9k
ZWZhdWx0L3BhY2thZ2VzL21pcmFnZS14ZW4tb2NhbWwvbWlyYWdlLXhlbi1vY2FtbC4yLjMuMS9v
cGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIp
IHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3
aGlsZSBwYXJzaW5nIG1pcmFnZS14ZW4tb2NhbWwuMi4zLjEgT1BBTSBmaWxlLCBza2lwcGluZy4N
ChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNl
bnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvbWlyYWdlLXhl
bi1vY2FtbC9taXJhZ2UteGVuLW9jYW1sLjIuMy40L29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1v
cmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVj
dGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgbWlyYWdlLXhlbi1v
Y2FtbC4yLjMuNCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVy
c2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFt
L3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9taXJhZ2UteGVuLXBvc2l4L21pcmFnZS14ZW4tcG9zaXgu
Mi4zLjAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVh
c3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBF
cnJvcnMgd2hpbGUgcGFyc2luZyBtaXJhZ2UteGVuLXBvc2l4LjIuMy4wIE9QQU0gZmlsZSwgc2tp
cHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBu
b3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL21p
cmFnZS14ZW4tcG9zaXgvbWlyYWdlLXhlbi1wb3NpeC4yLjMuMS9vcGFtLiBVcGdyYWRlIE9QQU0g
dG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxl
IGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIG1pcmFn
ZS14ZW4tcG9zaXguMi4zLjEgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZ
b3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQg
fi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvbWlyYWdlLXhlbi1wb3NpeC9taXJhZ2UteGVu
LXBvc2l4LjIuMy4zL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24g
KGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklO
R10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgbWlyYWdlLXhlbi1wb3NpeC4yLjMuMyBPUEFNIGZp
bGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEu
MSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNr
YWdlcy9taXJhZ2UteGVuLXBvc2l4L21pcmFnZS14ZW4tcG9zaXguMi4zLjQvb3BhbS4gVXBncmFk
ZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRo
aXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2lu
ZyBtaXJhZ2UteGVuLXBvc2l4LjIuMy40IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJP
Ul0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0
byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL21pcnJvci9taXJyb3IuMC4wLjEv
b3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4y
KSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMg
d2hpbGUgcGFyc2luZyBtaXJyb3IuMC4wLjEgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VS
Uk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdo
IHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvbWl4dHVyZS9taXh0dXJlLjAu
Mi4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0
IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJy
b3JzIHdoaWxlIHBhcnNpbmcgbWl4dHVyZS4wLjIuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1sz
MW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBl
bm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9tbDJteG1sL21sMm14
bWwuMC4xL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxl
YXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20g
RXJyb3JzIHdoaWxlIHBhcnNpbmcgbWwybXhtbC4wLjEgT1BBTSBmaWxlLCBza2lwcGluZy4NChtb
MzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQg
ZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvbWwybXhtbC9tbDJt
eG1sLjAuMi9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBs
ZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1tt
IEVycm9ycyB3aGlsZSBwYXJzaW5nIG1sMm14bWwuMC4yIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQob
WzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50
IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL21sYmRkL21sYmRk
LjAuMS9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFz
dCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVy
cm9ycyB3aGlsZSBwYXJzaW5nIG1sYmRkLjAuMSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1b
RVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91
Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9tbGJkZC9tbGJkZC4wLjIv
b3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4y
KSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMg
d2hpbGUgcGFyc2luZyBtbGJkZC4wLjIgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9S
XRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRv
IHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvbWxiZGQvbWxiZGQuMC4zL29wYW0u
IFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8g
cmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxl
IHBhcnNpbmcgbWxiZGQuMC4zIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20g
WW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFk
IH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL21sYmRkL21sYmRkLjAuNC9vcGFtLiBVcGdy
YWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQg
dGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJz
aW5nIG1sYmRkLjAuNCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIg
dmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5v
cGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9tbGJkZC9tbGJkZC4wLjUvb3BhbS4gVXBncmFkZSBP
UEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMg
ZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBt
bGJkZC4wLjUgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNp
b24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9y
ZXBvL2RlZmF1bHQvcGFja2FnZXMvbWxnbXAvbWxnbXAuMjAxMjAyMjQvb3BhbS4gVXBncmFkZSBP
UEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMg
ZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBt
bGdtcC4yMDEyMDIyNCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIg
dmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5v
cGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9tbGdtcGlkbC9tbGdtcGlkbC4xLjIuMS9vcGFtLiBV
cGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJl
YWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBw
YXJzaW5nIG1sZ21waWRsLjEuMi4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0b
W20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byBy
ZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL21tL21tLjAuMy4wL29wYW0uIFVwZ3Jh
ZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0
aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNp
bmcgbW0uMC4zLjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZl
cnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3Bh
bS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvbW1zZWcvbW1zZWcuMC4xLjEvb3BhbS4gVXBncmFkZSBP
UEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMg
ZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBt
bXNlZy4wLjEuMSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVy
c2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFt
L3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9tb2RlbGljYV9tbC9tb2RlbGljYV9tbC4wLjEuMS9vcGFt
LiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRv
IHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGls
ZSBwYXJzaW5nIG1vZGVsaWNhX21sLjAuMS4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtF
UlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3Vn
aCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL21vZGVsaWNhX21sL21vZGVs
aWNhX21sLjAuMi4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24g
KGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklO
R10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgbW9kZWxpY2FfbWwuMC4yLjAgT1BBTSBmaWxlLCBz
a2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlz
IG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMv
bW9ub21vcnBoaWMvbW9ub21vcnBoaWMuMS4yL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUg
cmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5
Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgbW9ub21vcnBoaWMuMS4y
IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9Q
QU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZh
dWx0L3BhY2thZ2VzL21xdWV1ZS9tcXVldWUuMC41LjMtMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8g
YSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNv
cnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIG1xdWV1ZS4w
LjUuMy0wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9u
IG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVw
by9kZWZhdWx0L3BhY2thZ2VzL21xdWV1ZS9tcXVldWUuMC42LjAtMC9vcGFtLiBVcGdyYWRlIE9Q
QU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBm
aWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIG1x
dWV1ZS4wLjYuMC0wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2
ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9w
YW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL21xdWV1ZS9tcXVldWUuMC43LjAtMC9vcGFtLiBVcGdy
YWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQg
dGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJz
aW5nIG1xdWV1ZS4wLjcuMC0wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20g
WW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFk
IH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL21zZ3BhY2svbXNncGFjay4xLjEuMC9vcGFt
LiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRv
IHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGls
ZSBwYXJzaW5nIG1zZ3BhY2suMS4xLjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9S
XRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRv
IHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvbXNncGFjay9tc2dwYWNrLjEuMS4x
L29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEu
MikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3Jz
IHdoaWxlIHBhcnNpbmcgbXNncGFjay4xLjEuMSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1b
RVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91
Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9tc3RydWN0L21zdHJ1Y3Qu
MS4zLjIvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVh
c3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBF
cnJvcnMgd2hpbGUgcGFyc2luZyBtc3RydWN0LjEuMy4yIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQob
WzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50
IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL210aW1lL210aW1l
LjAuOC4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxl
YXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20g
RXJyb3JzIHdoaWxlIHBhcnNpbmcgbXRpbWUuMC44LjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtb
MzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQg
ZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvbXRpbWUvbXRpbWUu
MC44LjEvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVh
c3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBF
cnJvcnMgd2hpbGUgcGFyc2luZyBtdGltZS4wLjguMSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1sz
MW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBl
bm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9tdGltZS9tdGltZS4w
LjguMi9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFz
dCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVy
cm9ycyB3aGlsZSBwYXJzaW5nIG10aW1lLjAuOC4yIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMx
bVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVu
b3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL211c3RhY2hlL211c3Rh
Y2hlLjEuMC4xL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0
IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10b
W20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgbXVzdGFjaGUuMS4wLjEgT1BBTSBmaWxlLCBza2lwcGlu
Zy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCBy
ZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvbXVzdGFj
aGUvbXVzdGFjaGUuMS4xLjAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVy
c2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtX
QVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBtdXN0YWNoZS4xLjEuMCBPUEFNIGZpbGUs
IHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkg
aXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdl
cy9tdXN0YWNoZS9tdXN0YWNoZS4yLjAuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJl
Y2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4N
ChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIG11c3RhY2hlLjIuMC4wIE9Q
QU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0g
KDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0
L3BhY2thZ2VzL215YnVpbGQvbXlidWlsZC4xL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUg
cmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5
Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgbXlidWlsZC4xIE9QQU0g
ZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEu
MS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3Bh
Y2thZ2VzL215YnVpbGQvbXlidWlsZC4yL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVj
ZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0K
G1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgbXlidWlsZC4yIE9QQU0gZmls
ZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4x
KSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2th
Z2VzL215YnVpbGQvbXlidWlsZC4zL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50
IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1sz
M21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgbXlidWlsZC4zIE9QQU0gZmlsZSwg
c2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBp
cyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2Vz
L25hbm9tc2cvbmFub21zZy4xLjAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQg
dmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMz
bVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBuYW5vbXNnLjEuMCBPUEFNIGZpbGUs
IHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkg
aXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdl
cy9uZWJ1bGEvbmVidWxhLjAuMi4xL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50
IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1sz
M21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgbmVidWxhLjAuMi4xIE9QQU0gZmls
ZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4x
KSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2th
Z2VzL25vY3J5cHRvL25vY3J5cHRvLjAuMi4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUg
cmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5
Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgbm9jcnlwdG8uMC4yLjAg
T1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BB
TSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1
bHQvcGFja2FnZXMvbm9jcnlwdG8vbm9jcnlwdG8uMC4yLjIvb3BhbS4gVXBncmFkZSBPUEFNIHRv
IGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBj
b3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBub2NyeXB0
by4wLjIuMiBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lv
biBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3Jl
cG8vZGVmYXVsdC9wYWNrYWdlcy9ub2NyeXB0by9ub2NyeXB0by4wLjMuMC9vcGFtLiBVcGdyYWRl
IE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhp
cyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5n
IG5vY3J5cHRvLjAuMy4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91
ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4v
Lm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL25vY3J5cHRvL25vY3J5cHRvLjAuMy4xL29wYW0u
IFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8g
cmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxl
IHBhcnNpbmcgbm9jcnlwdG8uMC4zLjEgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9S
XRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRv
IHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvbm9jcnlwdG8vbm9jcnlwdG8uMC40
LjAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3Qg
MS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJv
cnMgd2hpbGUgcGFyc2luZyBub2NyeXB0by4wLjQuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1sz
MW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBl
bm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9ub2NyeXB0by9ub2Ny
eXB0by4wLjUuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChh
dCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkdd
G1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIG5vY3J5cHRvLjAuNS4wIE9QQU0gZmlsZSwgc2tpcHBp
bmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3Qg
cmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL25vY3J5
cHRvL25vY3J5cHRvLjAuNS4xL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZl
cnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21b
V0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgbm9jcnlwdG8uMC41LjEgT1BBTSBmaWxl
LCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEp
IGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2Fn
ZXMvb2FzaXMyb3BhbS9vYXNpczJvcGFtLjAuNS4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1v
cmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVj
dGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgb2FzaXMyb3BhbS4w
LjUuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBv
ZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8v
ZGVmYXVsdC9wYWNrYWdlcy9vYXNpczJvcGFtL29hc2lzMm9wYW0uMC41LjEvb3BhbS4gVXBncmFk
ZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRo
aXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2lu
ZyBvYXNpczJvcGFtLjAuNS4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20g
WW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFk
IH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL29hc2lzMm9wYW0vb2FzaXMyb3BhbS4wLjYu
MC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAx
LjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9y
cyB3aGlsZSBwYXJzaW5nIG9hc2lzMm9wYW0uMC42LjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtb
MzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQg
ZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvb2FzaXMyb3BhbS9v
YXNpczJvcGFtLjAuNi4xL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNp
b24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FS
TklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgb2FzaXMyb3BhbS4wLjYuMSBPUEFNIGZpbGUs
IHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkg
aXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdl
cy9vYXNpczJvcGFtL29hc2lzMm9wYW0uMC42LjIvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9y
ZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0
bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBvYXNpczJvcGFtLjAu
Ni4yIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9m
IE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9k
ZWZhdWx0L3BhY2thZ2VzL29idWlsZC9vYnVpbGQuMC4xLjQvb3BhbS4gVXBncmFkZSBPUEFNIHRv
IGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBj
b3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBvYnVpbGQu
MC4xLjQgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24g
b2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBv
L2RlZmF1bHQvcGFja2FnZXMvb2J1aWxkL29idWlsZC4wLjEuNS9vcGFtLiBVcGdyYWRlIE9QQU0g
dG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxl
IGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIG9idWls
ZC4wLjEuNSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lv
biBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3Jl
cG8vZGVmYXVsdC9wYWNrYWdlcy9vY2FtbC1tb25hZGljL29jYW1sLW1vbmFkaWMuMC4xLjAvb3Bh
bS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0
byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hp
bGUgcGFyc2luZyBvY2FtbC1tb25hZGljLjAuMS4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMx
bVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVu
b3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL29jYW1sLW1vbmFkaWMv
b2NhbWwtbW9uYWRpYy4wLjEuMS9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2
ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNt
W1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIG9jYW1sLW1vbmFkaWMuMC4xLjEgT1BB
TSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAo
MS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQv
cGFja2FnZXMvb2NhbWwtbW9uYWRpYy9vY2FtbC1tb25hZGljLjAuMi4wL29wYW0uIFVwZ3JhZGUg
T1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlz
IGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcg
b2NhbWwtbW9uYWRpYy4wLjIuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1tt
IFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVh
ZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9vY2FtbC1tb25hZGljL29jYW1sLW1vbmFk
aWMuMC4zLjAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQg
bGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtb
bSBFcnJvcnMgd2hpbGUgcGFyc2luZyBvY2FtbC1tb25hZGljLjAuMy4wIE9QQU0gZmlsZSwgc2tp
cHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBu
b3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL29j
YW1sLXN5c3RlbWQvb2NhbWwtc3lzdGVtZC4xLjEvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9y
ZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0
bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBvY2FtbC1zeXN0ZW1k
LjEuMSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBv
ZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8v
ZGVmYXVsdC9wYWNrYWdlcy9vY2FtbF9wbHVnaW4vb2NhbWxfcGx1Z2luLjExMi4zNS4wMC9vcGFt
LiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRv
IHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGls
ZSBwYXJzaW5nIG9jYW1sX3BsdWdpbi4xMTIuMzUuMDAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtb
MzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQg
ZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvb2NhbWxfcGx1Z2lu
L29jYW1sX3BsdWdpbi4xMTMuMDAuMDAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNl
bnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQob
WzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBvY2FtbF9wbHVnaW4uMTEzLjAw
LjAwIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9m
IE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9k
ZWZhdWx0L3BhY2thZ2VzL29jYW1sYnVpbGQtYXRkZ2VuL29jYW1sYnVpbGQtYXRkZ2VuLjAuMS4w
L29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEu
MikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3Jz
IHdoaWxlIHBhcnNpbmcgb2NhbWxidWlsZC1hdGRnZW4uMC4xLjAgT1BBTSBmaWxlLCBza2lwcGlu
Zy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCBy
ZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvb2NhbWxm
aW5kL29jYW1sZmluZC4xLjUuNS9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2
ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNt
W1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIG9jYW1sZmluZC4xLjUuNSBPUEFNIGZp
bGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEu
MSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNr
YWdlcy9vY2FtbG1vZC9vY2FtbG1vZC4wLjAuNy9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3Jl
IHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3Rs
eS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIG9jYW1sbW9kLjAuMC43
IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9Q
QU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZh
dWx0L3BhY2thZ2VzL29jYW1sbW9kL29jYW1sbW9kLjAuMC44L29wYW0uIFVwZ3JhZGUgT1BBTSB0
byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUg
Y29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgb2NhbWxt
b2QuMC4wLjggT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNp
b24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9y
ZXBvL2RlZmF1bHQvcGFja2FnZXMvb2NhbWxuZXQvb2NhbWxuZXQuNC4wLjEvb3BhbS4gVXBncmFk
ZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRo
aXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2lu
ZyBvY2FtbG5ldC40LjAuMSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlv
dXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+
Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9vY2FtbG5ldC9vY2FtbG5ldC40LjAuMi9vcGFt
LiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRv
IHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGls
ZSBwYXJzaW5nIG9jYW1sbmV0LjQuMC4yIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJP
Ul0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0
byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL29jYW1sc3BvdC9vY2FtbHNwb3Qu
NC4wMi4xLjIuMy4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24g
KGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklO
R10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgb2NhbWxzcG90LjQuMDIuMS4yLjMuMCBPUEFNIGZp
bGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEu
MSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNr
YWdlcy9vY2FtbHR0ZXIvb2NhbWx0dGVyLjQuMC4yL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1v
cmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVj
dGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgb2NhbWx0dGVyLjQu
MC4yIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9m
IE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9k
ZWZhdWx0L3BhY2thZ2VzL29jZXBoZXMvb2NlcGhlcy4wLjEvb3BhbS4gVXBncmFkZSBPUEFNIHRv
IGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBj
b3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBvY2VwaGVz
LjAuMSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBv
ZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8v
ZGVmYXVsdC9wYWNrYWdlcy9vY2VwaGVzL29jZXBoZXMuMC4xLjEvb3BhbS4gVXBncmFkZSBPUEFN
IHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmls
ZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBvY2Vw
aGVzLjAuMS4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJz
aW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0v
cmVwby9kZWZhdWx0L3BhY2thZ2VzL29jZi9vY2YuMC4yLjAvb3BhbS4gVXBncmFkZSBPUEFNIHRv
IGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBj
b3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBvY2YuMC4y
LjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2Yg
T1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2Rl
ZmF1bHQvcGFja2FnZXMvb2NmL29jZi4wLjMuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3Jl
IHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3Rs
eS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIG9jZi4wLjMuMCBPUEFN
IGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgx
LjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9w
YWNrYWdlcy9vY2xhdW5jaC9vY2xhdW5jaC4wLjEuMy9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBt
b3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJl
Y3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIG9jbGF1bmNoLjAu
MS4zIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9m
IE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9k
ZWZhdWx0L3BhY2thZ2VzL29jbGF1bmNoL29jbGF1bmNoLjAuMi4xL29wYW0uIFVwZ3JhZGUgT1BB
TSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZp
bGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgb2Ns
YXVuY2guMC4yLjEgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZl
cnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3Bh
bS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvb2NsYXVuY2gvb2NsYXVuY2guMC4yLjIvb3BhbS4gVXBn
cmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFk
IHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFy
c2luZyBvY2xhdW5jaC4wLjIuMiBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1tt
IFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVh
ZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9vY3AtaW5kZW50L29jcC1pbmRlbnQuMS41
L29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEu
MikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3Jz
IHdoaWxlIHBhcnNpbmcgb2NwLWluZGVudC4xLjUgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFt
W0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5v
dWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvb2NwLWluZGVudC9vY3At
aW5kZW50LjEuNS4xL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24g
KGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklO
R10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgb2NwLWluZGVudC4xLjUuMSBPUEFNIGZpbGUsIHNr
aXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMg
bm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9v
Y3AtaW5kZXgvb2NwLWluZGV4LjEuMS4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVj
ZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0K
G1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgb2NwLWluZGV4LjEuMS4wIE9Q
QU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0g
KDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0
L3BhY2thZ2VzL29jcC1pbmRleC9vY3AtaW5kZXguMS4xLjEvb3BhbS4gVXBncmFkZSBPUEFNIHRv
IGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBj
b3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBvY3AtaW5k
ZXguMS4xLjEgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNp
b24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9y
ZXBvL2RlZmF1bHQvcGFja2FnZXMvb2NwLWluZGV4L29jcC1pbmRleC4xLjEuMi9vcGFtLiBVcGdy
YWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQg
dGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJz
aW5nIG9jcC1pbmRleC4xLjEuMiBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1tt
IFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVh
ZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9vY3AtaW5kZXgvb2NwLWluZGV4LjEuMS4z
L29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEu
MikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3Jz
IHdoaWxlIHBhcnNpbmcgb2NwLWluZGV4LjEuMS4zIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMx
bVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVu
b3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL29jcC1wYWNrLXNwbGl0
L29jcC1wYWNrLXNwbGl0LjEuMC4xL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50
IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1sz
M21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgb2NwLXBhY2stc3BsaXQuMS4wLjEg
T1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BB
TSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1
bHQvcGFja2FnZXMvb2NwbGliLWVuZGlhbi9vY3BsaWItZW5kaWFuLjAuOC9vcGFtLiBVcGdyYWRl
IE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhp
cyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5n
IG9jcGxpYi1lbmRpYW4uMC44IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20g
WW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFk
IH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL29jc2lnZW5zZXJ2ZXIvb2NzaWdlbnNlcnZl
ci4yLjUvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVh
c3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBF
cnJvcnMgd2hpbGUgcGFyc2luZyBvY3NpZ2Vuc2VydmVyLjIuNSBPUEFNIGZpbGUsIHNraXBwaW5n
Lg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJl
Y2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9vY3NpZ2Vu
c2VydmVyL29jc2lnZW5zZXJ2ZXIuMi42L29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVj
ZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0K
G1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgb2NzaWdlbnNlcnZlci4yLjYg
T1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BB
TSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1
bHQvcGFja2FnZXMvb2N1cmwvb2N1cmwuMC43LjUvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9y
ZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0
bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBvY3VybC4wLjcuNSBP
UEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFN
ICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVs
dC9wYWNrYWdlcy9vY3ZlcmFsbHMvb2N2ZXJhbGxzLjAuMS4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0
byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUg
Y29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgb2N2ZXJh
bGxzLjAuMS4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJz
aW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0v
cmVwby9kZWZhdWx0L3BhY2thZ2VzL29jdmVyYWxscy9vY3ZlcmFsbHMuMC4yLjAvb3BhbS4gVXBn
cmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFk
IHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFy
c2luZyBvY3ZlcmFsbHMuMC4yLjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtb
bSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJl
YWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvb2N2ZXJhbGxzL29jdmVyYWxscy4wLjIu
MS9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAx
LjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9y
cyB3aGlsZSBwYXJzaW5nIG9jdmVyYWxscy4wLjIuMSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1sz
MW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBl
bm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9vY3ZlcmFsbHMvb2N2
ZXJhbGxzLjAuMy4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24g
KGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklO
R10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgb2N2ZXJhbGxzLjAuMy4wIE9QQU0gZmlsZSwgc2tp
cHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBu
b3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL29j
dmVyYWxscy9vY3ZlcmFsbHMuMC4zLjEvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNl
bnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQob
WzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBvY3ZlcmFsbHMuMC4zLjEgT1BB
TSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAo
MS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQv
cGFja2FnZXMvb2dnL29nZy4wLjUuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2Vu
dCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtb
MzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIG9nZy4wLjUuMCBPUEFNIGZpbGUs
IHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkg
aXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdl
cy9vanF1ZXJ5L29qcXVlcnkuMC4xL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50
IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1sz
M21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgb2pxdWVyeS4wLjEgT1BBTSBmaWxl
LCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEp
IGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2Fn
ZXMvb2pzLWJhc2Uvb2pzLWJhc2UuMC4zLjAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSBy
ZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHku
DQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBvanMtYmFzZS4wLjMuMCBP
UEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFN
ICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVs
dC9wYWNrYWdlcy9vbGx2bS9vbGx2bS4wLjk5L29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUg
cmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5
Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgb2xsdm0uMC45OSBPUEFN
IGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgx
LjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9w
YWNrYWdlcy9vbG9vcC9vbG9vcC4wLjEuMi9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJl
Y2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4N
ChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIG9sb29wLjAuMS4yIE9QQU0g
ZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEu
MS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3Bh
Y2thZ2VzL29tbC9vbWwuMC4wLjEvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQg
dmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMz
bVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBvbWwuMC4wLjEgT1BBTSBmaWxlLCBz
a2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlz
IG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMv
b21sL29tbC4wLjAuMi9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9u
IChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5J
TkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIG9tbC4wLjAuMiBPUEFNIGZpbGUsIHNraXBwaW5n
Lg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJl
Y2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9vb2xjL29v
bGMuMC4yL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxl
YXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20g
RXJyb3JzIHdoaWxlIHBhcnNpbmcgb29sYy4wLjIgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFt
W0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5v
dWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvb29sYy9vb2xjLjAuMy9v
cGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIp
IHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3
aGlsZSBwYXJzaW5nIG9vbGMuMC4zIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0b
W20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byBy
ZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL29wYW0taW5zdGFsbGV4dC9vcGFtLWlu
c3RhbGxleHQuMS4wLjAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lv
biAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJO
SU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBvcGFtLWluc3RhbGxleHQuMS4wLjAgT1BBTSBm
aWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4x
LjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFj
a2FnZXMvb3BhbS1pbnN0YWxsZXh0L29wYW0taW5zdGFsbGV4dC4xLjAuMS9vcGFtLiBVcGdyYWRl
IE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhp
cyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5n
IG9wYW0taW5zdGFsbGV4dC4xLjAuMSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1Jd
G1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8g
cmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9vcGFtLWxpYi9vcGFtLWxpYi4xLjIu
MC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAx
LjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9y
cyB3aGlsZSBwYXJzaW5nIG9wYW0tbGliLjEuMi4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMx
bVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVu
b3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL29wYW0tbGliL29wYW0t
bGliLjEuMi4xL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0
IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10b
W20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgb3BhbS1saWIuMS4yLjEgT1BBTSBmaWxlLCBza2lwcGlu
Zy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCBy
ZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvb3BhbS1s
aWIvb3BhbS1saWIuMS4yLjIvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVy
c2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtX
QVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBvcGFtLWxpYi4xLjIuMiBPUEFNIGZpbGUs
IHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkg
aXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdl
cy9vcGFtLXB1Ymxpc2gvb3BhbS1wdWJsaXNoLjAuMi4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBh
IG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29y
cmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgb3BhbS1wdWJs
aXNoLjAuMi4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJz
aW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0v
cmVwby9kZWZhdWx0L3BhY2thZ2VzL29wYW0tcHVibGlzaC9vcGFtLXB1Ymxpc2guMC4yLjEvb3Bh
bS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0
byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hp
bGUgcGFyc2luZyBvcGFtLXB1Ymxpc2guMC4yLjEgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFt
W0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5v
dWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvb3BhbS1wdWJsaXNoL29w
YW0tcHVibGlzaC4wLjMuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJz
aW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dB
Uk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIG9wYW0tcHVibGlzaC4wLjMuMCBPUEFNIGZp
bGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEu
MSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNr
YWdlcy9vcGFtLXB1Ymxpc2gvb3BhbS1wdWJsaXNoLjAuMy4wK3RyYW5zaXRpb24vb3BhbS4gVXBn
cmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFk
IHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFy
c2luZyBvcGFtLXB1Ymxpc2guMC4zLjArdHJhbnNpdGlvbiBPUEFNIGZpbGUsIHNraXBwaW5nLg0K
G1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2Vu
dCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9vcGFtLXF1ZXJ5
L29wYW0tcXVlcnkuMS4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNp
b24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FS
TklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgb3BhbS1xdWVyeS4xLjAgT1BBTSBmaWxlLCBz
a2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlz
IG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMv
b3BhbS1xdWVyeS9vcGFtLXF1ZXJ5LjEuMS9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJl
Y2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4N
ChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIG9wYW0tcXVlcnkuMS4xIE9Q
QU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0g
KDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0
L3BhY2thZ2VzL29wYW0tcXVlcnkvb3BhbS1xdWVyeS4xLjIvb3BhbS4gVXBncmFkZSBPUEFNIHRv
IGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBj
b3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBvcGFtLXF1
ZXJ5LjEuMiBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lv
biBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3Jl
cG8vZGVmYXVsdC9wYWNrYWdlcy9vcGFtLXN5bmMtZ2l0aHViLXBycy9vcGFtLXN5bmMtZ2l0aHVi
LXBycy4xLjEuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChh
dCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkdd
G1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIG9wYW0tc3luYy1naXRodWItcHJzLjEuMS4wIE9QQU0g
ZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEu
MS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3Bh
Y2thZ2VzL29wYW0yd2ViL29wYW0yd2ViLjEuNC4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1v
cmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVj
dGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgb3BhbTJ3ZWIuMS40
LjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2Yg
T1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2Rl
ZmF1bHQvcGFja2FnZXMvb3BlbmNjL29wZW5jYy4wLjQuMy0wLjEuMS9vcGFtLiBVcGdyYWRlIE9Q
QU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBm
aWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIG9w
ZW5jYy4wLjQuMy0wLjEuMSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlv
dXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+
Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9vcGVuZmxvdy9vcGVuZmxvdy4wLjguMC9vcGFt
LiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRv
IHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGls
ZSBwYXJzaW5nIG9wZW5mbG93LjAuOC4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJP
Ul0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0
byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL29wZW5mbG93L29wZW5mbG93LjAu
OS4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0
IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJy
b3JzIHdoaWxlIHBhcnNpbmcgb3BlbmZsb3cuMC45LjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtb
MzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQg
ZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvb3BlbmZsb3cvb3Bl
bmZsb3cuMC45LjEvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAo
YXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5H
XRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBvcGVuZmxvdy4wLjkuMSBPUEFNIGZpbGUsIHNraXBw
aW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90
IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9vcGVy
Zi1tYWNyby9vcGVyZi1tYWNyby4wLjIvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNl
bnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQob
WzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBvcGVyZi1tYWNyby4wLjIgT1BB
TSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAo
MS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQv
cGFja2FnZXMvb3BlcmYtbWljcm8vb3BlcmYtbWljcm8uMC4xL29wYW0uIFVwZ3JhZGUgT1BBTSB0
byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUg
Y29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgb3BlcmYt
bWljcm8uMC4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJz
aW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0v
cmVwby9kZWZhdWx0L3BhY2thZ2VzL29wZXJmLW1pY3JvL29wZXJmLW1pY3JvLjAuMi9vcGFtLiBV
cGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJl
YWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBw
YXJzaW5nIG9wZXJmLW1pY3JvLjAuMiBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1Jd
G1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8g
cmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9vcGVyZi1taWNyby9vcGVyZi1taWNy
by4xLjAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVh
c3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBF
cnJvcnMgd2hpbGUgcGFyc2luZyBvcGVyZi1taWNyby4xLjAgT1BBTSBmaWxlLCBza2lwcGluZy4N
ChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNl
bnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvb3BpdW0vb3Bp
dW0uMC4xMi4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0
IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10b
W20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgb3BpdW0uMC4xMi4wIE9QQU0gZmlsZSwgc2tpcHBpbmcu
DQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVj
ZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL29waXVtL29w
aXVtLjAuMTMuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChh
dCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkdd
G1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIG9waXVtLjAuMTMuMCBPUEFNIGZpbGUsIHNraXBwaW5n
Lg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJl
Y2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9vcGl1bS9v
cGl1bS4wLjEzLjEvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAo
YXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5H
XRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBvcGl1bS4wLjEzLjEgT1BBTSBmaWxlLCBza2lwcGlu
Zy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCBy
ZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvb3BpdW0v
b3BpdW0uMC4xMy4yL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24g
KGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklO
R10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgb3BpdW0uMC4xMy4yIE9QQU0gZmlsZSwgc2tpcHBp
bmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3Qg
cmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL29waXVt
L29waXVtLjAuMTMuMy9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9u
IChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5J
TkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIG9waXVtLjAuMTMuMyBPUEFNIGZpbGUsIHNraXBw
aW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90
IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9vcHVz
L29wdXMuMC4xLjEvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAo
YXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5H
XRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBvcHVzLjAuMS4xIE9QQU0gZmlsZSwgc2tpcHBpbmcu
DQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVj
ZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL29yb2Nrc2Ri
L29yb2Nrc2RiLjAuMS4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNp
b24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FS
TklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgb3JvY2tzZGIuMC4xLjAgT1BBTSBmaWxlLCBz
a2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlz
IG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMv
b3JvY2tzZGIvb3JvY2tzZGIuMC4yLjAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNl
bnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQob
WzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBvcm9ja3NkYi4wLjIuMCBPUEFN
IGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgx
LjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9w
YWNrYWdlcy9vcm9ja3NkYi9vcm9ja3NkYi4wLjIuMS9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBt
b3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJl
Y3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIG9yb2Nrc2RiLjAu
Mi4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9m
IE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9k
ZWZhdWx0L3BhY2thZ2VzL290ci9vdHIuMC4xLjAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9y
ZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0
bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBvdHIuMC4xLjAgT1BB
TSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAo
MS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQv
cGFja2FnZXMvb3RyL290ci4wLjIuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2Vu
dCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtb
MzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIG90ci4wLjIuMCBPUEFNIGZpbGUs
IHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkg
aXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdl
cy9vd2VibC9vd2VibC4wLjEvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVy
c2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtX
QVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBvd2VibC4wLjEgT1BBTSBmaWxlLCBza2lw
cGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5v
dCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvcGFf
YmVuY2gvcGFfYmVuY2guMTEzLjAwLjAwL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVj
ZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0K
G1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgcGFfYmVuY2guMTEzLjAwLjAw
IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9Q
QU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZh
dWx0L3BhY2thZ2VzL3BhX2RvL3BhX2RvLjAuOC4xNS9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBt
b3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJl
Y3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIHBhX2RvLjAuOC4x
NSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBP
UEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVm
YXVsdC9wYWNrYWdlcy9wYV9kby9wYV9kby4wLjguMTYvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEg
bW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3Jy
ZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBwYV9kby4wLjgu
MTYgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2Yg
T1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2Rl
ZmF1bHQvcGFja2FnZXMvcGFfb3VuaXQvcGFfb3VuaXQuMTEyLjM1LjAwL29wYW0uIFVwZ3JhZGUg
T1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlz
IGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcg
cGFfb3VuaXQuMTEyLjM1LjAwIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20g
WW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFk
IH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3BhX291bml0L3BhX291bml0LjExMy4wMC4w
MC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAx
LjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9y
cyB3aGlsZSBwYXJzaW5nIHBhX291bml0LjExMy4wMC4wMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0K
G1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2Vu
dCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9wYV9zdHJ1Y3R1
cmFsX3NleHAvcGFfc3RydWN0dXJhbF9zZXhwLjExMi4zNS4wMC9vcGFtLiBVcGdyYWRlIE9QQU0g
dG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxl
IGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIHBhX3N0
cnVjdHVyYWxfc2V4cC4xMTIuMzUuMDAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9S
XRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRv
IHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvcGFfc3RydWN0dXJhbF9zZXhwL3Bh
X3N0cnVjdHVyYWxfc2V4cC4xMTMuMDAuMDAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSBy
ZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHku
DQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBwYV9zdHJ1Y3R1cmFsX3Nl
eHAuMTEzLjAwLjAwIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2
ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9w
YW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3BhX3Rlc3QvcGFfdGVzdC4xMTIuMjQuMDAvb3BhbS4g
VXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byBy
ZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUg
cGFyc2luZyBwYV90ZXN0LjExMi4yNC4wMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJS
T1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2gg
dG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9wYWNrZXQvcGFja2V0LjAuNC4w
L29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEu
MikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3Jz
IHdoaWxlIHBhcnNpbmcgcGFja2V0LjAuNC4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtF
UlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3Vn
aCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3Bhcm1hcC9wYXJtYXAuMC45
LjEvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3Qg
MS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJv
cnMgd2hpbGUgcGFyc2luZyBwYXJtYXAuMC45LjEgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFt
W0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5v
dWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvcGFybWFwL3Bhcm1hcC4x
LjAtcmMxL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxl
YXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20g
RXJyb3JzIHdoaWxlIHBhcnNpbmcgcGFybWFwLjEuMC1yYzEgT1BBTSBmaWxlLCBza2lwcGluZy4N
ChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNl
bnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvcGFybWFwL3Bh
cm1hcC4xLjAtcmMyL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24g
KGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklO
R10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgcGFybWFwLjEuMC1yYzIgT1BBTSBmaWxlLCBza2lw
cGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5v
dCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvcGFy
bWFwL3Bhcm1hcC4xLjAtcmMzL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZl
cnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21b
V0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgcGFybWFwLjEuMC1yYzMgT1BBTSBmaWxl
LCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEp
IGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2Fn
ZXMvcGFybWFwL3Bhcm1hcC4xLjAtcmM0L29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVj
ZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0K
G1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgcGFybWFwLjEuMC1yYzQgT1BB
TSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAo
MS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQv
cGFja2FnZXMvcGFybWFwL3Bhcm1hcC4xLjAtcmM1L29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1v
cmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVj
dGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgcGFybWFwLjEuMC1y
YzUgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2Yg
T1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2Rl
ZmF1bHQvcGFja2FnZXMvcGFybWFwL3Bhcm1hcC4xLjAtcmM3L29wYW0uIFVwZ3JhZGUgT1BBTSB0
byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUg
Y29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgcGFybWFw
LjEuMC1yYzcgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNp
b24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9y
ZXBvL2RlZmF1bHQvcGFja2FnZXMvcGF0ZGlmZi9wYXRkaWZmLjExMy4wMC4wMC9vcGFtLiBVcGdy
YWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQg
dGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJz
aW5nIHBhdGRpZmYuMTEzLjAwLjAwIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0b
W20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byBy
ZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3BhdGllbmNlX2RpZmYvcGF0aWVuY2Vf
ZGlmZi4xMTIuMjQuMDAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lv
biAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJO
SU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBwYXRpZW5jZV9kaWZmLjExMi4yNC4wMCBPUEFN
IGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgx
LjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9w
YWNrYWdlcy9wY2kvcGNpLjAuMi4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50
IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1sz
M21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgcGNpLjAuMi4wIE9QQU0gZmlsZSwg
c2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBp
cyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2Vz
L3BjaS9wY2kuMS4wLjAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lv
biAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJO
SU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBwY2kuMS4wLjAgT1BBTSBmaWxlLCBza2lwcGlu
Zy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCBy
ZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvcGNyZS9w
Y3JlLjcuMS41L29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0
IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10b
W20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgcGNyZS43LjEuNSBPUEFNIGZpbGUsIHNraXBwaW5nLg0K
G1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2Vu
dCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9wY3JlL3BjcmUu
Ny4xLjYvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVh
c3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBF
cnJvcnMgd2hpbGUgcGFyc2luZyBwY3JlLjcuMS42IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMx
bVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVu
b3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3BlcmYvcGVyZi4xLjAv
b3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4y
KSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMg
d2hpbGUgcGFyc2luZyBwZXJmLjEuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1Jd
G1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8g
cmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9wZ29jYW1sL3Bnb2NhbWwuMS43L29w
YW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikg
dG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdo
aWxlIHBhcnNpbmcgcGdvY2FtbC4xLjcgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9S
XRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRv
IHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvcGdvY2FtbC9wZ29jYW1sLjEuNy4x
L29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEu
MikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3Jz
IHdoaWxlIHBhcnNpbmcgcGdvY2FtbC4xLjcuMSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1b
RVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91
Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9wZ29jYW1sL3Bnb2NhbWwu
Mi4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0
IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJy
b3JzIHdoaWxlIHBhcnNpbmcgcGdvY2FtbC4yLjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFt
W0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5v
dWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvcGdvY2FtbC9wZ29jYW1s
LjIuMS9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFz
dCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVy
cm9ycyB3aGlsZSBwYXJzaW5nIHBnb2NhbWwuMi4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMx
bVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVu
b3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3Bnb2NhbWwvcGdvY2Ft
bC4yLjIvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVh
c3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBF
cnJvcnMgd2hpbGUgcGFyc2luZyBwZ29jYW1sLjIuMiBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1sz
MW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBl
bm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9waXBlYmFuZy9waXBl
YmFuZy4xMTMuMDAuMDAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lv
biAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJO
SU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBwaXBlYmFuZy4xMTMuMDAuMDAgT1BBTSBmaWxl
LCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEp
IGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2Fn
ZXMvcGxhbmV0cy9wbGFuZXRzLjAuMS4xNC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJl
Y2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4N
ChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIHBsYW5ldHMuMC4xLjE0IE9Q
QU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0g
KDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0
L3BhY2thZ2VzL3BvZGdlL3BvZGdlLjAuMi9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJl
Y2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4N
ChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIHBvZGdlLjAuMiBPUEFNIGZp
bGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEu
MSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNr
YWdlcy9wb2RnZS9wb2RnZS4wLjMvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQg
dmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMz
bVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBwb2RnZS4wLjMgT1BBTSBmaWxlLCBz
a2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlz
IG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMv
cG9kZ2UvcG9kZ2UuMC40L29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNp
b24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FS
TklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgcG9kZ2UuMC40IE9QQU0gZmlsZSwgc2tpcHBp
bmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3Qg
cmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3BvbHln
bG90L3BvbHlnbG90LjEuMC4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZl
cnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21b
V0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgcG9seWdsb3QuMS4wLjAgT1BBTSBmaWxl
LCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEp
IGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2Fn
ZXMvcG9ydGF1ZGlvL3BvcnRhdWRpby4wLjIuMS9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3Jl
IHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3Rs
eS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIHBvcnRhdWRpby4wLjIu
MSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBP
UEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVm
YXVsdC9wYWNrYWdlcy9wb3J0aWEvcG9ydGlhLjAuMS9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBt
b3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJl
Y3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIHBvcnRpYS4wLjEg
T1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BB
TSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1
bHQvcGFja2FnZXMvcG9zaXgtY2xvY2svcG9zaXgtY2xvY2suMC4zLjAtMC9vcGFtLiBVcGdyYWRl
IE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhp
cyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5n
IHBvc2l4LWNsb2NrLjAuMy4wLTAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtb
bSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJl
YWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvcG9zaXgtdGltZS9wb3NpeC10aW1lLjAu
My4wLTAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVh
c3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBF
cnJvcnMgd2hpbGUgcGFyc2luZyBwb3NpeC10aW1lLjAuMy4wLTAgT1BBTSBmaWxlLCBza2lwcGlu
Zy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCBy
ZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvcG9zdGdy
ZXNxbC9wb3N0Z3Jlc3FsLjMuMC4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50
IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1sz
M21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgcG9zdGdyZXNxbC4zLjAuMCBPUEFN
IGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgx
LjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9w
YWNrYWdlcy9wb3N0Z3Jlc3FsL3Bvc3RncmVzcWwuMy4xLjAvb3BhbS4gVXBncmFkZSBPUEFNIHRv
IGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBj
b3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBwb3N0Z3Jl
c3FsLjMuMS4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJz
aW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0v
cmVwby9kZWZhdWx0L3BhY2thZ2VzL3Bvc3RncmVzcWwvcG9zdGdyZXNxbC4zLjIuMC9vcGFtLiBV
cGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJl
YWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBw
YXJzaW5nIHBvc3RncmVzcWwuMy4yLjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9S
XRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRv
IHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvcG9zdGdyZXNxbC9wb3N0Z3Jlc3Fs
LjMuMi4xL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxl
YXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20g
RXJyb3JzIHdoaWxlIHBhcnNpbmcgcG9zdGdyZXNxbC4zLjIuMSBPUEFNIGZpbGUsIHNraXBwaW5n
Lg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJl
Y2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9wcHhfYmln
YXJyYXkvcHB4X2JpZ2FycmF5LjAuMC4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVj
ZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0K
G1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgcHB4X2JpZ2FycmF5LjAuMC4w
IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9Q
QU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZh
dWx0L3BhY2thZ2VzL3BweF9iaWdhcnJheS9wcHhfYmlnYXJyYXkuMC4wLjEvb3BhbS4gVXBncmFk
ZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRo
aXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2lu
ZyBwcHhfYmlnYXJyYXkuMC4wLjEgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtb
bSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJl
YWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvcHB4X2JpZ2FycmF5L3BweF9iaWdhcnJh
eS4wLjEuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBs
ZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1tt
IEVycm9ycyB3aGlsZSBwYXJzaW5nIHBweF9iaWdhcnJheS4wLjEuMCBPUEFNIGZpbGUsIHNraXBw
aW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90
IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9wcHhf
Y29uc3QvcHB4X2NvbnN0LjEuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2
ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNt
W1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIHBweF9jb25zdC4xLjAgT1BBTSBmaWxl
LCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEp
IGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2Fn
ZXMvcHB4X2NvbnN0L3BweF9jb25zdC4xLjEvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSBy
ZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHku
DQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBwcHhfY29uc3QuMS4xIE9Q
QU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0g
KDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0
L3BhY2thZ2VzL3BweF9jdXJyaWVkX2NvbnN0ci9wcHhfY3VycmllZF9jb25zdHIuMS4wLjAvb3Bh
bS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0
byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hp
bGUgcGFyc2luZyBwcHhfY3VycmllZF9jb25zdHIuMS4wLjAgT1BBTSBmaWxlLCBza2lwcGluZy4N
ChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNl
bnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvcHB4X2Rlcml2
aW5nL3BweF9kZXJpdmluZy4xLjAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQg
dmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMz
bVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBwcHhfZGVyaXZpbmcuMS4wIE9QQU0g
ZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEu
MS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3Bh
Y2thZ2VzL3BweF9kZXJpdmluZy9wcHhfZGVyaXZpbmcuMS4xL29wYW0uIFVwZ3JhZGUgT1BBTSB0
byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUg
Y29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgcHB4X2Rl
cml2aW5nLjEuMSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVy
c2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFt
L3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9wcHhfZGVyaXZpbmcvcHB4X2Rlcml2aW5nLjIuMC9vcGFt
LiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRv
IHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGls
ZSBwYXJzaW5nIHBweF9kZXJpdmluZy4yLjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VS
Uk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdo
IHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvcHB4X2Rlcml2aW5nL3BweF9k
ZXJpdmluZy4yLjEvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAo
YXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5H
XRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBwcHhfZGVyaXZpbmcuMi4xIE9QQU0gZmlsZSwgc2tp
cHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBu
b3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3Bw
eF9kZXJpdmluZy9wcHhfZGVyaXZpbmcuMi4yL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUg
cmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5
Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgcHB4X2Rlcml2aW5nLjIu
MiBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBP
UEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVm
YXVsdC9wYWNrYWdlcy9wcHhfZGVyaXZpbmdfcHJvdG9idWYvcHB4X2Rlcml2aW5nX3Byb3RvYnVm
LjIuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFz
dCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVy
cm9ycyB3aGlsZSBwYXJzaW5nIHBweF9kZXJpdmluZ19wcm90b2J1Zi4yLjAgT1BBTSBmaWxlLCBz
a2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlz
IG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMv
cHB4X2Rlcml2aW5nX3Byb3RvYnVmL3BweF9kZXJpdmluZ19wcm90b2J1Zi4yLjEvb3BhbS4gVXBn
cmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFk
IHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFy
c2luZyBwcHhfZGVyaXZpbmdfcHJvdG9idWYuMi4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMx
bVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVu
b3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3BweF9kZXJpdmluZ19w
cm90b2J1Zi9wcHhfZGVyaXZpbmdfcHJvdG9idWYuMi4yL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBh
IG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29y
cmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgcHB4X2Rlcml2
aW5nX3Byb3RvYnVmLjIuMiBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlv
dXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+
Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9wcHhfZGVyaXZpbmdfeW9qc29uL3BweF9kZXJp
dmluZ195b2pzb24uMi4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNp
b24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FS
TklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgcHB4X2Rlcml2aW5nX3lvanNvbi4yLjAgT1BB
TSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAo
MS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQv
cGFja2FnZXMvcHB4X2Rlcml2aW5nX3lvanNvbi9wcHhfZGVyaXZpbmdfeW9qc29uLjIuMS9vcGFt
LiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRv
IHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGls
ZSBwYXJzaW5nIHBweF9kZXJpdmluZ195b2pzb24uMi4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQob
WzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50
IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3BweF9kZXJpdmlu
Z195b2pzb24vcHB4X2Rlcml2aW5nX3lvanNvbi4yLjIvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEg
bW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3Jy
ZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBwcHhfZGVyaXZp
bmdfeW9qc29uLjIuMiBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIg
dmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5v
cGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9wcHhfZGVyaXZpbmdfeW9qc29uL3BweF9kZXJpdmlu
Z195b2pzb24uMi4zL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24g
KGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklO
R10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgcHB4X2Rlcml2aW5nX3lvanNvbi4yLjMgT1BBTSBm
aWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4x
LjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFj
a2FnZXMvcHB4X2dldGVudi9wcHhfZ2V0ZW52LjEuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBt
b3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJl
Y3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIHBweF9nZXRlbnYu
MS4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9m
IE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9k
ZWZhdWx0L3BhY2thZ2VzL3BweF9nZXRlbnYvcHB4X2dldGVudi4xLjEvb3BhbS4gVXBncmFkZSBP
UEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMg
ZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBw
cHhfZ2V0ZW52LjEuMSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIg
dmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5v
cGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9wcHhfaW1wbGljaXRzL3BweF9pbXBsaWNpdHMuMC4x
LjAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3Qg
MS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJv
cnMgd2hpbGUgcGFyc2luZyBwcHhfaW1wbGljaXRzLjAuMS4wIE9QQU0gZmlsZSwgc2tpcHBpbmcu
DQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVj
ZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3BweF9pbXBv
cnQvcHB4X2ltcG9ydC4xLjAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVy
c2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtX
QVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBwcHhfaW1wb3J0LjEuMCBPUEFNIGZpbGUs
IHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkg
aXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdl
cy9wcHhfaW5jbHVkZS9wcHhfaW5jbHVkZS4xLjAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9y
ZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0
bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBwcHhfaW5jbHVkZS4x
LjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2Yg
T1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2Rl
ZmF1bHQvcGFja2FnZXMvcHB4X21ldGFfY29udi9wcHhfbWV0YV9jb252LjIuMC4yL29wYW0uIFVw
Z3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVh
ZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBh
cnNpbmcgcHB4X21ldGFfY29udi4yLjAuMiBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJS
T1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2gg
dG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9wcHhfbWV0YV9jb252L3BweF9t
ZXRhX2NvbnYuMi4xLjAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lv
biAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJO
SU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBwcHhfbWV0YV9jb252LjIuMS4wIE9QQU0gZmls
ZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4x
KSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2th
Z2VzL3BweF9tb25hZGljL3BweF9tb25hZGljLjEuMC4zL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBh
IG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29y
cmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgcHB4X21vbmFk
aWMuMS4wLjMgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNp
b24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9y
ZXBvL2RlZmF1bHQvcGFja2FnZXMvcHB4X29yYWt1ZGEvcHB4X29yYWt1ZGEuMi4wLjEvb3BhbS4g
VXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byBy
ZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUg
cGFyc2luZyBwcHhfb3Jha3VkYS4yLjAuMSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJS
T1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2gg
dG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9wcHhfcG9seV9yZWNvcmQvcHB4
X3BvbHlfcmVjb3JkLjEuMC4xL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZl
cnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21b
V0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgcHB4X3BvbHlfcmVjb3JkLjEuMC4xIE9Q
QU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0g
KDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0
L3BhY2thZ2VzL3BweF9zZXhwL3BweF9zZXhwLjAuMy4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBh
IG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29y
cmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgcHB4X3NleHAu
MC4zLjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24g
b2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBv
L2RlZmF1bHQvcGFja2FnZXMvcHB4X3Rlc3QvcHB4X3Rlc3QuMS4yLjAvb3BhbS4gVXBncmFkZSBP
UEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMg
ZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBw
cHhfdGVzdC4xLjIuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIg
dmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5v
cGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9wcm9iLWNhY2hlL3Byb2ItY2FjaGUuMS4wLjAvb3Bh
bS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0
byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hp
bGUgcGFyc2luZyBwcm9iLWNhY2hlLjEuMC4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtF
UlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3Vn
aCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3B1Ymxpc2gvcHVibGlzaC4w
LjMuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFz
dCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVy
cm9ycyB3aGlsZSBwYXJzaW5nIHB1Ymxpc2guMC4zLjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtb
MzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQg
ZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvcHVibGlzaC9wdWJs
aXNoLjAuMy4xL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0
IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10b
W20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgcHVibGlzaC4wLjMuMSBPUEFNIGZpbGUsIHNraXBwaW5n
Lg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJl
Y2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9wdWxzZWF1
ZGlvL3B1bHNlYXVkaW8uMC4xLjMvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQg
dmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMz
bVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBwdWxzZWF1ZGlvLjAuMS4zIE9QQU0g
ZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEu
MS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3Bh
Y2thZ2VzL3B4cC9weHAuMS4yLjcvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQg
dmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMz
bVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBweHAuMS4yLjcgT1BBTSBmaWxlLCBz
a2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlz
IG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMv
cWNoZWNrL3FjaGVjay4wLjMvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVy
c2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtX
QVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBxY2hlY2suMC4zIE9QQU0gZmlsZSwgc2tp
cHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBu
b3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3Fj
aGVjay9xY2hlY2suMC40L29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNp
b24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FS
TklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgcWNoZWNrLjAuNCBPUEFNIGZpbGUsIHNraXBw
aW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90
IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9xZnMv
cWZzLjAuNC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBs
ZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1tt
IEVycm9ycyB3aGlsZSBwYXJzaW5nIHFmcy4wLjQgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFt
W0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5v
dWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvcWZzL3Fmcy4wLjUvb3Bh
bS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0
byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hp
bGUgcGFyc2luZyBxZnMuMC41IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20g
WW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFk
IH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3F0ZXN0L3F0ZXN0LjIuMS4wL29wYW0uIFVw
Z3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVh
ZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBh
cnNpbmcgcXRlc3QuMi4xLjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZ
b3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQg
fi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvcXVlc3QvcXVlc3QuMC4xL29wYW0uIFVwZ3Jh
ZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0
aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNp
bmcgcXVlc3QuMC4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2
ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9w
YW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3Jhbmdlci9yYW5nZXIuMC4xLjAvb3BhbS4gVXBncmFk
ZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRo
aXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2lu
ZyByYW5nZXIuMC4xLjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3Vy
IHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8u
b3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvcmFzaGVsbC9yYXNoZWxsLjAuMS4wL29wYW0uIFVw
Z3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVh
ZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBh
cnNpbmcgcmFzaGVsbC4wLjEuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1tt
IFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVh
ZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9yYXdsaW5rL3Jhd2xpbmsuMC4xL29wYW0u
IFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8g
cmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxl
IHBhcnNpbmcgcmF3bGluay4wLjEgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtb
bSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJl
YWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvcmF3bGluay9yYXdsaW5rLjAuMi9vcGFt
LiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRv
IHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGls
ZSBwYXJzaW5nIHJhd2xpbmsuMC4yIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0b
W20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byBy
ZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3Jhd2xpbmsvcmF3bGluay4wLjMvb3Bh
bS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0
byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hp
bGUgcGFyc2luZyByYXdsaW5rLjAuMyBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1Jd
G1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8g
cmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9yZGJnL3JkYmcuMS4wL29wYW0uIFVw
Z3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVh
ZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBh
cnNpbmcgcmRiZy4xLjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3Vy
IHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8u
b3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvcmRyL3Jkci4xLjAvb3BhbS4gVXBncmFkZSBPUEFN
IHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmls
ZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyByZHIu
MS4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9m
IE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9k
ZWZhdWx0L3BhY2thZ2VzL3Jkci9yZHIuMS4xL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUg
cmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5
Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgcmRyLjEuMSBPUEFNIGZp
bGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEu
MSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNr
YWdlcy9yZHIvcmRyLjIuMC4xL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZl
cnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21b
V0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgcmRyLjIuMC4xIE9QQU0gZmlsZSwgc2tp
cHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBu
b3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3Jl
L3JlLjEuMy4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0
IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10b
W20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgcmUuMS4zLjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtb
MzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQg
ZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvcmUvcmUuMS4zLjEv
b3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4y
KSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMg
d2hpbGUgcGFyc2luZyByZS4xLjMuMSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1Jd
G1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8g
cmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9yZS9yZS4xLjMuMi9vcGFtLiBVcGdy
YWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQg
dGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJz
aW5nIHJlLjEuMy4yIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2
ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9w
YW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3JlL3JlLjEuNC4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0
byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUg
Y29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgcmUuMS40
LjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2Yg
T1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2Rl
ZmF1bHQvcGFja2FnZXMvcmUvcmUuMS40LjEvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSBy
ZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHku
DQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyByZS4xLjQuMSBPUEFNIGZp
bGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEu
MSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNr
YWdlcy9yZTIvcmUyLjExMi4zNS4wMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2Vu
dCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtb
MzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIHJlMi4xMTIuMzUuMDAgT1BBTSBm
aWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4x
LjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFj
a2FnZXMvcmUyL3JlMi4xMTMuMDAuMDAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNl
bnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQob
WzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyByZTIuMTEzLjAwLjAwIE9QQU0g
ZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEu
MS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3Bh
Y2thZ2VzL3JlY29yZHMvcmVjb3Jkcy4wLjEuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3Jl
IHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3Rs
eS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIHJlY29yZHMuMC4xLjAg
T1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BB
TSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1
bHQvcGFja2FnZXMvcmVjb3Jkcy9yZWNvcmRzLjAuMi4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBh
IG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29y
cmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgcmVjb3Jkcy4w
LjIuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBv
ZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8v
ZGVmYXVsdC9wYWNrYWdlcy9yZWNvcmRzL3JlY29yZHMuMC4zLjAvb3BhbS4gVXBncmFkZSBPUEFN
IHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmls
ZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyByZWNv
cmRzLjAuMy4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJz
aW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0v
cmVwby9kZWZhdWx0L3BhY2thZ2VzL3Jlcy9yZXMuNC4wLjcvb3BhbS4gVXBncmFkZSBPUEFNIHRv
IGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBj
b3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyByZXMuNC4w
LjcgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2Yg
T1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2Rl
ZmF1bHQvcGFja2FnZXMvcmVzdWx0L3Jlc3VsdC4xLjAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEg
bW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3Jy
ZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyByZXN1bHQuMS4w
IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9Q
QU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZh
dWx0L3BhY2thZ2VzL3Jlc3VsdC9yZXN1bHQuMS4xL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1v
cmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVj
dGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgcmVzdWx0LjEuMSBP
UEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFN
ICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVs
dC9wYWNrYWdlcy9yZmM2Mjg3L3JmYzYyODcuMS4wLjAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEg
bW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3Jy
ZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyByZmM2Mjg3LjEu
MC4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9m
IE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9k
ZWZhdWx0L3BhY2thZ2VzL3JpYWtjX3BweC9yaWFrY19wcHguMy4xLjAvb3BhbS4gVXBncmFkZSBP
UEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMg
ZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBy
aWFrY19wcHguMy4xLjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3Vy
IHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8u
b3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvcmlha2NfcHB4L3JpYWtjX3BweC4zLjEuMS9vcGFt
LiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRv
IHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGls
ZSBwYXJzaW5nIHJpYWtjX3BweC4zLjEuMSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJS
T1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2gg
dG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9yaWFrY19wcHgvcmlha2NfcHB4
LjMuMS4yL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxl
YXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20g
RXJyb3JzIHdoaWxlIHBhcnNpbmcgcmlha2NfcHB4LjMuMS4yIE9QQU0gZmlsZSwgc2tpcHBpbmcu
DQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVj
ZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3JpYWtjX3Bw
eC9yaWFrY19wcHguMy4xLjMvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVy
c2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtX
QVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyByaWFrY19wcHguMy4xLjMgT1BBTSBmaWxl
LCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEp
IGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2Fn
ZXMvcml2ZXIvcml2ZXIuMC4xL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZl
cnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21b
V0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgcml2ZXIuMC4xIE9QQU0gZmlsZSwgc2tp
cHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBu
b3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3Jp
dmVyL3JpdmVyLjAuMS4xL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNp
b24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FS
TklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgcml2ZXIuMC4xLjEgT1BBTSBmaWxlLCBza2lw
cGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5v
dCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvcml2
ZXIvcml2ZXIuMC4xLjIvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lv
biAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJO
SU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyByaXZlci4wLjEuMiBPUEFNIGZpbGUsIHNraXBw
aW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90
IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9ycGNf
cGFyYWxsZWwvcnBjX3BhcmFsbGVsLjExMi4zNS4wMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBt
b3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJl
Y3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIHJwY19wYXJhbGxl
bC4xMTIuMzUuMDAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZl
cnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3Bh
bS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvcnBjX3BhcmFsbGVsL3JwY19wYXJhbGxlbC4xMTMuMDAu
MDAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3Qg
MS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJv
cnMgd2hpbGUgcGFyc2luZyBycGNfcGFyYWxsZWwuMTEzLjAwLjAwIE9QQU0gZmlsZSwgc2tpcHBp
bmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3Qg
cmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3JyZXN1
bHQvcnJlc3VsdC4wLjEuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJz
aW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dB
Uk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIHJyZXN1bHQuMC4xLjAgT1BBTSBmaWxlLCBz
a2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlz
IG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMv
cnJlc3VsdC9ycmVzdWx0LjAuMi4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50
IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1sz
M21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgcnJlc3VsdC4wLjIuMCBPUEFNIGZp
bGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEu
MSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNr
YWdlcy9zYWZhL3NhZmEuMS4zL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZl
cnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21b
V0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgc2FmYS4xLjMgT1BBTSBmaWxlLCBza2lw
cGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5v
dCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvc2Fm
ZXBhc3Mvc2FmZXBhc3MuMS4zL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZl
cnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21b
V0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgc2FmZXBhc3MuMS4zIE9QQU0gZmlsZSwg
c2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBp
cyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2Vz
L3NhbXBsZXJhdGUvc2FtcGxlcmF0ZS4wLjEuMy9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3Jl
IHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3Rs
eS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIHNhbXBsZXJhdGUuMC4x
LjMgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2Yg
T1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2Rl
ZmF1bHQvcGFja2FnZXMvc2F3amEvc2F3amEuMS41LjEvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEg
bW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3Jy
ZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBzYXdqYS4xLjUu
MSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBP
UEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVm
YXVsdC9wYWNrYWdlcy9zY2hyb2VkaW5nZXIvc2Nocm9lZGluZ2VyLjAuMS4xL29wYW0uIFVwZ3Jh
ZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0
aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNp
bmcgc2Nocm9lZGluZ2VyLjAuMS4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0b
W20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byBy
ZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3NlbXZlci9zZW12ZXIuMC4xLjAvb3Bh
bS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0
byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hp
bGUgcGFyc2luZyBzZW12ZXIuMC4xLjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9S
XRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRv
IHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvc2VxdWVuY2Uvc2VxdWVuY2UuMC41
LjQvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3Qg
MS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJv
cnMgd2hpbGUgcGFyc2luZyBzZXF1ZW5jZS4wLjUuNCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1sz
MW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBl
bm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9zZXF1ZW5jZS9zZXF1
ZW5jZS4wLjUuNS9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChh
dCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkdd
G1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIHNlcXVlbmNlLjAuNS41IE9QQU0gZmlsZSwgc2tpcHBp
bmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3Qg
cmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3NldHIv
c2V0ci4wLjEvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQg
bGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtb
bSBFcnJvcnMgd2hpbGUgcGFyc2luZyBzZXRyLjAuMSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1sz
MW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBl
bm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9zZXRyL3NldHIuMC4x
LjEvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3Qg
MS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJv
cnMgd2hpbGUgcGFyc2luZyBzZXRyLjAuMS4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtF
UlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3Vn
aCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3NleHBsaWIvc2V4cGxpYi4x
MTIuMzUuMDAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQg
bGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtb
bSBFcnJvcnMgd2hpbGUgcGFyc2luZyBzZXhwbGliLjExMi4zNS4wMCBPUEFNIGZpbGUsIHNraXBw
aW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90
IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9zZXhw
bGliL3NleHBsaWIuMTEzLjAwLjAwL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50
IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1sz
M21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgc2V4cGxpYi4xMTMuMDAuMDAgT1BB
TSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAo
MS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQv
cGFja2FnZXMvc2dmL3NnZi4xLjAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQg
dmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMz
bVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBzZ2YuMS4wIE9QQU0gZmlsZSwgc2tp
cHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBu
b3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3Np
bGwvc2lsbC4xLjIvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAo
YXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5H
XRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBzaWxsLjEuMiBPUEFNIGZpbGUsIHNraXBwaW5nLg0K
G1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2Vu
dCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9zaWxsL3NpbGwu
MS4yLjEvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVh
c3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBF
cnJvcnMgd2hpbGUgcGFyc2luZyBzaWxsLjEuMi4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMx
bVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVu
b3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3NpbGwvc2lsbC4xLjMv
b3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4y
KSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMg
d2hpbGUgcGFyc2luZyBzaWxsLjEuMyBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1Jd
G1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8g
cmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9zaWxsL3NpbGwuMS4zLjEvb3BhbS4g
VXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byBy
ZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUg
cGFyc2luZyBzaWxsLjEuMy4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20g
WW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFk
IH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3NpbGwvc2lsbC4xLjQvb3BhbS4gVXBncmFk
ZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRo
aXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2lu
ZyBzaWxsLjEuNCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVy
c2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFt
L3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9zbGFwL3NsYXAuMi4wLjAvb3BhbS4gVXBncmFkZSBPUEFN
IHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmls
ZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBzbGFw
LjIuMC4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9u
IG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVw
by9kZWZhdWx0L3BhY2thZ2VzL3NsYXAvc2xhcC4yLjAuMS9vcGFtLiBVcGdyYWRlIE9QQU0gdG8g
YSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNv
cnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIHNsYXAuMi4w
LjEgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2Yg
T1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2Rl
ZmF1bHQvcGFja2FnZXMvc29jaWFtbC1mYWNlYm9vay1hcGkvc29jaWFtbC1mYWNlYm9vay1hcGku
MC40LjAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVh
c3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBF
cnJvcnMgd2hpbGUgcGFyc2luZyBzb2NpYW1sLWZhY2Vib29rLWFwaS4wLjQuMCBPUEFNIGZpbGUs
IHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkg
aXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdl
cy9zb2NpYW1sLWZhY2Vib29rLWFwaS9zb2NpYW1sLWZhY2Vib29rLWFwaS4wLjQuMS9vcGFtLiBV
cGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJl
YWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBw
YXJzaW5nIHNvY2lhbWwtZmFjZWJvb2stYXBpLjAuNC4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQob
WzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50
IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3NvZGl1bS9zb2Rp
dW0uMC40LjEvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQg
bGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtb
bSBFcnJvcnMgd2hpbGUgcGFyc2luZyBzb2RpdW0uMC40LjEgT1BBTSBmaWxlLCBza2lwcGluZy4N
ChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNl
bnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvc29kaXVtL3Nv
ZGl1bS4wLjUuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChh
dCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkdd
G1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIHNvZGl1bS4wLjUuMCBPUEFNIGZpbGUsIHNraXBwaW5n
Lg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJl
Y2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9zb3VuZHRv
dWNoL3NvdW5kdG91Y2guMC4xLjgvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQg
dmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMz
bVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBzb3VuZHRvdWNoLjAuMS44IE9QQU0g
ZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEu
MS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3Bh
Y2thZ2VzL3NwZWV4L3NwZWV4LjAuMi4xL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVj
ZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0K
G1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgc3BlZXguMC4yLjEgT1BBTSBm
aWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4x
LjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFj
a2FnZXMvc3BvdGxpYi9zcG90bGliLjIuNS4zL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUg
cmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5
Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgc3BvdGxpYi4yLjUuMyBP
UEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFN
ICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVs
dC9wYWNrYWdlcy9zcHJlYWRzaGVldC9zcHJlYWRzaGVldC4wLjEvb3BhbS4gVXBncmFkZSBPUEFN
IHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmls
ZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBzcHJl
YWRzaGVldC4wLjEgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZl
cnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3Bh
bS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvc3FsZ2cvc3FsZ2cuMC4zLjAvb3BhbS4gVXBncmFkZSBP
UEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMg
ZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBz
cWxnZy4wLjMuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVy
c2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFt
L3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9zcWxpdGUzL3NxbGl0ZTMuMi4wLjgvb3BhbS4gVXBncmFk
ZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRo
aXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2lu
ZyBzcWxpdGUzLjIuMC44IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91
ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4v
Lm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3NxbGl0ZTMvc3FsaXRlMy4yLjAuOS9vcGFtLiBV
cGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJl
YWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBw
YXJzaW5nIHNxbGl0ZTMuMi4wLjkgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtb
bSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJl
YWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvc3FsaXRlMy9zcWxpdGUzLjMuMC4wL29w
YW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikg
dG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdo
aWxlIHBhcnNpbmcgc3FsaXRlMy4zLjAuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJS
T1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2gg
dG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9zcWxpdGUzL3NxbGl0ZTMuNC4w
LjAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3Qg
MS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJv
cnMgd2hpbGUgcGFyc2luZyBzcWxpdGUzLjQuMC4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMx
bVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVu
b3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3N0Yl9pbWFnZS9zdGJf
aW1hZ2UuMC4xL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0
IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10b
W20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgc3RiX2ltYWdlLjAuMSBPUEFNIGZpbGUsIHNraXBwaW5n
Lg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJl
Y2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9zdGJfaW1h
Z2Vfd3JpdGUvc3RiX2ltYWdlX3dyaXRlLjAuMS9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3Jl
IHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3Rs
eS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIHN0Yl9pbWFnZV93cml0
ZS4wLjEgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24g
b2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBv
L2RlZmF1bHQvcGFja2FnZXMvc3RiX3RydWV0eXBlL3N0Yl90cnVldHlwZS4wLjEvb3BhbS4gVXBn
cmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFk
IHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFy
c2luZyBzdGJfdHJ1ZXR5cGUuMC4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0b
W20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byBy
ZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3N0ZW1tZXIvc3RlbW1lci4wLjIvb3Bh
bS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0
byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hp
bGUgcGFyc2luZyBzdGVtbWVyLjAuMiBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1Jd
G1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8g
cmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9zdG9nL3N0b2cuMC4xNS4wL29wYW0u
IFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8g
cmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxl
IHBhcnNpbmcgc3RvZy4wLjE1LjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtb
bSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJl
YWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvc3RvZy1yZGYvc3RvZy1yZGYuMC4xNS4w
L29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEu
MikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3Jz
IHdoaWxlIHBhcnNpbmcgc3RvZy1yZGYuMC4xNS4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMx
bVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVu
b3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3N0b2ctd3JpdGluZy9z
dG9nLXdyaXRpbmcuMC4xNS4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZl
cnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21b
V0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgc3RvZy13cml0aW5nLjAuMTUuMCBPUEFN
IGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgx
LjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9w
YWNrYWdlcy9zdHJpbmdleHQvc3RyaW5nZXh0LjEuMi4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBh
IG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29y
cmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgc3RyaW5nZXh0
LjEuMi4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9u
IG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVw
by9kZWZhdWx0L3BhY2thZ2VzL3N0cmluZ2V4dC9zdHJpbmdleHQuMS4zLjAvb3BhbS4gVXBncmFk
ZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRo
aXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2lu
ZyBzdHJpbmdleHQuMS4zLjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZ
b3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQg
fi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvc3RyaW5nZXh0L3N0cmluZ2V4dC4xLjMuMS9v
cGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIp
IHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3
aGlsZSBwYXJzaW5nIHN0cmluZ2V4dC4xLjMuMSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1b
RVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91
Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9zdHJpbmdleHQvc3RyaW5n
ZXh0LjEuNC4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0
IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10b
W20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgc3RyaW5nZXh0LjEuNC4wIE9QQU0gZmlsZSwgc2tpcHBp
bmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3Qg
cmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3N5bWth
dC9zeW1rYXQuMS4zL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24g
KGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklO
R10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgc3lta2F0LjEuMyBPUEFNIGZpbGUsIHNraXBwaW5n
Lg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJl
Y2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9zeW5kaWMv
c3luZGljLjEuMi9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChh
dCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkdd
G1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIHN5bmRpYy4xLjIgT1BBTSBmaWxlLCBza2lwcGluZy4N
ChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNl
bnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvc3luZGljL3N5
bmRpYy4xLjMvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQg
bGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtb
bSBFcnJvcnMgd2hpbGUgcGFyc2luZyBzeW5kaWMuMS4zIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQob
WzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50
IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3N5bmRpYy9zeW5k
aWMuMS4zLjEvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQg
bGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtb
bSBFcnJvcnMgd2hpbGUgcGFyc2luZyBzeW5kaWMuMS4zLjEgT1BBTSBmaWxlLCBza2lwcGluZy4N
ChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNl
bnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvc3luZGljL3N5
bmRpYy4xLjQvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQg
bGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtb
bSBFcnJvcnMgd2hpbGUgcGFyc2luZyBzeW5kaWMuMS40IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQob
WzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50
IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3RhZ2xpYi90YWds
aWIuMC4zLjIvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQg
bGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtb
bSBFcnJvcnMgd2hpbGUgcGFyc2luZyB0YWdsaWIuMC4zLjIgT1BBTSBmaWxlLCBza2lwcGluZy4N
ChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNl
bnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvdGFnbG9nL3Rh
Z2xvZy4wLjEuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChh
dCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkdd
G1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIHRhZ2xvZy4wLjEuMCBPUEFNIGZpbGUsIHNraXBwaW5n
Lg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJl
Y2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy90YWdsb2cv
dGFnbG9nLjAuMi4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24g
KGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklO
R10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgdGFnbG9nLjAuMi4wIE9QQU0gZmlsZSwgc2tpcHBp
bmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3Qg
cmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3Rhci1m
b3JtYXQvdGFyLWZvcm1hdC4wLjMuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2Vu
dCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtb
MzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIHRhci1mb3JtYXQuMC4zLjAgT1BB
TSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAo
MS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQv
cGFja2FnZXMvdGFyLWZvcm1hdC90YXItZm9ybWF0LjAuNC4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0
byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUg
Y29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgdGFyLWZv
cm1hdC4wLjQuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVy
c2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFt
L3JlcG8vZGVmYXVsdC9wYWNrYWdlcy90YXItZm9ybWF0L3Rhci1mb3JtYXQuMC40LjEvb3BhbS4g
VXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byBy
ZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUg
cGFyc2luZyB0YXItZm9ybWF0LjAuNC4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJP
Ul0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0
byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3RjcGlwL3RjcGlwLjEuMS4wL29w
YW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikg
dG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdo
aWxlIHBhcnNpbmcgdGNwaXAuMS4xLjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9S
XRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRv
IHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvdGNwaXAvdGNwaXAuMS4xLjEvb3Bh
bS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0
byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hp
bGUgcGFyc2luZyB0Y3BpcC4xLjEuMSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1Jd
G1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8g
cmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy90Y3BpcC90Y3BpcC4xLjEuMi9vcGFt
LiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRv
IHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGls
ZSBwYXJzaW5nIHRjcGlwLjEuMS4yIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0b
W20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byBy
ZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3RjcGlwL3RjcGlwLjEuMS4zL29wYW0u
IFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8g
cmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxl
IHBhcnNpbmcgdGNwaXAuMS4xLjMgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtb
bSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJl
YWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvdGNwaXAvdGNwaXAuMS4xLjUvb3BhbS4g
VXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byBy
ZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUg
cGFyc2luZyB0Y3BpcC4xLjEuNSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1tt
IFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVh
ZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy90Y3BpcC90Y3BpcC4xLjEuNi9vcGFtLiBV
cGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJl
YWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBw
YXJzaW5nIHRjcGlwLjEuMS42IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20g
WW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFk
IH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3RjcGlwL3RjcGlwLjIuMS4wL29wYW0uIFVw
Z3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVh
ZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBh
cnNpbmcgdGNwaXAuMi4xLjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZ
b3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQg
fi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvdGNwaXAvdGNwaXAuMi4yLjAvb3BhbS4gVXBn
cmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFk
IHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFy
c2luZyB0Y3BpcC4yLjIuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlv
dXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+
Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy90Y3BpcC90Y3BpcC4yLjIuMS9vcGFtLiBVcGdy
YWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQg
dGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJz
aW5nIHRjcGlwLjIuMi4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91
ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4v
Lm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3RjcGlwL3RjcGlwLjIuMi4yL29wYW0uIFVwZ3Jh
ZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0
aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNp
bmcgdGNwaXAuMi4yLjIgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3Vy
IHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8u
b3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvdGNwaXAvdGNwaXAuMi4yLjMvb3BhbS4gVXBncmFk
ZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRo
aXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2lu
ZyB0Y3BpcC4yLjIuMyBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIg
dmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5v
cGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy90Y3BpcC90Y3BpcC4yLjMuMC9vcGFtLiBVcGdyYWRl
IE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhp
cyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5n
IHRjcGlwLjIuMy4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2
ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9w
YW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3RjcGlwL3RjcGlwLjIuMy4xL29wYW0uIFVwZ3JhZGUg
T1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlz
IGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcg
dGNwaXAuMi4zLjEgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZl
cnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3Bh
bS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvdGNwaXAvdGNwaXAuMi40LjAvb3BhbS4gVXBncmFkZSBP
UEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMg
ZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyB0
Y3BpcC4yLjQuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVy
c2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFt
L3JlcG8vZGVmYXVsdC9wYWNrYWdlcy90Y3BpcC90Y3BpcC4yLjQuMS9vcGFtLiBVcGdyYWRlIE9Q
QU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBm
aWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIHRj
cGlwLjIuNC4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJz
aW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0v
cmVwby9kZWZhdWx0L3BhY2thZ2VzL3RjcGlwL3RjcGlwLjIuNC4yL29wYW0uIFVwZ3JhZGUgT1BB
TSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZp
bGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgdGNw
aXAuMi40LjIgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNp
b24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9y
ZXBvL2RlZmF1bHQvcGFja2FnZXMvdGNwaXAvdGNwaXAuMi40LjMvb3BhbS4gVXBncmFkZSBPUEFN
IHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmls
ZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyB0Y3Bp
cC4yLjQuMyBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lv
biBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3Jl
cG8vZGVmYXVsdC9wYWNrYWdlcy90Y3BpcC90Y3BpcC4yLjUuMC9vcGFtLiBVcGdyYWRlIE9QQU0g
dG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxl
IGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIHRjcGlw
LjIuNS4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9u
IG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVw
by9kZWZhdWx0L3BhY2thZ2VzL3RjcGlwL3RjcGlwLjIuNS4xL29wYW0uIFVwZ3JhZGUgT1BBTSB0
byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUg
Y29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgdGNwaXAu
Mi41LjEgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24g
b2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBv
L2RlZmF1bHQvcGFja2FnZXMvdGNwaXAvdGNwaXAuMi42LjAvb3BhbS4gVXBncmFkZSBPUEFNIHRv
IGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBj
b3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyB0Y3BpcC4y
LjYuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBv
ZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8v
ZGVmYXVsdC9wYWNrYWdlcy90Y3BpcC90Y3BpcC4yLjYuMS9vcGFtLiBVcGdyYWRlIE9QQU0gdG8g
YSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNv
cnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIHRjcGlwLjIu
Ni4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9m
IE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9k
ZWZhdWx0L3BhY2thZ2VzL3RjeC90Y3guMC4yNS4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1v
cmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVj
dGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgdGN4LjAuMjUuMCBP
UEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFN
ICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVs
dC9wYWNrYWdlcy90ZGsvdGRrLjAuMi4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVj
ZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0K
G1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgdGRrLjAuMi4wIE9QQU0gZmls
ZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4x
KSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2th
Z2VzL3RleHQvdGV4dC4wLjguMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2
ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNt
W1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIHRleHQuMC44LjAgT1BBTSBmaWxlLCBz
a2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlz
IG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMv
dGV4dHV0aWxzL3RleHR1dGlscy4xMTIuMTcuMDAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9y
ZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0
bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyB0ZXh0dXRpbHMuMTEy
LjE3LjAwIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9u
IG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVw
by9kZWZhdWx0L3BhY2thZ2VzL3RleHR3cmFwL3RleHR3cmFwLjAuMi9vcGFtLiBVcGdyYWRlIE9Q
QU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBm
aWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIHRl
eHR3cmFwLjAuMiBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVy
c2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFt
L3JlcG8vZGVmYXVsdC9wYWNrYWdlcy90ZnRwL3RmdHAuMC4xLjQvb3BhbS4gVXBncmFkZSBPUEFN
IHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmls
ZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyB0ZnRw
LjAuMS40IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9u
IG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVw
by9kZWZhdWx0L3BhY2thZ2VzL3RnbHMvdGdscy4wLjguMy9vcGFtLiBVcGdyYWRlIE9QQU0gdG8g
YSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNv
cnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIHRnbHMuMC44
LjMgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2Yg
T1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2Rl
ZmF1bHQvcGFja2FnZXMvdGhlb3JhL3RoZW9yYS4wLjMuMS9vcGFtLiBVcGdyYWRlIE9QQU0gdG8g
YSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNv
cnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIHRoZW9yYS4w
LjMuMSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBv
ZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8v
ZGVmYXVsdC9wYWNrYWdlcy90aWR5L3RpZHkuMDoyMDA5LTAuMS4xL29wYW0uIFVwZ3JhZGUgT1BB
TSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZp
bGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgdGlk
eS4wOjIwMDktMC4xLjEgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3Vy
IHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8u
b3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvdGlkeS90aWR5LjE6NC45LjMwLTAuMS4xL29wYW0u
IFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8g
cmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxl
IHBhcnNpbmcgdGlkeS4xOjQuOS4zMC0wLjEuMSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1b
RVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91
Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy90bHMvdGxzLjAuMS4wL29w
YW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikg
dG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdo
aWxlIHBhcnNpbmcgdGxzLjAuMS4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0b
W20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byBy
ZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3Rscy90bHMuMC4yLjAvb3BhbS4gVXBn
cmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFk
IHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFy
c2luZyB0bHMuMC4yLjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3Vy
IHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8u
b3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvdGxzL3Rscy4wLjMuMC9vcGFtLiBVcGdyYWRlIE9Q
QU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBm
aWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIHRs
cy4wLjMuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lv
biBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3Jl
cG8vZGVmYXVsdC9wYWNrYWdlcy90bHMvdGxzLjAuNC4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBh
IG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29y
cmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgdGxzLjAuNC4w
IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9Q
QU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZh
dWx0L3BhY2thZ2VzL3Rscy90bHMuMC41LjAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSBy
ZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHku
DQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyB0bHMuMC41LjAgT1BBTSBm
aWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4x
LjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFj
a2FnZXMvdGxzL3Rscy4wLjYuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2
ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNt
W1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIHRscy4wLjYuMCBPUEFNIGZpbGUsIHNr
aXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMg
bm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy90
bHN0dW5uZWwvdGxzdHVubmVsLjAuMS4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVj
ZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0K
G1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgdGxzdHVubmVsLjAuMS4wIE9Q
QU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0g
KDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0
L3BhY2thZ2VzL3Rsc3R1bm5lbC90bHN0dW5uZWwuMC4xLjEvb3BhbS4gVXBncmFkZSBPUEFNIHRv
IGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBj
b3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyB0bHN0dW5u
ZWwuMC4xLjEgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNp
b24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9y
ZXBvL2RlZmF1bHQvcGFja2FnZXMvdG9tbC90b21sLjIuMC4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0
byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUg
Y29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgdG9tbC4y
LjAuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBv
ZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8v
ZGVmYXVsdC9wYWNrYWdlcy90b21sL3RvbWwuMi4xLjAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEg
bW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3Jy
ZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyB0b21sLjIuMS4w
IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9Q
QU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZh
dWx0L3BhY2thZ2VzL3RvbWwvdG9tbC4yLjIuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3Jl
IHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3Rs
eS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIHRvbWwuMi4yLjAgT1BB
TSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAo
MS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQv
cGFja2FnZXMvdG9tbC90b21sLjIuMi4xL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVj
ZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0K
G1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgdG9tbC4yLjIuMSBPUEFNIGZp
bGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEu
MSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNr
YWdlcy90b3BvbG9neS90b3BvbG9neS4wLjQuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3Jl
IHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3Rs
eS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIHRvcG9sb2d5LjAuNC4w
IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9Q
QU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZh
dWx0L3BhY2thZ2VzL3RyYWtldmEvdHJha2V2YS4wLjAuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8g
YSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNv
cnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIHRyYWtldmEu
MC4wLjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24g
b2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBv
L2RlZmF1bHQvcGFja2FnZXMvdHJpZS90cmllLjAuMS4xL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBh
IG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29y
cmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgdHJpZS4wLjEu
MSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBP
UEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVm
YXVsdC9wYWNrYWdlcy90dWFyZWcvdHVhcmVnLjIuMC44L29wYW0uIFVwZ3JhZGUgT1BBTSB0byBh
IG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29y
cmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgdHVhcmVnLjIu
MC44IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9m
IE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9k
ZWZhdWx0L3BhY2thZ2VzL3R1YXJlZy90dWFyZWcuMi4wLjkvb3BhbS4gVXBncmFkZSBPUEFNIHRv
IGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBj
b3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyB0dWFyZWcu
Mi4wLjkgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24g
b2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBv
L2RlZmF1bHQvcGFja2FnZXMvdHVudGFwL3R1bnRhcC4xLjMuMC9vcGFtLiBVcGdyYWRlIE9QQU0g
dG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxl
IGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIHR1bnRh
cC4xLjMuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lv
biBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3Jl
cG8vZGVmYXVsdC9wYWNrYWdlcy90eXBlX2NvbnYvdHlwZV9jb252LjExMy4wMC4wMC9vcGFtLiBV
cGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJl
YWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBw
YXJzaW5nIHR5cGVfY29udi4xMTMuMDAuMDAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VS
Uk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdo
IHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvdHlwZXJlcC90eXBlcmVwLjEx
Mi4zNS4wMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBs
ZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1tt
IEVycm9ycyB3aGlsZSBwYXJzaW5nIHR5cGVyZXAuMTEyLjM1LjAwIE9QQU0gZmlsZSwgc2tpcHBp
bmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3Qg
cmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3R5cGVy
ZXAvdHlwZXJlcC4xMTMuMDAuMDAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQg
dmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMz
bVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyB0eXBlcmVwLjExMy4wMC4wMCBPUEFN
IGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgx
LjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9w
YWNrYWdlcy90eXBlcmVwX2V4dGVuZGVkL3R5cGVyZXBfZXh0ZW5kZWQuMTEzLjAwLjAwL29wYW0u
IFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8g
cmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxl
IHBhcnNpbmcgdHlwZXJlcF9leHRlbmRlZC4xMTMuMDAuMDAgT1BBTSBmaWxlLCBza2lwcGluZy4N
ChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNl
bnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvdHl4bWwvdHl4
bWwuMy40LjAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQg
bGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtb
bSBFcnJvcnMgd2hpbGUgcGFyc2luZyB0eXhtbC4zLjQuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0K
G1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2Vu
dCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy90eXhtbC90eXht
bC4zLjUuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBs
ZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1tt
IEVycm9ycyB3aGlsZSBwYXJzaW5nIHR5eG1sLjMuNS4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQob
WzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50
IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3VyaS91cmkuMS44
LjAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3Qg
MS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJv
cnMgd2hpbGUgcGFyc2luZyB1cmkuMS44LjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VS
Uk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdo
IHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvdXJpL3VyaS4xLjkuMC9vcGFt
LiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRv
IHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGls
ZSBwYXJzaW5nIHVyaS4xLjkuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1tt
IFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVh
ZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy91cmkvdXJpLjEuOS4xL29wYW0uIFVwZ3Jh
ZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0
aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNp
bmcgdXJpLjEuOS4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2
ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9w
YW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3VzZXItc2V0dXAvdXNlci1zZXR1cC4wLjEvb3BhbS4g
VXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byBy
ZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUg
cGFyc2luZyB1c2VyLXNldHVwLjAuMSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1Jd
G1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8g
cmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy91c2VyLXNldHVwL3VzZXItc2V0dXAu
MC4yL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0
IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJy
b3JzIHdoaWxlIHBhcnNpbmcgdXNlci1zZXR1cC4wLjIgT1BBTSBmaWxlLCBza2lwcGluZy4NChtb
MzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQg
ZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvdXNlci1zZXR1cC91
c2VyLXNldHVwLjAuMy9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9u
IChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5J
TkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIHVzZXItc2V0dXAuMC4zIE9QQU0gZmlsZSwgc2tp
cHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBu
b3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3Vz
ZXItc2V0dXAvdXNlci1zZXR1cC4wLjQvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNl
bnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQob
WzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyB1c2VyLXNldHVwLjAuNCBPUEFN
IGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgx
LjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9w
YWNrYWdlcy91dG9wL3V0b3AuMS4xNi9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2Vu
dCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtb
MzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIHV0b3AuMS4xNiBPUEFNIGZpbGUs
IHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkg
aXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdl
cy91dG9wL3V0b3AuMS4xNy9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJz
aW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dB
Uk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIHV0b3AuMS4xNyBPUEFNIGZpbGUsIHNraXBw
aW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90
IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy91dG9w
L3V0b3AuMS4xOC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChh
dCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkdd
G1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIHV0b3AuMS4xOCBPUEFNIGZpbGUsIHNraXBwaW5nLg0K
G1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2Vu
dCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy91dWNwL3V1Y3Au
MC45LjEvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVh
c3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBF
cnJvcnMgd2hpbGUgcGFyc2luZyB1dWNwLjAuOS4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMx
bVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVu
b3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3V1Y3AvdXVjcC4xLjAu
MC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAx
LjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9y
cyB3aGlsZSBwYXJzaW5nIHV1Y3AuMS4wLjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VS
Uk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdo
IHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvdXVuZi91dW5mLjEuMC4wL29w
YW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikg
dG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdo
aWxlIHBhcnNpbmcgdXVuZi4xLjAuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1Jd
G1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8g
cmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy91dXNlZy91dXNlZy4wLjguMC9vcGFt
LiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRv
IHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGls
ZSBwYXJzaW5nIHV1c2VnLjAuOC4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0b
W20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byBy
ZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3V1c2VnL3V1c2VnLjAuOS4wL29wYW0u
IFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8g
cmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxl
IHBhcnNpbmcgdXVzZWcuMC45LjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtb
bSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJl
YWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvdXV0Zi91dXRmLjAuOS40L29wYW0uIFVw
Z3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVh
ZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBh
cnNpbmcgdXV0Zi4wLjkuNCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlv
dXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+
Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy91d3QvdXd0LjAuMC4xL29wYW0uIFVwZ3JhZGUg
T1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlz
IGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcg
dXd0LjAuMC4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJz
aW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0v
cmVwby9kZWZhdWx0L3BhY2thZ2VzL3V3dC91d3QuMC4wLjIvb3BhbS4gVXBncmFkZSBPUEFNIHRv
IGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBj
b3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyB1d3QuMC4w
LjIgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2Yg
T1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2Rl
ZmF1bHQvcGFja2FnZXMvdmFyaWFudHNsaWIvdmFyaWFudHNsaWIuMTA5LjE1LjAzL29wYW0uIFVw
Z3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVh
ZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBh
cnNpbmcgdmFyaWFudHNsaWIuMTA5LjE1LjAzIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtF
UlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3Vn
aCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3ZjaGFuL3ZjaGFuLjIuMC4z
L29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEu
MikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3Jz
IHdoaWxlIHBhcnNpbmcgdmNoYW4uMi4wLjMgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VS
Uk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdo
IHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvdmcvdmcuMC44LjIvb3BhbS4g
VXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byBy
ZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUg
cGFyc2luZyB2Zy4wLjguMiBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlv
dXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+
Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy92bW5ldC92bW5ldC4xLjAuMC9vcGFtLiBVcGdy
YWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQg
dGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJz
aW5nIHZtbmV0LjEuMC4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91
ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4v
Lm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3ZtbmV0L3ZtbmV0LjEuMC4xL29wYW0uIFVwZ3Jh
ZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0
aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNp
bmcgdm1uZXQuMS4wLjEgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3Vy
IHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8u
b3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvdm9hYWNlbmMvdm9hYWNlbmMuMC4xLjEvb3BhbS4g
VXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byBy
ZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUg
cGFyc2luZyB2b2FhY2VuYy4wLjEuMSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1Jd
G1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8g
cmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy92b3JiaXMvdm9yYmlzLjAuNi4yL29w
YW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikg
dG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdo
aWxlIHBhcnNpbmcgdm9yYmlzLjAuNi4yIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJP
Ul0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0
byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3ZydC92cnQuMC4xLjAvb3BhbS4g
VXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byBy
ZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUg
cGFyc2luZyB2cnQuMC4xLjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZ
b3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQg
fi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvd2VibWFjaGluZS93ZWJtYWNoaW5lLjAuMS4w
L29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEu
MikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3Jz
IHdoaWxlIHBhcnNpbmcgd2VibWFjaGluZS4wLjEuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1sz
MW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBl
bm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy93ZWJzb2NrZXQvd2Vi
c29ja2V0LjAuNi9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChh
dCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkdd
G1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIHdlYnNvY2tldC4wLjYgT1BBTSBmaWxlLCBza2lwcGlu
Zy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCBy
ZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvd2Vic29j
a2V0L3dlYnNvY2tldC4wLjcvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVy
c2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtX
QVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyB3ZWJzb2NrZXQuMC43IE9QQU0gZmlsZSwg
c2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBp
cyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2Vz
L3dlYnNvY2tldC93ZWJzb2NrZXQuMC44L29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVj
ZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0K
G1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgd2Vic29ja2V0LjAuOCBPUEFN
IGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgx
LjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9w
YWNrYWdlcy93ZWJzb2NrZXQvd2Vic29ja2V0LjAuOC4xL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBh
IG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29y
cmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgd2Vic29ja2V0
LjAuOC4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9u
IG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVw
by9kZWZhdWx0L3BhY2thZ2VzL3dlYnNvY2tldC93ZWJzb2NrZXQuMC45LjEvb3BhbS4gVXBncmFk
ZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRo
aXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2lu
ZyB3ZWJzb2NrZXQuMC45LjEgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZ
b3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQg
fi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvd2Vic29ja2V0L3dlYnNvY2tldC4wLjkuMi9v
cGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIp
IHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3
aGlsZSBwYXJzaW5nIHdlYnNvY2tldC4wLjkuMiBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1b
RVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91
Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy93ZWJzb2NrZXQvd2Vic29j
a2V0LjAuOS4zL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0
IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10b
W20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgd2Vic29ja2V0LjAuOS4zIE9QQU0gZmlsZSwgc2tpcHBp
bmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3Qg
cmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3dlYnNv
Y2tldC93ZWJzb2NrZXQuMi4wLjAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQg
dmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMz
bVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyB3ZWJzb2NrZXQuMi4wLjAgT1BBTSBm
aWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4x
LjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFj
a2FnZXMvd2Vic29ja2V0L3dlYnNvY2tldC4yLjEvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9y
ZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0
bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyB3ZWJzb2NrZXQuMi4x
IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9Q
QU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZh
dWx0L3BhY2thZ2VzL3doeS93aHkuMi4zNC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJl
Y2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4N
ChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIHdoeS4yLjM0IE9QQU0gZmls
ZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4x
KSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2th
Z2VzL3doeS93aHkuMi4zNS9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJz
aW9uIChhdCBsZWFzdCAxLjIuMCkgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21b
V0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgd2h5LjIuMzUgT1BBTSBmaWxlLCBza2lw
cGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5v
dCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvd2h5
My93aHkzLjAuODUvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAo
YXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5H
XRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyB3aHkzLjAuODUgT1BBTSBmaWxlLCBza2lwcGluZy4N
ChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNl
bnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvd2h5My93aHkz
LjAuODYvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVh
c3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBF
cnJvcnMgd2hpbGUgcGFyc2luZyB3aHkzLjAuODYgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFt
W0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5v
dWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvd2h5My1iYXNlL3doeTMt
YmFzZS4wLjg1L29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0
IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10b
W20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgd2h5My1iYXNlLjAuODUgT1BBTSBmaWxlLCBza2lwcGlu
Zy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCBy
ZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvd2h5My1i
YXNlL3doeTMtYmFzZS4wLjg2L29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZl
cnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21b
V0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgd2h5My1iYXNlLjAuODYgT1BBTSBmaWxl
LCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEp
IGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2Fn
ZXMveDUwOS94NTA5LjAuMi4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZl
cnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21b
V0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgeDUwOS4wLjIuMCBPUEFNIGZpbGUsIHNr
aXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMg
bm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy94
NTA5L3g1MDkuMC4yLjEvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lv
biAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJO
SU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyB4NTA5LjAuMi4xIE9QQU0gZmlsZSwgc2tpcHBp
bmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3Qg
cmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3g1MDkv
eDUwOS4wLjMuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChh
dCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkdd
G1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIHg1MDkuMC4zLjAgT1BBTSBmaWxlLCBza2lwcGluZy4N
ChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNl
bnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMveDUwOS94NTA5
LjAuMy4xL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxl
YXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20g
RXJyb3JzIHdoaWxlIHBhcnNpbmcgeDUwOS4wLjMuMSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1sz
MW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBl
bm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy94NTA5L3g1MDkuMC40
LjAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3Qg
MS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJv
cnMgd2hpbGUgcGFyc2luZyB4NTA5LjAuNC4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtF
UlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3Vn
aCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3hlbi1nbnQveGVuLWdudC4y
LjEuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFz
dCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVy
cm9ycyB3aGlsZSBwYXJzaW5nIHhlbi1nbnQuMi4xLjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtb
MzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQg
ZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMveGVuLWdudC94ZW4t
Z250LjIuMi4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0
IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10b
W20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgeGVuLWdudC4yLjIuMCBPUEFNIGZpbGUsIHNraXBwaW5n
Lg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJl
Y2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy94ZW5zdG9y
ZS94ZW5zdG9yZS4xLjIuNS9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJz
aW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dB
Uk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIHhlbnN0b3JlLjEuMi41IE9QQU0gZmlsZSwg
c2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBp
cyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2Vz
L3htbHBsYXlsaXN0L3htbHBsYXlsaXN0LjAuMS40L29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1v
cmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVj
dGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgeG1scGxheWxpc3Qu
MC4xLjQgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24g
b2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBv
L2RlZmF1bHQvcGFja2FnZXMveW9qc29uL3lvanNvbi4xLjAuMy9vcGFtLiBVcGdyYWRlIE9QQU0g
dG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxl
IGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIHlvanNv
bi4xLjAuMyBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lv
biBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3Jl
cG8vZGVmYXVsdC9wYWNrYWdlcy95b2pzb24veW9qc29uLjEuMS4zL29wYW0uIFVwZ3JhZGUgT1BB
TSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZp
bGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgeW9q
c29uLjEuMS4zIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJz
aW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0v
cmVwby9kZWZhdWx0L3BhY2thZ2VzL3lvanNvbi95b2pzb24uMS4yLjMvb3BhbS4gVXBncmFkZSBP
UEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMg
ZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyB5
b2pzb24uMS4yLjMgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9y
cyB3aGlsZSBwYXJzaW5nIHphcml0aC4xLjMgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VS
Uk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdo
IHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvem1xL3ptcS40LjAtNC9vcGFt
LiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRv
IHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGls
ZSBwYXJzaW5nIHptcS40LjAtNCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1tt
IFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVh
ZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy8waW5zdGFsbC8waW5zdGFsbC4yLjkuMS9v
cGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIp
IHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3
aGlsZSBwYXJzaW5nIDBpbnN0YWxsLjIuOS4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtF
UlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3Vn
aCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2FhY3BsdXMvYWFjcGx1cy4w
LjIuMi9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFz
dCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVy
cm9ycyB3aGlsZSBwYXJzaW5nIGFhY3BsdXMuMC4yLjIgT1BBTSBmaWxlLCBza2lwcGluZy4NChtb
MzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQg
ZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvYWdvL2Fnby4wLjEv
b3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4y
KSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMg
d2hpbGUgcGFyc2luZyBhZ28uMC4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0b
W20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byBy
ZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2Fnby9hZ28uMC4yL29wYW0uIFVwZ3Jh
ZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0
aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNp
bmcgYWdvLjAuMiBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVy
c2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFt
L3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9hZ28vYWdvLjAuMy9vcGFtLiBVcGdyYWRlIE9QQU0gdG8g
YSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNv
cnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGFnby4wLjMg
T1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BB
TSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1
bHQvcGFja2FnZXMvYWxiZXJ0by9hbGJlcnRvLjAuMy9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBt
b3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJl
Y3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGFsYmVydG8uMC4z
IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9Q
QU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZh
dWx0L3BhY2thZ2VzL2FsYmVydG8vYWxiZXJ0by4wLjQvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEg
bW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3Jy
ZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBhbGJlcnRvLjAu
NCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBP
UEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVm
YXVsdC9wYWNrYWdlcy9hbGNvdGVzdC9hbGNvdGVzdC4wLjEuMC9vcGFtLiBVcGdyYWRlIE9QQU0g
dG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxl
IGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGFsY290
ZXN0LjAuMS4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJz
aW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0v
cmVwby9kZWZhdWx0L3BhY2thZ2VzL2FsY290ZXN0L2FsY290ZXN0LjAuMi4wL29wYW0uIFVwZ3Jh
ZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0
aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNp
bmcgYWxjb3Rlc3QuMC4yLjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZ
b3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQg
fi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvYWxjb3Rlc3QvYWxjb3Rlc3QuMC4zLjAvb3Bh
bS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0
byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hp
bGUgcGFyc2luZyBhbGNvdGVzdC4wLjMuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJS
T1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2gg
dG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9hbGNvdGVzdC9hbGNvdGVzdC4w
LjMuMS9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFz
dCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVy
cm9ycyB3aGlsZSBwYXJzaW5nIGFsY290ZXN0LjAuMy4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQob
WzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50
IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2FsY290ZXN0L2Fs
Y290ZXN0LjAuMy4yL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24g
KGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklO
R10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgYWxjb3Rlc3QuMC4zLjIgT1BBTSBmaWxlLCBza2lw
cGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5v
dCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvYWxj
b3Rlc3QvYWxjb3Rlc3QuMC4zLjMvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQg
dmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMz
bVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBhbGNvdGVzdC4wLjMuMyBPUEFNIGZp
bGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEu
MSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNr
YWdlcy9hbGNvdGVzdC9hbGNvdGVzdC4wLjQuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3Jl
IHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3Rs
eS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGFsY290ZXN0LjAuNC4w
IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQonb3BhbSBpbml0JyBmYWlsZWQuDQpGYXRhbCBlcnJvcjoN
ClN5c19lcnJvcigiL2hvbWUvbGFzeWEvLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2FsY290
ZXN0L2FsY290ZXN0LjAuNC4xL29wYW06IFRvbyBtYW55IG9wZW4gZmlsZXMiKQ0KG10wO2xhc3lh
QHRoZWdvbGRlbnNuaXRjaDogfgdsYXN5YUB0aGVnb2xkZW5zbml0Y2g6fiQgZXhpdA0KZXhpdA0K
ClNjcmlwdCBkb25lIG9uIFRodXJzZGF5IDI0IFNlcHRlbWJlciAyMDE1IDA5OjI5OjI3IFBNIElT
VAo=
--089e0122a09c40be5005208073b0
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

--089e0122a09c40be5005208073b0--


From mirageos-devel-bounces@lists.xenproject.org Thu Sep 24 16:09:32 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 24 Sep 2015 16:09:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1Zf95I-0001Pe-1h; Thu, 24 Sep 2015 16:09:24 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <comethalley61@gmail.com>) id 1Zf95F-0001PR-3A
	for mirageos-devel@lists.xenproject.org; Thu, 24 Sep 2015 16:09:22 +0000
Received: from [85.158.137.68] by server-3.bemta-3.messagelabs.com id
	BE/BE-01753-03024065; Thu, 24 Sep 2015 16:09:20 +0000
X-Env-Sender: comethalley61@gmail.com
X-Msg-Ref: server-5.tower-31.messagelabs.com!1443110945!47422434!1
X-Originating-IP: [209.85.213.170]
X-SpamReason: No, hits=3.3 required=7.0 tests=BODY_RANDOM_LONG,
	DEAR_SOMETHING,HTML_40_50,HTML_MESSAGE,MAILTO_TO_SPAM_ADDR,RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 18590 invoked from network); 24 Sep 2015 16:09:06 -0000
Received: from mail-ig0-f170.google.com (HELO mail-ig0-f170.google.com)
	(209.85.213.170)
	by server-5.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	24 Sep 2015 16:09:06 -0000
Received: by igbkq10 with SMTP id kq10so18645638igb.0
	for <mirageos-devel@lists.xenproject.org>;
	Thu, 24 Sep 2015 09:09:05 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:in-reply-to:references:date:message-id:subject:from:to
	:cc:content-type;
	bh=dOGMrzZaSqw1vDWNkSzOzcBMxCfxGszBn8+Pe7Nt5fc=;
	b=xp5iX30a03FoF9+biGKHypXnE0WxZY7GrS3Vtir0hK5Zbi87Cx8kKxWB9lrtPwNq+4
	si+kdYu7w3FYyOcq+Rc+kSyEwYaZr2Ix1qTqvXQP/aFWnBrMm9CbUJ2Jgq6ScQwei0Pz
	IDz9zjTMdDHQcO+IKVxj34iC/3bEmnJDPc7Z0NWS+cNj/Ne9A9i6Us23q1exkpvz5CDx
	0/sZsmI+Qf08xosFap7VEu8DeH5li62BiiCjmX70ptWMEpfELr0KZyd3sBLAIE7CqHBL
	sgFHQy9ybvUjjPnFjoe+BqIV+ncgSDqw1XqnFwo8nK1+Tpgf1pqAeS+IJI319+2DKMb4
	QZEQ==
MIME-Version: 1.0
X-Received: by 10.50.138.227 with SMTP id qt3mr1575582igb.58.1443110945061;
	Thu, 24 Sep 2015 09:09:05 -0700 (PDT)
Received: by 10.107.180.149 with HTTP; Thu, 24 Sep 2015 09:09:04 -0700 (PDT)
In-Reply-To: <CAAbK429TUAiBS+wRLuBFb3L2P4ymbbAu5e0rQdSn_U74_QtuWg@mail.gmail.com>
References: <CAAbK429srd4r7Kp10nPK5vndcZYLoXOsh9W=K_E4mpKVrVpZXA@mail.gmail.com>
	<56009188.1070102@somerandomidiot.com>
	<CAAbK429psAZAncgBwHP4t=hcBB104dY5T+Mefn0ze-SEYz4dDA@mail.gmail.com>
	<EF478C7D-4CF9-41FD-9309-A6602819AE4B@recoil.org>
	<CAAbK429TUAiBS+wRLuBFb3L2P4ymbbAu5e0rQdSn_U74_QtuWg@mail.gmail.com>
Date: Thu, 24 Sep 2015 21:39:04 +0530
Message-ID: <CAAbK42_Zsyy-UYgT2yvtBat9QjaDyk2v-T1tpxYcnyf4pdL1tA@mail.gmail.com>
From: Lasya Venneti <comethalley61@gmail.com>
To: mirageos-devel@lists.xenproject.org
Content-Type: multipart/mixed; boundary=089e0122a09c40be5005208073b0
Cc: Lars Kurth <lars.kurth@citrix.com>, Anil Madhavapeddy <anil@recoil.org>
Subject: Re: [MirageOS-devel] Getting Started
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--089e0122a09c40be5005208073b0
Content-Type: multipart/alternative; boundary=089e0122a09c40be4c05208073ae

--089e0122a09c40be4c05208073ae
Content-Type: text/plain; charset=UTF-8

Dear all,

While following the installation instructions, the 'opam init' command has
failed with the error :
Sys_error("/home/lasya/.opam/repo/default/packages/alcotest/alcotest.0.4.1/opam:
Too many open files")
I have also attached the screen log to the mail. My laptop is mid 2014
Lenovo-Y510p with Ubuntu 14.04 64 bit. Can somebody tell me how do I solve
this and why is this happening? Am I doing something wrong?

Thanks.

Sincerely,
Lasya V

On 22 September 2015 at 22:24, Lasya Venneti <comethalley61@gmail.com>
wrote:

> Dear Sir,
> Thank you! :) Sure thing! I would love to contribute to documentation too,
>  once I start getting the hang of things.
>
> Sincerely,
> Lasya V
>
> On 22 September 2015 at 15:54, Anil Madhavapeddy <anil@recoil.org> wrote:
>
>> And above all, welcome!  Feel free to ask questions as you learn and
>> explore the various components.  As Mindy notes, there's still quite a bit
>> of "institutional knowledge" that hasn't been captured in our
>> documentation, so patches to improve mirage-www (which is the live website)
>> are most welcome, as are any pieces that you find confusing or difficult to
>> get started with.
>>
>> Anil
>>
>> On 22 Sep 2015, at 10:06, Lasya Venneti <comethalley61@gmail.com> wrote:
>>
>> Dear Ma'am,
>>
>> Thanks for such an informative mail! I will get started with contributing
>> right away!
>>
>> Sincerely,
>> Lasya V
>>
>> On 22 September 2015 at 04:53, Mindy <mindy@somerandomidiot.com> wrote:
>>
>>> Hi Lasya,
>>>
>>> Glad to hear you're interested in MirageOS!  Here's a short list of
>>> links you may find helpful in getting started.
>>>
>>> The documentation page of the MirageOS website ( https://mirage.io/docs/
>>> ) has a list of links for getting started, the first of which is here:
>>> https://mirage.io/wiki/install .  A quick guide to contributing is
>>> available here: https://mirage.io/wiki/contributing .
>>>
>>> Any fixes for unclear or confusing bits of text you find in the above
>>> documents can be submitted as pull requests to the mirage-www repository at
>>> https://github.com/mirage/mirage-www , and would make excellent
>>> contributions.
>>>
>>> You may be interested in the list of "pioneer projects":
>>> https://github.com/mirage/mirage-www/wiki/Pioneer-Projects .  The
>>> projects listed are too large for a first contribution of the type
>>> requested by (for example) the Outreachy application process, but some of
>>> are approximately the right size for the internship itself.
>>>
>>> Many known issues in MirageOS are listed via the GitHub issue tracker
>>> for the `mirage` tool: https://github.com/mirage/mirage/issues .  There
>>> are others on the repositories for specific libraries (e.g. the
>>> mirage-tcpip repository issue tracker at
>>> https://github.com/mirage/mirage-tcpip ).  We don't have a nice way to
>>> aggregate all open issues at the moment as far as I know (but someone
>>> please correct me if I'm wrong!)
>>>
>>> Cheers,
>>> Mindy Preston
>>>
>>>
>>> On 09/20/2015 07:42 AM, Lasya Venneti wrote:
>>>
>>> Hi all,
>>>
>>> I'm Lasya, a student pursuing Computer Science Engineering from IIIT-H,
>>> Hyderabad, India.
>>>
>>> I wish to get started with contributing to Mirage OS. I have conceptual
>>> knowledge about Computer system architecture, and OS concepts like
>>> Virtualization. I hope they will be useful while contributing to the
>>> community, I am willing to learn with your help & guidance. :)
>>>
>>> Request to link me to some pages/docs that I am supposed to read to help
>>> me setup the environment and start contributing, & a few beginner bugs that
>>> I can try my hand at.
>>>
>>> Sincerely,
>>> Lasya V
>>>
>>>
>>> _______________________________________________
>>> MirageOS-devel mailing listMirageOS-devel@lists.xenproject.orghttp://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
>>>
>>>
>>>
>>> _______________________________________________
>>> MirageOS-devel mailing list
>>> MirageOS-devel@lists.xenproject.org
>>> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
>>>
>>>
>> _______________________________________________
>> MirageOS-devel mailing list
>> MirageOS-devel@lists.xenproject.org
>> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
>>
>>
>>
>

--089e0122a09c40be4c05208073ae
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Dear all,<div><br></div><div>While following the installat=
ion instructions, the &#39;opam init&#39; command has failed with the error=
 : Sys_error(&quot;/home/lasya/.opam/repo/default/packages/alcotest/alcotes=
t.0.4.1/opam: Too many open files&quot;)</div><div>I have also attached the=
 screen log to the mail. My laptop is mid 2014 Lenovo-Y510p with Ubuntu 14.=
04 64 bit. Can somebody tell me how do I solve this and why is this happeni=
ng? Am I doing something wrong?=C2=A0</div><div><br></div><div>Thanks.</div=
><div><br></div><div>Sincerely,</div><div>Lasya V=C2=A0</div></div><div cla=
ss=3D"gmail_extra"><br><div class=3D"gmail_quote">On 22 September 2015 at 2=
2:24, Lasya Venneti <span dir=3D"ltr">&lt;<a href=3D"mailto:comethalley61@g=
mail.com" target=3D"_blank">comethalley61@gmail.com</a>&gt;</span> wrote:<b=
r><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:=
1px #ccc solid;padding-left:1ex"><div dir=3D"ltr">Dear Sir,<div>Thank you! =
:) Sure thing! I would love to contribute to documentation too, =C2=A0once =
I start getting the hang of things.=C2=A0</div><div><br></div><div>Sincerel=
y,</div><div>Lasya V=C2=A0</div></div><div class=3D"HOEnZb"><div class=3D"h=
5"><div class=3D"gmail_extra"><br><div class=3D"gmail_quote">On 22 Septembe=
r 2015 at 15:54, Anil Madhavapeddy <span dir=3D"ltr">&lt;<a href=3D"mailto:=
anil@recoil.org" target=3D"_blank">anil@recoil.org</a>&gt;</span> wrote:<br=
><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1=
px #ccc solid;padding-left:1ex"><div style=3D"word-wrap:break-word">And abo=
ve all, welcome!=C2=A0 Feel free to ask questions as you learn and explore =
the various components.=C2=A0 As Mindy notes, there&#39;s still quite a bit=
 of &quot;institutional knowledge&quot; that hasn&#39;t been captured in ou=
r documentation, so patches to improve mirage-www (which is the live websit=
e) are most welcome, as are any pieces that you find confusing or difficult=
 to get started with.<span><font color=3D"#888888"><div><br></div><div>Anil=
</div></font></span><div><div><div><br><div><blockquote type=3D"cite"><div>=
On 22 Sep 2015, at 10:06, Lasya Venneti &lt;<a href=3D"mailto:comethalley61=
@gmail.com" target=3D"_blank">comethalley61@gmail.com</a>&gt; wrote:</div><=
br><div><div dir=3D"ltr">Dear Ma&#39;am,<div><br></div><div>Thanks for such=
 an informative mail! I will get started with contributing right away!=C2=
=A0</div><div><br></div><div>Sincerely,</div><div>Lasya V=C2=A0</div></div>=
<div class=3D"gmail_extra"><br><div class=3D"gmail_quote">On 22 September 2=
015 at 04:53, Mindy <span dir=3D"ltr">&lt;<a href=3D"mailto:mindy@somerando=
midiot.com" target=3D"_blank">mindy@somerandomidiot.com</a>&gt;</span> wrot=
e:<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-l=
eft:1px #ccc solid;padding-left:1ex">
 =20
   =20
 =20
  <div text=3D"#000000" bgcolor=3D"#FFFFFF">
    Hi Lasya,<br>
    <br>
    Glad to hear you&#39;re interested in MirageOS!=C2=A0 Here&#39;s a shor=
t list of
    links you may find helpful in getting started.<br>
    <br>
    The documentation page of the MirageOS website (
    <a href=3D"https://mirage.io/docs/" target=3D"_blank">https://mirage.io=
/docs/</a> ) has a list of links for getting started,
    the first of which is here: <a href=3D"https://mirage.io/wiki/install" =
target=3D"_blank">https://mirage.io/wiki/install</a> .=C2=A0 A
    quick guide to contributing is available here:
    <a href=3D"https://mirage.io/wiki/contributing" target=3D"_blank">https=
://mirage.io/wiki/contributing</a> .<br>
    <br>
    Any fixes for unclear or confusing bits of text you find in the
    above documents can be submitted as pull requests to the mirage-www
    repository at <a href=3D"https://github.com/mirage/mirage-www" target=
=3D"_blank">https://github.com/mirage/mirage-www</a> , and would make
    excellent contributions.<br>
    <br>
    You may be interested in the list of &quot;pioneer projects&quot;:
    <a href=3D"https://github.com/mirage/mirage-www/wiki/Pioneer-Projects" =
target=3D"_blank">https://github.com/mirage/mirage-www/wiki/Pioneer-Project=
s</a> .=C2=A0 The
    projects listed are too large for a first contribution of the type
    requested by (for example) the Outreachy application process, but
    some of are approximately the right size for the internship itself.<br>
    <br>
    Many known issues in MirageOS are listed via the GitHub issue
    tracker for the `mirage` tool:
    <a href=3D"https://github.com/mirage/mirage/issues" target=3D"_blank">h=
ttps://github.com/mirage/mirage/issues</a> .=C2=A0 There are others on the
    repositories for specific libraries (e.g. the mirage-tcpip
    repository issue tracker at <a href=3D"https://github.com/mirage/mirage=
-tcpip" target=3D"_blank">https://github.com/mirage/mirage-tcpip</a>
    ).=C2=A0 We don&#39;t have a nice way to aggregate all open issues at t=
he
    moment as far as I know (but someone please correct me if I&#39;m
    wrong!)<br>
    <br>
    Cheers,<br>
    Mindy Preston<div><div><br>
    <br>
    <div>On 09/20/2015 07:42 AM, Lasya Venneti
      wrote:<br>
    </div>
    </div></div><blockquote type=3D"cite"><div><div>
      <div dir=3D"ltr">Hi all,=C2=A0
        <div><br>
        </div>
        <div>I&#39;m Lasya, a student pursuing Computer Science Engineering
          from IIIT-H, Hyderabad, India.=C2=A0</div>
        <div><br>
        </div>
        <div>I wish to get started with contributing to Mirage OS. I
          have conceptual knowledge about Computer system architecture,
          and OS concepts like Virtualization. I hope they will be
          useful while contributing to the community, I am willing to
          learn with your help &amp; guidance. :)</div>
        <div><br>
        </div>
        <div>Request to link me to some pages/docs that I am supposed to
          read to help me setup the environment and start contributing,
          &amp; a few beginner bugs that I can try my hand at.</div>
        <div><br>
        </div>
        <div>Sincerely,</div>
        <div>Lasya V =C2=A0=C2=A0</div>
      </div>
      <br>
      <fieldset></fieldset>
      <br>
      </div></div><pre>_______________________________________________
MirageOS-devel mailing list
<a href=3D"mailto:MirageOS-devel@lists.xenproject.org" target=3D"_blank">Mi=
rageOS-devel@lists.xenproject.org</a>
<a href=3D"http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-de=
vel" target=3D"_blank">http://lists.xenproject.org/cgi-bin/mailman/listinfo=
/mirageos-devel</a>
</pre>
    </blockquote>
    <br>
  </div>

<br>_______________________________________________<br>
MirageOS-devel mailing list<br>
<a href=3D"mailto:MirageOS-devel@lists.xenproject.org" target=3D"_blank">Mi=
rageOS-devel@lists.xenproject.org</a><br>
<a href=3D"http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-de=
vel" rel=3D"noreferrer" target=3D"_blank">http://lists.xenproject.org/cgi-b=
in/mailman/listinfo/mirageos-devel</a><br>
<br></blockquote></div><br></div>
_______________________________________________<br>MirageOS-devel mailing l=
ist<br><a href=3D"mailto:MirageOS-devel@lists.xenproject.org" target=3D"_bl=
ank">MirageOS-devel@lists.xenproject.org</a><br><a href=3D"http://lists.xen=
project.org/cgi-bin/mailman/listinfo/mirageos-devel" target=3D"_blank">http=
://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel</a><br></di=
v></blockquote></div><br></div></div></div></div></blockquote></div><br></d=
iv>
</div></div></blockquote></div><br></div>

--089e0122a09c40be4c05208073ae--
--089e0122a09c40be5005208073b0
Content-Type: text/x-log; charset=US-ASCII; name="screen.log"
Content-Disposition: attachment; filename="screen.log"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_ieyev83k0

U2NyaXB0IHN0YXJ0ZWQgb24gVGh1cnNkYXkgMjQgU2VwdGVtYmVyIDIwMTUgMDk6Mjg6NDMgUE0g
SVNUChtdMDtsYXN5YUB0aGVnb2xkZW5zbml0Y2g6IH4HbGFzeWFAdGhlZ29sZGVuc25pdGNoOn4k
IG9wYW0gdXBkYXRlIC11DQobWzMxbVtFUlJPUl0bW20gUGxlYXNlIHJ1biAnb3BhbSBpbml0JyBm
aXJzdCB0byBpbml0aWFsaXplIHRoZSBzdGF0ZSBvZiBPUEFNLg0KJ29wYW0gdXBkYXRlIC11JyBm
YWlsZWQuDQobXTA7bGFzeWFAdGhlZ29sZGVuc25pdGNoOiB+B2xhc3lhQHRoZWdvbGRlbnNuaXRj
aDp+JCBvcGFtIGluaXQNCmRlZmF1bHQgICAgRG93bmxvYWRpbmcgaHR0cHM6Ly9vcGFtLm9jYW1s
Lm9yZy91cmxzLnR4dA0KZGVmYXVsdCAgICBEb3dubG9hZGluZyBodHRwczovL29wYW0ub2NhbWwu
b3JnL2luZGV4LnRhci5neg0KVXBkYXRpbmcgfi8ub3BhbS9yZXBvL2NvbXBpbGVyLWluZGV4IC4u
Lg0KVXBkYXRpbmcgfi8ub3BhbS9jb21waWxlcnMvIC4uLg0KVXBkYXRpbmcgfi8ub3BhbS9yZXBv
L3BhY2thZ2UtaW5kZXggLi4uDQpVcGRhdGluZyB+Ly5vcGFtL3BhY2thZ2VzLyAuLi4NChtbMzFt
W0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5v
dWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvMGluc3RhbGwvMGluc3Rh
bGwuMi45LjEvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQg
bGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtb
bSBFcnJvcnMgd2hpbGUgcGFyc2luZyAwaW5zdGFsbC4yLjkuMSBPUEFNIGZpbGUsIHNraXBwaW5n
Lg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJl
Y2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9hYWNwbHVz
L2FhY3BsdXMuMC4yLjIvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lv
biAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJO
SU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBhYWNwbHVzLjAuMi4yIE9QQU0gZmlsZSwgc2tp
cHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBu
b3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2Fn
by9hZ28uMC4xL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0
IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10b
W20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgYWdvLjAuMSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1sz
MW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBl
bm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9hZ28vYWdvLjAuMi9v
cGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIp
IHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3
aGlsZSBwYXJzaW5nIGFnby4wLjIgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtb
bSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJl
YWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvYWdvL2Fnby4wLjMvb3BhbS4gVXBncmFk
ZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRo
aXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2lu
ZyBhZ28uMC4zIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJz
aW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0v
cmVwby9kZWZhdWx0L3BhY2thZ2VzL2FsYmVydG8vYWxiZXJ0by4wLjMvb3BhbS4gVXBncmFkZSBP
UEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMg
ZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBh
bGJlcnRvLjAuMyBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVy
c2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFt
L3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9hbGJlcnRvL2FsYmVydG8uMC40L29wYW0uIFVwZ3JhZGUg
T1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlz
IGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcg
YWxiZXJ0by4wLjQgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZl
cnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3Bh
bS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvYWxjb3Rlc3QvYWxjb3Rlc3QuMC4xLjAvb3BhbS4gVXBn
cmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFk
IHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFy
c2luZyBhbGNvdGVzdC4wLjEuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1tt
IFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVh
ZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9hbGNvdGVzdC9hbGNvdGVzdC4wLjIuMC9v
cGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIp
IHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3
aGlsZSBwYXJzaW5nIGFsY290ZXN0LjAuMi4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtF
UlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3Vn
aCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2FsY290ZXN0L2FsY290ZXN0
LjAuMy4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxl
YXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20g
RXJyb3JzIHdoaWxlIHBhcnNpbmcgYWxjb3Rlc3QuMC4zLjAgT1BBTSBmaWxlLCBza2lwcGluZy4N
ChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNl
bnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvYWxjb3Rlc3Qv
YWxjb3Rlc3QuMC4zLjEvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lv
biAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJO
SU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBhbGNvdGVzdC4wLjMuMSBPUEFNIGZpbGUsIHNr
aXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMg
bm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9h
bGNvdGVzdC9hbGNvdGVzdC4wLjMuMi9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2Vu
dCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtb
MzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGFsY290ZXN0LjAuMy4yIE9QQU0g
ZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEu
MS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3Bh
Y2thZ2VzL2FsY290ZXN0L2FsY290ZXN0LjAuMy4zL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1v
cmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVj
dGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgYWxjb3Rlc3QuMC4z
LjMgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2Yg
T1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2Rl
ZmF1bHQvcGFja2FnZXMvYWxjb3Rlc3QvYWxjb3Rlc3QuMC40LjAvb3BhbS4gVXBncmFkZSBPUEFN
IHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmls
ZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBhbGNv
dGVzdC4wLjQuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVy
c2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFt
L3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9hbGNvdGVzdC9hbGNvdGVzdC4wLjQuMS9vcGFtLiBVcGdy
YWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQg
dGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJz
aW5nIGFsY290ZXN0LjAuNC4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20g
WW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFk
IH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2FsY290ZXN0L2FsY290ZXN0LjAuNC4yL29w
YW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikg
dG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdo
aWxlIHBhcnNpbmcgYWxjb3Rlc3QuMC40LjIgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VS
Uk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdo
IHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvYWxjb3Rlc3QvYWxjb3Rlc3Qu
MC40LjMvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVh
c3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBF
cnJvcnMgd2hpbGUgcGFyc2luZyBhbGNvdGVzdC4wLjQuMyBPUEFNIGZpbGUsIHNraXBwaW5nLg0K
G1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2Vu
dCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9hbGNvdGVzdC9h
bGNvdGVzdC4wLjQuNC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9u
IChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5J
TkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGFsY290ZXN0LjAuNC40IE9QQU0gZmlsZSwgc2tp
cHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBu
b3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2Fs
Y290ZXN0L2FsY290ZXN0LjAuNC41L29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50
IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1sz
M21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgYWxjb3Rlc3QuMC40LjUgT1BBTSBm
aWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4x
LjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFj
a2FnZXMvYWxzYS9hbHNhLjAuMi4yL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50
IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1sz
M21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgYWxzYS4wLjIuMiBPUEFNIGZpbGUs
IHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkg
aXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdl
cy9hbm5vdC9hbm5vdC4xLjEuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2
ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNt
W1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGFubm90LjEuMS4wIE9QQU0gZmlsZSwg
c2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBp
cyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2Vz
L2FvL2FvLjAuMi4xL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24g
KGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklO
R10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgYW8uMC4yLjEgT1BBTSBmaWxlLCBza2lwcGluZy4N
ChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNl
bnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvYXByb24vYXBy
b24uMjAxNTA4MjAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAo
YXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5H
XRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBhcHJvbi4yMDE1MDgyMCBPUEFNIGZpbGUsIHNraXBw
aW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90
IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9hcmFr
b29uL2FyYWtvb24uMS44LjYvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVy
c2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtX
QVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBhcmFrb29uLjEuOC42IE9QQU0gZmlsZSwg
c2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBp
cyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2Vz
L2FyYWtvb24vYXJha29vbi4xLjguNy9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2Vu
dCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtb
MzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGFyYWtvb24uMS44LjcgT1BBTSBm
aWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4x
LjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFj
a2FnZXMvYXJha29vbi9hcmFrb29uLjEuOC44L29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUg
cmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5
Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgYXJha29vbi4xLjguOCBP
UEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFN
ICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVs
dC9wYWNrYWdlcy9hcmNoaW1lZGVzL2FyY2hpbWVkZXMuMC40LjE3L29wYW0uIFVwZ3JhZGUgT1BB
TSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZp
bGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgYXJj
aGltZWRlcy4wLjQuMTcgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3Vy
IHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8u
b3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvYXNjaWk4NS9hc2NpaTg1LjAuMi9vcGFtLiBVcGdy
YWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQg
dGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJz
aW5nIGFzY2lpODUuMC4yIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91
ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4v
Lm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2FzY2lpODUvYXNjaWk4NS4wLjMvb3BhbS4gVXBn
cmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFk
IHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFy
c2luZyBhc2NpaTg1LjAuMyBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlv
dXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+
Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9hc24xLWNvbWJpbmF0b3JzL2FzbjEtY29tYmlu
YXRvcnMuMC4xLjEvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAo
YXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5H
XRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBhc24xLWNvbWJpbmF0b3JzLjAuMS4xIE9QQU0gZmls
ZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4x
KSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2th
Z2VzL2FzbjEtY29tYmluYXRvcnMvYXNuMS1jb21iaW5hdG9ycy4wLjEuMi9vcGFtLiBVcGdyYWRl
IE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhp
cyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5n
IGFzbjEtY29tYmluYXRvcnMuMC4xLjIgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9S
XRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRv
IHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvYXNzZXJ0aW9ucy9hc3NlcnRpb25z
LjAuMS9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFz
dCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVy
cm9ycyB3aGlsZSBwYXJzaW5nIGFzc2VydGlvbnMuMC4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQob
WzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50
IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2FzeW5jL2FzeW5j
LjExMi4zNS4wMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChh
dCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkdd
G1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGFzeW5jLjExMi4zNS4wMCBPUEFNIGZpbGUsIHNraXBw
aW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90
IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9hc3lu
Yy9hc3luYy4xMTMuMDAuMDAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVy
c2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtX
QVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBhc3luYy4xMTMuMDAuMDAgT1BBTSBmaWxl
LCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEp
IGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2Fn
ZXMvYXN5bmMtbXZhci9hc3luYy1tdmFyLjAuMS4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1v
cmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVj
dGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgYXN5bmMtbXZhci4w
LjEuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBv
ZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8v
ZGVmYXVsdC9wYWNrYWdlcy9hc3luYy16bXEvYXN5bmMtem1xLjAuMS4wL29wYW0uIFVwZ3JhZGUg
T1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlz
IGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcg
YXN5bmMtem1xLjAuMS4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91
ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4v
Lm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2FzeW5jX2V4dGVuZGVkL2FzeW5jX2V4dGVuZGVk
LjExMi4zNS4wMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChh
dCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkdd
G1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGFzeW5jX2V4dGVuZGVkLjExMi4zNS4wMCBPUEFNIGZp
bGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEu
MSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNr
YWdlcy9hc3luY19leHRlbmRlZC9hc3luY19leHRlbmRlZC4xMTMuMDAuMDAvb3BhbS4gVXBncmFk
ZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRo
aXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2lu
ZyBhc3luY19leHRlbmRlZC4xMTMuMDAuMDAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VS
Uk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdo
IHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvYXN5bmNfZXh0cmEvYXN5bmNf
ZXh0cmEuMTEyLjM1LjAwL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNp
b24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FS
TklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgYXN5bmNfZXh0cmEuMTEyLjM1LjAwIE9QQU0g
ZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEu
MS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3Bh
Y2thZ2VzL2FzeW5jX2V4dHJhL2FzeW5jX2V4dHJhLjExMy4wMC4wMC9vcGFtLiBVcGdyYWRlIE9Q
QU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBm
aWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGFz
eW5jX2V4dHJhLjExMy4wMC4wMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1tt
IFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVh
ZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9hc3luY19maW5kL2FzeW5jX2ZpbmQuMTEx
LjI4LjAwL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxl
YXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20g
RXJyb3JzIHdoaWxlIHBhcnNpbmcgYXN5bmNfZmluZC4xMTEuMjguMDAgT1BBTSBmaWxlLCBza2lw
cGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5v
dCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvYXN5
bmNfaW5vdGlmeS9hc3luY19pbm90aWZ5LjExMy4wMC4wMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8g
YSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNv
cnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGFzeW5jX2lu
b3RpZnkuMTEzLjAwLjAwIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91
ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4v
Lm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2FzeW5jX2tlcm5lbC9hc3luY19rZXJuZWwuMTEy
LjM1LjAwL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxl
YXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20g
RXJyb3JzIHdoaWxlIHBhcnNpbmcgYXN5bmNfa2VybmVsLjExMi4zNS4wMCBPUEFNIGZpbGUsIHNr
aXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMg
bm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9h
c3luY19rZXJuZWwvYXN5bmNfa2VybmVsLjExMy4wMC4wMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8g
YSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNv
cnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGFzeW5jX2tl
cm5lbC4xMTMuMDAuMDAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3Vy
IHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8u
b3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvYXN5bmNfcGFyYWxsZWwvYXN5bmNfcGFyYWxsZWwu
MTEyLjM1LjAwL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0
IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10b
W20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgYXN5bmNfcGFyYWxsZWwuMTEyLjM1LjAwIE9QQU0gZmls
ZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4x
KSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2th
Z2VzL2FzeW5jX3BhcmFsbGVsL2FzeW5jX3BhcmFsbGVsLjExMy4wMC4wMC9vcGFtLiBVcGdyYWRl
IE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhp
cyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5n
IGFzeW5jX3BhcmFsbGVsLjExMy4wMC4wMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJS
T1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2gg
dG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9hc3luY19ycGNfa2VybmVsL2Fz
eW5jX3JwY19rZXJuZWwuMTEyLjM1LjAwL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVj
ZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0K
G1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgYXN5bmNfcnBjX2tlcm5lbC4x
MTIuMzUuMDAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNp
b24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9y
ZXBvL2RlZmF1bHQvcGFja2FnZXMvYXN5bmNfcnBjX2tlcm5lbC9hc3luY19ycGNfa2VybmVsLjEx
My4wMC4wMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBs
ZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1tt
IEVycm9ycyB3aGlsZSBwYXJzaW5nIGFzeW5jX3JwY19rZXJuZWwuMTEzLjAwLjAwIE9QQU0gZmls
ZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4x
KSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2th
Z2VzL2FzeW5jX3NoZWxsL2FzeW5jX3NoZWxsLjEwOS4yOC4wMy9vcGFtLiBVcGdyYWRlIE9QQU0g
dG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxl
IGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGFzeW5j
X3NoZWxsLjEwOS4yOC4wMyBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlv
dXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+
Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9hc3luY19zbXRwL2FzeW5jX3NtdHAuMTEyLjM1
LjAwL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0
IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJy
b3JzIHdoaWxlIHBhcnNpbmcgYXN5bmNfc210cC4xMTIuMzUuMDAgT1BBTSBmaWxlLCBza2lwcGlu
Zy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCBy
ZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvYXN5bmNf
c210cC9hc3luY19zbXRwLjExMy4wMC4wMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJl
Y2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4N
ChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGFzeW5jX3NtdHAuMTEzLjAw
LjAwIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9m
IE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9k
ZWZhdWx0L3BhY2thZ2VzL2FzeW5jX3NzbC9hc3luY19zc2wuMTEyLjI0LjAyL29wYW0uIFVwZ3Jh
ZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0
aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNp
bmcgYXN5bmNfc3NsLjExMi4yNC4wMiBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1Jd
G1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8g
cmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9hc3luY19zc2wvYXN5bmNfc3NsLjEx
Mi4yNC4wMy9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBs
ZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1tt
IEVycm9ycyB3aGlsZSBwYXJzaW5nIGFzeW5jX3NzbC4xMTIuMjQuMDMgT1BBTSBmaWxlLCBza2lw
cGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5v
dCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvYXN5
bmNfc3NsL2FzeW5jX3NzbC4xMTIuMzUuMDAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSBy
ZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHku
DQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBhc3luY19zc2wuMTEyLjM1
LjAwIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9m
IE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9k
ZWZhdWx0L3BhY2thZ2VzL2FzeW5jX3NzbC9hc3luY19zc2wuMTEzLjAwLjAwL29wYW0uIFVwZ3Jh
ZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0
aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNp
bmcgYXN5bmNfc3NsLjExMy4wMC4wMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1Jd
G1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8g
cmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9hc3luY191bml4L2FzeW5jX3VuaXgu
MTEyLjM1LjAwL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0
IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10b
W20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgYXN5bmNfdW5peC4xMTIuMzUuMDAgT1BBTSBmaWxlLCBz
a2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlz
IG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMv
YXN5bmNfdW5peC9hc3luY191bml4LjExMy4wMC4wMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBt
b3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJl
Y3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGFzeW5jX3VuaXgu
MTEzLjAwLjAwIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJz
aW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0v
cmVwby9kZWZhdWx0L3BhY2thZ2VzL2F0ZGdlbi9hdGRnZW4uMS43LjEvb3BhbS4gVXBncmFkZSBP
UEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMg
ZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBh
dGRnZW4uMS43LjEgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZl
cnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3Bh
bS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvYXZyb2MvYXZyb2MuMC4wLjEvb3BhbS4gVXBncmFkZSBP
UEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMg
ZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBh
dnJvYy4wLjAuMSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVy
c2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFt
L3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9iYXAvYmFwLjAuOS4xL29wYW0uIFVwZ3JhZGUgT1BBTSB0
byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUg
Y29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgYmFwLjAu
OS4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9m
IE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9k
ZWZhdWx0L3BhY2thZ2VzL2JhcC9iYXAuMC45LjIvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9y
ZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0
bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBiYXAuMC45LjIgT1BB
TSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAo
MS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQv
cGFja2FnZXMvYmFwL2JhcC4wLjkuMy9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2Vu
dCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtb
MzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGJhcC4wLjkuMyBPUEFNIGZpbGUs
IHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkg
aXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdl
cy9iYXAvYmFwLjAuOS40L29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNp
b24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FS
TklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgYmFwLjAuOS40IE9QQU0gZmlsZSwgc2tpcHBp
bmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3Qg
cmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2JhcC9i
YXAuMC45LjUvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQg
bGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtb
bSBFcnJvcnMgd2hpbGUgcGFyc2luZyBiYXAuMC45LjUgT1BBTSBmaWxlLCBza2lwcGluZy4NChtb
MzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQg
ZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvYmFwL2JhcC4wLjku
Ni9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAx
LjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9y
cyB3aGlsZSBwYXJzaW5nIGJhcC4wLjkuNiBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJS
T1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2gg
dG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9iYXAvYmFwLjAuOS43L29wYW0u
IFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8g
cmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxl
IHBhcnNpbmcgYmFwLjAuOS43IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20g
WW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFk
IH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2JhcC9iYXAuMC45Ljgvb3BhbS4gVXBncmFk
ZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRo
aXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2lu
ZyBiYXAuMC45LjggT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZl
cnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3Bh
bS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvYmFwL2JhcC4wLjkuOS9vcGFtLiBVcGdyYWRlIE9QQU0g
dG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxl
IGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGJhcC4w
LjkuOSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBv
ZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8v
ZGVmYXVsdC9wYWNrYWdlcy9iYXNlLW1ldGFvY2FtbC1vY2FtbGZpbmQvYmFzZS1tZXRhb2NhbWwt
b2NhbWxmaW5kLmJhc2Uvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lv
biAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJO
SU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBiYXNlLW1ldGFvY2FtbC1vY2FtbGZpbmQuYmFz
ZSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBP
UEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVm
YXVsdC9wYWNrYWdlcy9iYXNlLW5vLXBweC9iYXNlLW5vLXBweC5iYXNlL29wYW0uIFVwZ3JhZGUg
T1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlz
IGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcg
YmFzZS1uby1wcHguYmFzZSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlv
dXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+
Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9iYXNlNjQvYmFzZTY0LjEuMS4wL29wYW0uIFVw
Z3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVh
ZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBh
cnNpbmcgYmFzZTY0LjEuMS4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20g
WW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFk
IH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2Jhc2U2NC9iYXNlNjQuMi4wLjAvb3BhbS4g
VXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byBy
ZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUg
cGFyc2luZyBiYXNlNjQuMi4wLjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtb
bSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJl
YWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvYmVhci9iZWFyLjAuMC4xL29wYW0uIFVw
Z3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVh
ZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBh
cnNpbmcgYmVhci4wLjAuMSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlv
dXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+
Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9iZWx1Z2EvYmVsdWdhLjAuOC4yL29wYW0uIFVw
Z3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVh
ZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBh
cnNpbmcgYmVsdWdhLjAuOC4yIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20g
WW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFk
IH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2JlbmNobWFyay9iZW5jaG1hcmsuMS40L29w
YW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikg
dG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdo
aWxlIHBhcnNpbmcgYmVuY2htYXJrLjEuNCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJS
T1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2gg
dG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9iaWdudW0vYmlnbnVtLjExMi4z
NS4wMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFz
dCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVy
cm9ycyB3aGlsZSBwYXJzaW5nIGJpZ251bS4xMTIuMzUuMDAgT1BBTSBmaWxlLCBza2lwcGluZy4N
ChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNl
bnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvYmlnbnVtL2Jp
Z251bS4xMTMuMDAuMDAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lv
biAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJO
SU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBiaWdudW0uMTEzLjAwLjAwIE9QQU0gZmlsZSwg
c2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBp
cyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2Vz
L2Jpbl9wcm90L2Jpbl9wcm90LjExMi4zNS4wMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3Jl
IHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3Rs
eS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGJpbl9wcm90LjExMi4z
NS4wMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBv
ZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8v
ZGVmYXVsdC9wYWNrYWdlcy9iaW5fcHJvdC9iaW5fcHJvdC4xMTMuMDAuMDAvb3BhbS4gVXBncmFk
ZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRo
aXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2lu
ZyBiaW5fcHJvdC4xMTMuMDAuMDAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtb
bSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJl
YWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvYmlzZWN0X3BweC9iaXNlY3RfcHB4LjAu
MS9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAx
LjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9y
cyB3aGlsZSBwYXJzaW5nIGJpc2VjdF9wcHguMC4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMx
bVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVu
b3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2Jpc2VjdF9wcHgvYmlz
ZWN0X3BweC4wLjIvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAo
YXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5H
XRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBiaXNlY3RfcHB4LjAuMiBPUEFNIGZpbGUsIHNraXBw
aW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90
IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9iaXNl
Y3RfcHB4L2Jpc2VjdF9wcHguMC4yLjIvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNl
bnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQob
WzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBiaXNlY3RfcHB4LjAuMi4yIE9Q
QU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0g
KDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0
L3BhY2thZ2VzL2Jpc2VjdF9wcHgvYmlzZWN0X3BweC4wLjIuMy9vcGFtLiBVcGdyYWRlIE9QQU0g
dG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxl
IGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGJpc2Vj
dF9wcHguMC4yLjMgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZl
cnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3Bh
bS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvYmlzZWN0X3BweC9iaXNlY3RfcHB4LjAuMi40L29wYW0u
IFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8g
cmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxl
IHBhcnNpbmcgYmlzZWN0X3BweC4wLjIuNCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJS
T1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2gg
dG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9iaXNlY3RfcHB4L2Jpc2VjdF9w
cHguMC4yLjUvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQg
bGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtb
bSBFcnJvcnMgd2hpbGUgcGFyc2luZyBiaXNlY3RfcHB4LjAuMi41IE9QQU0gZmlsZSwgc2tpcHBp
bmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3Qg
cmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2JpdGNv
aW4vYml0Y29pbi4xLjEvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lv
biAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJO
SU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBiaXRjb2luLjEuMSBPUEFNIGZpbGUsIHNraXBw
aW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90
IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9iaXRj
b2luL2JpdGNvaW4uMS4xLjEvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVy
c2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtX
QVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBiaXRjb2luLjEuMS4xIE9QQU0gZmlsZSwg
c2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBp
cyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2Vz
L2JpdGNvaW4vYml0Y29pbi4yLjAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQg
dmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMz
bVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBiaXRjb2luLjIuMCBPUEFNIGZpbGUs
IHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkg
aXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdl
cy9iaXRzdHJpbmcvYml0c3RyaW5nLjIuMC40L29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUg
cmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5
Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgYml0c3RyaW5nLjIuMC40
IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9Q
QU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZh
dWx0L3BhY2thZ2VzL2JqYWNrL2JqYWNrLjAuMS41L29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1v
cmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVj
dGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgYmphY2suMC4xLjUg
T1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BB
TSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1
bHQvcGFja2FnZXMvYmxhaGNhbWwvYmxhaGNhbWwuMi4xL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBh
IG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29y
cmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgYmxhaGNhbWwu
Mi4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9m
IE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9k
ZWZhdWx0L3BhY2thZ2VzL2Jvb2thbWwvYm9va2FtbC4yLjAvb3BhbS4gVXBncmFkZSBPUEFNIHRv
IGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBj
b3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBib29rYW1s
LjIuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBv
ZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8v
ZGVmYXVsdC9wYWNrYWdlcy9ib29rYW1sL2Jvb2thbWwuMi4xL29wYW0uIFVwZ3JhZGUgT1BBTSB0
byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUg
Y29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgYm9va2Ft
bC4yLjEgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24g
b2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBv
L2RlZmF1bHQvcGFja2FnZXMvYm9va2FtbC9ib29rYW1sLjMuMC9vcGFtLiBVcGdyYWRlIE9QQU0g
dG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxl
IGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGJvb2th
bWwuMy4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9u
IG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVw
by9kZWZhdWx0L3BhY2thZ2VzL2Jyb2tlbi9icm9rZW4uMC4zLjAvb3BhbS4gVXBncmFkZSBPUEFN
IHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmls
ZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBicm9r
ZW4uMC4zLjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNp
b24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9y
ZXBvL2RlZmF1bHQvcGFja2FnZXMvYnJva2VuL2Jyb2tlbi4wLjQuMi9vcGFtLiBVcGdyYWRlIE9Q
QU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBm
aWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGJy
b2tlbi4wLjQuMiBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVy
c2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFt
L3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9ic2Rvd2wvYnNkb3dsLjMuMC4wLTIwMTUwNDAxL29wYW0u
IFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8g
cmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxl
IHBhcnNpbmcgYnNkb3dsLjMuMC4wLTIwMTUwNDAxIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMx
bVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVu
b3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2JzZG93bC9ic2Rvd2wu
My4wLjAtMjAxNTA4MzAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lv
biAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJO
SU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBic2Rvd2wuMy4wLjAtMjAxNTA4MzAgT1BBTSBm
aWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4x
LjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFj
a2FnZXMvY2Fpcm8yL2NhaXJvMi4wLjUvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNl
bnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQob
WzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBjYWlybzIuMC41IE9QQU0gZmls
ZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4x
KSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2th
Z2VzL2NhbWwtbW9kZS9jYW1sLW1vZGUuNC4wMi9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3Jl
IHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3Rs
eS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGNhbWwtbW9kZS40LjAy
IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9Q
QU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZh
dWx0L3BhY2thZ2VzL2NhbWxoaWdobGlnaHQvY2FtbGhpZ2hsaWdodC4zLjAvb3BhbS4gVXBncmFk
ZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRo
aXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2lu
ZyBjYW1saGlnaGxpZ2h0LjMuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1tt
IFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVh
ZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9jYW1saW1hZ2VzL2NhbWxpbWFnZXMuNC4y
LjEvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3Qg
MS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJv
cnMgd2hpbGUgcGFyc2luZyBjYW1saW1hZ2VzLjQuMi4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQob
WzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50
IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2NhbWxwNC9jYW1s
cDQuNC4wMS9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBs
ZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1tt
IEVycm9ycyB3aGlsZSBwYXJzaW5nIGNhbWxwNC40LjAxIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQob
WzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50
IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2NhbWxwNC9jYW1s
cDQuNC4wMStzeXN0ZW0vb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lv
biAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJO
SU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBjYW1scDQuNC4wMStzeXN0ZW0gT1BBTSBmaWxl
LCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEp
IGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2Fn
ZXMvY2FtbHA0L2NhbWxwNC40LjAyKzEvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNl
bnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQob
WzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBjYW1scDQuNC4wMisxIE9QQU0g
ZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEu
MS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3Bh
Y2thZ2VzL2NhbWxwNC9jYW1scDQuNC4wMisyL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUg
cmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5
Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgY2FtbHA0LjQuMDIrMiBP
UEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFN
ICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVs
dC9wYWNrYWdlcy9jYW1scDQvY2FtbHA0LjQuMDIrMy9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBt
b3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJl
Y3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGNhbWxwNC40LjAy
KzMgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2Yg
T1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2Rl
ZmF1bHQvcGFja2FnZXMvY2FtbHA0L2NhbWxwNC40LjAyKzQvb3BhbS4gVXBncmFkZSBPUEFNIHRv
IGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBj
b3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBjYW1scDQu
NC4wMis0IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9u
IG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVw
by9kZWZhdWx0L3BhY2thZ2VzL2NhbWxwNC9jYW1scDQuNC4wMis2L29wYW0uIFVwZ3JhZGUgT1BB
TSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZp
bGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgY2Ft
bHA0LjQuMDIrNiBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVy
c2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFt
L3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9jYW1scDQvY2FtbHA0LjQuMDIrc3lzdGVtL29wYW0uIFVw
Z3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVh
ZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBh
cnNpbmcgY2FtbHA0LjQuMDIrc3lzdGVtIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJP
Ul0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0
byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2NhbWxwNC9jYW1scDQuNC4wMi4w
LTFtb2R1bGFyLWltcGxpY2l0cy9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2
ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNt
W1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGNhbWxwNC40LjAyLjAtMW1vZHVsYXIt
aW1wbGljaXRzIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJz
aW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0v
cmVwby9kZWZhdWx0L3BhY2thZ2VzL2NhbWxwNC9jYW1scDQuNC4wMy9vcGFtLiBVcGdyYWRlIE9Q
QU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBm
aWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGNh
bWxwNC40LjAzIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJz
aW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0v
cmVwby9kZWZhdWx0L3BhY2thZ2VzL2NhbWxwNS9jYW1scDUuNi4xMi9vcGFtLiBVcGdyYWRlIE9Q
QU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBm
aWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGNh
bWxwNS42LjEyIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJz
aW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0v
cmVwby9kZWZhdWx0L3BhY2thZ2VzL2NhbWxwNS9jYW1scDUuNi4xMy9vcGFtLiBVcGdyYWRlIE9Q
QU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBm
aWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGNh
bWxwNS42LjEzIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJz
aW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0v
cmVwby9kZWZhdWx0L3BhY2thZ2VzL2NhbWxwNS9jYW1scDUuNi4xNC9vcGFtLiBVcGdyYWRlIE9Q
QU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBm
aWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGNh
bWxwNS42LjE0IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJz
aW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0v
cmVwby9kZWZhdWx0L3BhY2thZ2VzL2NhbWxwcmltZS9jYW1scHJpbWUuMC41L29wYW0uIFVwZ3Jh
ZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0
aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNp
bmcgY2FtbHByaW1lLjAuNSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlv
dXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+
Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9jYXBucC9jYXBucC4yLjEuMC9vcGFtLiBVcGdy
YWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQg
dGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJz
aW5nIGNhcG5wLjIuMS4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91
ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4v
Lm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2NhcHR1cmVpby9jYXB0dXJlaW8uMC4xLjEvb3Bh
bS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0
byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hp
bGUgcGFyc2luZyBjYXB0dXJlaW8uMC4xLjEgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VS
Uk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdo
IHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvY2FwdHVyZWlvL2NhcHR1cmVp
by4wLjEuMi9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBs
ZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1tt
IEVycm9ycyB3aGlsZSBwYXJzaW5nIGNhcHR1cmVpby4wLjEuMiBPUEFNIGZpbGUsIHNraXBwaW5n
Lg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJl
Y2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9jY29udi9j
Y29udi4wLjIvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQg
bGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtb
bSBFcnJvcnMgd2hpbGUgcGFyc2luZyBjY29udi4wLjIgT1BBTSBmaWxlLCBza2lwcGluZy4NChtb
MzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQg
ZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvY2NvbnYvY2NvbnYu
MC4zL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0
IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJy
b3JzIHdoaWxlIHBhcnNpbmcgY2NvbnYuMC4zIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtF
UlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3Vn
aCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2Njb252L2Njb252LjAuMy4x
L29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEu
MikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3Jz
IHdoaWxlIHBhcnNpbmcgY2NvbnYuMC4zLjEgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VS
Uk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdo
IHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvY2Nzcy9jY3NzLjEuNC9vcGFt
LiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRv
IHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGls
ZSBwYXJzaW5nIGNjc3MuMS40IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20g
WW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFk
IH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2Njc3MvY2Nzcy4xLjUvb3BhbS4gVXBncmFk
ZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRo
aXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2lu
ZyBjY3NzLjEuNSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVy
c2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFt
L3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9jZnN0cmVhbS9jZnN0cmVhbS4xLjIuMC9vcGFtLiBVcGdy
YWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQg
dGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJz
aW5nIGNmc3RyZWFtLjEuMi4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20g
WW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFk
IH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2Nncm91cHMvY2dyb3Vwcy4wLjEvb3BhbS4g
VXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byBy
ZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUg
cGFyc2luZyBjZ3JvdXBzLjAuMSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1tt
IFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVh
ZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9jaGFubmVsL2NoYW5uZWwuMS4wLjAvb3Bh
bS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0
byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hp
bGUgcGFyc2luZyBjaGFubmVsLjEuMC4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJP
Ul0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0
byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2NpbC9jaWwuMS41LjEvb3BhbS4g
VXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byBy
ZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUg
cGFyc2luZyBjaWwuMS41LjEgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZ
b3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQg
fi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvY2lsL2NpbC4xLjcuMy9vcGFtLiBVcGdyYWRl
IE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhp
cyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5n
IGNpbC4xLjcuMyBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVy
c2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFt
L3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9jbGFuZ21sL2NsYW5nbWwuMC41LjIvb3BhbS4gVXBncmFk
ZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRo
aXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2lu
ZyBjbGFuZ21sLjAuNS4yIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91
ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4v
Lm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2NsYW5nbWwvY2xhbmdtbC4zLjYuMC9vcGFtLiBV
cGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJl
YWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBw
YXJzaW5nIGNsYW5nbWwuMy42LjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtb
bSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJl
YWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvY2xhbmdtbC9jbGFuZ21sLjMuNi4wLjEv
b3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4y
KSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMg
d2hpbGUgcGFyc2luZyBjbGFuZ21sLjMuNi4wLjEgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFt
W0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5v
dWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvY21kbGluZXIvY21kbGlu
ZXIuMC45LjYvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQg
bGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtb
bSBFcnJvcnMgd2hpbGUgcGFyc2luZyBjbWRsaW5lci4wLjkuNiBPUEFNIGZpbGUsIHNraXBwaW5n
Lg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJl
Y2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9jbWRsaW5l
ci9jbWRsaW5lci4wLjkuNy9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJz
aW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dB
Uk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGNtZGxpbmVyLjAuOS43IE9QQU0gZmlsZSwg
c2tpcHBpbmcuDQobWzMzbVtXQVJOSU5HXRtbbSBpbnN0YWxsIGlzIGFuIHVua25vd24gZmllbGQg
aW4gL2hvbWUvbGFzeWEvLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2NvY2NpbmVsbGUvY29j
Y2luZWxsZS4xLjAuMi9vcGFtOiBpcyB5b3VyIE9QQU0gdXAtdG8tZGF0ZSA/DQobWzMxbVtFUlJP
Ul0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0
byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2NvaHR0cC9jb2h0dHAuMC45LjEw
L29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEu
MikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3Jz
IHdoaWxlIHBhcnNpbmcgY29odHRwLjAuOS4xMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1b
RVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91
Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9jb2h0dHAvY29odHRwLjAu
OS4xMS9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFz
dCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVy
cm9ycyB3aGlsZSBwYXJzaW5nIGNvaHR0cC4wLjkuMTEgT1BBTSBmaWxlLCBza2lwcGluZy4NChtb
MzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQg
ZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvY29odHRwL2NvaHR0
cC4wLjkuMTIvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQg
bGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtb
bSBFcnJvcnMgd2hpbGUgcGFyc2luZyBjb2h0dHAuMC45LjEyIE9QQU0gZmlsZSwgc2tpcHBpbmcu
DQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVj
ZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2NvaHR0cC9j
b2h0dHAuMC45LjEzL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24g
KGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklO
R10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgY29odHRwLjAuOS4xMyBPUEFNIGZpbGUsIHNraXBw
aW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90
IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9jb2h0
dHAvY29odHRwLjAuOS4xNC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJz
aW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dB
Uk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGNvaHR0cC4wLjkuMTQgT1BBTSBmaWxlLCBz
a2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlz
IG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMv
Y29odHRwL2NvaHR0cC4wLjkuMTUvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQg
dmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMz
bVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBjb2h0dHAuMC45LjE1IE9QQU0gZmls
ZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4x
KSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2th
Z2VzL2NvaHR0cC9jb2h0dHAuMC45LjE2L29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVj
ZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0K
G1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgY29odHRwLjAuOS4xNiBPUEFN
IGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgx
LjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9w
YWNrYWdlcy9jb2h0dHAvY29odHRwLjAuMTAuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3Jl
IHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3Rs
eS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGNvaHR0cC4wLjEwLjAg
T1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BB
TSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1
bHQvcGFja2FnZXMvY29odHRwL2NvaHR0cC4wLjEwLjEvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEg
bW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3Jy
ZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBjb2h0dHAuMC4x
MC4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9m
IE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9k
ZWZhdWx0L3BhY2thZ2VzL2NvaHR0cC9jb2h0dHAuMC4xNC4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0
byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUg
Y29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgY29odHRw
LjAuMTQuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lv
biBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3Jl
cG8vZGVmYXVsdC9wYWNrYWdlcy9jb2h0dHAvY29odHRwLjAuMTUuMC9vcGFtLiBVcGdyYWRlIE9Q
QU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBm
aWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGNv
aHR0cC4wLjE1LjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZl
cnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3Bh
bS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvY29odHRwL2NvaHR0cC4wLjE1LjEvb3BhbS4gVXBncmFk
ZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRo
aXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2lu
ZyBjb2h0dHAuMC4xNS4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91
ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4v
Lm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2NvaHR0cC9jb2h0dHAuMC4xNS4yL29wYW0uIFVw
Z3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVh
ZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBh
cnNpbmcgY29odHRwLjAuMTUuMiBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1tt
IFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVh
ZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9jb2h0dHAvY29odHRwLjAuMTYuMC9vcGFt
LiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRv
IHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGls
ZSBwYXJzaW5nIGNvaHR0cC4wLjE2LjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9S
XRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRv
IHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvY29odHRwL2NvaHR0cC4wLjE2LjEv
b3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4y
KSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMg
d2hpbGUgcGFyc2luZyBjb2h0dHAuMC4xNi4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtF
UlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3Vn
aCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2NvaHR0cC9jb2h0dHAuMC4x
Ny4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0
IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJy
b3JzIHdoaWxlIHBhcnNpbmcgY29odHRwLjAuMTcuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1sz
MW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBl
bm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9jb2h0dHAvY29odHRw
LjAuMTcuMS9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBs
ZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1tt
IEVycm9ycyB3aGlsZSBwYXJzaW5nIGNvaHR0cC4wLjE3LjEgT1BBTSBmaWxlLCBza2lwcGluZy4N
ChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNl
bnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvY29odHRwL2Nv
aHR0cC4wLjE3LjIvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAo
YXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5H
XRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBjb2h0dHAuMC4xNy4yIE9QQU0gZmlsZSwgc2tpcHBp
bmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3Qg
cmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2NvaHR0
cC9jb2h0dHAuMC4xOC4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNp
b24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FS
TklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgY29odHRwLjAuMTguMCBPUEFNIGZpbGUsIHNr
aXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMg
bm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9j
b2h0dHAvY29odHRwLjAuMTguMS9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2
ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNt
W1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGNvaHR0cC4wLjE4LjEgT1BBTSBmaWxl
LCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEp
IGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2Fn
ZXMvY29odHRwL2NvaHR0cC4wLjE4LjIvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNl
bnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQob
WzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBjb2h0dHAuMC4xOC4yIE9QQU0g
ZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEu
MS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3Bh
Y2thZ2VzL2NvaHR0cC9jb2h0dHAuMC4xOC4zL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUg
cmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5
Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgY29odHRwLjAuMTguMyBP
UEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFN
ICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVs
dC9wYWNrYWdlcy9jb2h0dHAvY29odHRwLjAuMTkuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBt
b3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJl
Y3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGNvaHR0cC4wLjE5
LjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2Yg
T1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2Rl
ZmF1bHQvcGFja2FnZXMvY29odHRwL2NvaHR0cC4wLjE5LjEvb3BhbS4gVXBncmFkZSBPUEFNIHRv
IGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBj
b3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBjb2h0dHAu
MC4xOS4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9u
IG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVw
by9kZWZhdWx0L3BhY2thZ2VzL2NvaHR0cC9jb2h0dHAuMC4xOS4yL29wYW0uIFVwZ3JhZGUgT1BB
TSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZp
bGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgY29o
dHRwLjAuMTkuMiBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVy
c2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFt
L3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9jb21wYXJlbGliL2NvbXBhcmVsaWIuMTEzLjAwLjAwL29w
YW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikg
dG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdo
aWxlIHBhcnNpbmcgY29tcGFyZWxpYi4xMTMuMDAuMDAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtb
MzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQg
ZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvY29uZHVpdC9jb25k
dWl0LjAuOC4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0
IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10b
W20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgY29uZHVpdC4wLjguMCBPUEFNIGZpbGUsIHNraXBwaW5n
Lg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJl
Y2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9jb25kdWl0
L2NvbmR1aXQuMC44LjEvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lv
biAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJO
SU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBjb25kdWl0LjAuOC4xIE9QQU0gZmlsZSwgc2tp
cHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBu
b3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2Nv
bmR1aXQvY29uZHVpdC4wLjguMi9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2
ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNt
W1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGNvbmR1aXQuMC44LjIgT1BBTSBmaWxl
LCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEp
IGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2Fn
ZXMvY29uZHVpdC9jb25kdWl0LjAuOC40L29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVj
ZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0K
G1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgY29uZHVpdC4wLjguNCBPUEFN
IGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgx
LjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9w
YWNrYWdlcy9jb25kdWl0L2NvbmR1aXQuMC44LjUvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9y
ZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0
bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBjb25kdWl0LjAuOC41
IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9Q
QU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZh
dWx0L3BhY2thZ2VzL2NvbmR1aXQvY29uZHVpdC4wLjguNi9vcGFtLiBVcGdyYWRlIE9QQU0gdG8g
YSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNv
cnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGNvbmR1aXQu
MC44LjYgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24g
b2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBv
L2RlZmF1bHQvcGFja2FnZXMvY29uZHVpdC9jb25kdWl0LjAuOC43L29wYW0uIFVwZ3JhZGUgT1BB
TSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZp
bGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgY29u
ZHVpdC4wLjguNyBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVy
c2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFt
L3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9jb25kdWl0L2NvbmR1aXQuMC44Ljgvb3BhbS4gVXBncmFk
ZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRo
aXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2lu
ZyBjb25kdWl0LjAuOC44IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMzbVtXQVJOSU5HXRtbbSBF
cnJvcnMgd2hpbGUgcGFyc2luZyBjb25mLWdtcC4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMx
bVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVu
b3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2NvbmYtZ251dGxzL2Nv
bmYtZ251dGxzLjEvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAo
YXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5H
XRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBjb25mLWdudXRscy4xIE9QQU0gZmlsZSwgc2tpcHBp
bmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3Qg
cmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2NvbmYt
Z3NzYXBpL2NvbmYtZ3NzYXBpLjEvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQg
dmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMz
bVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBjb25mLWdzc2FwaS4xIE9QQU0gZmls
ZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4x
KSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2th
Z2VzL2NvbmYtbGlidXYvY29uZi1saWJ1di4xL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUg
cmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5
Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgY29uZi1saWJ1di4xIE9Q
QU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0g
KDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0
L3BhY2thZ2VzL2NvbmYtbXBmci9jb25mLW1wZnIuMS9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBt
b3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJl
Y3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGNvbmYtbXBmci4x
IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9Q
QU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZh
dWx0L3BhY2thZ2VzL2NvbmYtcHBsL2NvbmYtcHBsLjEvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEg
bW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3Jy
ZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBjb25mLXBwbC4x
IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9Q
QU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZh
dWx0L3BhY2thZ2VzL2NvbmZpZ3VyYXRpb24vY29uZmlndXJhdGlvbi4wLjQuMC9vcGFtLiBVcGdy
YWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQg
dGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJz
aW5nIGNvbmZpZ3VyYXRpb24uMC40LjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9S
XRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRv
IHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvY29udGFpbmVycy9jb250YWluZXJz
LjAuNS9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFz
dCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVy
cm9ycyB3aGlsZSBwYXJzaW5nIGNvbnRhaW5lcnMuMC41IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQob
WzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50
IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2NvbnRhaW5lcnMv
Y29udGFpbmVycy4wLjYvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lv
biAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJO
SU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBjb250YWluZXJzLjAuNiBPUEFNIGZpbGUsIHNr
aXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMg
bm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9j
b250YWluZXJzL2NvbnRhaW5lcnMuMC42LjEvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSBy
ZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHku
DQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBjb250YWluZXJzLjAuNi4x
IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9Q
QU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZh
dWx0L3BhY2thZ2VzL2NvbnRhaW5lcnMvY29udGFpbmVycy4wLjcvb3BhbS4gVXBncmFkZSBPUEFN
IHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmls
ZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBjb250
YWluZXJzLjAuNyBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVy
c2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFt
L3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9jb250YWluZXJzL2NvbnRhaW5lcnMuMC44L29wYW0uIFVw
Z3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVh
ZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBh
cnNpbmcgY29udGFpbmVycy4wLjggT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtb
bSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJl
YWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvY29udGFpbmVycy9jb250YWluZXJzLjAu
OS9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAx
LjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9y
cyB3aGlsZSBwYXJzaW5nIGNvbnRhaW5lcnMuMC45IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMx
bVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVu
b3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2NvbnRhaW5lcnMvY29u
dGFpbmVycy4wLjEwL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24g
KGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklO
R10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgY29udGFpbmVycy4wLjEwIE9QQU0gZmlsZSwgc2tp
cHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBu
b3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2Nv
bnRhaW5lcnMvY29udGFpbmVycy4wLjExL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVj
ZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0K
G1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgY29udGFpbmVycy4wLjExIE9Q
QU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0g
KDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0
L3BhY2thZ2VzL2NvbnRhaW5lcnMvY29udGFpbmVycy4wLjEyL29wYW0uIFVwZ3JhZGUgT1BBTSB0
byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUg
Y29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgY29udGFp
bmVycy4wLjEyIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJz
aW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0v
cmVwby9kZWZhdWx0L3BhY2thZ2VzL2NvbnRhaW5lcnMvY29udGFpbmVycy4wLjEzL29wYW0uIFVw
Z3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVh
ZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBh
cnNpbmcgY29udGFpbmVycy4wLjEzIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0b
W20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byBy
ZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2NvcS9jb3EuOC40LjUvb3BhbS4gVXBn
cmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFk
IHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFy
c2luZyBjb3EuOC40LjUgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3Vy
IHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8u
b3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvY29xL2NvcS44LjQuNn5jYW1scDQvb3BhbS4gVXBn
cmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFk
IHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFy
c2luZyBjb3EuOC40LjZ+Y2FtbHA0IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0b
W20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byBy
ZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2NvcS9jb3EuOC40LjYvb3BhbS4gVXBn
cmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFk
IHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFy
c2luZyBjb3EuOC40LjYgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3Vy
IHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8u
b3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvY29xOnNoZWxsL2NvcTpzaGVsbC4xL29wYW0uIFVw
Z3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVh
ZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBh
cnNpbmcgY29xOnNoZWxsLjEgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZ
b3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQg
fi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvY29yZS9jb3JlLjExMi4zNS4wMC9vcGFtLiBV
cGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJl
YWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBw
YXJzaW5nIGNvcmUuMTEyLjM1LjAwIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0b
W20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byBy
ZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2NvcmUvY29yZS4xMTIuMzUuMDEvb3Bh
bS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0
byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hp
bGUgcGFyc2luZyBjb3JlLjExMi4zNS4wMSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJS
T1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2gg
dG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9jb3JlL2NvcmUuMTEzLjAwLjAw
L29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEu
MikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3Jz
IHdoaWxlIHBhcnNpbmcgY29yZS4xMTMuMDAuMDAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFt
W0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5v
dWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvY29yZV9iZW5jaC9jb3Jl
X2JlbmNoLjExMi4zNS4wMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJz
aW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dB
Uk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGNvcmVfYmVuY2guMTEyLjM1LjAwIE9QQU0g
ZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEu
MS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3Bh
Y2thZ2VzL2NvcmVfZXh0ZW5kZWQvY29yZV9leHRlbmRlZC4xMTIuMzUuMDAvb3BhbS4gVXBncmFk
ZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRo
aXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2lu
ZyBjb3JlX2V4dGVuZGVkLjExMi4zNS4wMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJS
T1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2gg
dG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9jb3JlX2V4dGVuZGVkL2NvcmVf
ZXh0ZW5kZWQuMTEzLjAwLjAwL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZl
cnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21b
V0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgY29yZV9leHRlbmRlZC4xMTMuMDAuMDAg
T1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BB
TSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1
bHQvcGFja2FnZXMvY29yZV9rZXJuZWwvY29yZV9rZXJuZWwuMTEyLjM1LjAwL29wYW0uIFVwZ3Jh
ZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0
aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNp
bmcgY29yZV9rZXJuZWwuMTEyLjM1LjAwIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJP
Ul0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0
byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2NvcmVfa2VybmVsL2NvcmVfa2Vy
bmVsLjExMy4wMC4wMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9u
IChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5J
TkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGNvcmVfa2VybmVsLjExMy4wMC4wMCBPUEFNIGZp
bGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEu
MSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNr
YWdlcy9jb3JlX3Byb2ZpbGVyL2NvcmVfcHJvZmlsZXIuMTEyLjM1LjAwL29wYW0uIFVwZ3JhZGUg
T1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlz
IGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcg
Y29yZV9wcm9maWxlci4xMTIuMzUuMDAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9S
XRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRv
IHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvY29yZV9wcm9maWxlci9jb3JlX3By
b2ZpbGVyLjExMy4wMC4wMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJz
aW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dB
Uk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGNvcmVfcHJvZmlsZXIuMTEzLjAwLjAwIE9Q
QU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0g
KDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0
L3BhY2thZ2VzL2Nvdy9jb3cuMS4xLjAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNl
bnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQob
WzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBjb3cuMS4xLjAgT1BBTSBmaWxl
LCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEp
IGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2Fn
ZXMvY293L2Nvdy4xLjIuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJz
aW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dB
Uk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGNvdy4xLjIuMCBPUEFNIGZpbGUsIHNraXBw
aW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90
IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9jb3cv
Y293LjEuMi4xL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0
IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10b
W20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgY293LjEuMi4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQob
WzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50
IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2Nvdy9jb3cuMS4y
LjIvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3Qg
MS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJv
cnMgd2hpbGUgcGFyc2luZyBjb3cuMS4yLjIgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VS
Uk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdo
IHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvY293L2Nvdy4xLjMuMC9vcGFt
LiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRv
IHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGls
ZSBwYXJzaW5nIGNvdy4xLjMuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1tt
IFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVh
ZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9jcHBvL2NwcG8uMS4yLjIvb3BhbS4gVXBn
cmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFk
IHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFy
c2luZyBjcHBvLjEuMi4yIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91
ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4v
Lm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2NwcG8vY3Bwby4xLjMuMC9vcGFtLiBVcGdyYWRl
IE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhp
cyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5n
IGNwcG8uMS4zLjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZl
cnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3Bh
bS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvY3Bwby9jcHBvLjEuMy4xL29wYW0uIFVwZ3JhZGUgT1BB
TSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZp
bGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgY3Bw
by4xLjMuMSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lv
biBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3Jl
cG8vZGVmYXVsdC9wYWNrYWdlcy9jcnVuY2gvY3J1bmNoLjEuNC4wL29wYW0uIFVwZ3JhZGUgT1BB
TSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZp
bGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgY3J1
bmNoLjEuNC4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJz
aW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0v
cmVwby9kZWZhdWx0L3BhY2thZ2VzL2NyeS9jcnkuMC4zLjAvb3BhbS4gVXBncmFkZSBPUEFNIHRv
IGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBj
b3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBjcnkuMC4z
LjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2Yg
T1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2Rl
ZmF1bHQvcGFja2FnZXMvY3J5cHRvaGFzaC9jcnlwdG9oYXNoLjAuMS9vcGFtLiBVcGdyYWRlIE9Q
QU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBm
aWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGNy
eXB0b2hhc2guMC4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2
ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9w
YW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2NzdHJ1Y3QvY3N0cnVjdC4xLjUuMC9vcGFtLiBVcGdy
YWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQg
dGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJz
aW5nIGNzdHJ1Y3QuMS41LjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZ
b3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQg
fi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvY3N0cnVjdC9jc3RydWN0LjEuNi4wL29wYW0u
IFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8g
cmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxl
IHBhcnNpbmcgY3N0cnVjdC4xLjYuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1Jd
G1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8g
cmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9jc3RydWN0L2NzdHJ1Y3QuMS43LjAv
b3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4y
KSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMg
d2hpbGUgcGFyc2luZyBjc3RydWN0LjEuNy4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtF
UlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3Vn
aCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2Nzdi9jc3YuMS4zLjQvb3Bh
bS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0
byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hp
bGUgcGFyc2luZyBjc3YuMS4zLjQgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtb
bSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJl
YWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvY3N2L2Nzdi4xLjQvb3BhbS4gVXBncmFk
ZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRo
aXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2lu
ZyBjc3YuMS40IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJz
aW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0v
cmVwby9kZWZhdWx0L3BhY2thZ2VzL2Nzdi9jc3YuMS40LjEvb3BhbS4gVXBncmFkZSBPUEFNIHRv
IGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBj
b3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBjc3YuMS40
LjEgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2Yg
T1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2Rl
ZmF1bHQvcGFja2FnZXMvY3R5cGVzL2N0eXBlcy4wLjQuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8g
YSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNv
cnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGN0eXBlcy4w
LjQuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBv
ZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8v
ZGVmYXVsdC9wYWNrYWdlcy9jdHlwZXMvY3R5cGVzLjAuNC4xL29wYW0uIFVwZ3JhZGUgT1BBTSB0
byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUg
Y29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgY3R5cGVz
LjAuNC4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9u
IG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVw
by9kZWZhdWx0L3BhY2thZ2VzL2N0eXBlcy1mb3JlaWduL2N0eXBlcy1mb3JlaWduLjAuNC4wL29w
YW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikg
dG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdo
aWxlIHBhcnNpbmcgY3R5cGVzLWZvcmVpZ24uMC40LjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtb
MzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQg
ZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvY3VzdG9tX3ByaW50
Zi9jdXN0b21fcHJpbnRmLjExMy4wMC4wMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJl
Y2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4N
ChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGN1c3RvbV9wcmludGYuMTEz
LjAwLjAwIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9u
IG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVw
by9kZWZhdWx0L3BhY2thZ2VzL2RlY29tcHJlc3MvZGVjb21wcmVzcy4wLjEvb3BhbS4gVXBncmFk
ZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRo
aXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2lu
ZyBkZWNvbXByZXNzLjAuMSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlv
dXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+
Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9kZWNvbXByZXNzL2RlY29tcHJlc3MuMC4yL29w
YW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikg
dG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdo
aWxlIHBhcnNpbmcgZGVjb21wcmVzcy4wLjIgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VS
Uk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdo
IHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvZGVwZXh0L2RlcGV4dC4wLjIv
b3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4y
KSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMg
d2hpbGUgcGFyc2luZyBkZXBleHQuMC4yIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJP
Ul0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0
byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2RlcGV4dC9kZXBleHQuMC4zL29w
YW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikg
dG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdo
aWxlIHBhcnNpbmcgZGVwZXh0LjAuMyBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1Jd
G1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8g
cmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9kZXBleHQvZGVwZXh0LjAuNC9vcGFt
LiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRv
IHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGls
ZSBwYXJzaW5nIGRlcGV4dC4wLjQgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtb
bSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJl
YWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvZGVwZXh0L2RlcGV4dC4wLjUvb3BhbS4g
VXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byBy
ZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUg
cGFyc2luZyBkZXBleHQuMC41IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20g
WW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFk
IH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2RlcGV4dC9kZXBleHQuMC42L29wYW0uIFVw
Z3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVh
ZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBh
cnNpbmcgZGVwZXh0LjAuNiBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlv
dXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+
Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9kZXBleHQvZGVwZXh0LjAuNy9vcGFtLiBVcGdy
YWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQg
dGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJz
aW5nIGRlcGV4dC4wLjcgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3Vy
IHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8u
b3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvZGVwZXh0L2RlcGV4dC4wLjgvb3BhbS4gVXBncmFk
ZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRo
aXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2lu
ZyBkZXBleHQuMC44IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2
ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9w
YW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2RlcGV4dC9kZXBleHQuMC44LjEvb3BhbS4gVXBncmFk
ZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRo
aXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2lu
ZyBkZXBleHQuMC44LjEgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3Vy
IHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8u
b3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvZGV2a2l0L2RldmtpdC4wLjMvb3BhbS4gVXBncmFk
ZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRo
aXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2lu
ZyBkZXZraXQuMC4zIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2
ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9w
YW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2RpeS9kaXkuNS4wMS9vcGFtLiBVcGdyYWRlIE9QQU0g
dG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxl
IGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGRpeS41
LjAxIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9m
IE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9k
ZWZhdWx0L3BhY2thZ2VzL2Rucy9kbnMuMC4xMy4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1v
cmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVj
dGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgZG5zLjAuMTMuMCBP
UEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFN
ICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVs
dC9wYWNrYWdlcy9kbnMvZG5zLjAuMTQuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJl
Y2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4N
ChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGRucy4wLjE0LjAgT1BBTSBm
aWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4x
LjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFj
a2FnZXMvZG5zL2Rucy4wLjE0LjEvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQg
dmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMz
bVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBkbnMuMC4xNC4xIE9QQU0gZmlsZSwg
c2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBp
cyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2Vz
L2Rucy9kbnMuMC4xNS4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNp
b24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FS
TklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgZG5zLjAuMTUuMCBPUEFNIGZpbGUsIHNraXBw
aW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90
IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9kbnMv
ZG5zLjAuMTUuMS9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChh
dCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkdd
G1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGRucy4wLjE1LjEgT1BBTSBmaWxlLCBza2lwcGluZy4N
ChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNl
bnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvZG5zL2Rucy4w
LjE1LjIvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVh
c3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBF
cnJvcnMgd2hpbGUgcGFyc2luZyBkbnMuMC4xNS4yIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMx
bVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVu
b3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2Rucy9kbnMuMC4xNS4z
L29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEu
MikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3Jz
IHdoaWxlIHBhcnNpbmcgZG5zLjAuMTUuMyBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJS
T1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2gg
dG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9kb2NrZXJmaWxlL2RvY2tlcmZp
bGUuMS4wLjAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQg
bGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtb
bSBFcnJvcnMgd2hpbGUgcGFyc2luZyBkb2NrZXJmaWxlLjEuMC4wIE9QQU0gZmlsZSwgc2tpcHBp
bmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3Qg
cmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2RvY2tl
cmZpbGUvZG9ja2VyZmlsZS4xLjEuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2Vu
dCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtb
MzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGRvY2tlcmZpbGUuMS4xLjAgT1BB
TSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAo
MS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQv
cGFja2FnZXMvZG9ja2VyZmlsZS9kb2NrZXJmaWxlLjEuMS4xL29wYW0uIFVwZ3JhZGUgT1BBTSB0
byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUg
Y29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgZG9ja2Vy
ZmlsZS4xLjEuMSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVy
c2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFt
L3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9kb2cvZG9nLjAuMS4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0
byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUg
Y29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgZG9nLjAu
MS4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9m
IE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9k
ZWZhdWx0L3BhY2thZ2VzL2RvZy9kb2cuMC4yLjAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9y
ZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0
bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBkb2cuMC4yLjAgT1BB
TSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAo
MS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQv
cGFja2FnZXMvZG9sb2cvZG9sb2cuMS4xL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVj
ZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0K
G1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgZG9sb2cuMS4xIE9QQU0gZmls
ZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4x
KSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2th
Z2VzL2Rvc2UvZG9zZS4zLjMvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVy
c2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtX
QVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBkb3NlLjMuMyBPUEFNIGZpbGUsIHNraXBw
aW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90
IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9kb3Nl
L2Rvc2UuNC4wLXJjMy9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9u
IChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5J
TkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGRvc2UuNC4wLXJjMyBPUEFNIGZpbGUsIHNraXBw
aW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90
IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9kcm9w
Ym94L2Ryb3Bib3guMC4xfjc3MmM0YTYvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNl
bnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQob
WzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBkcm9wYm94LjAuMX43NzJjNGE2
IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9Q
QU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZh
dWx0L3BhY2thZ2VzL2Rzc2kvZHNzaS4wLjEuMi9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3Jl
IHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3Rs
eS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGRzc2kuMC4xLjIgT1BB
TSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAo
MS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQv
cGFja2FnZXMvZHRvb2xzL2R0b29scy4wLjMuMi9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3Jl
IHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3Rs
eS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGR0b29scy4wLjMuMiBP
UEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFN
ICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVs
dC9wYWNrYWdlcy9kdW1wYXN0L2R1bXBhc3QuMC4yLjAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEg
bW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3Jy
ZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBkdW1wYXN0LjAu
Mi4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9m
IE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9k
ZWZhdWx0L3BhY2thZ2VzL2R1cHB5L2R1cHB5LjAuNS4yL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBh
IG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29y
cmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgZHVwcHkuMC41
LjIgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2Yg
T1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2Rl
ZmF1bHQvcGFja2FnZXMvZWZsL2VmbC4xLjEyLjAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9y
ZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0
bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBlZmwuMS4xMi4wIE9Q
QU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0g
KDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0
L3BhY2thZ2VzL2VmbC9lZmwuMS4xMy4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVj
ZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0K
G1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgZWZsLjEuMTMuMCBPUEFNIGZp
bGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEu
MSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNr
YWdlcy9lbGYyanNvbi9lbGYyanNvbi4xLjAuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3Jl
IHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3Rs
eS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGVsZjJqc29uLjEuMC4w
IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9Q
QU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZh
dWx0L3BhY2thZ2VzL2VsaW9tL2VsaW9tLjQuMC4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1v
cmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVj
dGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgZWxpb20uNC4wLjAg
T1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BB
TSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1
bHQvcGFja2FnZXMvZWxpb20vZWxpb20uNC4xLjAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9y
ZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0
bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBlbGlvbS40LjEuMCBP
UEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFN
ICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVs
dC9wYWNrYWdlcy9lbGlvbS9lbGlvbS40LjIuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3Jl
IHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3Rs
eS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGVsaW9tLjQuMi4wIE9Q
QU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0g
KDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0
L3BhY2thZ2VzL2VtYWlsX21lc3NhZ2UvZW1haWxfbWVzc2FnZS4xMTIuMzUuMDAvb3BhbS4gVXBn
cmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFk
IHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFy
c2luZyBlbWFpbF9tZXNzYWdlLjExMi4zNS4wMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1b
RVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91
Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9lbWFpbF9tZXNzYWdlL2Vt
YWlsX21lc3NhZ2UuMTEzLjAwLjAwL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50
IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1sz
M21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgZW1haWxfbWVzc2FnZS4xMTMuMDAu
MDAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2Yg
T1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2Rl
ZmF1bHQvcGFja2FnZXMvZW51bWVyYXRlL2VudW1lcmF0ZS4xMTEuMDguMDAvb3BhbS4gVXBncmFk
ZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRo
aXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2lu
ZyBlbnVtZXJhdGUuMTExLjA4LjAwIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0b
W20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byBy
ZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2VudW1lcmF0b3JzL2VudW1lcmF0b3Jz
LjAuMS4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxl
YXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20g
RXJyb3JzIHdoaWxlIHBhcnNpbmcgZW51bWVyYXRvcnMuMC4xLjAgT1BBTSBmaWxlLCBza2lwcGlu
Zy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCBy
ZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvZXh0bGli
L2V4dGxpYi4xLjcuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9u
IChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5J
TkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGV4dGxpYi4xLjcuMCBPUEFNIGZpbGUsIHNraXBw
aW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90
IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9leHRs
aWItY29tcGF0L2V4dGxpYi1jb21wYXQuMS42LjEvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9y
ZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0
bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBleHRsaWItY29tcGF0
LjEuNi4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9u
IG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVw
by9kZWZhdWx0L3BhY2thZ2VzL2V4dGxpYi1jb21wYXQvZXh0bGliLWNvbXBhdC4xLjcuMC9vcGFt
LiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRv
IHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGls
ZSBwYXJzaW5nIGV4dGxpYi1jb21wYXQuMS43LjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFt
W0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5v
dWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvZXh0dW5peC9leHR1bml4
LjAuMS4xL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxl
YXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20g
RXJyb3JzIHdoaWxlIHBhcnNpbmcgZXh0dW5peC4wLjEuMSBPUEFNIGZpbGUsIHNraXBwaW5nLg0K
G1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2Vu
dCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9leHR1bml4L2V4
dHVuaXguMC4xLjIvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAo
YXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5H
XRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBleHR1bml4LjAuMS4yIE9QQU0gZmlsZSwgc2tpcHBp
bmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3Qg
cmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2V6anNv
bm0vZXpqc29ubS4wLjMuMS9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJz
aW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dB
Uk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGV6anNvbm0uMC4zLjEgT1BBTSBmaWxlLCBz
a2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlz
IG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMv
ZXpqc29ubS9lempzb25tLjAuNC4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50
IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1sz
M21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgZXpqc29ubS4wLjQuMCBPUEFNIGZp
bGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEu
MSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNr
YWdlcy9lempzb25tL2V6anNvbm0uMC40LjEvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSBy
ZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHku
DQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBlempzb25tLjAuNC4xIE9Q
QU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0g
KDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0
L3BhY2thZ2VzL2V6anNvbm0vZXpqc29ubS4wLjQuMi9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBt
b3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJl
Y3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGV6anNvbm0uMC40
LjIgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2Yg
T1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2Rl
ZmF1bHQvcGFja2FnZXMvZmFhZC9mYWFkLjAuMy4zL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1v
cmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVj
dGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgZmFhZC4wLjMuMyBP
UEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFN
ICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVs
dC9wYWNrYWdlcy9mYXQtZmlsZXN5c3RlbS9mYXQtZmlsZXN5c3RlbS4wLjEwLjMvb3BhbS4gVXBn
cmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFk
IHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFy
c2luZyBmYXQtZmlsZXN5c3RlbS4wLjEwLjMgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VS
Uk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdo
IHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvZmZtcGVnL2ZmbXBlZy4wLjEu
MS9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAx
LjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9y
cyB3aGlsZSBwYXJzaW5nIGZmbXBlZy4wLjEuMSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1b
RVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91
Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9mZnR3My9mZnR3My4wLjcu
MS9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAx
LjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9y
cyB3aGlsZSBwYXJzaW5nIGZmdHczLjAuNy4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtF
UlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3Vn
aCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2ZmdHczL2ZmdHczLjAuNy4y
L29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEu
MikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3Jz
IHdoaWxlIHBhcnNpbmcgZmZ0dzMuMC43LjIgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VS
Uk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdo
IHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvZmllbGRzbGliL2ZpZWxkc2xp
Yi4xMTMuMDAuMDAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAo
YXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5H
XRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBmaWVsZHNsaWIuMTEzLjAwLjAwIE9QQU0gZmlsZSwg
c2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBp
cyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2Vz
L2ZsYWMvZmxhYy4wLjEuMi9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJz
aW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dB
Uk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGZsYWMuMC4xLjIgT1BBTSBmaWxlLCBza2lw
cGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5v
dCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvZmxv
d3R5cGUvZmxvd3R5cGUuMC4xLjAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQg
dmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMz
bVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBmbG93dHlwZS4wLjEuMCBPUEFNIGZp
bGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEu
MSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNr
YWdlcy9mbG93dHlwZS9mbG93dHlwZS4wLjMuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3Jl
IHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3Rs
eS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGZsb3d0eXBlLjAuMy4w
IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9Q
QU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZh
dWx0L3BhY2thZ2VzL2Zsb3d0eXBlL2Zsb3d0eXBlLjAuNC4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0
byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUg
Y29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgZmxvd3R5
cGUuMC40LjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNp
b24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9y
ZXBvL2RlZmF1bHQvcGFja2FnZXMvZmxvd3R5cGUvZmxvd3R5cGUuMC41LjAvb3BhbS4gVXBncmFk
ZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRo
aXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2lu
ZyBmbG93dHlwZS4wLjUuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlv
dXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+
Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9mbG93dHlwZS9mbG93dHlwZS4wLjYuMC9vcGFt
LiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRv
IHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGls
ZSBwYXJzaW5nIGZsb3d0eXBlLjAuNi4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJP
Ul0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0
byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2Zsb3d0eXBlL2Zsb3d0eXBlLjAu
Ny4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0
IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJy
b3JzIHdoaWxlIHBhcnNpbmcgZmxvd3R5cGUuMC43LjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtb
MzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQg
ZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvZmxvd3R5cGUvZmxv
d3R5cGUuMC44LjAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAo
YXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5H
XRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBmbG93dHlwZS4wLjguMCBPUEFNIGZpbGUsIHNraXBw
aW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90
IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9mbG93
dHlwZS9mbG93dHlwZS4wLjkuMS9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2
ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNt
W1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGZsb3d0eXBlLjAuOS4xIE9QQU0gZmls
ZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4x
KSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2th
Z2VzL2Zsb3d0eXBlL2Zsb3d0eXBlLjAuOS4yL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUg
cmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5
Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgZmxvd3R5cGUuMC45LjIg
T1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BB
TSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1
bHQvcGFja2FnZXMvZmxvd3R5cGUvZmxvd3R5cGUuMC4xMC4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0
byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUg
Y29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgZmxvd3R5
cGUuMC4xMC4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJz
aW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0v
cmVwby9kZWZhdWx0L3BhY2thZ2VzL2Zsb3d0eXBlL2Zsb3d0eXBlLjAuMTEuMC9vcGFtLiBVcGdy
YWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQg
dGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJz
aW5nIGZsb3d0eXBlLjAuMTEuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1tt
IFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVh
ZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9mbG93dHlwZS9mbG93dHlwZS4wLjEzLjEv
b3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4y
KSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMg
d2hpbGUgcGFyc2luZyBmbG93dHlwZS4wLjEzLjEgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFt
W0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5v
dWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvZmxvd3R5cGUvZmxvd3R5
cGUuMC4xNC4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0
IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10b
W20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgZmxvd3R5cGUuMC4xNC4wIE9QQU0gZmlsZSwgc2tpcHBp
bmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3Qg
cmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2Zsb3d0
eXBlL2Zsb3d0eXBlLjAuMTUuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2
ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNt
W1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGZsb3d0eXBlLjAuMTUuMCBPUEFNIGZp
bGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEu
MSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNr
YWdlcy9mbXQvZm10LjAuNy4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZl
cnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21b
V0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgZm10LjAuNy4wIE9QQU0gZmlsZSwgc2tp
cHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBu
b3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2Zy
YW1hLWMvZnJhbWEtYy4yMDE0MDMwMS9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2Vu
dCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIuMCkgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0K
G1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgZnJhbWEtYy4yMDE0MDMwMSBP
UEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFN
ICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVs
dC9wYWNrYWdlcy9mcmFtYS1jL2ZyYW1hLWMuMjAxNTAyMDEvb3BhbS4gVXBncmFkZSBPUEFNIHRv
IGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBj
b3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBmcmFtYS1j
LjIwMTUwMjAxIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJz
aW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0v
cmVwby9kZWZhdWx0L3BhY2thZ2VzL2ZyYW1hLWMtYmFzZS9mcmFtYS1jLWJhc2UuMjAxNTAyMDEv
b3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4y
KSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMg
d2hpbGUgcGFyc2luZyBmcmFtYS1jLWJhc2UuMjAxNTAyMDEgT1BBTSBmaWxlLCBza2lwcGluZy4N
ChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNl
bnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvZnJhbWEtYy1l
LWFjc2wvZnJhbWEtYy1lLWFjc2wuMC41L29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVj
ZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0K
G1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgZnJhbWEtYy1lLWFjc2wuMC41
IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9Q
QU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZh
dWx0L3BhY2thZ2VzL2ZyZWkwci9mcmVpMHIuMC4xLjEvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEg
bW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3Jy
ZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBmcmVpMHIuMC4x
LjEgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2Yg
T1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2Rl
ZmF1bHQvcGFja2FnZXMvZnJlbmV0aWMvZnJlbmV0aWMuMy4yLjAvb3BhbS4gVXBncmFkZSBPUEFN
IHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmls
ZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBmcmVu
ZXRpYy4zLjIuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVy
c2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFt
L3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9mcmVuZXRpYy9mcmVuZXRpYy4zLjMuMC9vcGFtLiBVcGdy
YWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQg
dGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJz
aW5nIGZyZW5ldGljLjMuMy4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20g
WW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFk
IH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2ZyZW5ldGljL2ZyZW5ldGljLjMuNC4wL29w
YW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikg
dG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdo
aWxlIHBhcnNpbmcgZnJlbmV0aWMuMy40LjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VS
Uk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdo
IHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvZnJlbmV0aWMvZnJlbmV0aWMu
My40LjEvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVh
c3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBF
cnJvcnMgd2hpbGUgcGFyc2luZyBmcmVuZXRpYy4zLjQuMSBPUEFNIGZpbGUsIHNraXBwaW5nLg0K
G1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2Vu
dCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9mc3Rhci9mc3Rh
ci4wLjkuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBs
ZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1tt
IEVycm9ycyB3aGlsZSBwYXJzaW5nIGZzdGFyLjAuOS4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQob
WzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50
IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2ZzdHJlYW1zL2Zz
dHJlYW1zLjAuMi4xL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24g
KGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklO
R10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgZnN0cmVhbXMuMC4yLjEgT1BBTSBmaWxlLCBza2lw
cGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5v
dCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvZ2Ft
bXUvZ2FtbXUuMC45LjMvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lv
biAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJO
SU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBnYW1tdS4wLjkuMyBPUEFNIGZpbGUsIHNraXBw
aW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90
IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9nYXNv
bGluZS9nYXNvbGluZS4wLjMuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2
ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNt
W1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGdhc29saW5lLjAuMy4wIE9QQU0gZmls
ZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4x
KSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2th
Z2VzL2dhdmwvZ2F2bC4wLjEuNi9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2
ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNt
W1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGdhdmwuMC4xLjYgT1BBTSBmaWxlLCBz
a2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlz
IG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMv
Z2RhbC9nZGFsLjAuOC4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNp
b24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FS
TklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgZ2RhbC4wLjguMCBPUEFNIGZpbGUsIHNraXBw
aW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90
IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9nZGIv
Z2RiLjAuMy9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBs
ZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1tt
IEVycm9ycyB3aGlsZSBwYXJzaW5nIGdkYi4wLjMgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFt
W0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5v
dWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvZ2VkY29tL2dlZGNvbS4x
LjAuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFz
dCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVy
cm9ycyB3aGlsZSBwYXJzaW5nIGdlZGNvbS4xLjAuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1sz
MW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBl
bm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9nZW4vZ2VuLjAuMi4y
L29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEu
MikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3Jz
IHdoaWxlIHBhcnNpbmcgZ2VuLjAuMi4yIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJP
Ul0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0
byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2dlbi9nZW4uMC4yLjMvb3BhbS4g
VXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byBy
ZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUg
cGFyc2luZyBnZW4uMC4yLjMgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZ
b3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQg
fi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvZ2VuL2dlbi4wLjIuNC9vcGFtLiBVcGdyYWRl
IE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhp
cyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5n
IGdlbi4wLjIuNCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVy
c2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFt
L3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9nZW5sZXQvZ2VubGV0LjIwMTQwNi9vcGFtLiBVcGdyYWRl
IE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhp
cyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5n
IGdlbmxldC4yMDE0MDYgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3Vy
IHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8u
b3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvZ2Vuc3FsaXRlL2dlbnNxbGl0ZS4wLjEvb3BhbS4g
VXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byBy
ZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUg
cGFyc2luZyBnZW5zcWxpdGUuMC4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0b
W20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byBy
ZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2dldG9wdHMvZ2V0b3B0cy4wLjMuMi9v
cGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIp
IHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3
aGlsZSBwYXJzaW5nIGdldG9wdHMuMC4zLjIgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VS
Uk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdo
IHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvZ2cvZ2cuMC45LjEvb3BhbS4g
VXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byBy
ZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUg
cGFyc2luZyBnZy4wLjkuMSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlv
dXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+
Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9naXQvZ2l0LjEuMC4wL29wYW0uIFVwZ3JhZGUg
T1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlz
IGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcg
Z2l0LjEuMC4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJz
aW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0v
cmVwby9kZWZhdWx0L3BhY2thZ2VzL2dpdC9naXQuMS4wLjEvb3BhbS4gVXBncmFkZSBPUEFNIHRv
IGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBj
b3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBnaXQuMS4w
LjEgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2Yg
T1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2Rl
ZmF1bHQvcGFja2FnZXMvZ2l0L2dpdC4xLjAuMi9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3Jl
IHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3Rs
eS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGdpdC4xLjAuMiBPUEFN
IGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgx
LjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9w
YWNrYWdlcy9naXQvZ2l0LjEuMS4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50
IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1sz
M21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgZ2l0LjEuMS4wIE9QQU0gZmlsZSwg
c2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBp
cyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2Vz
L2dpdC9naXQuMS4yLjAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lv
biAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJO
SU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBnaXQuMS4yLjAgT1BBTSBmaWxlLCBza2lwcGlu
Zy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCBy
ZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvZ2l0L2dp
dC4xLjMuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBs
ZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1tt
IEVycm9ycyB3aGlsZSBwYXJzaW5nIGdpdC4xLjMuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1sz
MW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBl
bm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9naXQvZ2l0LjEuNC4w
L29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEu
MikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3Jz
IHdoaWxlIHBhcnNpbmcgZ2l0LjEuNC4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJP
Ul0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0
byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2dpdC9naXQuMS40LjEvb3BhbS4g
VXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byBy
ZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUg
cGFyc2luZyBnaXQuMS40LjEgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZ
b3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQg
fi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvZ2l0L2dpdC4xLjQuMi9vcGFtLiBVcGdyYWRl
IE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhp
cyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5n
IGdpdC4xLjQuMiBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVy
c2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFt
L3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9naXQvZ2l0LjEuNC4zL29wYW0uIFVwZ3JhZGUgT1BBTSB0
byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUg
Y29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgZ2l0LjEu
NC4zIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9m
IE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9k
ZWZhdWx0L3BhY2thZ2VzL2dpdC9naXQuMS40LjQvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9y
ZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0
bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBnaXQuMS40LjQgT1BB
TSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAo
MS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQv
cGFja2FnZXMvZ2l0L2dpdC4xLjQuNS9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2Vu
dCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtb
MzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGdpdC4xLjQuNSBPUEFNIGZpbGUs
IHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkg
aXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdl
cy9naXQvZ2l0LjEuNC42L29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNp
b24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FS
TklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgZ2l0LjEuNC42IE9QQU0gZmlsZSwgc2tpcHBp
bmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3Qg
cmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2dpdC9n
aXQuMS40Ljcvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQg
bGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtb
bSBFcnJvcnMgd2hpbGUgcGFyc2luZyBnaXQuMS40LjcgT1BBTSBmaWxlLCBza2lwcGluZy4NChtb
MzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQg
ZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvZ2l0L2dpdC4xLjQu
OC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAx
LjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9y
cyB3aGlsZSBwYXJzaW5nIGdpdC4xLjQuOCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJS
T1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2gg
dG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9naXQvZ2l0LjEuNC45L29wYW0u
IFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8g
cmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxl
IHBhcnNpbmcgZ2l0LjEuNC45IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20g
WW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFk
IH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2dpdC9naXQuMS40LjEwL29wYW0uIFVwZ3Jh
ZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0
aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNp
bmcgZ2l0LjEuNC4xMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIg
dmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5v
cGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9naXQvZ2l0LjEuNC4xMS9vcGFtLiBVcGdyYWRlIE9Q
QU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBm
aWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGdp
dC4xLjQuMTEgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNp
b24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9y
ZXBvL2RlZmF1bHQvcGFja2FnZXMvZ2l0L2dpdC4xLjUuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8g
YSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNv
cnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGdpdC4xLjUu
MCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBP
UEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVm
YXVsdC9wYWNrYWdlcy9naXQvZ2l0LjEuNS4xL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUg
cmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5
Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgZ2l0LjEuNS4xIE9QQU0g
ZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEu
MS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3Bh
Y2thZ2VzL2dpdC9naXQuMS41LjIvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQg
dmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMz
bVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBnaXQuMS41LjIgT1BBTSBmaWxlLCBz
a2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlz
IG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMv
Z2l0L2dpdC4xLjUuMy9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9u
IChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5J
TkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGdpdC4xLjUuMyBPUEFNIGZpbGUsIHNraXBwaW5n
Lg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJl
Y2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9naXQvZ2l0
LjEuNi4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxl
YXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20g
RXJyb3JzIHdoaWxlIHBhcnNpbmcgZ2l0LjEuNi4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMx
bVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVu
b3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2dpdC9naXQuMS42LjEv
b3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4y
KSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMg
d2hpbGUgcGFyc2luZyBnaXQuMS42LjEgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9S
XRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRv
IHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvZ2l0L2dpdC4xLjYuMi9vcGFtLiBV
cGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJl
YWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBw
YXJzaW5nIGdpdC4xLjYuMiBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlv
dXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+
Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9naXQvZ2l0LjEuNy4wL29wYW0uIFVwZ3JhZGUg
T1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlz
IGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcg
Z2l0LjEuNy4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJz
aW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0v
cmVwby9kZWZhdWx0L3BhY2thZ2VzL2dpdC9naXQuMS43LjEvb3BhbS4gVXBncmFkZSBPUEFNIHRv
IGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBj
b3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBnaXQuMS43
LjEgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2Yg
T1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2Rl
ZmF1bHQvcGFja2FnZXMvZ2l0aHViL2dpdGh1Yi4wLjkuMy9vcGFtLiBVcGdyYWRlIE9QQU0gdG8g
YSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNv
cnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGdpdGh1Yi4w
LjkuMyBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBv
ZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8v
ZGVmYXVsdC9wYWNrYWdlcy9naXRodWIvZ2l0aHViLjAuOS40L29wYW0uIFVwZ3JhZGUgT1BBTSB0
byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUg
Y29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgZ2l0aHVi
LjAuOS40IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9u
IG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVw
by9kZWZhdWx0L3BhY2thZ2VzL2dpdGh1Yi9naXRodWIuMS4wLjAvb3BhbS4gVXBncmFkZSBPUEFN
IHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmls
ZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBnaXRo
dWIuMS4wLjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNp
b24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9y
ZXBvL2RlZmF1bHQvcGFja2FnZXMvZ2xpY2FsL2dsaWNhbC4wLjAuNC9vcGFtLiBVcGdyYWRlIE9Q
QU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBm
aWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGds
aWNhbC4wLjAuNCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVy
c2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFt
L3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9nbXAteGVuL2dtcC14ZW4uNi4wLjAvb3BhbS4gVXBncmFk
ZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRo
aXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2lu
ZyBnbXAteGVuLjYuMC4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91
ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4v
Lm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2dudXBsb3QvZ251cGxvdC4wLjUuMC9vcGFtLiBV
cGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJl
YWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBw
YXJzaW5nIGdudXBsb3QuMC41LjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtb
bSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJl
YWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvZ29vZ2xlLWRyaXZlLW9jYW1sZnVzZS9n
b29nbGUtZHJpdmUtb2NhbWxmdXNlLjAuNS4xNy9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3Jl
IHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3Rs
eS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGdvb2dsZS1kcml2ZS1v
Y2FtbGZ1c2UuMC41LjE3IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91
ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4v
Lm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2dvb2dsZS1kcml2ZS1vY2FtbGZ1c2UvZ29vZ2xl
LWRyaXZlLW9jYW1sZnVzZS4wLjUuMTgvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNl
bnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQob
WzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBnb29nbGUtZHJpdmUtb2NhbWxm
dXNlLjAuNS4xOCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVy
c2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFt
L3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9ncHIvZ3ByLjEuMi4xL29wYW0uIFVwZ3JhZGUgT1BBTSB0
byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUg
Y29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgZ3ByLjEu
Mi4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9m
IE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9k
ZWZhdWx0L3BhY2thZ2VzL2dweC9ncHguMS4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUg
cmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5
Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgZ3B4LjEuMCBPUEFNIGZp
bGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEu
MSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNr
YWdlcy9ncHgvZ3B4LjEuMC4xL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZl
cnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21b
V0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgZ3B4LjEuMC4xIE9QQU0gZmlsZSwgc2tp
cHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBu
b3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2dw
eC9ncHguMS4wLjIvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAo
YXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5H
XRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBncHguMS4wLjIgT1BBTSBmaWxlLCBza2lwcGluZy4N
ChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNl
bnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvZ3B4L2dweC4x
LjEuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFz
dCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVy
cm9ycyB3aGlsZSBwYXJzaW5nIGdweC4xLjEuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1b
RVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91
Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9ncHgvZ3B4LjEuMS4xL29w
YW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikg
dG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdo
aWxlIHBhcnNpbmcgZ3B4LjEuMS4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0b
W20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byBy
ZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2dyaWIvZ3JpYi4wLjExLjAvb3BhbS4g
VXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byBy
ZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUg
cGFyc2luZyBncmliLjAuMTEuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1tt
IFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVh
ZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9nc2wvZ3NsLjEuMTguMi9vcGFtLiBVcGdy
YWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQg
dGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJz
aW5nIGdzbC4xLjE4LjIgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3Vy
IHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8u
b3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvZ3NsL2dzbC4xLjE4LjMvb3BhbS4gVXBncmFkZSBP
UEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMg
ZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBn
c2wuMS4xOC4zIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJz
aW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0v
cmVwby9kZWZhdWx0L3BhY2thZ2VzL2dzbC9nc2wuMS4xOC40L29wYW0uIFVwZ3JhZGUgT1BBTSB0
byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUg
Y29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgZ3NsLjEu
MTguNCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBv
ZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8v
ZGVmYXVsdC9wYWNrYWdlcy9nc2wvZ3NsLjEuMTguNS9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBt
b3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJl
Y3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGdzbC4xLjE4LjUg
T1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BB
TSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1
bHQvcGFja2FnZXMvZ3N0cmVhbWVyL2dzdHJlYW1lci4wLjIuMS9vcGFtLiBVcGdyYWRlIE9QQU0g
dG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxl
IGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGdzdHJl
YW1lci4wLjIuMSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVy
c2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFt
L3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9oYXJkY2FtbC9oYXJkY2FtbC4xLjEuMC9vcGFtLiBVcGdy
YWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQg
dGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJz
aW5nIGhhcmRjYW1sLjEuMS4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20g
WW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFk
IH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2hhcmRjYW1sLWV4YW1wbGVzL2hhcmRjYW1s
LWV4YW1wbGVzLjAuMS4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNp
b24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FS
TklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgaGFyZGNhbWwtZXhhbXBsZXMuMC4xLjAgT1BB
TSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAo
MS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQv
cGFja2FnZXMvaGFyZGNhbWwtZXhhbXBsZXMvaGFyZGNhbWwtZXhhbXBsZXMuMC4yL29wYW0uIFVw
Z3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVh
ZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBh
cnNpbmcgaGFyZGNhbWwtZXhhbXBsZXMuMC4yIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtF
UlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3Vn
aCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2hhcmRjYW1sLXJlZWRzb2xv
bW9uL2hhcmRjYW1sLXJlZWRzb2xvbW9uLjAuMS9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3Jl
IHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3Rs
eS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGhhcmRjYW1sLXJlZWRz
b2xvbW9uLjAuMSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVy
c2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFt
L3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9oYXJkY2FtbC1yZWVkc29sb21vbi9oYXJkY2FtbC1yZWVk
c29sb21vbi4wLjIvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAo
YXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5H
XRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBoYXJkY2FtbC1yZWVkc29sb21vbi4wLjIgT1BBTSBm
aWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4x
LjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFj
a2FnZXMvaGFyZGNhbWwtdnBpL2hhcmRjYW1sLXZwaS4wLjEuMC9vcGFtLiBVcGdyYWRlIE9QQU0g
dG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxl
IGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGhhcmRj
YW1sLXZwaS4wLjEuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIg
dmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5v
cGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9oYXJkY2FtbC12cGkvaGFyZGNhbWwtdnBpLjAuMi9v
cGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIp
IHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3
aGlsZSBwYXJzaW5nIGhhcmRjYW1sLXZwaS4wLjIgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFt
W0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5v
dWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvaGFyZGNhbWwtd2F2ZXRl
cm0vaGFyZGNhbWwtd2F2ZXRlcm0uMC4xLjAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSBy
ZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHku
DQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBoYXJkY2FtbC13YXZldGVy
bS4wLjEuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lv
biBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3Jl
cG8vZGVmYXVsdC9wYWNrYWdlcy9oYXNoY29ucy9oYXNoY29ucy4xLjAuMS9vcGFtLiBVcGdyYWRl
IE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhp
cyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5n
IGhhc2hjb25zLjEuMC4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91
ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4v
Lm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2hkZjUvaGRmNS4wLjEvb3BhbS4gVXBncmFkZSBP
UEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMg
ZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBo
ZGY1LjAuMSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lv
biBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3Jl
cG8vZGVmYXVsdC9wYWNrYWdlcy9oZXB0YWdvbi9oZXB0YWdvbi4xLjAxLjAwL29wYW0uIFVwZ3Jh
ZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0
aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNp
bmcgaGVwdGFnb24uMS4wMS4wMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1tt
IFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVh
ZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9oZXJlbGliL2hlcmVsaWIuMTEyLjM1LjAw
L29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEu
MikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3Jz
IHdoaWxlIHBhcnNpbmcgaGVyZWxpYi4xMTIuMzUuMDAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtb
MzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQg
ZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvaGV2ZWEvaGV2ZWEu
Mi4yNS9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFz
dCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVy
cm9ycyB3aGlsZSBwYXJzaW5nIGhldmVhLjIuMjUgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFt
W0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5v
dWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvaGV4L2hleC4wLjIuMC9v
cGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIp
IHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3
aGlsZSBwYXJzaW5nIGhleC4wLjIuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1Jd
G1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8g
cmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9odW1hbmUtcmUvaHVtYW5lLXJlLjAu
MS4xL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0
IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJy
b3JzIHdoaWxlIHBhcnNpbmcgaHVtYW5lLXJlLjAuMS4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQob
WzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50
IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2lieC9pYnguMC44
LjAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3Qg
MS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJv
cnMgd2hpbGUgcGFyc2luZyBpYnguMC44LjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VS
Uk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdo
IHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvaW1hcC9pbWFwLjEuMC9vcGFt
LiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRv
IHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGls
ZSBwYXJzaW5nIGltYXAuMS4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20g
WW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFk
IH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2ltYXAvaW1hcC4xLjEuMC9vcGFtLiBVcGdy
YWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQg
dGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJz
aW5nIGltYXAuMS4xLjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3Vy
IHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8u
b3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvaW1hcC9pbWFwLjEuMS4xL29wYW0uIFVwZ3JhZGUg
T1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlz
IGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcg
aW1hcC4xLjEuMSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVy
c2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFt
L3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9pbWFwbGV0LWx3dC9pbWFwbGV0LWx3dC4wLjEuMi9vcGFt
LiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRv
IHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGls
ZSBwYXJzaW5nIGltYXBsZXQtbHd0LjAuMS4yIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtF
UlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3Vn
aCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2ltYXBsZXQtbHd0L2ltYXBs
ZXQtbHd0LjAuMS4zL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24g
KGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklO
R10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgaW1hcGxldC1sd3QuMC4xLjMgT1BBTSBmaWxlLCBz
a2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlz
IG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMv
aW1hcGxldC1sd3QvaW1hcGxldC1sd3QuMC4xLjQvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9y
ZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0
bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBpbWFwbGV0LWx3dC4w
LjEuNCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBv
ZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8v
ZGVmYXVsdC9wYWNrYWdlcy9pbWFwbGV0LWx3dC9pbWFwbGV0LWx3dC4wLjEuOC9vcGFtLiBVcGdy
YWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQg
dGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJz
aW5nIGltYXBsZXQtbHd0LjAuMS44IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0b
W20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byBy
ZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2ltYXBsZXQtbHd0L2ltYXBsZXQtbHd0
LjAuMS45L29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxl
YXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20g
RXJyb3JzIHdoaWxlIHBhcnNpbmcgaW1hcGxldC1sd3QuMC4xLjkgT1BBTSBmaWxlLCBza2lwcGlu
Zy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCBy
ZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvaW1hcGxl
dC1sd3QvaW1hcGxldC1sd3QuMC4xLjEwL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVj
ZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0K
G1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgaW1hcGxldC1sd3QuMC4xLjEw
IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9Q
QU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZh
dWx0L3BhY2thZ2VzL2ltYXBsZXQtbHd0L2ltYXBsZXQtbHd0LjAuMS4xMS9vcGFtLiBVcGdyYWRl
IE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhp
cyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5n
IGltYXBsZXQtbHd0LjAuMS4xMSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1tt
IFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVh
ZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9pbWFwbGV0LWx3dC9pbWFwbGV0LWx3dC4w
LjEuMTIvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVh
c3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBF
cnJvcnMgd2hpbGUgcGFyc2luZyBpbWFwbGV0LWx3dC4wLjEuMTIgT1BBTSBmaWxlLCBza2lwcGlu
Zy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCBy
ZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvaW1hcGxl
dC1sd3QvaW1hcGxldC1sd3QuMC4xLjEzL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVj
ZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0K
G1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgaW1hcGxldC1sd3QuMC4xLjEz
IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9Q
QU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZh
dWx0L3BhY2thZ2VzL2ltYXBsZXQtbHd0L2ltYXBsZXQtbHd0LjAuMS4xNC9vcGFtLiBVcGdyYWRl
IE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhp
cyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5n
IGltYXBsZXQtbHd0LjAuMS4xNCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1tt
IFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVh
ZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9pbmNyZW1lbnRhbC9pbmNyZW1lbnRhbC4x
MTIuMzUuMDAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQg
bGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtb
bSBFcnJvcnMgd2hpbGUgcGFyc2luZyBpbmNyZW1lbnRhbC4xMTIuMzUuMDAgT1BBTSBmaWxlLCBz
a2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlz
IG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMv
aW5jcmVtZW50YWwvaW5jcmVtZW50YWwuMTEzLjAwLjAwL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBh
IG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29y
cmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgaW5jcmVtZW50
YWwuMTEzLjAwLjAwIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2
ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9w
YW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2lvLXBhZ2UvaW8tcGFnZS4xLjIuMC9vcGFtLiBVcGdy
YWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQg
dGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJz
aW5nIGlvLXBhZ2UuMS4yLjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZ
b3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQg
fi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvaW8tcGFnZS9pby1wYWdlLjEuMy4wL29wYW0u
IFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8g
cmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxl
IHBhcnNpbmcgaW8tcGFnZS4xLjMuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1Jd
G1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8g
cmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9pby1wYWdlL2lvLXBhZ2UuMS40LjAv
b3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4y
KSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMg
d2hpbGUgcGFyc2luZyBpby1wYWdlLjEuNC4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtF
UlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3Vn
aCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2lvLXBhZ2UvaW8tcGFnZS4x
LjUuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFz
dCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVy
cm9ycyB3aGlsZSBwYXJzaW5nIGlvLXBhZ2UuMS41LjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtb
MzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQg
ZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvaW8tcGFnZS9pby1w
YWdlLjEuNS4xL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0
IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10b
W20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgaW8tcGFnZS4xLjUuMSBPUEFNIGZpbGUsIHNraXBwaW5n
Lg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJl
Y2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9pb2NhbWwv
aW9jYW1sLjAuNC43L29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24g
KGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklO
R10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgaW9jYW1sLjAuNC43IE9QQU0gZmlsZSwgc2tpcHBp
bmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3Qg
cmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2lwYWRk
ci9pcGFkZHIuMi42LjAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lv
biAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJO
SU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBpcGFkZHIuMi42LjAgT1BBTSBmaWxlLCBza2lw
cGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5v
dCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvaXBh
ZGRyL2lwYWRkci4yLjYuMS9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJz
aW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dB
Uk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGlwYWRkci4yLjYuMSBPUEFNIGZpbGUsIHNr
aXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMg
bm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9p
cm1pbi9pcm1pbi4wLjcuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJz
aW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dB
Uk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGlybWluLjAuNy4wIE9QQU0gZmlsZSwgc2tp
cHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBu
b3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2ly
bWluL2lybWluLjAuOC4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNp
b24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FS
TklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgaXJtaW4uMC44LjAgT1BBTSBmaWxlLCBza2lw
cGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5v
dCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvaXJt
aW4vaXJtaW4uMC44LjEvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lv
biAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJO
SU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBpcm1pbi4wLjguMSBPUEFNIGZpbGUsIHNraXBw
aW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90
IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9pcm1p
bi9pcm1pbi4wLjguMi9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9u
IChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5J
TkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGlybWluLjAuOC4yIE9QQU0gZmlsZSwgc2tpcHBp
bmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3Qg
cmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2lybWlu
L2lybWluLjAuOC4zL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24g
KGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklO
R10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgaXJtaW4uMC44LjMgT1BBTSBmaWxlLCBza2lwcGlu
Zy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCBy
ZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvaXJtaW4v
aXJtaW4uMC45LjAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAo
YXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5H
XRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBpcm1pbi4wLjkuMCBPUEFNIGZpbGUsIHNraXBwaW5n
Lg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJl
Y2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9pcm1pbi9p
cm1pbi4wLjkuMS9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChh
dCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkdd
G1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGlybWluLjAuOS4xIE9QQU0gZmlsZSwgc2tpcHBpbmcu
DQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVj
ZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2lybWluL2ly
bWluLjAuOS4yL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0
IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10b
W20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgaXJtaW4uMC45LjIgT1BBTSBmaWxlLCBza2lwcGluZy4N
ChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNl
bnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvaXJtaW4vaXJt
aW4uMC45LjMvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQg
bGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtb
bSBFcnJvcnMgd2hpbGUgcGFyc2luZyBpcm1pbi4wLjkuMyBPUEFNIGZpbGUsIHNraXBwaW5nLg0K
G1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2Vu
dCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9pcm1pbi9pcm1p
bi4wLjkuNC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBs
ZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1tt
IEVycm9ycyB3aGlsZSBwYXJzaW5nIGlybWluLjAuOS40IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQob
WzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50
IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2lybWluL2lybWlu
LjAuOS41L29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxl
YXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20g
RXJyb3JzIHdoaWxlIHBhcnNpbmcgaXJtaW4uMC45LjUgT1BBTSBmaWxlLCBza2lwcGluZy4NChtb
MzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQg
ZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvaXJtaW4vaXJtaW4u
MC45LjYvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVh
c3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBF
cnJvcnMgd2hpbGUgcGFyc2luZyBpcm1pbi4wLjkuNiBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1sz
MW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBl
bm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9pcm1pbi9pcm1pbi4w
LjkuNy9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFz
dCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVy
cm9ycyB3aGlsZSBwYXJzaW5nIGlybWluLjAuOS43IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMx
bVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVu
b3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2lybWluL2lybWluLjAu
OS44L29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0
IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJy
b3JzIHdoaWxlIHBhcnNpbmcgaXJtaW4uMC45LjggT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFt
W0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5v
dWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvaXJtaW4vaXJtaW4uMC45
Ljkvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3Qg
MS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJv
cnMgd2hpbGUgcGFyc2luZyBpcm1pbi4wLjkuOSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1b
RVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91
Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9pcm1pbi1pbmRleGVkZGIv
aXJtaW4taW5kZXhlZGRiLjAuMS9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2
ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNt
W1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGlybWluLWluZGV4ZWRkYi4wLjEgT1BB
TSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAo
MS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQv
cGFja2FnZXMvaXJtaW4tdW5peC9pcm1pbi11bml4LjAuOS40L29wYW0uIFVwZ3JhZGUgT1BBTSB0
byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUg
Y29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgaXJtaW4t
dW5peC4wLjkuNCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVy
c2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFt
L3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9pcm1pbi11bml4L2lybWluLXVuaXguMC45Ljkvb3BhbS4g
VXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byBy
ZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUg
cGFyc2luZyBpcm1pbi11bml4LjAuOS45IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJP
Ul0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0
byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL0lTTzg2MDEvSVNPODYwMS4wLjEu
Mi9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAx
LjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9y
cyB3aGlsZSBwYXJzaW5nIElTTzg2MDEuMC4xLjIgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFt
W0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5v
dWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvSVNPODYwMS9JU084NjAx
LjAuMi4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxl
YXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20g
RXJyb3JzIHdoaWxlIHBhcnNpbmcgSVNPODYwMS4wLjIuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0K
G1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2Vu
dCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9JU084NjAxL0lT
Tzg2MDEuMC4yLjIvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAo
YXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5H
XRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBJU084NjAxLjAuMi4yIE9QQU0gZmlsZSwgc2tpcHBp
bmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3Qg
cmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL0lTTzg2
MDEvSVNPODYwMS4wLjIuMy9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJz
aW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dB
Uk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIElTTzg2MDEuMC4yLjMgT1BBTSBmaWxlLCBz
a2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlz
IG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMv
SVNPODYwMS9JU084NjAxLjAuMi40L29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50
IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1sz
M21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgSVNPODYwMS4wLjIuNCBPUEFNIGZp
bGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEu
MSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNr
YWdlcy9pdnkvaXZ5LjEuMy4xL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZl
cnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21b
V0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgaXZ5LjEuMy4xIE9QQU0gZmlsZSwgc2tp
cHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBu
b3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2ph
dmFsaWIvamF2YWxpYi4yLjMuMS9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2
ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNt
W1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGphdmFsaWIuMi4zLjEgT1BBTSBmaWxl
LCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEp
IGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2Fn
ZXMvamVuZ2EvamVuZ2EuMTEyLjM1LjAwL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVj
ZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0K
G1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgamVuZ2EuMTEyLjM1LjAwIE9Q
QU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0g
KDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0
L3BhY2thZ2VzL2plbmdhL2plbmdhLjExMy4wMC4wMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBt
b3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJl
Y3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGplbmdhLjExMy4w
MC4wMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBv
ZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8v
ZGVmYXVsdC9wYWNrYWdlcy9qaW5nb28vamluZ29vLjEuMi45L29wYW0uIFVwZ3JhZGUgT1BBTSB0
byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUg
Y29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgamluZ29v
LjEuMi45IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9u
IG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVw
by9kZWZhdWx0L3BhY2thZ2VzL2ppdHN1L2ppdHN1LjAuMi9vcGFtLiBVcGdyYWRlIE9QQU0gdG8g
YSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNv
cnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGppdHN1LjAu
MiBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBP
UEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVm
YXVsdC9wYWNrYWdlcy9qc19vZl9vY2FtbC9qc19vZl9vY2FtbC4xLjIvb3BhbS4gVXBncmFkZSBP
UEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMg
ZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBq
c19vZl9vY2FtbC4xLjIgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3Vy
IHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8u
b3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvanNfb2Zfb2NhbWwvanNfb2Zfb2NhbWwuMS4zLjEv
b3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4y
KSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMg
d2hpbGUgcGFyc2luZyBqc19vZl9vY2FtbC4xLjMuMSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1sz
MW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBl
bm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9qc19vZl9vY2FtbC9q
c19vZl9vY2FtbC4xLjMuMi9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJz
aW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dB
Uk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGpzX29mX29jYW1sLjEuMy4yIE9QQU0gZmls
ZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4x
KSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2th
Z2VzL2pzX29mX29jYW1sL2pzX29mX29jYW1sLjEuNC4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBh
IG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29y
cmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcganNfb2Zfb2Nh
bWwuMS40LjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNp
b24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9y
ZXBvL2RlZmF1bHQvcGFja2FnZXMvanNfb2Zfb2NhbWwvanNfb2Zfb2NhbWwuMi4wL29wYW0uIFVw
Z3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVh
ZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBh
cnNpbmcganNfb2Zfb2NhbWwuMi4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0b
W20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byBy
ZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2pzX29mX29jYW1sL2pzX29mX29jYW1s
LjIuMS9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFz
dCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVy
cm9ycyB3aGlsZSBwYXJzaW5nIGpzX29mX29jYW1sLjIuMSBPUEFNIGZpbGUsIHNraXBwaW5nLg0K
G1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2Vu
dCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9qc19vZl9vY2Ft
bC9qc19vZl9vY2FtbC4yLjIvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVy
c2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtX
QVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBqc19vZl9vY2FtbC4yLjIgT1BBTSBmaWxl
LCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEp
IGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2Fn
ZXMvanNfb2Zfb2NhbWwvanNfb2Zfb2NhbWwuMi4zL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1v
cmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVj
dGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcganNfb2Zfb2NhbWwu
Mi4zIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9m
IE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9k
ZWZhdWx0L3BhY2thZ2VzL2pzX29mX29jYW1sL2pzX29mX29jYW1sLjIuNC9vcGFtLiBVcGdyYWRl
IE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhp
cyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5n
IGpzX29mX29jYW1sLjIuNCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlv
dXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+
Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9qc19vZl9vY2FtbC9qc19vZl9vY2FtbC4yLjQu
MS9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAx
LjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9y
cyB3aGlsZSBwYXJzaW5nIGpzX29mX29jYW1sLjIuNC4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQob
WzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50
IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2pzX29mX29jYW1s
L2pzX29mX29jYW1sLjIuNS9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJz
aW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dB
Uk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGpzX29mX29jYW1sLjIuNSBPUEFNIGZpbGUs
IHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkg
aXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdl
cy9qc19vZl9vY2FtbC9qc19vZl9vY2FtbC4yLjYvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9y
ZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0
bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBqc19vZl9vY2FtbC4y
LjYgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2Yg
T1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2Rl
ZmF1bHQvcGFja2FnZXMva2Fma2Eva2Fma2EuMC4yL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1v
cmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVj
dGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcga2Fma2EuMC4yIE9Q
QU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0g
KDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0
L3BhY2thZ2VzL0thU2ltL0thU2ltLjMuNS4xNDExMTIvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEg
bW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3Jy
ZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBLYVNpbS4zLjUu
MTQxMTEyIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9u
IG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVw
by9kZWZhdWx0L3BhY2thZ2VzL2tldHJldy9rZXRyZXcuMS4xLjEvb3BhbS4gVXBncmFkZSBPUEFN
IHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmls
ZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBrZXRy
ZXcuMS4xLjEgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNp
b24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9y
ZXBvL2RlZmF1bHQvcGFja2FnZXMva2V0cmV3L2tldHJldy4yLjAuMC9vcGFtLiBVcGdyYWRlIE9Q
QU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBm
aWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGtl
dHJldy4yLjAuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVy
c2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFt
L3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9raW5ldGljLWNsaWVudC9raW5ldGljLWNsaWVudC4wLjAu
MS9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAx
LjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9y
cyB3aGlsZSBwYXJzaW5nIGtpbmV0aWMtY2xpZW50LjAuMC4xIE9QQU0gZmlsZSwgc2tpcHBpbmcu
DQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVj
ZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2tpbmV0aWMt
Y2xpZW50L2tpbmV0aWMtY2xpZW50LjAuMC4zL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUg
cmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5
Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcga2luZXRpYy1jbGllbnQu
MC4wLjMgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24g
b2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBv
L2RlZmF1bHQvcGFja2FnZXMva2luZXRpYy1jbGllbnQva2luZXRpYy1jbGllbnQuMC4wLjQvb3Bh
bS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0
byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hp
bGUgcGFyc2luZyBraW5ldGljLWNsaWVudC4wLjAuNCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1sz
MW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBl
bm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9raW5ldGljLWNsaWVu
dC9raW5ldGljLWNsaWVudC4wLjAuNS9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2Vu
dCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtb
MzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGtpbmV0aWMtY2xpZW50LjAuMC41
IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9Q
QU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZh
dWx0L3BhY2thZ2VzL2tpbmV0aWMtY2xpZW50L2tpbmV0aWMtY2xpZW50LjAuMC42L29wYW0uIFVw
Z3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVh
ZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBh
cnNpbmcga2luZXRpYy1jbGllbnQuMC4wLjYgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VS
Uk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdo
IHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvbGFjYW1sL2xhY2FtbC43LjIu
MC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAx
LjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9y
cyB3aGlsZSBwYXJzaW5nIGxhY2FtbC43LjIuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1b
RVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91
Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9sYWNhbWwvbGFjYW1sLjcu
Mi4xL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0
IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJy
b3JzIHdoaWxlIHBhcnNpbmcgbGFjYW1sLjcuMi4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMx
bVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVu
b3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2xhY2FtbC9sYWNhbWwu
Ny4yLjIvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVh
c3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBF
cnJvcnMgd2hpbGUgcGFyc2luZyBsYWNhbWwuNy4yLjIgT1BBTSBmaWxlLCBza2lwcGluZy4NChtb
MzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQg
ZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvbGFjYW1sL2xhY2Ft
bC43LjIuMy9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBs
ZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1tt
IEVycm9ycyB3aGlsZSBwYXJzaW5nIGxhY2FtbC43LjIuMyBPUEFNIGZpbGUsIHNraXBwaW5nLg0K
G1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2Vu
dCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9sYWNhbWwvbGFj
YW1sLjcuMi40L29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0
IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10b
W20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgbGFjYW1sLjcuMi40IE9QQU0gZmlsZSwgc2tpcHBpbmcu
DQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVj
ZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2xhY2FtbC9s
YWNhbWwuNy4yLjUvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAo
YXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5H
XRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBsYWNhbWwuNy4yLjUgT1BBTSBmaWxlLCBza2lwcGlu
Zy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCBy
ZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvbGFjYW1s
L2xhY2FtbC43LjIuNi9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9u
IChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5J
TkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGxhY2FtbC43LjIuNiBPUEFNIGZpbGUsIHNraXBw
aW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90
IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9sYWRz
cGEvbGFkc3BhLjAuMS41L29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNp
b24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FS
TklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgbGFkc3BhLjAuMS41IE9QQU0gZmlsZSwgc2tp
cHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBu
b3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2xh
bWJkYS10ZXJtL2xhbWJkYS10ZXJtLjEuOS9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJl
Y2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4N
ChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGxhbWJkYS10ZXJtLjEuOSBP
UEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFN
ICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVs
dC9wYWNrYWdlcy9sYW1iZG9jL2xhbWJkb2MuMS4wLWJldGEyL29wYW0uIFVwZ3JhZGUgT1BBTSB0
byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUg
Y29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgbGFtYmRv
Yy4xLjAtYmV0YTIgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZl
cnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3Bh
bS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvbGFtYmRvYy9sYW1iZG9jLjEuMC1iZXRhMy9vcGFtLiBV
cGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJl
YWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBw
YXJzaW5nIGxhbWJkb2MuMS4wLWJldGEzIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJP
Ul0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0
byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2xhbWJkb2MvbGFtYmRvYy4xLjAt
YmV0YTQvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVh
c3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBF
cnJvcnMgd2hpbGUgcGFyc2luZyBsYW1iZG9jLjEuMC1iZXRhNCBPUEFNIGZpbGUsIHNraXBwaW5n
Lg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJl
Y2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9sYW1lL2xh
bWUuMC4zLjMvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQg
bGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtb
bSBFcnJvcnMgd2hpbGUgcGFyc2luZyBsYW1lLjAuMy4zIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQob
WzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50
IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2xhc3RmbS9sYXN0
Zm0uMC4zLjEvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQg
bGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtb
bSBFcnJvcnMgd2hpbGUgcGFyc2luZyBsYXN0Zm0uMC4zLjEgT1BBTSBmaWxlLCBza2lwcGluZy4N
ChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNl
bnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvbGJmZ3MvbGJm
Z3MuMC44LjYvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQg
bGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtb
bSBFcnJvcnMgd2hpbGUgcGFyc2luZyBsYmZncy4wLjguNiBPUEFNIGZpbGUsIHNraXBwaW5nLg0K
G1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2Vu
dCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9sYmZncy9sYmZn
cy4wLjguNy9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBs
ZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1tt
IEVycm9ycyB3aGlsZSBwYXJzaW5nIGxiZmdzLjAuOC43IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQob
WzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50
IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2xlbW9uYWRlL2xl
bW9uYWRlLjAuMi4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24g
KGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklO
R10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgbGVtb25hZGUuMC4yLjAgT1BBTSBmaWxlLCBza2lw
cGluZy4NChtbMzFtW0VSUk9SXRtbbSBGaWxlICIvaG9tZS9sYXN5YS8ub3BhbS9yZXBvL2RlZmF1
bHQvcGFja2FnZXMvbGVucy9sZW5zLjEuMC4wL29wYW0iLCBsaW5lIDQsIGNoYXJhY3RlciAyNS0y
NjogcGFyc2UgZXJyb3IuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBs
ZW5zLjEuMC4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJz
aW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0v
cmVwby9kZWZhdWx0L3BhY2thZ2VzL2xlbnMvbGVucy4xLjAuMi9vcGFtLiBVcGdyYWRlIE9QQU0g
dG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxl
IGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGxlbnMu
MS4wLjIgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24g
b2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBv
L2RlZmF1bHQvcGFja2FnZXMvbGV2ZWxkYi9sZXZlbGRiLjEuMS4wL29wYW0uIFVwZ3JhZGUgT1BB
TSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZp
bGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgbGV2
ZWxkYi4xLjEuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVy
c2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFt
L3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9saWJldmVudC9saWJldmVudC4wLjcuMC9vcGFtLiBVcGdy
YWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQg
dGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJz
aW5nIGxpYmV2ZW50LjAuNy4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20g
WW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFk
IH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2xpYnJhLXRrL2xpYnJhLXRrLjEuMS4yL29w
YW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikg
dG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdo
aWxlIHBhcnNpbmcgbGlicmEtdGsuMS4xLjIgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VS
Uk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdo
IHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvbGlicmVzMy9saWJyZXMzLjEu
MC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAx
LjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9y
cyB3aGlsZSBwYXJzaW5nIGxpYnJlczMuMS4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtF
UlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3Vn
aCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2xpYnJlczMvbGlicmVzMy4x
LjEvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3Qg
MS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJv
cnMgd2hpbGUgcGFyc2luZyBsaWJyZXMzLjEuMSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1b
RVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91
Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9saWxpcy9saWxpcy4wLjIu
MS9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAx
LjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9y
cyB3aGlsZSBwYXJzaW5nIGxpbGlzLjAuMi4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtF
UlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3Vn
aCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2xpcHN1bS9saXBzdW0uMC4y
L29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEu
MikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3Jz
IHdoaWxlIHBhcnNpbmcgbGlwc3VtLjAuMiBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szM21bV0FS
TklOR10bW20gaW5zdGFsbCBhbmQgZGV2LXJlcG8gYXJlIHVua25vd24gZmllbGRzIGluIC9ob21l
L2xhc3lhLy5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9saXF1aWRzb2FwL2xpcXVpZHNvYXAu
MS4xLjEvb3BhbTogaXMgeW91ciBPUEFNIHVwLXRvLWRhdGUgPw0KG1szMW1bRVJST1JdG1ttIFlv
dXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+
Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9saXRpb20vbGl0aW9tLjIuMS9vcGFtLiBVcGdy
YWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQg
dGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJz
aW5nIGxpdGlvbS4yLjEgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3Vy
IHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8u
b3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvbGl0aW9tL2xpdGlvbS4zLjAvb3BhbS4gVXBncmFk
ZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRo
aXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2lu
ZyBsaXRpb20uMy4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2
ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9w
YW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2xpdGlvbS9saXRpb20uNC4wL29wYW0uIFVwZ3JhZGUg
T1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlz
IGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcg
bGl0aW9tLjQuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVy
c2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFt
L3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9sbHZtL2xsdm0uMy42L29wYW0uIFVwZ3JhZGUgT1BBTSB0
byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUg
Y29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgbGx2bS4z
LjYgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2Yg
T1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2Rl
ZmF1bHQvcGFja2FnZXMvbGx2bS9sbHZtLjMuNy9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3Jl
IHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3Rs
eS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGxsdm0uMy43IE9QQU0g
ZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEu
MS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3Bh
Y2thZ2VzL2xsdm1ncmFwaC9sbHZtZ3JhcGguMC4xL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1v
cmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVj
dGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgbGx2bWdyYXBoLjAu
MSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBP
UEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVm
YXVsdC9wYWNrYWdlcy9sbHZtZ3JhcGgvbGx2bWdyYXBoLjAuMi9vcGFtLiBVcGdyYWRlIE9QQU0g
dG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxl
IGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGxsdm1n
cmFwaC4wLjIgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNp
b24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9y
ZXBvL2RlZmF1bHQvcGFja2FnZXMvbG8vbG8uMC4xLjEvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEg
bW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3Jy
ZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBsby4wLjEuMSBP
UEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFN
ICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVs
dC9wYWNrYWdlcy9scGQvbHBkLjEuMi4xL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVj
ZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0K
G1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgbHBkLjEuMi4xIE9QQU0gZmls
ZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4x
KSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2th
Z2VzL2x3dC9sd3QuMi40LjYvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVy
c2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtX
QVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBsd3QuMi40LjYgT1BBTSBmaWxlLCBza2lw
cGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5v
dCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvbHd0
L2x3dC4yLjQuNy9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChh
dCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkdd
G1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGx3dC4yLjQuNyBPUEFNIGZpbGUsIHNraXBwaW5nLg0K
G1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2Vu
dCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9sd3QvbHd0LjIu
NC44L29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0
IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJy
b3JzIHdoaWxlIHBhcnNpbmcgbHd0LjIuNC44IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtF
UlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3Vn
aCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2x3dC9sd3QuMi41LjAvb3Bh
bS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0
byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hp
bGUgcGFyc2luZyBsd3QuMi41LjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtb
bSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJl
YWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvbHd0LXBhcmFsbGVsL2x3dC1wYXJhbGxl
bC4wLjEuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBs
ZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1tt
IEVycm9ycyB3aGlsZSBwYXJzaW5nIGx3dC1wYXJhbGxlbC4wLjEuMCBPUEFNIGZpbGUsIHNraXBw
aW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90
IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9sejQv
bHo0LjEuMC4xL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0
IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10b
W20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgbHo0LjEuMC4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQob
WzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50
IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2x6NC9sejQuMS4x
LjAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3Qg
MS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJv
cnMgd2hpbGUgcGFyc2luZyBsejQuMS4xLjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VS
Uk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdo
IHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvbWFjYXF1ZS9tYWNhcXVlLjAu
Ny9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAx
LjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9y
cyB3aGlsZSBwYXJzaW5nIG1hY2FxdWUuMC43IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtF
UlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3Vn
aCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL21hY2FxdWUvbWFjYXF1ZS4w
LjcuMS9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFz
dCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVy
cm9ycyB3aGlsZSBwYXJzaW5nIG1hY2FxdWUuMC43LjEgT1BBTSBmaWxlLCBza2lwcGluZy4NChtb
MzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQg
ZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvbWFjYXF1ZS9tYWNh
cXVlLjAuNy4yL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0
IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10b
W20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgbWFjYXF1ZS4wLjcuMiBPUEFNIGZpbGUsIHNraXBwaW5n
Lg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJl
Y2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9tYWNhcm9v
bnMvbWFjYXJvb25zLjAuMS4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZl
cnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21b
V0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgbWFjYXJvb25zLjAuMS4wIE9QQU0gZmls
ZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4x
KSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2th
Z2VzL21hZC9tYWQuMC40LjUvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVy
c2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtX
QVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBtYWQuMC40LjUgT1BBTSBmaWxlLCBza2lw
cGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5v
dCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvbWFn
aWMtbWltZS9tYWdpYy1taW1lLjEuMC4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVj
ZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0K
G1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgbWFnaWMtbWltZS4xLjAuMCBP
UEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFN
ICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVs
dC9wYWNrYWdlcy9tYXhtaW5kZGIvbWF4bWluZGRiLjAuMy9vcGFtLiBVcGdyYWRlIE9QQU0gdG8g
YSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNv
cnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIG1heG1pbmRk
Yi4wLjMgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24g
b2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBv
L2RlZmF1bHQvcGFja2FnZXMvbWF4bWluZGRiL21heG1pbmRkYi4wLjQvb3BhbS4gVXBncmFkZSBP
UEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMg
ZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBt
YXhtaW5kZGIuMC40IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2
ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9w
YW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL21heG1pbmRkYi9tYXhtaW5kZGIuMC41L29wYW0uIFVw
Z3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVh
ZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBh
cnNpbmcgbWF4bWluZGRiLjAuNSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1tt
IFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVh
ZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9tYXhtaW5kZGIvbWF4bWluZGRiLjAuNi9v
cGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIp
IHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3
aGlsZSBwYXJzaW5nIG1heG1pbmRkYi4wLjYgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VS
Uk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdo
IHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvbWVuaGlyL21lbmhpci4yMDE1
MDkyMS9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFz
dCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVy
cm9ycyB3aGlsZSBwYXJzaW5nIG1lbmhpci4yMDE1MDkyMSBPUEFNIGZpbGUsIHNraXBwaW5nLg0K
G1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2Vu
dCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9tZXJnZS1xdWV1
ZXMvbWVyZ2UtcXVldWVzLjAuMi4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50
IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1sz
M21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgbWVyZ2UtcXVldWVzLjAuMi4wIE9Q
QU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0g
KDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0
L3BhY2thZ2VzL21lcmdlLXJvcGVzL21lcmdlLXJvcGVzLjAuMi4wL29wYW0uIFVwZ3JhZGUgT1BB
TSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZp
bGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgbWVy
Z2Utcm9wZXMuMC4yLjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3Vy
IHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8u
b3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvbWVybGluL21lcmxpbi4yLjEuMC9vcGFtLiBVcGdy
YWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQg
dGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJz
aW5nIG1lcmxpbi4yLjEuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlv
dXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+
Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9tZXJsaW4vbWVybGluLjIuMS4xL29wYW0uIFVw
Z3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVh
ZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBh
cnNpbmcgbWVybGluLjIuMS4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20g
WW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFk
IH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL21lcmxpbi9tZXJsaW4uMi4xLjIvb3BhbS4g
VXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byBy
ZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUg
cGFyc2luZyBtZXJsaW4uMi4xLjIgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtb
bSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJl
YWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvbWVybGluL21lcmxpbi4yLjIvb3BhbS4g
VXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byBy
ZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUg
cGFyc2luZyBtZXJsaW4uMi4yIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20g
WW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFk
IH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL21lc2gvbWVzaC4wLjguNi9vcGFtLiBVcGdy
YWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQg
dGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJz
aW5nIG1lc2guMC44LjYgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3Vy
IHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8u
b3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvbWlrbWF0Y2gvbWlrbWF0Y2guMS4wLjUvb3BhbS4g
VXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byBy
ZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUg
cGFyc2luZyBtaWttYXRjaC4xLjAuNSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1Jd
G1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8g
cmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9taWttYXRjaC9taWttYXRjaC4xLjAu
Ni9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAx
LjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9y
cyB3aGlsZSBwYXJzaW5nIG1pa21hdGNoLjEuMC42IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMx
bVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVu
b3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL21pa21hdGNoL21pa21h
dGNoLjEuMC43L29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0
IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10b
W20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgbWlrbWF0Y2guMS4wLjcgT1BBTSBmaWxlLCBza2lwcGlu
Zy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCBy
ZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvbWlrbWF0
Y2gvbWlrbWF0Y2guMS4wLjgvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVy
c2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtX
QVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBtaWttYXRjaC4xLjAuOCBPUEFNIGZpbGUs
IHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkg
aXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdl
cy9taW5kc3Rvcm0vbWluZHN0b3JtLjAuNS40L29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUg
cmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5
Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgbWluZHN0b3JtLjAuNS40
IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9Q
QU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZh
dWx0L3BhY2thZ2VzL21pbmRzdG9ybS9taW5kc3Rvcm0uMC42L29wYW0uIFVwZ3JhZGUgT1BBTSB0
byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUg
Y29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgbWluZHN0
b3JtLjAuNiBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lv
biBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3Jl
cG8vZGVmYXVsdC9wYWNrYWdlcy9taW5pbGlnaHQvbWluaWxpZ2h0LjEuNi9vcGFtLiBVcGdyYWRl
IE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhp
cyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5n
IG1pbmlsaWdodC4xLjYgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3Vy
IHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8u
b3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvbWluaW9zLXhlbi9taW5pb3MteGVuLjAuNy9vcGFt
LiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRv
IHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGls
ZSBwYXJzaW5nIG1pbmlvcy14ZW4uMC43IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJP
Ul0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0
byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL21pcmFnZS9taXJhZ2UuMi40LjAv
b3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4y
KSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMg
d2hpbGUgcGFyc2luZyBtaXJhZ2UuMi40LjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VS
Uk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdo
IHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvbWlyYWdlL21pcmFnZS4yLjUu
MC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAx
LjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9y
cyB3aGlsZSBwYXJzaW5nIG1pcmFnZS4yLjUuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1b
RVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91
Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9taXJhZ2UvbWlyYWdlLjIu
Ni4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0
IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJy
b3JzIHdoaWxlIHBhcnNpbmcgbWlyYWdlLjIuNi4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMx
bVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVu
b3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL21pcmFnZS9taXJhZ2Uu
Mi42LjEvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVh
c3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBF
cnJvcnMgd2hpbGUgcGFyc2luZyBtaXJhZ2UuMi42LjEgT1BBTSBmaWxlLCBza2lwcGluZy4NChtb
MzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQg
ZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvbWlyYWdlLWJsb2Nr
LWNjbS9taXJhZ2UtYmxvY2stY2NtLjEuMC4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUg
cmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5
Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgbWlyYWdlLWJsb2NrLWNj
bS4xLjAuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lv
biBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3Jl
cG8vZGVmYXVsdC9wYWNrYWdlcy9taXJhZ2UtYmxvY2stdW5peC9taXJhZ2UtYmxvY2stdW5peC4x
LjIuMi9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFz
dCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVy
cm9ycyB3aGlsZSBwYXJzaW5nIG1pcmFnZS1ibG9jay11bml4LjEuMi4yIE9QQU0gZmlsZSwgc2tp
cHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBu
b3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL21p
cmFnZS1ibG9jay11bml4L21pcmFnZS1ibG9jay11bml4LjIuMC4wL29wYW0uIFVwZ3JhZGUgT1BB
TSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZp
bGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgbWly
YWdlLWJsb2NrLXVuaXguMi4wLjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtb
bSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJl
YWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvbWlyYWdlLWJsb2NrLXhlbi9taXJhZ2Ut
YmxvY2steGVuLjEuMy4xL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNp
b24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FS
TklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgbWlyYWdlLWJsb2NrLXhlbi4xLjMuMSBPUEFN
IGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgx
LjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9w
YWNrYWdlcy9taXJhZ2UtYm9vdHZhci14ZW4vbWlyYWdlLWJvb3R2YXIteGVuLjAuMi9vcGFtLiBV
cGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJl
YWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBw
YXJzaW5nIG1pcmFnZS1ib290dmFyLXhlbi4wLjIgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFt
W0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5v
dWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvbWlyYWdlLWJvb3R2YXIt
eGVuL21pcmFnZS1ib290dmFyLXhlbi4wLjMvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSBy
ZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHku
DQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBtaXJhZ2UtYm9vdHZhci14
ZW4uMC4zIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9u
IG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVw
by9kZWZhdWx0L3BhY2thZ2VzL21pcmFnZS1jb25kdWl0L21pcmFnZS1jb25kdWl0LjIuMS4wL29w
YW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikg
dG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdo
aWxlIHBhcnNpbmcgbWlyYWdlLWNvbmR1aXQuMi4xLjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtb
MzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQg
ZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvbWlyYWdlLWNvbmR1
aXQvbWlyYWdlLWNvbmR1aXQuMi4yLjAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNl
bnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQob
WzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBtaXJhZ2UtY29uZHVpdC4yLjIu
MCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBP
UEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVm
YXVsdC9wYWNrYWdlcy9taXJhZ2UtY29uc29sZS9taXJhZ2UtY29uc29sZS4yLjEuMi9vcGFtLiBV
cGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJl
YWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBw
YXJzaW5nIG1pcmFnZS1jb25zb2xlLjIuMS4yIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtF
UlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3Vn
aCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL21pcmFnZS1jb25zb2xlL21p
cmFnZS1jb25zb2xlLjIuMS4zL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZl
cnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21b
V0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgbWlyYWdlLWNvbnNvbGUuMi4xLjMgT1BB
TSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAo
MS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQv
cGFja2FnZXMvbWlyYWdlLWRucy9taXJhZ2UtZG5zLjIuNS4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0
byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUg
Y29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgbWlyYWdl
LWRucy4yLjUuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVy
c2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFt
L3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9taXJhZ2UtZW50cm9weS14ZW4vbWlyYWdlLWVudHJvcHkt
eGVuLjAuMy4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0
IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10b
W20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgbWlyYWdlLWVudHJvcHkteGVuLjAuMy4wIE9QQU0gZmls
ZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4x
KSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2th
Z2VzL21pcmFnZS1mbG93L21pcmFnZS1mbG93LjEuMC4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBh
IG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29y
cmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgbWlyYWdlLWZs
b3cuMS4wLjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNp
b24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9y
ZXBvL2RlZmF1bHQvcGFja2FnZXMvbWlyYWdlLWZsb3cvbWlyYWdlLWZsb3cuMS4wLjEvb3BhbS4g
VXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byBy
ZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUg
cGFyc2luZyBtaXJhZ2UtZmxvdy4xLjAuMSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJS
T1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2gg
dG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9taXJhZ2UtZmxvdy9taXJhZ2Ut
Zmxvdy4xLjAuMi9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChh
dCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkdd
G1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIG1pcmFnZS1mbG93LjEuMC4yIE9QQU0gZmlsZSwgc2tp
cHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBu
b3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL21p
cmFnZS1mbG93L21pcmFnZS1mbG93LjEuMC4zL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUg
cmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5
Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgbWlyYWdlLWZsb3cuMS4w
LjMgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2Yg
T1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2Rl
ZmF1bHQvcGFja2FnZXMvbWlyYWdlLWZzLXVuaXgvbWlyYWdlLWZzLXVuaXguMS4xLjQvb3BhbS4g
VXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byBy
ZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUg
cGFyc2luZyBtaXJhZ2UtZnMtdW5peC4xLjEuNCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1b
RVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91
Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9taXJhZ2UtZnMtdW5peC9t
aXJhZ2UtZnMtdW5peC4xLjIuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2
ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNt
W1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIG1pcmFnZS1mcy11bml4LjEuMi4wIE9Q
QU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0g
KDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0
L3BhY2thZ2VzL21pcmFnZS1naXQvbWlyYWdlLWdpdC4xLjYuMC9vcGFtLiBVcGdyYWRlIE9QQU0g
dG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxl
IGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIG1pcmFn
ZS1naXQuMS42LjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZl
cnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3Bh
bS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvbWlyYWdlLWh0dHAvbWlyYWdlLWh0dHAuMi4yLjAvb3Bh
bS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0
byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hp
bGUgcGFyc2luZyBtaXJhZ2UtaHR0cC4yLjIuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1b
RVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91
Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9taXJhZ2UtaHR0cC9taXJh
Z2UtaHR0cC4yLjMuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9u
IChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5J
TkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIG1pcmFnZS1odHRwLjIuMy4wIE9QQU0gZmlsZSwg
c2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBp
cyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2Vz
L21pcmFnZS1odHRwL21pcmFnZS1odHRwLjIuNC4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1v
cmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVj
dGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgbWlyYWdlLWh0dHAu
Mi40LjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24g
b2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBv
L2RlZmF1bHQvcGFja2FnZXMvbWlyYWdlLWh0dHAvbWlyYWdlLWh0dHAuMi41LjAvb3BhbS4gVXBn
cmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFk
IHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFy
c2luZyBtaXJhZ2UtaHR0cC4yLjUuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1Jd
G1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8g
cmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9taXJhZ2UtaHR0cC9taXJhZ2UtaHR0
cC4yLjUuMS9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBs
ZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1tt
IEVycm9ycyB3aGlsZSBwYXJzaW5nIG1pcmFnZS1odHRwLjIuNS4xIE9QQU0gZmlsZSwgc2tpcHBp
bmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3Qg
cmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL21pcmFn
ZS1pcm1pbi9taXJhZ2UtaXJtaW4uMC45Ljgvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSBy
ZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHku
DQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBtaXJhZ2UtaXJtaW4uMC45
LjggT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2Yg
T1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2Rl
ZmF1bHQvcGFja2FnZXMvbWlyYWdlLW5ldC1tYWNvc3gvbWlyYWdlLW5ldC1tYWNvc3guMS4wLjAv
b3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4y
KSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMg
d2hpbGUgcGFyc2luZyBtaXJhZ2UtbmV0LW1hY29zeC4xLjAuMCBPUEFNIGZpbGUsIHNraXBwaW5n
Lg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJl
Y2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9taXJhZ2Ut
bmV0LW1hY29zeC9taXJhZ2UtbmV0LW1hY29zeC4xLjEuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8g
YSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNv
cnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIG1pcmFnZS1u
ZXQtbWFjb3N4LjEuMS4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91
ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4v
Lm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL21pcmFnZS1uZXQtdW5peC9taXJhZ2UtbmV0LXVu
aXguMi4yLjAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQg
bGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtb
bSBFcnJvcnMgd2hpbGUgcGFyc2luZyBtaXJhZ2UtbmV0LXVuaXguMi4yLjAgT1BBTSBmaWxlLCBz
a2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlz
IG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMv
bWlyYWdlLW5ldC11bml4L21pcmFnZS1uZXQtdW5peC4yLjIuMS9vcGFtLiBVcGdyYWRlIE9QQU0g
dG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxl
IGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIG1pcmFn
ZS1uZXQtdW5peC4yLjIuMSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlv
dXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+
Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9taXJhZ2UtbmV0LXVuaXgvbWlyYWdlLW5ldC11
bml4LjIuMi4yL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0
IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10b
W20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgbWlyYWdlLW5ldC11bml4LjIuMi4yIE9QQU0gZmlsZSwg
c2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBp
cyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2Vz
L21pcmFnZS1uZXQteGVuL21pcmFnZS1uZXQteGVuLjEuMi4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0
byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUg
Y29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgbWlyYWdl
LW5ldC14ZW4uMS4yLjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3Vy
IHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8u
b3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvbWlyYWdlLW5ldC14ZW4vbWlyYWdlLW5ldC14ZW4u
MS4zLjAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVh
c3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBF
cnJvcnMgd2hpbGUgcGFyc2luZyBtaXJhZ2UtbmV0LXhlbi4xLjMuMCBPUEFNIGZpbGUsIHNraXBw
aW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90
IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9taXJh
Z2UtbmV0LXhlbi9taXJhZ2UtbmV0LXhlbi4xLjQuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBt
b3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJl
Y3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIG1pcmFnZS1uZXQt
eGVuLjEuNC4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJz
aW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0v
cmVwby9kZWZhdWx0L3BhY2thZ2VzL21pcmFnZS1uZXQteGVuL21pcmFnZS1uZXQteGVuLjEuNC4x
L29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEu
MikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3Jz
IHdoaWxlIHBhcnNpbmcgbWlyYWdlLW5ldC14ZW4uMS40LjEgT1BBTSBmaWxlLCBza2lwcGluZy4N
ChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNl
bnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvbWlyYWdlLXBy
b2ZpbGUvbWlyYWdlLXByb2ZpbGUuMC4xL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVj
ZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0K
G1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgbWlyYWdlLXByb2ZpbGUuMC4x
IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9Q
QU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZh
dWx0L3BhY2thZ2VzL21pcmFnZS1wcm9maWxlL21pcmFnZS1wcm9maWxlLjAuMy9vcGFtLiBVcGdy
YWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQg
dGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJz
aW5nIG1pcmFnZS1wcm9maWxlLjAuMyBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1Jd
G1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8g
cmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9taXJhZ2UtcHJvZmlsZS9taXJhZ2Ut
cHJvZmlsZS4wLjQvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAo
YXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5H
XRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBtaXJhZ2UtcHJvZmlsZS4wLjQgT1BBTSBmaWxlLCBz
a2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlz
IG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMv
bWlyYWdlLXByb2ZpbGUvbWlyYWdlLXByb2ZpbGUuMC41L29wYW0uIFVwZ3JhZGUgT1BBTSB0byBh
IG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29y
cmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgbWlyYWdlLXBy
b2ZpbGUuMC41IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJz
aW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0v
cmVwby9kZWZhdWx0L3BhY2thZ2VzL21pcmFnZS1zZWFsL21pcmFnZS1zZWFsLjAuMy4wL29wYW0u
IFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8g
cmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxl
IHBhcnNpbmcgbWlyYWdlLXNlYWwuMC4zLjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VS
Uk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdo
IHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvbWlyYWdlLXNlYWwvbWlyYWdl
LXNlYWwuMC4zLjEvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAo
YXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5H
XRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBtaXJhZ2Utc2VhbC4wLjMuMSBPUEFNIGZpbGUsIHNr
aXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMg
bm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9t
aXJhZ2Utc2VhbC9taXJhZ2Utc2VhbC4wLjQuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3Jl
IHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3Rs
eS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIG1pcmFnZS1zZWFsLjAu
NC4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9m
IE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9k
ZWZhdWx0L3BhY2thZ2VzL21pcmFnZS1zZWFsL21pcmFnZS1zZWFsLjAuNC4xL29wYW0uIFVwZ3Jh
ZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0
aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNp
bmcgbWlyYWdlLXNlYWwuMC40LjEgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtb
bSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJl
YWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvbWlyYWdlLXNlYWwvbWlyYWdlLXNlYWwu
MC40LjIvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVh
c3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBF
cnJvcnMgd2hpbGUgcGFyc2luZyBtaXJhZ2Utc2VhbC4wLjQuMiBPUEFNIGZpbGUsIHNraXBwaW5n
Lg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJl
Y2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9taXJhZ2Ut
dGMvbWlyYWdlLXRjLjAuMS4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZl
cnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21b
V0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgbWlyYWdlLXRjLjAuMS4wIE9QQU0gZmls
ZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4x
KSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2th
Z2VzL21pcmFnZS10Yy9taXJhZ2UtdGMuMC4yLjAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9y
ZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0
bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBtaXJhZ2UtdGMuMC4y
LjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2Yg
T1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2Rl
ZmF1bHQvcGFja2FnZXMvbWlyYWdlLXRjL21pcmFnZS10Yy4wLjIuMS9vcGFtLiBVcGdyYWRlIE9Q
QU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBm
aWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIG1p
cmFnZS10Yy4wLjIuMSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIg
dmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5v
cGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9taXJhZ2UtdGMvbWlyYWdlLXRjLjAuMy4wL29wYW0u
IFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8g
cmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxl
IHBhcnNpbmcgbWlyYWdlLXRjLjAuMy4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJP
Ul0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0
byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL21pcmFnZS10eXBlcy9taXJhZ2Ut
dHlwZXMuMi4zLjAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAo
YXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5H
XRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBtaXJhZ2UtdHlwZXMuMi4zLjAgT1BBTSBmaWxlLCBz
a2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlz
IG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMv
bWlyYWdlLXR5cGVzL21pcmFnZS10eXBlcy4yLjUuMS9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBt
b3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJl
Y3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIG1pcmFnZS10eXBl
cy4yLjUuMSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lv
biBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3Jl
cG8vZGVmYXVsdC9wYWNrYWdlcy9taXJhZ2UtdHlwZXMvbWlyYWdlLXR5cGVzLjIuNi4wL29wYW0u
IFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8g
cmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxl
IHBhcnNpbmcgbWlyYWdlLXR5cGVzLjIuNi4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtF
UlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3Vn
aCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL21pcmFnZS10eXBlcy1sd3Qv
bWlyYWdlLXR5cGVzLWx3dC4yLjMuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2Vu
dCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtb
MzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIG1pcmFnZS10eXBlcy1sd3QuMi4z
LjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2Yg
T1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2Rl
ZmF1bHQvcGFja2FnZXMvbWlyYWdlLXR5cGVzLWx3dC9taXJhZ2UtdHlwZXMtbHd0LjIuNS4wL29w
YW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikg
dG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdo
aWxlIHBhcnNpbmcgbWlyYWdlLXR5cGVzLWx3dC4yLjUuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0K
G1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2Vu
dCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9taXJhZ2UtdHlw
ZXMtbHd0L21pcmFnZS10eXBlcy1sd3QuMi42LjAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9y
ZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0
bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBtaXJhZ2UtdHlwZXMt
bHd0LjIuNi4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJz
aW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0v
cmVwby9kZWZhdWx0L3BhY2thZ2VzL21pcmFnZS11bml4L21pcmFnZS11bml4LjIuMi4zL29wYW0u
IFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8g
cmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxl
IHBhcnNpbmcgbWlyYWdlLXVuaXguMi4yLjMgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VS
Uk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdo
IHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvbWlyYWdlLXVuaXgvbWlyYWdl
LXVuaXguMi4zLjEvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAo
YXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5H
XRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBtaXJhZ2UtdW5peC4yLjMuMSBPUEFNIGZpbGUsIHNr
aXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMg
bm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9t
aXJhZ2Utdm5ldGlmL21pcmFnZS12bmV0aWYuMC4xLjAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEg
bW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3Jy
ZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBtaXJhZ2Utdm5l
dGlmLjAuMS4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJz
aW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0v
cmVwby9kZWZhdWx0L3BhY2thZ2VzL21pcmFnZS14ZW4vbWlyYWdlLXhlbi4yLjIuMC9vcGFtLiBV
cGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJl
YWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBw
YXJzaW5nIG1pcmFnZS14ZW4uMi4yLjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9S
XRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRv
IHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvbWlyYWdlLXhlbi9taXJhZ2UteGVu
LjIuMi4xL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxl
YXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20g
RXJyb3JzIHdoaWxlIHBhcnNpbmcgbWlyYWdlLXhlbi4yLjIuMSBPUEFNIGZpbGUsIHNraXBwaW5n
Lg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJl
Y2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9taXJhZ2Ut
eGVuL21pcmFnZS14ZW4uMi4yLjIvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQg
dmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMz
bVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBtaXJhZ2UteGVuLjIuMi4yIE9QQU0g
ZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEu
MS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3Bh
Y2thZ2VzL21pcmFnZS14ZW4vbWlyYWdlLXhlbi4yLjMuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8g
YSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNv
cnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIG1pcmFnZS14
ZW4uMi4zLjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNp
b24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9y
ZXBvL2RlZmF1bHQvcGFja2FnZXMvbWlyYWdlLXhlbi9taXJhZ2UteGVuLjIuMy4xL29wYW0uIFVw
Z3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVh
ZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBh
cnNpbmcgbWlyYWdlLXhlbi4yLjMuMSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1Jd
G1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8g
cmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9taXJhZ2UteGVuL21pcmFnZS14ZW4u
Mi4zLjIvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVh
c3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBF
cnJvcnMgd2hpbGUgcGFyc2luZyBtaXJhZ2UteGVuLjIuMy4yIE9QQU0gZmlsZSwgc2tpcHBpbmcu
DQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVj
ZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL21pcmFnZS14
ZW4vbWlyYWdlLXhlbi4yLjMuMy9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2
ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNt
W1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIG1pcmFnZS14ZW4uMi4zLjMgT1BBTSBm
aWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4x
LjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFj
a2FnZXMvbWlyYWdlLXhlbi1taW5pb3MvbWlyYWdlLXhlbi1taW5pb3MuMC44LjAvb3BhbS4gVXBn
cmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFk
IHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFy
c2luZyBtaXJhZ2UteGVuLW1pbmlvcy4wLjguMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1b
RVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91
Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9taXJhZ2UteGVuLW9jYW1s
L21pcmFnZS14ZW4tb2NhbWwuMi4zLjAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNl
bnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQob
WzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBtaXJhZ2UteGVuLW9jYW1sLjIu
My4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9m
IE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9k
ZWZhdWx0L3BhY2thZ2VzL21pcmFnZS14ZW4tb2NhbWwvbWlyYWdlLXhlbi1vY2FtbC4yLjMuMS9v
cGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIp
IHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3
aGlsZSBwYXJzaW5nIG1pcmFnZS14ZW4tb2NhbWwuMi4zLjEgT1BBTSBmaWxlLCBza2lwcGluZy4N
ChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNl
bnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvbWlyYWdlLXhl
bi1vY2FtbC9taXJhZ2UteGVuLW9jYW1sLjIuMy40L29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1v
cmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVj
dGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgbWlyYWdlLXhlbi1v
Y2FtbC4yLjMuNCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVy
c2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFt
L3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9taXJhZ2UteGVuLXBvc2l4L21pcmFnZS14ZW4tcG9zaXgu
Mi4zLjAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVh
c3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBF
cnJvcnMgd2hpbGUgcGFyc2luZyBtaXJhZ2UteGVuLXBvc2l4LjIuMy4wIE9QQU0gZmlsZSwgc2tp
cHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBu
b3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL21p
cmFnZS14ZW4tcG9zaXgvbWlyYWdlLXhlbi1wb3NpeC4yLjMuMS9vcGFtLiBVcGdyYWRlIE9QQU0g
dG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxl
IGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIG1pcmFn
ZS14ZW4tcG9zaXguMi4zLjEgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZ
b3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQg
fi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvbWlyYWdlLXhlbi1wb3NpeC9taXJhZ2UteGVu
LXBvc2l4LjIuMy4zL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24g
KGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklO
R10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgbWlyYWdlLXhlbi1wb3NpeC4yLjMuMyBPUEFNIGZp
bGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEu
MSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNr
YWdlcy9taXJhZ2UteGVuLXBvc2l4L21pcmFnZS14ZW4tcG9zaXguMi4zLjQvb3BhbS4gVXBncmFk
ZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRo
aXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2lu
ZyBtaXJhZ2UteGVuLXBvc2l4LjIuMy40IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJP
Ul0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0
byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL21pcnJvci9taXJyb3IuMC4wLjEv
b3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4y
KSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMg
d2hpbGUgcGFyc2luZyBtaXJyb3IuMC4wLjEgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VS
Uk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdo
IHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvbWl4dHVyZS9taXh0dXJlLjAu
Mi4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0
IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJy
b3JzIHdoaWxlIHBhcnNpbmcgbWl4dHVyZS4wLjIuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1sz
MW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBl
bm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9tbDJteG1sL21sMm14
bWwuMC4xL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxl
YXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20g
RXJyb3JzIHdoaWxlIHBhcnNpbmcgbWwybXhtbC4wLjEgT1BBTSBmaWxlLCBza2lwcGluZy4NChtb
MzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQg
ZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvbWwybXhtbC9tbDJt
eG1sLjAuMi9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBs
ZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1tt
IEVycm9ycyB3aGlsZSBwYXJzaW5nIG1sMm14bWwuMC4yIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQob
WzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50
IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL21sYmRkL21sYmRk
LjAuMS9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFz
dCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVy
cm9ycyB3aGlsZSBwYXJzaW5nIG1sYmRkLjAuMSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1b
RVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91
Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9tbGJkZC9tbGJkZC4wLjIv
b3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4y
KSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMg
d2hpbGUgcGFyc2luZyBtbGJkZC4wLjIgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9S
XRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRv
IHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvbWxiZGQvbWxiZGQuMC4zL29wYW0u
IFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8g
cmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxl
IHBhcnNpbmcgbWxiZGQuMC4zIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20g
WW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFk
IH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL21sYmRkL21sYmRkLjAuNC9vcGFtLiBVcGdy
YWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQg
dGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJz
aW5nIG1sYmRkLjAuNCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIg
dmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5v
cGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9tbGJkZC9tbGJkZC4wLjUvb3BhbS4gVXBncmFkZSBP
UEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMg
ZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBt
bGJkZC4wLjUgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNp
b24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9y
ZXBvL2RlZmF1bHQvcGFja2FnZXMvbWxnbXAvbWxnbXAuMjAxMjAyMjQvb3BhbS4gVXBncmFkZSBP
UEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMg
ZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBt
bGdtcC4yMDEyMDIyNCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIg
dmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5v
cGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9tbGdtcGlkbC9tbGdtcGlkbC4xLjIuMS9vcGFtLiBV
cGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJl
YWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBw
YXJzaW5nIG1sZ21waWRsLjEuMi4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0b
W20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byBy
ZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL21tL21tLjAuMy4wL29wYW0uIFVwZ3Jh
ZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0
aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNp
bmcgbW0uMC4zLjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZl
cnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3Bh
bS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvbW1zZWcvbW1zZWcuMC4xLjEvb3BhbS4gVXBncmFkZSBP
UEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMg
ZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBt
bXNlZy4wLjEuMSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVy
c2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFt
L3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9tb2RlbGljYV9tbC9tb2RlbGljYV9tbC4wLjEuMS9vcGFt
LiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRv
IHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGls
ZSBwYXJzaW5nIG1vZGVsaWNhX21sLjAuMS4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtF
UlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3Vn
aCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL21vZGVsaWNhX21sL21vZGVs
aWNhX21sLjAuMi4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24g
KGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklO
R10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgbW9kZWxpY2FfbWwuMC4yLjAgT1BBTSBmaWxlLCBz
a2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlz
IG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMv
bW9ub21vcnBoaWMvbW9ub21vcnBoaWMuMS4yL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUg
cmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5
Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgbW9ub21vcnBoaWMuMS4y
IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9Q
QU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZh
dWx0L3BhY2thZ2VzL21xdWV1ZS9tcXVldWUuMC41LjMtMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8g
YSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNv
cnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIG1xdWV1ZS4w
LjUuMy0wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9u
IG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVw
by9kZWZhdWx0L3BhY2thZ2VzL21xdWV1ZS9tcXVldWUuMC42LjAtMC9vcGFtLiBVcGdyYWRlIE9Q
QU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBm
aWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIG1x
dWV1ZS4wLjYuMC0wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2
ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9w
YW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL21xdWV1ZS9tcXVldWUuMC43LjAtMC9vcGFtLiBVcGdy
YWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQg
dGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJz
aW5nIG1xdWV1ZS4wLjcuMC0wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20g
WW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFk
IH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL21zZ3BhY2svbXNncGFjay4xLjEuMC9vcGFt
LiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRv
IHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGls
ZSBwYXJzaW5nIG1zZ3BhY2suMS4xLjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9S
XRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRv
IHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvbXNncGFjay9tc2dwYWNrLjEuMS4x
L29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEu
MikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3Jz
IHdoaWxlIHBhcnNpbmcgbXNncGFjay4xLjEuMSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1b
RVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91
Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9tc3RydWN0L21zdHJ1Y3Qu
MS4zLjIvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVh
c3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBF
cnJvcnMgd2hpbGUgcGFyc2luZyBtc3RydWN0LjEuMy4yIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQob
WzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50
IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL210aW1lL210aW1l
LjAuOC4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxl
YXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20g
RXJyb3JzIHdoaWxlIHBhcnNpbmcgbXRpbWUuMC44LjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtb
MzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQg
ZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvbXRpbWUvbXRpbWUu
MC44LjEvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVh
c3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBF
cnJvcnMgd2hpbGUgcGFyc2luZyBtdGltZS4wLjguMSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1sz
MW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBl
bm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9tdGltZS9tdGltZS4w
LjguMi9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFz
dCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVy
cm9ycyB3aGlsZSBwYXJzaW5nIG10aW1lLjAuOC4yIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMx
bVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVu
b3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL211c3RhY2hlL211c3Rh
Y2hlLjEuMC4xL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0
IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10b
W20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgbXVzdGFjaGUuMS4wLjEgT1BBTSBmaWxlLCBza2lwcGlu
Zy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCBy
ZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvbXVzdGFj
aGUvbXVzdGFjaGUuMS4xLjAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVy
c2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtX
QVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBtdXN0YWNoZS4xLjEuMCBPUEFNIGZpbGUs
IHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkg
aXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdl
cy9tdXN0YWNoZS9tdXN0YWNoZS4yLjAuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJl
Y2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4N
ChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIG11c3RhY2hlLjIuMC4wIE9Q
QU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0g
KDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0
L3BhY2thZ2VzL215YnVpbGQvbXlidWlsZC4xL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUg
cmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5
Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgbXlidWlsZC4xIE9QQU0g
ZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEu
MS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3Bh
Y2thZ2VzL215YnVpbGQvbXlidWlsZC4yL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVj
ZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0K
G1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgbXlidWlsZC4yIE9QQU0gZmls
ZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4x
KSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2th
Z2VzL215YnVpbGQvbXlidWlsZC4zL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50
IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1sz
M21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgbXlidWlsZC4zIE9QQU0gZmlsZSwg
c2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBp
cyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2Vz
L25hbm9tc2cvbmFub21zZy4xLjAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQg
dmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMz
bVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBuYW5vbXNnLjEuMCBPUEFNIGZpbGUs
IHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkg
aXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdl
cy9uZWJ1bGEvbmVidWxhLjAuMi4xL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50
IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1sz
M21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgbmVidWxhLjAuMi4xIE9QQU0gZmls
ZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4x
KSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2th
Z2VzL25vY3J5cHRvL25vY3J5cHRvLjAuMi4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUg
cmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5
Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgbm9jcnlwdG8uMC4yLjAg
T1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BB
TSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1
bHQvcGFja2FnZXMvbm9jcnlwdG8vbm9jcnlwdG8uMC4yLjIvb3BhbS4gVXBncmFkZSBPUEFNIHRv
IGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBj
b3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBub2NyeXB0
by4wLjIuMiBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lv
biBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3Jl
cG8vZGVmYXVsdC9wYWNrYWdlcy9ub2NyeXB0by9ub2NyeXB0by4wLjMuMC9vcGFtLiBVcGdyYWRl
IE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhp
cyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5n
IG5vY3J5cHRvLjAuMy4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91
ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4v
Lm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL25vY3J5cHRvL25vY3J5cHRvLjAuMy4xL29wYW0u
IFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8g
cmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxl
IHBhcnNpbmcgbm9jcnlwdG8uMC4zLjEgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9S
XRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRv
IHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvbm9jcnlwdG8vbm9jcnlwdG8uMC40
LjAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3Qg
MS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJv
cnMgd2hpbGUgcGFyc2luZyBub2NyeXB0by4wLjQuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1sz
MW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBl
bm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9ub2NyeXB0by9ub2Ny
eXB0by4wLjUuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChh
dCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkdd
G1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIG5vY3J5cHRvLjAuNS4wIE9QQU0gZmlsZSwgc2tpcHBp
bmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3Qg
cmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL25vY3J5
cHRvL25vY3J5cHRvLjAuNS4xL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZl
cnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21b
V0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgbm9jcnlwdG8uMC41LjEgT1BBTSBmaWxl
LCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEp
IGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2Fn
ZXMvb2FzaXMyb3BhbS9vYXNpczJvcGFtLjAuNS4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1v
cmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVj
dGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgb2FzaXMyb3BhbS4w
LjUuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBv
ZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8v
ZGVmYXVsdC9wYWNrYWdlcy9vYXNpczJvcGFtL29hc2lzMm9wYW0uMC41LjEvb3BhbS4gVXBncmFk
ZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRo
aXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2lu
ZyBvYXNpczJvcGFtLjAuNS4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20g
WW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFk
IH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL29hc2lzMm9wYW0vb2FzaXMyb3BhbS4wLjYu
MC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAx
LjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9y
cyB3aGlsZSBwYXJzaW5nIG9hc2lzMm9wYW0uMC42LjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtb
MzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQg
ZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvb2FzaXMyb3BhbS9v
YXNpczJvcGFtLjAuNi4xL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNp
b24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FS
TklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgb2FzaXMyb3BhbS4wLjYuMSBPUEFNIGZpbGUs
IHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkg
aXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdl
cy9vYXNpczJvcGFtL29hc2lzMm9wYW0uMC42LjIvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9y
ZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0
bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBvYXNpczJvcGFtLjAu
Ni4yIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9m
IE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9k
ZWZhdWx0L3BhY2thZ2VzL29idWlsZC9vYnVpbGQuMC4xLjQvb3BhbS4gVXBncmFkZSBPUEFNIHRv
IGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBj
b3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBvYnVpbGQu
MC4xLjQgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24g
b2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBv
L2RlZmF1bHQvcGFja2FnZXMvb2J1aWxkL29idWlsZC4wLjEuNS9vcGFtLiBVcGdyYWRlIE9QQU0g
dG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxl
IGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIG9idWls
ZC4wLjEuNSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lv
biBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3Jl
cG8vZGVmYXVsdC9wYWNrYWdlcy9vY2FtbC1tb25hZGljL29jYW1sLW1vbmFkaWMuMC4xLjAvb3Bh
bS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0
byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hp
bGUgcGFyc2luZyBvY2FtbC1tb25hZGljLjAuMS4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMx
bVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVu
b3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL29jYW1sLW1vbmFkaWMv
b2NhbWwtbW9uYWRpYy4wLjEuMS9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2
ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNt
W1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIG9jYW1sLW1vbmFkaWMuMC4xLjEgT1BB
TSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAo
MS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQv
cGFja2FnZXMvb2NhbWwtbW9uYWRpYy9vY2FtbC1tb25hZGljLjAuMi4wL29wYW0uIFVwZ3JhZGUg
T1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlz
IGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcg
b2NhbWwtbW9uYWRpYy4wLjIuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1tt
IFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVh
ZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9vY2FtbC1tb25hZGljL29jYW1sLW1vbmFk
aWMuMC4zLjAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQg
bGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtb
bSBFcnJvcnMgd2hpbGUgcGFyc2luZyBvY2FtbC1tb25hZGljLjAuMy4wIE9QQU0gZmlsZSwgc2tp
cHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBu
b3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL29j
YW1sLXN5c3RlbWQvb2NhbWwtc3lzdGVtZC4xLjEvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9y
ZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0
bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBvY2FtbC1zeXN0ZW1k
LjEuMSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBv
ZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8v
ZGVmYXVsdC9wYWNrYWdlcy9vY2FtbF9wbHVnaW4vb2NhbWxfcGx1Z2luLjExMi4zNS4wMC9vcGFt
LiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRv
IHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGls
ZSBwYXJzaW5nIG9jYW1sX3BsdWdpbi4xMTIuMzUuMDAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtb
MzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQg
ZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvb2NhbWxfcGx1Z2lu
L29jYW1sX3BsdWdpbi4xMTMuMDAuMDAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNl
bnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQob
WzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBvY2FtbF9wbHVnaW4uMTEzLjAw
LjAwIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9m
IE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9k
ZWZhdWx0L3BhY2thZ2VzL29jYW1sYnVpbGQtYXRkZ2VuL29jYW1sYnVpbGQtYXRkZ2VuLjAuMS4w
L29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEu
MikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3Jz
IHdoaWxlIHBhcnNpbmcgb2NhbWxidWlsZC1hdGRnZW4uMC4xLjAgT1BBTSBmaWxlLCBza2lwcGlu
Zy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCBy
ZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvb2NhbWxm
aW5kL29jYW1sZmluZC4xLjUuNS9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2
ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNt
W1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIG9jYW1sZmluZC4xLjUuNSBPUEFNIGZp
bGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEu
MSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNr
YWdlcy9vY2FtbG1vZC9vY2FtbG1vZC4wLjAuNy9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3Jl
IHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3Rs
eS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIG9jYW1sbW9kLjAuMC43
IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9Q
QU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZh
dWx0L3BhY2thZ2VzL29jYW1sbW9kL29jYW1sbW9kLjAuMC44L29wYW0uIFVwZ3JhZGUgT1BBTSB0
byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUg
Y29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgb2NhbWxt
b2QuMC4wLjggT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNp
b24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9y
ZXBvL2RlZmF1bHQvcGFja2FnZXMvb2NhbWxuZXQvb2NhbWxuZXQuNC4wLjEvb3BhbS4gVXBncmFk
ZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRo
aXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2lu
ZyBvY2FtbG5ldC40LjAuMSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlv
dXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+
Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9vY2FtbG5ldC9vY2FtbG5ldC40LjAuMi9vcGFt
LiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRv
IHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGls
ZSBwYXJzaW5nIG9jYW1sbmV0LjQuMC4yIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJP
Ul0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0
byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL29jYW1sc3BvdC9vY2FtbHNwb3Qu
NC4wMi4xLjIuMy4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24g
KGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklO
R10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgb2NhbWxzcG90LjQuMDIuMS4yLjMuMCBPUEFNIGZp
bGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEu
MSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNr
YWdlcy9vY2FtbHR0ZXIvb2NhbWx0dGVyLjQuMC4yL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1v
cmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVj
dGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgb2NhbWx0dGVyLjQu
MC4yIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9m
IE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9k
ZWZhdWx0L3BhY2thZ2VzL29jZXBoZXMvb2NlcGhlcy4wLjEvb3BhbS4gVXBncmFkZSBPUEFNIHRv
IGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBj
b3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBvY2VwaGVz
LjAuMSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBv
ZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8v
ZGVmYXVsdC9wYWNrYWdlcy9vY2VwaGVzL29jZXBoZXMuMC4xLjEvb3BhbS4gVXBncmFkZSBPUEFN
IHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmls
ZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBvY2Vw
aGVzLjAuMS4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJz
aW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0v
cmVwby9kZWZhdWx0L3BhY2thZ2VzL29jZi9vY2YuMC4yLjAvb3BhbS4gVXBncmFkZSBPUEFNIHRv
IGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBj
b3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBvY2YuMC4y
LjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2Yg
T1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2Rl
ZmF1bHQvcGFja2FnZXMvb2NmL29jZi4wLjMuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3Jl
IHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3Rs
eS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIG9jZi4wLjMuMCBPUEFN
IGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgx
LjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9w
YWNrYWdlcy9vY2xhdW5jaC9vY2xhdW5jaC4wLjEuMy9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBt
b3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJl
Y3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIG9jbGF1bmNoLjAu
MS4zIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9m
IE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9k
ZWZhdWx0L3BhY2thZ2VzL29jbGF1bmNoL29jbGF1bmNoLjAuMi4xL29wYW0uIFVwZ3JhZGUgT1BB
TSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZp
bGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgb2Ns
YXVuY2guMC4yLjEgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZl
cnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3Bh
bS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvb2NsYXVuY2gvb2NsYXVuY2guMC4yLjIvb3BhbS4gVXBn
cmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFk
IHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFy
c2luZyBvY2xhdW5jaC4wLjIuMiBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1tt
IFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVh
ZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9vY3AtaW5kZW50L29jcC1pbmRlbnQuMS41
L29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEu
MikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3Jz
IHdoaWxlIHBhcnNpbmcgb2NwLWluZGVudC4xLjUgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFt
W0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5v
dWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvb2NwLWluZGVudC9vY3At
aW5kZW50LjEuNS4xL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24g
KGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklO
R10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgb2NwLWluZGVudC4xLjUuMSBPUEFNIGZpbGUsIHNr
aXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMg
bm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9v
Y3AtaW5kZXgvb2NwLWluZGV4LjEuMS4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVj
ZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0K
G1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgb2NwLWluZGV4LjEuMS4wIE9Q
QU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0g
KDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0
L3BhY2thZ2VzL29jcC1pbmRleC9vY3AtaW5kZXguMS4xLjEvb3BhbS4gVXBncmFkZSBPUEFNIHRv
IGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBj
b3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBvY3AtaW5k
ZXguMS4xLjEgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNp
b24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9y
ZXBvL2RlZmF1bHQvcGFja2FnZXMvb2NwLWluZGV4L29jcC1pbmRleC4xLjEuMi9vcGFtLiBVcGdy
YWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQg
dGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJz
aW5nIG9jcC1pbmRleC4xLjEuMiBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1tt
IFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVh
ZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9vY3AtaW5kZXgvb2NwLWluZGV4LjEuMS4z
L29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEu
MikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3Jz
IHdoaWxlIHBhcnNpbmcgb2NwLWluZGV4LjEuMS4zIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMx
bVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVu
b3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL29jcC1wYWNrLXNwbGl0
L29jcC1wYWNrLXNwbGl0LjEuMC4xL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50
IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1sz
M21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgb2NwLXBhY2stc3BsaXQuMS4wLjEg
T1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BB
TSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1
bHQvcGFja2FnZXMvb2NwbGliLWVuZGlhbi9vY3BsaWItZW5kaWFuLjAuOC9vcGFtLiBVcGdyYWRl
IE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhp
cyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5n
IG9jcGxpYi1lbmRpYW4uMC44IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20g
WW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFk
IH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL29jc2lnZW5zZXJ2ZXIvb2NzaWdlbnNlcnZl
ci4yLjUvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVh
c3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBF
cnJvcnMgd2hpbGUgcGFyc2luZyBvY3NpZ2Vuc2VydmVyLjIuNSBPUEFNIGZpbGUsIHNraXBwaW5n
Lg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJl
Y2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9vY3NpZ2Vu
c2VydmVyL29jc2lnZW5zZXJ2ZXIuMi42L29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVj
ZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0K
G1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgb2NzaWdlbnNlcnZlci4yLjYg
T1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BB
TSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1
bHQvcGFja2FnZXMvb2N1cmwvb2N1cmwuMC43LjUvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9y
ZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0
bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBvY3VybC4wLjcuNSBP
UEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFN
ICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVs
dC9wYWNrYWdlcy9vY3ZlcmFsbHMvb2N2ZXJhbGxzLjAuMS4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0
byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUg
Y29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgb2N2ZXJh
bGxzLjAuMS4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJz
aW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0v
cmVwby9kZWZhdWx0L3BhY2thZ2VzL29jdmVyYWxscy9vY3ZlcmFsbHMuMC4yLjAvb3BhbS4gVXBn
cmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFk
IHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFy
c2luZyBvY3ZlcmFsbHMuMC4yLjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtb
bSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJl
YWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvb2N2ZXJhbGxzL29jdmVyYWxscy4wLjIu
MS9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAx
LjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9y
cyB3aGlsZSBwYXJzaW5nIG9jdmVyYWxscy4wLjIuMSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1sz
MW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBl
bm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9vY3ZlcmFsbHMvb2N2
ZXJhbGxzLjAuMy4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24g
KGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklO
R10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgb2N2ZXJhbGxzLjAuMy4wIE9QQU0gZmlsZSwgc2tp
cHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBu
b3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL29j
dmVyYWxscy9vY3ZlcmFsbHMuMC4zLjEvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNl
bnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQob
WzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBvY3ZlcmFsbHMuMC4zLjEgT1BB
TSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAo
MS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQv
cGFja2FnZXMvb2dnL29nZy4wLjUuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2Vu
dCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtb
MzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIG9nZy4wLjUuMCBPUEFNIGZpbGUs
IHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkg
aXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdl
cy9vanF1ZXJ5L29qcXVlcnkuMC4xL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50
IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1sz
M21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgb2pxdWVyeS4wLjEgT1BBTSBmaWxl
LCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEp
IGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2Fn
ZXMvb2pzLWJhc2Uvb2pzLWJhc2UuMC4zLjAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSBy
ZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHku
DQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBvanMtYmFzZS4wLjMuMCBP
UEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFN
ICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVs
dC9wYWNrYWdlcy9vbGx2bS9vbGx2bS4wLjk5L29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUg
cmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5
Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgb2xsdm0uMC45OSBPUEFN
IGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgx
LjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9w
YWNrYWdlcy9vbG9vcC9vbG9vcC4wLjEuMi9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJl
Y2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4N
ChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIG9sb29wLjAuMS4yIE9QQU0g
ZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEu
MS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3Bh
Y2thZ2VzL29tbC9vbWwuMC4wLjEvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQg
dmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMz
bVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBvbWwuMC4wLjEgT1BBTSBmaWxlLCBz
a2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlz
IG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMv
b21sL29tbC4wLjAuMi9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9u
IChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5J
TkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIG9tbC4wLjAuMiBPUEFNIGZpbGUsIHNraXBwaW5n
Lg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJl
Y2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9vb2xjL29v
bGMuMC4yL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxl
YXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20g
RXJyb3JzIHdoaWxlIHBhcnNpbmcgb29sYy4wLjIgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFt
W0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5v
dWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvb29sYy9vb2xjLjAuMy9v
cGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIp
IHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3
aGlsZSBwYXJzaW5nIG9vbGMuMC4zIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0b
W20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byBy
ZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL29wYW0taW5zdGFsbGV4dC9vcGFtLWlu
c3RhbGxleHQuMS4wLjAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lv
biAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJO
SU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBvcGFtLWluc3RhbGxleHQuMS4wLjAgT1BBTSBm
aWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4x
LjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFj
a2FnZXMvb3BhbS1pbnN0YWxsZXh0L29wYW0taW5zdGFsbGV4dC4xLjAuMS9vcGFtLiBVcGdyYWRl
IE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhp
cyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5n
IG9wYW0taW5zdGFsbGV4dC4xLjAuMSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1Jd
G1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8g
cmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9vcGFtLWxpYi9vcGFtLWxpYi4xLjIu
MC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAx
LjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9y
cyB3aGlsZSBwYXJzaW5nIG9wYW0tbGliLjEuMi4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMx
bVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVu
b3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL29wYW0tbGliL29wYW0t
bGliLjEuMi4xL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0
IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10b
W20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgb3BhbS1saWIuMS4yLjEgT1BBTSBmaWxlLCBza2lwcGlu
Zy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCBy
ZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvb3BhbS1s
aWIvb3BhbS1saWIuMS4yLjIvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVy
c2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtX
QVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBvcGFtLWxpYi4xLjIuMiBPUEFNIGZpbGUs
IHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkg
aXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdl
cy9vcGFtLXB1Ymxpc2gvb3BhbS1wdWJsaXNoLjAuMi4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBh
IG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29y
cmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgb3BhbS1wdWJs
aXNoLjAuMi4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJz
aW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0v
cmVwby9kZWZhdWx0L3BhY2thZ2VzL29wYW0tcHVibGlzaC9vcGFtLXB1Ymxpc2guMC4yLjEvb3Bh
bS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0
byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hp
bGUgcGFyc2luZyBvcGFtLXB1Ymxpc2guMC4yLjEgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFt
W0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5v
dWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvb3BhbS1wdWJsaXNoL29w
YW0tcHVibGlzaC4wLjMuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJz
aW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dB
Uk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIG9wYW0tcHVibGlzaC4wLjMuMCBPUEFNIGZp
bGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEu
MSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNr
YWdlcy9vcGFtLXB1Ymxpc2gvb3BhbS1wdWJsaXNoLjAuMy4wK3RyYW5zaXRpb24vb3BhbS4gVXBn
cmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFk
IHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFy
c2luZyBvcGFtLXB1Ymxpc2guMC4zLjArdHJhbnNpdGlvbiBPUEFNIGZpbGUsIHNraXBwaW5nLg0K
G1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2Vu
dCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9vcGFtLXF1ZXJ5
L29wYW0tcXVlcnkuMS4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNp
b24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FS
TklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgb3BhbS1xdWVyeS4xLjAgT1BBTSBmaWxlLCBz
a2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlz
IG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMv
b3BhbS1xdWVyeS9vcGFtLXF1ZXJ5LjEuMS9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJl
Y2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4N
ChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIG9wYW0tcXVlcnkuMS4xIE9Q
QU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0g
KDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0
L3BhY2thZ2VzL29wYW0tcXVlcnkvb3BhbS1xdWVyeS4xLjIvb3BhbS4gVXBncmFkZSBPUEFNIHRv
IGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBj
b3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBvcGFtLXF1
ZXJ5LjEuMiBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lv
biBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3Jl
cG8vZGVmYXVsdC9wYWNrYWdlcy9vcGFtLXN5bmMtZ2l0aHViLXBycy9vcGFtLXN5bmMtZ2l0aHVi
LXBycy4xLjEuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChh
dCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkdd
G1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIG9wYW0tc3luYy1naXRodWItcHJzLjEuMS4wIE9QQU0g
ZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEu
MS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3Bh
Y2thZ2VzL29wYW0yd2ViL29wYW0yd2ViLjEuNC4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1v
cmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVj
dGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgb3BhbTJ3ZWIuMS40
LjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2Yg
T1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2Rl
ZmF1bHQvcGFja2FnZXMvb3BlbmNjL29wZW5jYy4wLjQuMy0wLjEuMS9vcGFtLiBVcGdyYWRlIE9Q
QU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBm
aWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIG9w
ZW5jYy4wLjQuMy0wLjEuMSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlv
dXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+
Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9vcGVuZmxvdy9vcGVuZmxvdy4wLjguMC9vcGFt
LiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRv
IHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGls
ZSBwYXJzaW5nIG9wZW5mbG93LjAuOC4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJP
Ul0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0
byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL29wZW5mbG93L29wZW5mbG93LjAu
OS4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0
IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJy
b3JzIHdoaWxlIHBhcnNpbmcgb3BlbmZsb3cuMC45LjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtb
MzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQg
ZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvb3BlbmZsb3cvb3Bl
bmZsb3cuMC45LjEvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAo
YXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5H
XRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBvcGVuZmxvdy4wLjkuMSBPUEFNIGZpbGUsIHNraXBw
aW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90
IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9vcGVy
Zi1tYWNyby9vcGVyZi1tYWNyby4wLjIvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNl
bnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQob
WzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBvcGVyZi1tYWNyby4wLjIgT1BB
TSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAo
MS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQv
cGFja2FnZXMvb3BlcmYtbWljcm8vb3BlcmYtbWljcm8uMC4xL29wYW0uIFVwZ3JhZGUgT1BBTSB0
byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUg
Y29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgb3BlcmYt
bWljcm8uMC4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJz
aW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0v
cmVwby9kZWZhdWx0L3BhY2thZ2VzL29wZXJmLW1pY3JvL29wZXJmLW1pY3JvLjAuMi9vcGFtLiBV
cGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJl
YWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBw
YXJzaW5nIG9wZXJmLW1pY3JvLjAuMiBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1Jd
G1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8g
cmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9vcGVyZi1taWNyby9vcGVyZi1taWNy
by4xLjAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVh
c3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBF
cnJvcnMgd2hpbGUgcGFyc2luZyBvcGVyZi1taWNyby4xLjAgT1BBTSBmaWxlLCBza2lwcGluZy4N
ChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNl
bnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvb3BpdW0vb3Bp
dW0uMC4xMi4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0
IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10b
W20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgb3BpdW0uMC4xMi4wIE9QQU0gZmlsZSwgc2tpcHBpbmcu
DQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVj
ZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL29waXVtL29w
aXVtLjAuMTMuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChh
dCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkdd
G1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIG9waXVtLjAuMTMuMCBPUEFNIGZpbGUsIHNraXBwaW5n
Lg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJl
Y2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9vcGl1bS9v
cGl1bS4wLjEzLjEvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAo
YXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5H
XRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBvcGl1bS4wLjEzLjEgT1BBTSBmaWxlLCBza2lwcGlu
Zy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCBy
ZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvb3BpdW0v
b3BpdW0uMC4xMy4yL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24g
KGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklO
R10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgb3BpdW0uMC4xMy4yIE9QQU0gZmlsZSwgc2tpcHBp
bmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3Qg
cmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL29waXVt
L29waXVtLjAuMTMuMy9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9u
IChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5J
TkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIG9waXVtLjAuMTMuMyBPUEFNIGZpbGUsIHNraXBw
aW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90
IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9vcHVz
L29wdXMuMC4xLjEvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAo
YXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5H
XRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBvcHVzLjAuMS4xIE9QQU0gZmlsZSwgc2tpcHBpbmcu
DQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVj
ZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL29yb2Nrc2Ri
L29yb2Nrc2RiLjAuMS4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNp
b24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FS
TklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgb3JvY2tzZGIuMC4xLjAgT1BBTSBmaWxlLCBz
a2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlz
IG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMv
b3JvY2tzZGIvb3JvY2tzZGIuMC4yLjAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNl
bnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQob
WzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBvcm9ja3NkYi4wLjIuMCBPUEFN
IGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgx
LjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9w
YWNrYWdlcy9vcm9ja3NkYi9vcm9ja3NkYi4wLjIuMS9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBt
b3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJl
Y3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIG9yb2Nrc2RiLjAu
Mi4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9m
IE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9k
ZWZhdWx0L3BhY2thZ2VzL290ci9vdHIuMC4xLjAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9y
ZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0
bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBvdHIuMC4xLjAgT1BB
TSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAo
MS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQv
cGFja2FnZXMvb3RyL290ci4wLjIuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2Vu
dCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtb
MzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIG90ci4wLjIuMCBPUEFNIGZpbGUs
IHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkg
aXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdl
cy9vd2VibC9vd2VibC4wLjEvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVy
c2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtX
QVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBvd2VibC4wLjEgT1BBTSBmaWxlLCBza2lw
cGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5v
dCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvcGFf
YmVuY2gvcGFfYmVuY2guMTEzLjAwLjAwL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVj
ZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0K
G1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgcGFfYmVuY2guMTEzLjAwLjAw
IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9Q
QU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZh
dWx0L3BhY2thZ2VzL3BhX2RvL3BhX2RvLjAuOC4xNS9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBt
b3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJl
Y3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIHBhX2RvLjAuOC4x
NSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBP
UEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVm
YXVsdC9wYWNrYWdlcy9wYV9kby9wYV9kby4wLjguMTYvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEg
bW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3Jy
ZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBwYV9kby4wLjgu
MTYgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2Yg
T1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2Rl
ZmF1bHQvcGFja2FnZXMvcGFfb3VuaXQvcGFfb3VuaXQuMTEyLjM1LjAwL29wYW0uIFVwZ3JhZGUg
T1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlz
IGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcg
cGFfb3VuaXQuMTEyLjM1LjAwIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20g
WW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFk
IH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3BhX291bml0L3BhX291bml0LjExMy4wMC4w
MC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAx
LjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9y
cyB3aGlsZSBwYXJzaW5nIHBhX291bml0LjExMy4wMC4wMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0K
G1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2Vu
dCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9wYV9zdHJ1Y3R1
cmFsX3NleHAvcGFfc3RydWN0dXJhbF9zZXhwLjExMi4zNS4wMC9vcGFtLiBVcGdyYWRlIE9QQU0g
dG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxl
IGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIHBhX3N0
cnVjdHVyYWxfc2V4cC4xMTIuMzUuMDAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9S
XRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRv
IHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvcGFfc3RydWN0dXJhbF9zZXhwL3Bh
X3N0cnVjdHVyYWxfc2V4cC4xMTMuMDAuMDAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSBy
ZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHku
DQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBwYV9zdHJ1Y3R1cmFsX3Nl
eHAuMTEzLjAwLjAwIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2
ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9w
YW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3BhX3Rlc3QvcGFfdGVzdC4xMTIuMjQuMDAvb3BhbS4g
VXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byBy
ZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUg
cGFyc2luZyBwYV90ZXN0LjExMi4yNC4wMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJS
T1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2gg
dG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9wYWNrZXQvcGFja2V0LjAuNC4w
L29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEu
MikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3Jz
IHdoaWxlIHBhcnNpbmcgcGFja2V0LjAuNC4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtF
UlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3Vn
aCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3Bhcm1hcC9wYXJtYXAuMC45
LjEvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3Qg
MS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJv
cnMgd2hpbGUgcGFyc2luZyBwYXJtYXAuMC45LjEgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFt
W0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5v
dWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvcGFybWFwL3Bhcm1hcC4x
LjAtcmMxL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxl
YXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20g
RXJyb3JzIHdoaWxlIHBhcnNpbmcgcGFybWFwLjEuMC1yYzEgT1BBTSBmaWxlLCBza2lwcGluZy4N
ChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNl
bnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvcGFybWFwL3Bh
cm1hcC4xLjAtcmMyL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24g
KGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklO
R10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgcGFybWFwLjEuMC1yYzIgT1BBTSBmaWxlLCBza2lw
cGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5v
dCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvcGFy
bWFwL3Bhcm1hcC4xLjAtcmMzL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZl
cnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21b
V0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgcGFybWFwLjEuMC1yYzMgT1BBTSBmaWxl
LCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEp
IGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2Fn
ZXMvcGFybWFwL3Bhcm1hcC4xLjAtcmM0L29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVj
ZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0K
G1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgcGFybWFwLjEuMC1yYzQgT1BB
TSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAo
MS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQv
cGFja2FnZXMvcGFybWFwL3Bhcm1hcC4xLjAtcmM1L29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1v
cmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVj
dGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgcGFybWFwLjEuMC1y
YzUgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2Yg
T1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2Rl
ZmF1bHQvcGFja2FnZXMvcGFybWFwL3Bhcm1hcC4xLjAtcmM3L29wYW0uIFVwZ3JhZGUgT1BBTSB0
byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUg
Y29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgcGFybWFw
LjEuMC1yYzcgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNp
b24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9y
ZXBvL2RlZmF1bHQvcGFja2FnZXMvcGF0ZGlmZi9wYXRkaWZmLjExMy4wMC4wMC9vcGFtLiBVcGdy
YWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQg
dGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJz
aW5nIHBhdGRpZmYuMTEzLjAwLjAwIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0b
W20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byBy
ZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3BhdGllbmNlX2RpZmYvcGF0aWVuY2Vf
ZGlmZi4xMTIuMjQuMDAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lv
biAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJO
SU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBwYXRpZW5jZV9kaWZmLjExMi4yNC4wMCBPUEFN
IGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgx
LjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9w
YWNrYWdlcy9wY2kvcGNpLjAuMi4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50
IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1sz
M21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgcGNpLjAuMi4wIE9QQU0gZmlsZSwg
c2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBp
cyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2Vz
L3BjaS9wY2kuMS4wLjAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lv
biAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJO
SU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBwY2kuMS4wLjAgT1BBTSBmaWxlLCBza2lwcGlu
Zy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCBy
ZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvcGNyZS9w
Y3JlLjcuMS41L29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0
IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10b
W20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgcGNyZS43LjEuNSBPUEFNIGZpbGUsIHNraXBwaW5nLg0K
G1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2Vu
dCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9wY3JlL3BjcmUu
Ny4xLjYvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVh
c3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBF
cnJvcnMgd2hpbGUgcGFyc2luZyBwY3JlLjcuMS42IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMx
bVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVu
b3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3BlcmYvcGVyZi4xLjAv
b3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4y
KSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMg
d2hpbGUgcGFyc2luZyBwZXJmLjEuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1Jd
G1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8g
cmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9wZ29jYW1sL3Bnb2NhbWwuMS43L29w
YW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikg
dG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdo
aWxlIHBhcnNpbmcgcGdvY2FtbC4xLjcgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9S
XRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRv
IHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvcGdvY2FtbC9wZ29jYW1sLjEuNy4x
L29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEu
MikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3Jz
IHdoaWxlIHBhcnNpbmcgcGdvY2FtbC4xLjcuMSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1b
RVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91
Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9wZ29jYW1sL3Bnb2NhbWwu
Mi4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0
IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJy
b3JzIHdoaWxlIHBhcnNpbmcgcGdvY2FtbC4yLjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFt
W0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5v
dWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvcGdvY2FtbC9wZ29jYW1s
LjIuMS9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFz
dCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVy
cm9ycyB3aGlsZSBwYXJzaW5nIHBnb2NhbWwuMi4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMx
bVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVu
b3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3Bnb2NhbWwvcGdvY2Ft
bC4yLjIvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVh
c3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBF
cnJvcnMgd2hpbGUgcGFyc2luZyBwZ29jYW1sLjIuMiBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1sz
MW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBl
bm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9waXBlYmFuZy9waXBl
YmFuZy4xMTMuMDAuMDAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lv
biAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJO
SU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBwaXBlYmFuZy4xMTMuMDAuMDAgT1BBTSBmaWxl
LCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEp
IGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2Fn
ZXMvcGxhbmV0cy9wbGFuZXRzLjAuMS4xNC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJl
Y2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4N
ChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIHBsYW5ldHMuMC4xLjE0IE9Q
QU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0g
KDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0
L3BhY2thZ2VzL3BvZGdlL3BvZGdlLjAuMi9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJl
Y2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4N
ChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIHBvZGdlLjAuMiBPUEFNIGZp
bGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEu
MSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNr
YWdlcy9wb2RnZS9wb2RnZS4wLjMvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQg
dmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMz
bVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBwb2RnZS4wLjMgT1BBTSBmaWxlLCBz
a2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlz
IG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMv
cG9kZ2UvcG9kZ2UuMC40L29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNp
b24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FS
TklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgcG9kZ2UuMC40IE9QQU0gZmlsZSwgc2tpcHBp
bmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3Qg
cmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3BvbHln
bG90L3BvbHlnbG90LjEuMC4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZl
cnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21b
V0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgcG9seWdsb3QuMS4wLjAgT1BBTSBmaWxl
LCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEp
IGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2Fn
ZXMvcG9ydGF1ZGlvL3BvcnRhdWRpby4wLjIuMS9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3Jl
IHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3Rs
eS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIHBvcnRhdWRpby4wLjIu
MSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBP
UEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVm
YXVsdC9wYWNrYWdlcy9wb3J0aWEvcG9ydGlhLjAuMS9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBt
b3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJl
Y3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIHBvcnRpYS4wLjEg
T1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BB
TSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1
bHQvcGFja2FnZXMvcG9zaXgtY2xvY2svcG9zaXgtY2xvY2suMC4zLjAtMC9vcGFtLiBVcGdyYWRl
IE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhp
cyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5n
IHBvc2l4LWNsb2NrLjAuMy4wLTAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtb
bSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJl
YWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvcG9zaXgtdGltZS9wb3NpeC10aW1lLjAu
My4wLTAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVh
c3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBF
cnJvcnMgd2hpbGUgcGFyc2luZyBwb3NpeC10aW1lLjAuMy4wLTAgT1BBTSBmaWxlLCBza2lwcGlu
Zy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCBy
ZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvcG9zdGdy
ZXNxbC9wb3N0Z3Jlc3FsLjMuMC4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50
IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1sz
M21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgcG9zdGdyZXNxbC4zLjAuMCBPUEFN
IGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgx
LjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9w
YWNrYWdlcy9wb3N0Z3Jlc3FsL3Bvc3RncmVzcWwuMy4xLjAvb3BhbS4gVXBncmFkZSBPUEFNIHRv
IGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBj
b3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBwb3N0Z3Jl
c3FsLjMuMS4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJz
aW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0v
cmVwby9kZWZhdWx0L3BhY2thZ2VzL3Bvc3RncmVzcWwvcG9zdGdyZXNxbC4zLjIuMC9vcGFtLiBV
cGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJl
YWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBw
YXJzaW5nIHBvc3RncmVzcWwuMy4yLjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9S
XRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRv
IHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvcG9zdGdyZXNxbC9wb3N0Z3Jlc3Fs
LjMuMi4xL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxl
YXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20g
RXJyb3JzIHdoaWxlIHBhcnNpbmcgcG9zdGdyZXNxbC4zLjIuMSBPUEFNIGZpbGUsIHNraXBwaW5n
Lg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJl
Y2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9wcHhfYmln
YXJyYXkvcHB4X2JpZ2FycmF5LjAuMC4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVj
ZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0K
G1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgcHB4X2JpZ2FycmF5LjAuMC4w
IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9Q
QU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZh
dWx0L3BhY2thZ2VzL3BweF9iaWdhcnJheS9wcHhfYmlnYXJyYXkuMC4wLjEvb3BhbS4gVXBncmFk
ZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRo
aXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2lu
ZyBwcHhfYmlnYXJyYXkuMC4wLjEgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtb
bSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJl
YWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvcHB4X2JpZ2FycmF5L3BweF9iaWdhcnJh
eS4wLjEuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBs
ZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1tt
IEVycm9ycyB3aGlsZSBwYXJzaW5nIHBweF9iaWdhcnJheS4wLjEuMCBPUEFNIGZpbGUsIHNraXBw
aW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90
IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9wcHhf
Y29uc3QvcHB4X2NvbnN0LjEuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2
ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNt
W1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIHBweF9jb25zdC4xLjAgT1BBTSBmaWxl
LCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEp
IGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2Fn
ZXMvcHB4X2NvbnN0L3BweF9jb25zdC4xLjEvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSBy
ZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHku
DQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBwcHhfY29uc3QuMS4xIE9Q
QU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0g
KDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0
L3BhY2thZ2VzL3BweF9jdXJyaWVkX2NvbnN0ci9wcHhfY3VycmllZF9jb25zdHIuMS4wLjAvb3Bh
bS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0
byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hp
bGUgcGFyc2luZyBwcHhfY3VycmllZF9jb25zdHIuMS4wLjAgT1BBTSBmaWxlLCBza2lwcGluZy4N
ChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNl
bnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvcHB4X2Rlcml2
aW5nL3BweF9kZXJpdmluZy4xLjAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQg
dmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMz
bVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBwcHhfZGVyaXZpbmcuMS4wIE9QQU0g
ZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEu
MS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3Bh
Y2thZ2VzL3BweF9kZXJpdmluZy9wcHhfZGVyaXZpbmcuMS4xL29wYW0uIFVwZ3JhZGUgT1BBTSB0
byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUg
Y29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgcHB4X2Rl
cml2aW5nLjEuMSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVy
c2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFt
L3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9wcHhfZGVyaXZpbmcvcHB4X2Rlcml2aW5nLjIuMC9vcGFt
LiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRv
IHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGls
ZSBwYXJzaW5nIHBweF9kZXJpdmluZy4yLjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VS
Uk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdo
IHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvcHB4X2Rlcml2aW5nL3BweF9k
ZXJpdmluZy4yLjEvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAo
YXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5H
XRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBwcHhfZGVyaXZpbmcuMi4xIE9QQU0gZmlsZSwgc2tp
cHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBu
b3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3Bw
eF9kZXJpdmluZy9wcHhfZGVyaXZpbmcuMi4yL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUg
cmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5
Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgcHB4X2Rlcml2aW5nLjIu
MiBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBP
UEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVm
YXVsdC9wYWNrYWdlcy9wcHhfZGVyaXZpbmdfcHJvdG9idWYvcHB4X2Rlcml2aW5nX3Byb3RvYnVm
LjIuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFz
dCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVy
cm9ycyB3aGlsZSBwYXJzaW5nIHBweF9kZXJpdmluZ19wcm90b2J1Zi4yLjAgT1BBTSBmaWxlLCBz
a2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlz
IG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMv
cHB4X2Rlcml2aW5nX3Byb3RvYnVmL3BweF9kZXJpdmluZ19wcm90b2J1Zi4yLjEvb3BhbS4gVXBn
cmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFk
IHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFy
c2luZyBwcHhfZGVyaXZpbmdfcHJvdG9idWYuMi4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMx
bVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVu
b3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3BweF9kZXJpdmluZ19w
cm90b2J1Zi9wcHhfZGVyaXZpbmdfcHJvdG9idWYuMi4yL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBh
IG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29y
cmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgcHB4X2Rlcml2
aW5nX3Byb3RvYnVmLjIuMiBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlv
dXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+
Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9wcHhfZGVyaXZpbmdfeW9qc29uL3BweF9kZXJp
dmluZ195b2pzb24uMi4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNp
b24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FS
TklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgcHB4X2Rlcml2aW5nX3lvanNvbi4yLjAgT1BB
TSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAo
MS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQv
cGFja2FnZXMvcHB4X2Rlcml2aW5nX3lvanNvbi9wcHhfZGVyaXZpbmdfeW9qc29uLjIuMS9vcGFt
LiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRv
IHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGls
ZSBwYXJzaW5nIHBweF9kZXJpdmluZ195b2pzb24uMi4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQob
WzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50
IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3BweF9kZXJpdmlu
Z195b2pzb24vcHB4X2Rlcml2aW5nX3lvanNvbi4yLjIvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEg
bW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3Jy
ZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBwcHhfZGVyaXZp
bmdfeW9qc29uLjIuMiBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIg
dmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5v
cGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9wcHhfZGVyaXZpbmdfeW9qc29uL3BweF9kZXJpdmlu
Z195b2pzb24uMi4zL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24g
KGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklO
R10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgcHB4X2Rlcml2aW5nX3lvanNvbi4yLjMgT1BBTSBm
aWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4x
LjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFj
a2FnZXMvcHB4X2dldGVudi9wcHhfZ2V0ZW52LjEuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBt
b3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJl
Y3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIHBweF9nZXRlbnYu
MS4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9m
IE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9k
ZWZhdWx0L3BhY2thZ2VzL3BweF9nZXRlbnYvcHB4X2dldGVudi4xLjEvb3BhbS4gVXBncmFkZSBP
UEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMg
ZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBw
cHhfZ2V0ZW52LjEuMSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIg
dmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5v
cGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9wcHhfaW1wbGljaXRzL3BweF9pbXBsaWNpdHMuMC4x
LjAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3Qg
MS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJv
cnMgd2hpbGUgcGFyc2luZyBwcHhfaW1wbGljaXRzLjAuMS4wIE9QQU0gZmlsZSwgc2tpcHBpbmcu
DQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVj
ZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3BweF9pbXBv
cnQvcHB4X2ltcG9ydC4xLjAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVy
c2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtX
QVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBwcHhfaW1wb3J0LjEuMCBPUEFNIGZpbGUs
IHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkg
aXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdl
cy9wcHhfaW5jbHVkZS9wcHhfaW5jbHVkZS4xLjAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9y
ZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0
bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBwcHhfaW5jbHVkZS4x
LjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2Yg
T1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2Rl
ZmF1bHQvcGFja2FnZXMvcHB4X21ldGFfY29udi9wcHhfbWV0YV9jb252LjIuMC4yL29wYW0uIFVw
Z3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVh
ZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBh
cnNpbmcgcHB4X21ldGFfY29udi4yLjAuMiBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJS
T1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2gg
dG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9wcHhfbWV0YV9jb252L3BweF9t
ZXRhX2NvbnYuMi4xLjAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lv
biAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJO
SU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBwcHhfbWV0YV9jb252LjIuMS4wIE9QQU0gZmls
ZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4x
KSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2th
Z2VzL3BweF9tb25hZGljL3BweF9tb25hZGljLjEuMC4zL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBh
IG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29y
cmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgcHB4X21vbmFk
aWMuMS4wLjMgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNp
b24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9y
ZXBvL2RlZmF1bHQvcGFja2FnZXMvcHB4X29yYWt1ZGEvcHB4X29yYWt1ZGEuMi4wLjEvb3BhbS4g
VXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byBy
ZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUg
cGFyc2luZyBwcHhfb3Jha3VkYS4yLjAuMSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJS
T1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2gg
dG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9wcHhfcG9seV9yZWNvcmQvcHB4
X3BvbHlfcmVjb3JkLjEuMC4xL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZl
cnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21b
V0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgcHB4X3BvbHlfcmVjb3JkLjEuMC4xIE9Q
QU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0g
KDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0
L3BhY2thZ2VzL3BweF9zZXhwL3BweF9zZXhwLjAuMy4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBh
IG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29y
cmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgcHB4X3NleHAu
MC4zLjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24g
b2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBv
L2RlZmF1bHQvcGFja2FnZXMvcHB4X3Rlc3QvcHB4X3Rlc3QuMS4yLjAvb3BhbS4gVXBncmFkZSBP
UEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMg
ZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBw
cHhfdGVzdC4xLjIuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIg
dmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5v
cGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9wcm9iLWNhY2hlL3Byb2ItY2FjaGUuMS4wLjAvb3Bh
bS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0
byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hp
bGUgcGFyc2luZyBwcm9iLWNhY2hlLjEuMC4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtF
UlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3Vn
aCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3B1Ymxpc2gvcHVibGlzaC4w
LjMuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFz
dCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVy
cm9ycyB3aGlsZSBwYXJzaW5nIHB1Ymxpc2guMC4zLjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtb
MzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQg
ZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvcHVibGlzaC9wdWJs
aXNoLjAuMy4xL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0
IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10b
W20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgcHVibGlzaC4wLjMuMSBPUEFNIGZpbGUsIHNraXBwaW5n
Lg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJl
Y2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9wdWxzZWF1
ZGlvL3B1bHNlYXVkaW8uMC4xLjMvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQg
dmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMz
bVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBwdWxzZWF1ZGlvLjAuMS4zIE9QQU0g
ZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEu
MS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3Bh
Y2thZ2VzL3B4cC9weHAuMS4yLjcvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQg
dmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMz
bVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBweHAuMS4yLjcgT1BBTSBmaWxlLCBz
a2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlz
IG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMv
cWNoZWNrL3FjaGVjay4wLjMvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVy
c2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtX
QVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBxY2hlY2suMC4zIE9QQU0gZmlsZSwgc2tp
cHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBu
b3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3Fj
aGVjay9xY2hlY2suMC40L29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNp
b24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FS
TklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgcWNoZWNrLjAuNCBPUEFNIGZpbGUsIHNraXBw
aW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90
IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9xZnMv
cWZzLjAuNC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBs
ZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1tt
IEVycm9ycyB3aGlsZSBwYXJzaW5nIHFmcy4wLjQgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFt
W0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5v
dWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvcWZzL3Fmcy4wLjUvb3Bh
bS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0
byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hp
bGUgcGFyc2luZyBxZnMuMC41IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20g
WW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFk
IH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3F0ZXN0L3F0ZXN0LjIuMS4wL29wYW0uIFVw
Z3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVh
ZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBh
cnNpbmcgcXRlc3QuMi4xLjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZ
b3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQg
fi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvcXVlc3QvcXVlc3QuMC4xL29wYW0uIFVwZ3Jh
ZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0
aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNp
bmcgcXVlc3QuMC4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2
ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9w
YW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3Jhbmdlci9yYW5nZXIuMC4xLjAvb3BhbS4gVXBncmFk
ZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRo
aXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2lu
ZyByYW5nZXIuMC4xLjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3Vy
IHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8u
b3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvcmFzaGVsbC9yYXNoZWxsLjAuMS4wL29wYW0uIFVw
Z3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVh
ZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBh
cnNpbmcgcmFzaGVsbC4wLjEuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1tt
IFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVh
ZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9yYXdsaW5rL3Jhd2xpbmsuMC4xL29wYW0u
IFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8g
cmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxl
IHBhcnNpbmcgcmF3bGluay4wLjEgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtb
bSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJl
YWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvcmF3bGluay9yYXdsaW5rLjAuMi9vcGFt
LiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRv
IHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGls
ZSBwYXJzaW5nIHJhd2xpbmsuMC4yIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0b
W20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byBy
ZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3Jhd2xpbmsvcmF3bGluay4wLjMvb3Bh
bS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0
byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hp
bGUgcGFyc2luZyByYXdsaW5rLjAuMyBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1Jd
G1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8g
cmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9yZGJnL3JkYmcuMS4wL29wYW0uIFVw
Z3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVh
ZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBh
cnNpbmcgcmRiZy4xLjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3Vy
IHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8u
b3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvcmRyL3Jkci4xLjAvb3BhbS4gVXBncmFkZSBPUEFN
IHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmls
ZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyByZHIu
MS4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9m
IE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9k
ZWZhdWx0L3BhY2thZ2VzL3Jkci9yZHIuMS4xL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUg
cmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5
Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgcmRyLjEuMSBPUEFNIGZp
bGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEu
MSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNr
YWdlcy9yZHIvcmRyLjIuMC4xL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZl
cnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21b
V0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgcmRyLjIuMC4xIE9QQU0gZmlsZSwgc2tp
cHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBu
b3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3Jl
L3JlLjEuMy4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0
IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10b
W20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgcmUuMS4zLjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtb
MzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQg
ZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvcmUvcmUuMS4zLjEv
b3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4y
KSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMg
d2hpbGUgcGFyc2luZyByZS4xLjMuMSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1Jd
G1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8g
cmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9yZS9yZS4xLjMuMi9vcGFtLiBVcGdy
YWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQg
dGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJz
aW5nIHJlLjEuMy4yIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2
ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9w
YW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3JlL3JlLjEuNC4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0
byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUg
Y29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgcmUuMS40
LjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2Yg
T1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2Rl
ZmF1bHQvcGFja2FnZXMvcmUvcmUuMS40LjEvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSBy
ZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHku
DQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyByZS4xLjQuMSBPUEFNIGZp
bGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEu
MSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNr
YWdlcy9yZTIvcmUyLjExMi4zNS4wMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2Vu
dCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtb
MzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIHJlMi4xMTIuMzUuMDAgT1BBTSBm
aWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4x
LjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFj
a2FnZXMvcmUyL3JlMi4xMTMuMDAuMDAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNl
bnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQob
WzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyByZTIuMTEzLjAwLjAwIE9QQU0g
ZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEu
MS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3Bh
Y2thZ2VzL3JlY29yZHMvcmVjb3Jkcy4wLjEuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3Jl
IHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3Rs
eS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIHJlY29yZHMuMC4xLjAg
T1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BB
TSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1
bHQvcGFja2FnZXMvcmVjb3Jkcy9yZWNvcmRzLjAuMi4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBh
IG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29y
cmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgcmVjb3Jkcy4w
LjIuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBv
ZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8v
ZGVmYXVsdC9wYWNrYWdlcy9yZWNvcmRzL3JlY29yZHMuMC4zLjAvb3BhbS4gVXBncmFkZSBPUEFN
IHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmls
ZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyByZWNv
cmRzLjAuMy4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJz
aW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0v
cmVwby9kZWZhdWx0L3BhY2thZ2VzL3Jlcy9yZXMuNC4wLjcvb3BhbS4gVXBncmFkZSBPUEFNIHRv
IGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBj
b3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyByZXMuNC4w
LjcgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2Yg
T1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2Rl
ZmF1bHQvcGFja2FnZXMvcmVzdWx0L3Jlc3VsdC4xLjAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEg
bW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3Jy
ZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyByZXN1bHQuMS4w
IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9Q
QU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZh
dWx0L3BhY2thZ2VzL3Jlc3VsdC9yZXN1bHQuMS4xL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1v
cmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVj
dGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgcmVzdWx0LjEuMSBP
UEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFN
ICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVs
dC9wYWNrYWdlcy9yZmM2Mjg3L3JmYzYyODcuMS4wLjAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEg
bW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3Jy
ZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyByZmM2Mjg3LjEu
MC4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9m
IE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9k
ZWZhdWx0L3BhY2thZ2VzL3JpYWtjX3BweC9yaWFrY19wcHguMy4xLjAvb3BhbS4gVXBncmFkZSBP
UEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMg
ZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBy
aWFrY19wcHguMy4xLjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3Vy
IHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8u
b3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvcmlha2NfcHB4L3JpYWtjX3BweC4zLjEuMS9vcGFt
LiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRv
IHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGls
ZSBwYXJzaW5nIHJpYWtjX3BweC4zLjEuMSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJS
T1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2gg
dG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9yaWFrY19wcHgvcmlha2NfcHB4
LjMuMS4yL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxl
YXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20g
RXJyb3JzIHdoaWxlIHBhcnNpbmcgcmlha2NfcHB4LjMuMS4yIE9QQU0gZmlsZSwgc2tpcHBpbmcu
DQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVj
ZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3JpYWtjX3Bw
eC9yaWFrY19wcHguMy4xLjMvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVy
c2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtX
QVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyByaWFrY19wcHguMy4xLjMgT1BBTSBmaWxl
LCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEp
IGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2Fn
ZXMvcml2ZXIvcml2ZXIuMC4xL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZl
cnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21b
V0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgcml2ZXIuMC4xIE9QQU0gZmlsZSwgc2tp
cHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBu
b3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3Jp
dmVyL3JpdmVyLjAuMS4xL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNp
b24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FS
TklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgcml2ZXIuMC4xLjEgT1BBTSBmaWxlLCBza2lw
cGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5v
dCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvcml2
ZXIvcml2ZXIuMC4xLjIvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lv
biAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJO
SU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyByaXZlci4wLjEuMiBPUEFNIGZpbGUsIHNraXBw
aW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90
IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9ycGNf
cGFyYWxsZWwvcnBjX3BhcmFsbGVsLjExMi4zNS4wMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBt
b3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJl
Y3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIHJwY19wYXJhbGxl
bC4xMTIuMzUuMDAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZl
cnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3Bh
bS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvcnBjX3BhcmFsbGVsL3JwY19wYXJhbGxlbC4xMTMuMDAu
MDAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3Qg
MS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJv
cnMgd2hpbGUgcGFyc2luZyBycGNfcGFyYWxsZWwuMTEzLjAwLjAwIE9QQU0gZmlsZSwgc2tpcHBp
bmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3Qg
cmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3JyZXN1
bHQvcnJlc3VsdC4wLjEuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJz
aW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dB
Uk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIHJyZXN1bHQuMC4xLjAgT1BBTSBmaWxlLCBz
a2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlz
IG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMv
cnJlc3VsdC9ycmVzdWx0LjAuMi4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50
IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1sz
M21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgcnJlc3VsdC4wLjIuMCBPUEFNIGZp
bGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEu
MSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNr
YWdlcy9zYWZhL3NhZmEuMS4zL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZl
cnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21b
V0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgc2FmYS4xLjMgT1BBTSBmaWxlLCBza2lw
cGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5v
dCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvc2Fm
ZXBhc3Mvc2FmZXBhc3MuMS4zL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZl
cnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21b
V0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgc2FmZXBhc3MuMS4zIE9QQU0gZmlsZSwg
c2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBp
cyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2Vz
L3NhbXBsZXJhdGUvc2FtcGxlcmF0ZS4wLjEuMy9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3Jl
IHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3Rs
eS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIHNhbXBsZXJhdGUuMC4x
LjMgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2Yg
T1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2Rl
ZmF1bHQvcGFja2FnZXMvc2F3amEvc2F3amEuMS41LjEvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEg
bW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3Jy
ZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBzYXdqYS4xLjUu
MSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBP
UEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVm
YXVsdC9wYWNrYWdlcy9zY2hyb2VkaW5nZXIvc2Nocm9lZGluZ2VyLjAuMS4xL29wYW0uIFVwZ3Jh
ZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0
aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNp
bmcgc2Nocm9lZGluZ2VyLjAuMS4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0b
W20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byBy
ZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3NlbXZlci9zZW12ZXIuMC4xLjAvb3Bh
bS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0
byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hp
bGUgcGFyc2luZyBzZW12ZXIuMC4xLjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9S
XRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRv
IHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvc2VxdWVuY2Uvc2VxdWVuY2UuMC41
LjQvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3Qg
MS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJv
cnMgd2hpbGUgcGFyc2luZyBzZXF1ZW5jZS4wLjUuNCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1sz
MW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBl
bm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9zZXF1ZW5jZS9zZXF1
ZW5jZS4wLjUuNS9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChh
dCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkdd
G1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIHNlcXVlbmNlLjAuNS41IE9QQU0gZmlsZSwgc2tpcHBp
bmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3Qg
cmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3NldHIv
c2V0ci4wLjEvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQg
bGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtb
bSBFcnJvcnMgd2hpbGUgcGFyc2luZyBzZXRyLjAuMSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1sz
MW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBl
bm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9zZXRyL3NldHIuMC4x
LjEvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3Qg
MS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJv
cnMgd2hpbGUgcGFyc2luZyBzZXRyLjAuMS4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtF
UlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3Vn
aCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3NleHBsaWIvc2V4cGxpYi4x
MTIuMzUuMDAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQg
bGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtb
bSBFcnJvcnMgd2hpbGUgcGFyc2luZyBzZXhwbGliLjExMi4zNS4wMCBPUEFNIGZpbGUsIHNraXBw
aW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90
IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9zZXhw
bGliL3NleHBsaWIuMTEzLjAwLjAwL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50
IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1sz
M21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgc2V4cGxpYi4xMTMuMDAuMDAgT1BB
TSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAo
MS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQv
cGFja2FnZXMvc2dmL3NnZi4xLjAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQg
dmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMz
bVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBzZ2YuMS4wIE9QQU0gZmlsZSwgc2tp
cHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBu
b3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3Np
bGwvc2lsbC4xLjIvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAo
YXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5H
XRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBzaWxsLjEuMiBPUEFNIGZpbGUsIHNraXBwaW5nLg0K
G1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2Vu
dCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9zaWxsL3NpbGwu
MS4yLjEvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVh
c3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBF
cnJvcnMgd2hpbGUgcGFyc2luZyBzaWxsLjEuMi4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMx
bVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVu
b3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3NpbGwvc2lsbC4xLjMv
b3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4y
KSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMg
d2hpbGUgcGFyc2luZyBzaWxsLjEuMyBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1Jd
G1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8g
cmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9zaWxsL3NpbGwuMS4zLjEvb3BhbS4g
VXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byBy
ZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUg
cGFyc2luZyBzaWxsLjEuMy4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20g
WW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFk
IH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3NpbGwvc2lsbC4xLjQvb3BhbS4gVXBncmFk
ZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRo
aXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2lu
ZyBzaWxsLjEuNCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVy
c2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFt
L3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9zbGFwL3NsYXAuMi4wLjAvb3BhbS4gVXBncmFkZSBPUEFN
IHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmls
ZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBzbGFw
LjIuMC4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9u
IG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVw
by9kZWZhdWx0L3BhY2thZ2VzL3NsYXAvc2xhcC4yLjAuMS9vcGFtLiBVcGdyYWRlIE9QQU0gdG8g
YSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNv
cnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIHNsYXAuMi4w
LjEgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2Yg
T1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2Rl
ZmF1bHQvcGFja2FnZXMvc29jaWFtbC1mYWNlYm9vay1hcGkvc29jaWFtbC1mYWNlYm9vay1hcGku
MC40LjAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVh
c3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBF
cnJvcnMgd2hpbGUgcGFyc2luZyBzb2NpYW1sLWZhY2Vib29rLWFwaS4wLjQuMCBPUEFNIGZpbGUs
IHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkg
aXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdl
cy9zb2NpYW1sLWZhY2Vib29rLWFwaS9zb2NpYW1sLWZhY2Vib29rLWFwaS4wLjQuMS9vcGFtLiBV
cGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJl
YWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBw
YXJzaW5nIHNvY2lhbWwtZmFjZWJvb2stYXBpLjAuNC4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQob
WzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50
IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3NvZGl1bS9zb2Rp
dW0uMC40LjEvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQg
bGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtb
bSBFcnJvcnMgd2hpbGUgcGFyc2luZyBzb2RpdW0uMC40LjEgT1BBTSBmaWxlLCBza2lwcGluZy4N
ChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNl
bnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvc29kaXVtL3Nv
ZGl1bS4wLjUuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChh
dCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkdd
G1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIHNvZGl1bS4wLjUuMCBPUEFNIGZpbGUsIHNraXBwaW5n
Lg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJl
Y2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9zb3VuZHRv
dWNoL3NvdW5kdG91Y2guMC4xLjgvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQg
dmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMz
bVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBzb3VuZHRvdWNoLjAuMS44IE9QQU0g
ZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEu
MS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3Bh
Y2thZ2VzL3NwZWV4L3NwZWV4LjAuMi4xL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVj
ZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0K
G1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgc3BlZXguMC4yLjEgT1BBTSBm
aWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4x
LjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFj
a2FnZXMvc3BvdGxpYi9zcG90bGliLjIuNS4zL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUg
cmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5
Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgc3BvdGxpYi4yLjUuMyBP
UEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFN
ICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVs
dC9wYWNrYWdlcy9zcHJlYWRzaGVldC9zcHJlYWRzaGVldC4wLjEvb3BhbS4gVXBncmFkZSBPUEFN
IHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmls
ZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBzcHJl
YWRzaGVldC4wLjEgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZl
cnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3Bh
bS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvc3FsZ2cvc3FsZ2cuMC4zLjAvb3BhbS4gVXBncmFkZSBP
UEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMg
ZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBz
cWxnZy4wLjMuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVy
c2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFt
L3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9zcWxpdGUzL3NxbGl0ZTMuMi4wLjgvb3BhbS4gVXBncmFk
ZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRo
aXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2lu
ZyBzcWxpdGUzLjIuMC44IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91
ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4v
Lm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3NxbGl0ZTMvc3FsaXRlMy4yLjAuOS9vcGFtLiBV
cGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJl
YWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBw
YXJzaW5nIHNxbGl0ZTMuMi4wLjkgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtb
bSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJl
YWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvc3FsaXRlMy9zcWxpdGUzLjMuMC4wL29w
YW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikg
dG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdo
aWxlIHBhcnNpbmcgc3FsaXRlMy4zLjAuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJS
T1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2gg
dG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9zcWxpdGUzL3NxbGl0ZTMuNC4w
LjAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3Qg
MS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJv
cnMgd2hpbGUgcGFyc2luZyBzcWxpdGUzLjQuMC4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMx
bVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVu
b3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3N0Yl9pbWFnZS9zdGJf
aW1hZ2UuMC4xL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0
IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10b
W20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgc3RiX2ltYWdlLjAuMSBPUEFNIGZpbGUsIHNraXBwaW5n
Lg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJl
Y2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9zdGJfaW1h
Z2Vfd3JpdGUvc3RiX2ltYWdlX3dyaXRlLjAuMS9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3Jl
IHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3Rs
eS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIHN0Yl9pbWFnZV93cml0
ZS4wLjEgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24g
b2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBv
L2RlZmF1bHQvcGFja2FnZXMvc3RiX3RydWV0eXBlL3N0Yl90cnVldHlwZS4wLjEvb3BhbS4gVXBn
cmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFk
IHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFy
c2luZyBzdGJfdHJ1ZXR5cGUuMC4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0b
W20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byBy
ZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3N0ZW1tZXIvc3RlbW1lci4wLjIvb3Bh
bS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0
byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hp
bGUgcGFyc2luZyBzdGVtbWVyLjAuMiBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1Jd
G1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8g
cmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9zdG9nL3N0b2cuMC4xNS4wL29wYW0u
IFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8g
cmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxl
IHBhcnNpbmcgc3RvZy4wLjE1LjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtb
bSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJl
YWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvc3RvZy1yZGYvc3RvZy1yZGYuMC4xNS4w
L29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEu
MikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3Jz
IHdoaWxlIHBhcnNpbmcgc3RvZy1yZGYuMC4xNS4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMx
bVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVu
b3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3N0b2ctd3JpdGluZy9z
dG9nLXdyaXRpbmcuMC4xNS4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZl
cnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21b
V0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgc3RvZy13cml0aW5nLjAuMTUuMCBPUEFN
IGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgx
LjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9w
YWNrYWdlcy9zdHJpbmdleHQvc3RyaW5nZXh0LjEuMi4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBh
IG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29y
cmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgc3RyaW5nZXh0
LjEuMi4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9u
IG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVw
by9kZWZhdWx0L3BhY2thZ2VzL3N0cmluZ2V4dC9zdHJpbmdleHQuMS4zLjAvb3BhbS4gVXBncmFk
ZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRo
aXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2lu
ZyBzdHJpbmdleHQuMS4zLjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZ
b3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQg
fi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvc3RyaW5nZXh0L3N0cmluZ2V4dC4xLjMuMS9v
cGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIp
IHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3
aGlsZSBwYXJzaW5nIHN0cmluZ2V4dC4xLjMuMSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1b
RVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91
Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9zdHJpbmdleHQvc3RyaW5n
ZXh0LjEuNC4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0
IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10b
W20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgc3RyaW5nZXh0LjEuNC4wIE9QQU0gZmlsZSwgc2tpcHBp
bmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3Qg
cmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3N5bWth
dC9zeW1rYXQuMS4zL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24g
KGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklO
R10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgc3lta2F0LjEuMyBPUEFNIGZpbGUsIHNraXBwaW5n
Lg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJl
Y2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9zeW5kaWMv
c3luZGljLjEuMi9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChh
dCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkdd
G1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIHN5bmRpYy4xLjIgT1BBTSBmaWxlLCBza2lwcGluZy4N
ChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNl
bnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvc3luZGljL3N5
bmRpYy4xLjMvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQg
bGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtb
bSBFcnJvcnMgd2hpbGUgcGFyc2luZyBzeW5kaWMuMS4zIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQob
WzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50
IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3N5bmRpYy9zeW5k
aWMuMS4zLjEvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQg
bGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtb
bSBFcnJvcnMgd2hpbGUgcGFyc2luZyBzeW5kaWMuMS4zLjEgT1BBTSBmaWxlLCBza2lwcGluZy4N
ChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNl
bnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvc3luZGljL3N5
bmRpYy4xLjQvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQg
bGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtb
bSBFcnJvcnMgd2hpbGUgcGFyc2luZyBzeW5kaWMuMS40IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQob
WzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50
IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3RhZ2xpYi90YWds
aWIuMC4zLjIvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQg
bGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtb
bSBFcnJvcnMgd2hpbGUgcGFyc2luZyB0YWdsaWIuMC4zLjIgT1BBTSBmaWxlLCBza2lwcGluZy4N
ChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNl
bnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvdGFnbG9nL3Rh
Z2xvZy4wLjEuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChh
dCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkdd
G1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIHRhZ2xvZy4wLjEuMCBPUEFNIGZpbGUsIHNraXBwaW5n
Lg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJl
Y2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy90YWdsb2cv
dGFnbG9nLjAuMi4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24g
KGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklO
R10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgdGFnbG9nLjAuMi4wIE9QQU0gZmlsZSwgc2tpcHBp
bmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3Qg
cmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3Rhci1m
b3JtYXQvdGFyLWZvcm1hdC4wLjMuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2Vu
dCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtb
MzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIHRhci1mb3JtYXQuMC4zLjAgT1BB
TSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAo
MS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQv
cGFja2FnZXMvdGFyLWZvcm1hdC90YXItZm9ybWF0LjAuNC4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0
byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUg
Y29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgdGFyLWZv
cm1hdC4wLjQuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVy
c2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFt
L3JlcG8vZGVmYXVsdC9wYWNrYWdlcy90YXItZm9ybWF0L3Rhci1mb3JtYXQuMC40LjEvb3BhbS4g
VXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byBy
ZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUg
cGFyc2luZyB0YXItZm9ybWF0LjAuNC4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJP
Ul0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0
byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3RjcGlwL3RjcGlwLjEuMS4wL29w
YW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikg
dG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdo
aWxlIHBhcnNpbmcgdGNwaXAuMS4xLjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9S
XRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRv
IHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvdGNwaXAvdGNwaXAuMS4xLjEvb3Bh
bS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0
byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hp
bGUgcGFyc2luZyB0Y3BpcC4xLjEuMSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1Jd
G1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8g
cmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy90Y3BpcC90Y3BpcC4xLjEuMi9vcGFt
LiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRv
IHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGls
ZSBwYXJzaW5nIHRjcGlwLjEuMS4yIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0b
W20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byBy
ZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3RjcGlwL3RjcGlwLjEuMS4zL29wYW0u
IFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8g
cmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxl
IHBhcnNpbmcgdGNwaXAuMS4xLjMgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtb
bSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJl
YWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvdGNwaXAvdGNwaXAuMS4xLjUvb3BhbS4g
VXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byBy
ZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUg
cGFyc2luZyB0Y3BpcC4xLjEuNSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1tt
IFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVh
ZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy90Y3BpcC90Y3BpcC4xLjEuNi9vcGFtLiBV
cGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJl
YWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBw
YXJzaW5nIHRjcGlwLjEuMS42IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20g
WW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFk
IH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3RjcGlwL3RjcGlwLjIuMS4wL29wYW0uIFVw
Z3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVh
ZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBh
cnNpbmcgdGNwaXAuMi4xLjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZ
b3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQg
fi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvdGNwaXAvdGNwaXAuMi4yLjAvb3BhbS4gVXBn
cmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFk
IHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFy
c2luZyB0Y3BpcC4yLjIuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlv
dXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+
Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy90Y3BpcC90Y3BpcC4yLjIuMS9vcGFtLiBVcGdy
YWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQg
dGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJz
aW5nIHRjcGlwLjIuMi4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91
ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4v
Lm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3RjcGlwL3RjcGlwLjIuMi4yL29wYW0uIFVwZ3Jh
ZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0
aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNp
bmcgdGNwaXAuMi4yLjIgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3Vy
IHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8u
b3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvdGNwaXAvdGNwaXAuMi4yLjMvb3BhbS4gVXBncmFk
ZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRo
aXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2lu
ZyB0Y3BpcC4yLjIuMyBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIg
dmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5v
cGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy90Y3BpcC90Y3BpcC4yLjMuMC9vcGFtLiBVcGdyYWRl
IE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhp
cyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5n
IHRjcGlwLjIuMy4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2
ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9w
YW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3RjcGlwL3RjcGlwLjIuMy4xL29wYW0uIFVwZ3JhZGUg
T1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlz
IGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcg
dGNwaXAuMi4zLjEgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZl
cnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3Bh
bS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvdGNwaXAvdGNwaXAuMi40LjAvb3BhbS4gVXBncmFkZSBP
UEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMg
ZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyB0
Y3BpcC4yLjQuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVy
c2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFt
L3JlcG8vZGVmYXVsdC9wYWNrYWdlcy90Y3BpcC90Y3BpcC4yLjQuMS9vcGFtLiBVcGdyYWRlIE9Q
QU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBm
aWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIHRj
cGlwLjIuNC4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJz
aW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0v
cmVwby9kZWZhdWx0L3BhY2thZ2VzL3RjcGlwL3RjcGlwLjIuNC4yL29wYW0uIFVwZ3JhZGUgT1BB
TSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZp
bGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgdGNw
aXAuMi40LjIgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNp
b24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9y
ZXBvL2RlZmF1bHQvcGFja2FnZXMvdGNwaXAvdGNwaXAuMi40LjMvb3BhbS4gVXBncmFkZSBPUEFN
IHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmls
ZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyB0Y3Bp
cC4yLjQuMyBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lv
biBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3Jl
cG8vZGVmYXVsdC9wYWNrYWdlcy90Y3BpcC90Y3BpcC4yLjUuMC9vcGFtLiBVcGdyYWRlIE9QQU0g
dG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxl
IGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIHRjcGlw
LjIuNS4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9u
IG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVw
by9kZWZhdWx0L3BhY2thZ2VzL3RjcGlwL3RjcGlwLjIuNS4xL29wYW0uIFVwZ3JhZGUgT1BBTSB0
byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUg
Y29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgdGNwaXAu
Mi41LjEgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24g
b2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBv
L2RlZmF1bHQvcGFja2FnZXMvdGNwaXAvdGNwaXAuMi42LjAvb3BhbS4gVXBncmFkZSBPUEFNIHRv
IGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBj
b3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyB0Y3BpcC4y
LjYuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBv
ZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8v
ZGVmYXVsdC9wYWNrYWdlcy90Y3BpcC90Y3BpcC4yLjYuMS9vcGFtLiBVcGdyYWRlIE9QQU0gdG8g
YSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNv
cnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIHRjcGlwLjIu
Ni4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9m
IE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9k
ZWZhdWx0L3BhY2thZ2VzL3RjeC90Y3guMC4yNS4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1v
cmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVj
dGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgdGN4LjAuMjUuMCBP
UEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFN
ICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVs
dC9wYWNrYWdlcy90ZGsvdGRrLjAuMi4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVj
ZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0K
G1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgdGRrLjAuMi4wIE9QQU0gZmls
ZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4x
KSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2th
Z2VzL3RleHQvdGV4dC4wLjguMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2
ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNt
W1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIHRleHQuMC44LjAgT1BBTSBmaWxlLCBz
a2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlz
IG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMv
dGV4dHV0aWxzL3RleHR1dGlscy4xMTIuMTcuMDAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9y
ZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0
bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyB0ZXh0dXRpbHMuMTEy
LjE3LjAwIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9u
IG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVw
by9kZWZhdWx0L3BhY2thZ2VzL3RleHR3cmFwL3RleHR3cmFwLjAuMi9vcGFtLiBVcGdyYWRlIE9Q
QU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBm
aWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIHRl
eHR3cmFwLjAuMiBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVy
c2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFt
L3JlcG8vZGVmYXVsdC9wYWNrYWdlcy90ZnRwL3RmdHAuMC4xLjQvb3BhbS4gVXBncmFkZSBPUEFN
IHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmls
ZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyB0ZnRw
LjAuMS40IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9u
IG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVw
by9kZWZhdWx0L3BhY2thZ2VzL3RnbHMvdGdscy4wLjguMy9vcGFtLiBVcGdyYWRlIE9QQU0gdG8g
YSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNv
cnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIHRnbHMuMC44
LjMgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2Yg
T1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2Rl
ZmF1bHQvcGFja2FnZXMvdGhlb3JhL3RoZW9yYS4wLjMuMS9vcGFtLiBVcGdyYWRlIE9QQU0gdG8g
YSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNv
cnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIHRoZW9yYS4w
LjMuMSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBv
ZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8v
ZGVmYXVsdC9wYWNrYWdlcy90aWR5L3RpZHkuMDoyMDA5LTAuMS4xL29wYW0uIFVwZ3JhZGUgT1BB
TSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZp
bGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgdGlk
eS4wOjIwMDktMC4xLjEgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3Vy
IHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8u
b3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvdGlkeS90aWR5LjE6NC45LjMwLTAuMS4xL29wYW0u
IFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8g
cmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxl
IHBhcnNpbmcgdGlkeS4xOjQuOS4zMC0wLjEuMSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1b
RVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91
Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy90bHMvdGxzLjAuMS4wL29w
YW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikg
dG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdo
aWxlIHBhcnNpbmcgdGxzLjAuMS4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0b
W20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byBy
ZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3Rscy90bHMuMC4yLjAvb3BhbS4gVXBn
cmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFk
IHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFy
c2luZyB0bHMuMC4yLjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3Vy
IHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8u
b3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvdGxzL3Rscy4wLjMuMC9vcGFtLiBVcGdyYWRlIE9Q
QU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBm
aWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIHRs
cy4wLjMuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lv
biBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3Jl
cG8vZGVmYXVsdC9wYWNrYWdlcy90bHMvdGxzLjAuNC4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBh
IG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29y
cmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgdGxzLjAuNC4w
IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9Q
QU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZh
dWx0L3BhY2thZ2VzL3Rscy90bHMuMC41LjAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSBy
ZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHku
DQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyB0bHMuMC41LjAgT1BBTSBm
aWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4x
LjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFj
a2FnZXMvdGxzL3Rscy4wLjYuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2
ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNt
W1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIHRscy4wLjYuMCBPUEFNIGZpbGUsIHNr
aXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMg
bm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy90
bHN0dW5uZWwvdGxzdHVubmVsLjAuMS4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVj
ZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0K
G1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgdGxzdHVubmVsLjAuMS4wIE9Q
QU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0g
KDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0
L3BhY2thZ2VzL3Rsc3R1bm5lbC90bHN0dW5uZWwuMC4xLjEvb3BhbS4gVXBncmFkZSBPUEFNIHRv
IGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBj
b3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyB0bHN0dW5u
ZWwuMC4xLjEgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNp
b24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9y
ZXBvL2RlZmF1bHQvcGFja2FnZXMvdG9tbC90b21sLjIuMC4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0
byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUg
Y29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgdG9tbC4y
LjAuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBv
ZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8v
ZGVmYXVsdC9wYWNrYWdlcy90b21sL3RvbWwuMi4xLjAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEg
bW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3Jy
ZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyB0b21sLjIuMS4w
IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9Q
QU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZh
dWx0L3BhY2thZ2VzL3RvbWwvdG9tbC4yLjIuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3Jl
IHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3Rs
eS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIHRvbWwuMi4yLjAgT1BB
TSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAo
MS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQv
cGFja2FnZXMvdG9tbC90b21sLjIuMi4xL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVj
ZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0K
G1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgdG9tbC4yLjIuMSBPUEFNIGZp
bGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEu
MSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNr
YWdlcy90b3BvbG9neS90b3BvbG9neS4wLjQuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3Jl
IHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3Rs
eS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIHRvcG9sb2d5LjAuNC4w
IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9Q
QU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZh
dWx0L3BhY2thZ2VzL3RyYWtldmEvdHJha2V2YS4wLjAuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8g
YSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNv
cnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIHRyYWtldmEu
MC4wLjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24g
b2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBv
L2RlZmF1bHQvcGFja2FnZXMvdHJpZS90cmllLjAuMS4xL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBh
IG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29y
cmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgdHJpZS4wLjEu
MSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBP
UEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVm
YXVsdC9wYWNrYWdlcy90dWFyZWcvdHVhcmVnLjIuMC44L29wYW0uIFVwZ3JhZGUgT1BBTSB0byBh
IG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29y
cmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgdHVhcmVnLjIu
MC44IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9m
IE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9k
ZWZhdWx0L3BhY2thZ2VzL3R1YXJlZy90dWFyZWcuMi4wLjkvb3BhbS4gVXBncmFkZSBPUEFNIHRv
IGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBj
b3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyB0dWFyZWcu
Mi4wLjkgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24g
b2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBv
L2RlZmF1bHQvcGFja2FnZXMvdHVudGFwL3R1bnRhcC4xLjMuMC9vcGFtLiBVcGdyYWRlIE9QQU0g
dG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxl
IGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIHR1bnRh
cC4xLjMuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lv
biBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3Jl
cG8vZGVmYXVsdC9wYWNrYWdlcy90eXBlX2NvbnYvdHlwZV9jb252LjExMy4wMC4wMC9vcGFtLiBV
cGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJl
YWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBw
YXJzaW5nIHR5cGVfY29udi4xMTMuMDAuMDAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VS
Uk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdo
IHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvdHlwZXJlcC90eXBlcmVwLjEx
Mi4zNS4wMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBs
ZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1tt
IEVycm9ycyB3aGlsZSBwYXJzaW5nIHR5cGVyZXAuMTEyLjM1LjAwIE9QQU0gZmlsZSwgc2tpcHBp
bmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3Qg
cmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3R5cGVy
ZXAvdHlwZXJlcC4xMTMuMDAuMDAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQg
dmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMz
bVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyB0eXBlcmVwLjExMy4wMC4wMCBPUEFN
IGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgx
LjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9w
YWNrYWdlcy90eXBlcmVwX2V4dGVuZGVkL3R5cGVyZXBfZXh0ZW5kZWQuMTEzLjAwLjAwL29wYW0u
IFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8g
cmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxl
IHBhcnNpbmcgdHlwZXJlcF9leHRlbmRlZC4xMTMuMDAuMDAgT1BBTSBmaWxlLCBza2lwcGluZy4N
ChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNl
bnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvdHl4bWwvdHl4
bWwuMy40LjAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQg
bGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtb
bSBFcnJvcnMgd2hpbGUgcGFyc2luZyB0eXhtbC4zLjQuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0K
G1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2Vu
dCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy90eXhtbC90eXht
bC4zLjUuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBs
ZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1tt
IEVycm9ycyB3aGlsZSBwYXJzaW5nIHR5eG1sLjMuNS4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQob
WzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50
IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3VyaS91cmkuMS44
LjAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3Qg
MS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJv
cnMgd2hpbGUgcGFyc2luZyB1cmkuMS44LjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VS
Uk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdo
IHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvdXJpL3VyaS4xLjkuMC9vcGFt
LiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRv
IHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGls
ZSBwYXJzaW5nIHVyaS4xLjkuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1tt
IFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVh
ZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy91cmkvdXJpLjEuOS4xL29wYW0uIFVwZ3Jh
ZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0
aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNp
bmcgdXJpLjEuOS4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2
ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9w
YW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3VzZXItc2V0dXAvdXNlci1zZXR1cC4wLjEvb3BhbS4g
VXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byBy
ZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUg
cGFyc2luZyB1c2VyLXNldHVwLjAuMSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1Jd
G1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8g
cmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy91c2VyLXNldHVwL3VzZXItc2V0dXAu
MC4yL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0
IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJy
b3JzIHdoaWxlIHBhcnNpbmcgdXNlci1zZXR1cC4wLjIgT1BBTSBmaWxlLCBza2lwcGluZy4NChtb
MzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQg
ZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvdXNlci1zZXR1cC91
c2VyLXNldHVwLjAuMy9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9u
IChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5J
TkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIHVzZXItc2V0dXAuMC4zIE9QQU0gZmlsZSwgc2tp
cHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBu
b3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3Vz
ZXItc2V0dXAvdXNlci1zZXR1cC4wLjQvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNl
bnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQob
WzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyB1c2VyLXNldHVwLjAuNCBPUEFN
IGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgx
LjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9w
YWNrYWdlcy91dG9wL3V0b3AuMS4xNi9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2Vu
dCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtb
MzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIHV0b3AuMS4xNiBPUEFNIGZpbGUs
IHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkg
aXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdl
cy91dG9wL3V0b3AuMS4xNy9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJz
aW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dB
Uk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIHV0b3AuMS4xNyBPUEFNIGZpbGUsIHNraXBw
aW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90
IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy91dG9w
L3V0b3AuMS4xOC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChh
dCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkdd
G1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIHV0b3AuMS4xOCBPUEFNIGZpbGUsIHNraXBwaW5nLg0K
G1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2Vu
dCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy91dWNwL3V1Y3Au
MC45LjEvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVh
c3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBF
cnJvcnMgd2hpbGUgcGFyc2luZyB1dWNwLjAuOS4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMx
bVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVu
b3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3V1Y3AvdXVjcC4xLjAu
MC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAx
LjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9y
cyB3aGlsZSBwYXJzaW5nIHV1Y3AuMS4wLjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VS
Uk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdo
IHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvdXVuZi91dW5mLjEuMC4wL29w
YW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikg
dG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdo
aWxlIHBhcnNpbmcgdXVuZi4xLjAuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1Jd
G1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8g
cmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy91dXNlZy91dXNlZy4wLjguMC9vcGFt
LiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRv
IHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGls
ZSBwYXJzaW5nIHV1c2VnLjAuOC4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0b
W20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byBy
ZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3V1c2VnL3V1c2VnLjAuOS4wL29wYW0u
IFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8g
cmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxl
IHBhcnNpbmcgdXVzZWcuMC45LjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtb
bSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJl
YWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvdXV0Zi91dXRmLjAuOS40L29wYW0uIFVw
Z3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVh
ZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBh
cnNpbmcgdXV0Zi4wLjkuNCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlv
dXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+
Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy91d3QvdXd0LjAuMC4xL29wYW0uIFVwZ3JhZGUg
T1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlz
IGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcg
dXd0LjAuMC4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJz
aW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0v
cmVwby9kZWZhdWx0L3BhY2thZ2VzL3V3dC91d3QuMC4wLjIvb3BhbS4gVXBncmFkZSBPUEFNIHRv
IGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBj
b3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyB1d3QuMC4w
LjIgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2Yg
T1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2Rl
ZmF1bHQvcGFja2FnZXMvdmFyaWFudHNsaWIvdmFyaWFudHNsaWIuMTA5LjE1LjAzL29wYW0uIFVw
Z3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVh
ZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBh
cnNpbmcgdmFyaWFudHNsaWIuMTA5LjE1LjAzIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtF
UlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3Vn
aCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3ZjaGFuL3ZjaGFuLjIuMC4z
L29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEu
MikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3Jz
IHdoaWxlIHBhcnNpbmcgdmNoYW4uMi4wLjMgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VS
Uk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdo
IHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvdmcvdmcuMC44LjIvb3BhbS4g
VXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byBy
ZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUg
cGFyc2luZyB2Zy4wLjguMiBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlv
dXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+
Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy92bW5ldC92bW5ldC4xLjAuMC9vcGFtLiBVcGdy
YWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQg
dGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJz
aW5nIHZtbmV0LjEuMC4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91
ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4v
Lm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3ZtbmV0L3ZtbmV0LjEuMC4xL29wYW0uIFVwZ3Jh
ZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0
aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNp
bmcgdm1uZXQuMS4wLjEgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3Vy
IHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8u
b3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvdm9hYWNlbmMvdm9hYWNlbmMuMC4xLjEvb3BhbS4g
VXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byBy
ZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUg
cGFyc2luZyB2b2FhY2VuYy4wLjEuMSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1Jd
G1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8g
cmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy92b3JiaXMvdm9yYmlzLjAuNi4yL29w
YW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikg
dG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdo
aWxlIHBhcnNpbmcgdm9yYmlzLjAuNi4yIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJP
Ul0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0
byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3ZydC92cnQuMC4xLjAvb3BhbS4g
VXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byBy
ZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUg
cGFyc2luZyB2cnQuMC4xLjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZ
b3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQg
fi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvd2VibWFjaGluZS93ZWJtYWNoaW5lLjAuMS4w
L29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEu
MikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3Jz
IHdoaWxlIHBhcnNpbmcgd2VibWFjaGluZS4wLjEuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1sz
MW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBl
bm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy93ZWJzb2NrZXQvd2Vi
c29ja2V0LjAuNi9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChh
dCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkdd
G1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIHdlYnNvY2tldC4wLjYgT1BBTSBmaWxlLCBza2lwcGlu
Zy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCBy
ZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvd2Vic29j
a2V0L3dlYnNvY2tldC4wLjcvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVy
c2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtX
QVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyB3ZWJzb2NrZXQuMC43IE9QQU0gZmlsZSwg
c2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBp
cyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2Vz
L3dlYnNvY2tldC93ZWJzb2NrZXQuMC44L29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVj
ZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0K
G1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgd2Vic29ja2V0LjAuOCBPUEFN
IGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgx
LjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9w
YWNrYWdlcy93ZWJzb2NrZXQvd2Vic29ja2V0LjAuOC4xL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBh
IG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29y
cmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgd2Vic29ja2V0
LjAuOC4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9u
IG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVw
by9kZWZhdWx0L3BhY2thZ2VzL3dlYnNvY2tldC93ZWJzb2NrZXQuMC45LjEvb3BhbS4gVXBncmFk
ZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRo
aXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2lu
ZyB3ZWJzb2NrZXQuMC45LjEgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZ
b3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQg
fi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvd2Vic29ja2V0L3dlYnNvY2tldC4wLjkuMi9v
cGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIp
IHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3
aGlsZSBwYXJzaW5nIHdlYnNvY2tldC4wLjkuMiBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1b
RVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91
Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy93ZWJzb2NrZXQvd2Vic29j
a2V0LjAuOS4zL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0
IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10b
W20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgd2Vic29ja2V0LjAuOS4zIE9QQU0gZmlsZSwgc2tpcHBp
bmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3Qg
cmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3dlYnNv
Y2tldC93ZWJzb2NrZXQuMi4wLjAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQg
dmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMz
bVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyB3ZWJzb2NrZXQuMi4wLjAgT1BBTSBm
aWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4x
LjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFj
a2FnZXMvd2Vic29ja2V0L3dlYnNvY2tldC4yLjEvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9y
ZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0
bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyB3ZWJzb2NrZXQuMi4x
IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9Q
QU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZh
dWx0L3BhY2thZ2VzL3doeS93aHkuMi4zNC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJl
Y2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4N
ChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIHdoeS4yLjM0IE9QQU0gZmls
ZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4x
KSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2th
Z2VzL3doeS93aHkuMi4zNS9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJz
aW9uIChhdCBsZWFzdCAxLjIuMCkgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21b
V0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgd2h5LjIuMzUgT1BBTSBmaWxlLCBza2lw
cGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5v
dCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvd2h5
My93aHkzLjAuODUvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAo
YXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5H
XRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyB3aHkzLjAuODUgT1BBTSBmaWxlLCBza2lwcGluZy4N
ChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNl
bnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvd2h5My93aHkz
LjAuODYvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVh
c3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBF
cnJvcnMgd2hpbGUgcGFyc2luZyB3aHkzLjAuODYgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFt
W0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5v
dWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvd2h5My1iYXNlL3doeTMt
YmFzZS4wLjg1L29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0
IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10b
W20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgd2h5My1iYXNlLjAuODUgT1BBTSBmaWxlLCBza2lwcGlu
Zy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCBy
ZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvd2h5My1i
YXNlL3doeTMtYmFzZS4wLjg2L29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZl
cnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21b
V0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgd2h5My1iYXNlLjAuODYgT1BBTSBmaWxl
LCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEp
IGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2Fn
ZXMveDUwOS94NTA5LjAuMi4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZl
cnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21b
V0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgeDUwOS4wLjIuMCBPUEFNIGZpbGUsIHNr
aXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMg
bm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy94
NTA5L3g1MDkuMC4yLjEvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lv
biAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJO
SU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyB4NTA5LjAuMi4xIE9QQU0gZmlsZSwgc2tpcHBp
bmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3Qg
cmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3g1MDkv
eDUwOS4wLjMuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChh
dCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkdd
G1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIHg1MDkuMC4zLjAgT1BBTSBmaWxlLCBza2lwcGluZy4N
ChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNl
bnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMveDUwOS94NTA5
LjAuMy4xL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxl
YXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20g
RXJyb3JzIHdoaWxlIHBhcnNpbmcgeDUwOS4wLjMuMSBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1sz
MW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBl
bm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy94NTA5L3g1MDkuMC40
LjAvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3Qg
MS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJv
cnMgd2hpbGUgcGFyc2luZyB4NTA5LjAuNC4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtF
UlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3Vn
aCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL3hlbi1nbnQveGVuLWdudC4y
LjEuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFz
dCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVy
cm9ycyB3aGlsZSBwYXJzaW5nIHhlbi1nbnQuMi4xLjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtb
MzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQg
ZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMveGVuLWdudC94ZW4t
Z250LjIuMi4wL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0
IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10b
W20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgeGVuLWdudC4yLjIuMCBPUEFNIGZpbGUsIHNraXBwaW5n
Lg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJl
Y2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy94ZW5zdG9y
ZS94ZW5zdG9yZS4xLjIuNS9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJz
aW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dB
Uk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIHhlbnN0b3JlLjEuMi41IE9QQU0gZmlsZSwg
c2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBp
cyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2Vz
L3htbHBsYXlsaXN0L3htbHBsYXlsaXN0LjAuMS40L29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1v
cmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVj
dGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgeG1scGxheWxpc3Qu
MC4xLjQgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24g
b2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBv
L2RlZmF1bHQvcGFja2FnZXMveW9qc29uL3lvanNvbi4xLjAuMy9vcGFtLiBVcGdyYWRlIE9QQU0g
dG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxl
IGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIHlvanNv
bi4xLjAuMyBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lv
biBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3Jl
cG8vZGVmYXVsdC9wYWNrYWdlcy95b2pzb24veW9qc29uLjEuMS4zL29wYW0uIFVwZ3JhZGUgT1BB
TSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZp
bGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgeW9q
c29uLjEuMS4zIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJz
aW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0v
cmVwby9kZWZhdWx0L3BhY2thZ2VzL3lvanNvbi95b2pzb24uMS4yLjMvb3BhbS4gVXBncmFkZSBP
UEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMg
ZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyB5
b2pzb24uMS4yLjMgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9y
cyB3aGlsZSBwYXJzaW5nIHphcml0aC4xLjMgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VS
Uk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdo
IHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvem1xL3ptcS40LjAtNC9vcGFt
LiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRv
IHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGls
ZSBwYXJzaW5nIHptcS40LjAtNCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1tt
IFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVh
ZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy8waW5zdGFsbC8waW5zdGFsbC4yLjkuMS9v
cGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIp
IHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3
aGlsZSBwYXJzaW5nIDBpbnN0YWxsLjIuOS4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtF
UlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3Vn
aCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2FhY3BsdXMvYWFjcGx1cy4w
LjIuMi9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFz
dCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVy
cm9ycyB3aGlsZSBwYXJzaW5nIGFhY3BsdXMuMC4yLjIgT1BBTSBmaWxlLCBza2lwcGluZy4NChtb
MzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQg
ZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvYWdvL2Fnby4wLjEv
b3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4y
KSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMg
d2hpbGUgcGFyc2luZyBhZ28uMC4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0b
W20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byBy
ZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2Fnby9hZ28uMC4yL29wYW0uIFVwZ3Jh
ZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0
aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNp
bmcgYWdvLjAuMiBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVy
c2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFt
L3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9hZ28vYWdvLjAuMy9vcGFtLiBVcGdyYWRlIE9QQU0gdG8g
YSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNv
cnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGFnby4wLjMg
T1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BB
TSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1
bHQvcGFja2FnZXMvYWxiZXJ0by9hbGJlcnRvLjAuMy9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBt
b3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJl
Y3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGFsYmVydG8uMC4z
IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9Q
QU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZh
dWx0L3BhY2thZ2VzL2FsYmVydG8vYWxiZXJ0by4wLjQvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEg
bW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3Jy
ZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBhbGJlcnRvLjAu
NCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBP
UEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVm
YXVsdC9wYWNrYWdlcy9hbGNvdGVzdC9hbGNvdGVzdC4wLjEuMC9vcGFtLiBVcGdyYWRlIE9QQU0g
dG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxl
IGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGFsY290
ZXN0LjAuMS4wIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQobWzMxbVtFUlJPUl0bW20gWW91ciB2ZXJz
aW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50IGVub3VnaCB0byByZWFkIH4vLm9wYW0v
cmVwby9kZWZhdWx0L3BhY2thZ2VzL2FsY290ZXN0L2FsY290ZXN0LjAuMi4wL29wYW0uIFVwZ3Jh
ZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24gKGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0
aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklOR10bW20gRXJyb3JzIHdoaWxlIHBhcnNp
bmcgYWxjb3Rlc3QuMC4yLjAgT1BBTSBmaWxlLCBza2lwcGluZy4NChtbMzFtW0VSUk9SXRtbbSBZ
b3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIHJlYWQg
fi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvYWxjb3Rlc3QvYWxjb3Rlc3QuMC4zLjAvb3Bh
bS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0
byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMzbVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hp
bGUgcGFyc2luZyBhbGNvdGVzdC4wLjMuMCBPUEFNIGZpbGUsIHNraXBwaW5nLg0KG1szMW1bRVJS
T1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEuMSkgaXMgbm90IHJlY2VudCBlbm91Z2gg
dG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNrYWdlcy9hbGNvdGVzdC9hbGNvdGVzdC4w
LjMuMS9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIChhdCBsZWFz
dCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3RseS4NChtbMzNtW1dBUk5JTkddG1ttIEVy
cm9ycyB3aGlsZSBwYXJzaW5nIGFsY290ZXN0LjAuMy4xIE9QQU0gZmlsZSwgc2tpcHBpbmcuDQob
WzMxbVtFUlJPUl0bW20gWW91ciB2ZXJzaW9uIG9mIE9QQU0gKDEuMS4xKSBpcyBub3QgcmVjZW50
IGVub3VnaCB0byByZWFkIH4vLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2FsY290ZXN0L2Fs
Y290ZXN0LjAuMy4yL29wYW0uIFVwZ3JhZGUgT1BBTSB0byBhIG1vcmUgcmVjZW50IHZlcnNpb24g
KGF0IGxlYXN0IDEuMikgdG8gcmVhZCB0aGlzIGZpbGUgY29ycmVjdGx5Lg0KG1szM21bV0FSTklO
R10bW20gRXJyb3JzIHdoaWxlIHBhcnNpbmcgYWxjb3Rlc3QuMC4zLjIgT1BBTSBmaWxlLCBza2lw
cGluZy4NChtbMzFtW0VSUk9SXRtbbSBZb3VyIHZlcnNpb24gb2YgT1BBTSAoMS4xLjEpIGlzIG5v
dCByZWNlbnQgZW5vdWdoIHRvIHJlYWQgfi8ub3BhbS9yZXBvL2RlZmF1bHQvcGFja2FnZXMvYWxj
b3Rlc3QvYWxjb3Rlc3QuMC4zLjMvb3BhbS4gVXBncmFkZSBPUEFNIHRvIGEgbW9yZSByZWNlbnQg
dmVyc2lvbiAoYXQgbGVhc3QgMS4yKSB0byByZWFkIHRoaXMgZmlsZSBjb3JyZWN0bHkuDQobWzMz
bVtXQVJOSU5HXRtbbSBFcnJvcnMgd2hpbGUgcGFyc2luZyBhbGNvdGVzdC4wLjMuMyBPUEFNIGZp
bGUsIHNraXBwaW5nLg0KG1szMW1bRVJST1JdG1ttIFlvdXIgdmVyc2lvbiBvZiBPUEFNICgxLjEu
MSkgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gcmVhZCB+Ly5vcGFtL3JlcG8vZGVmYXVsdC9wYWNr
YWdlcy9hbGNvdGVzdC9hbGNvdGVzdC4wLjQuMC9vcGFtLiBVcGdyYWRlIE9QQU0gdG8gYSBtb3Jl
IHJlY2VudCB2ZXJzaW9uIChhdCBsZWFzdCAxLjIpIHRvIHJlYWQgdGhpcyBmaWxlIGNvcnJlY3Rs
eS4NChtbMzNtW1dBUk5JTkddG1ttIEVycm9ycyB3aGlsZSBwYXJzaW5nIGFsY290ZXN0LjAuNC4w
IE9QQU0gZmlsZSwgc2tpcHBpbmcuDQonb3BhbSBpbml0JyBmYWlsZWQuDQpGYXRhbCBlcnJvcjoN
ClN5c19lcnJvcigiL2hvbWUvbGFzeWEvLm9wYW0vcmVwby9kZWZhdWx0L3BhY2thZ2VzL2FsY290
ZXN0L2FsY290ZXN0LjAuNC4xL29wYW06IFRvbyBtYW55IG9wZW4gZmlsZXMiKQ0KG10wO2xhc3lh
QHRoZWdvbGRlbnNuaXRjaDogfgdsYXN5YUB0aGVnb2xkZW5zbml0Y2g6fiQgZXhpdA0KZXhpdA0K
ClNjcmlwdCBkb25lIG9uIFRodXJzZGF5IDI0IFNlcHRlbWJlciAyMDE1IDA5OjI5OjI3IFBNIElT
VAo=
--089e0122a09c40be5005208073b0
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

--089e0122a09c40be5005208073b0--


From mirageos-devel-bounces@lists.xenproject.org Thu Sep 24 16:20:24 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 24 Sep 2015 16:20:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1Zf9Fv-0002WO-3r; Thu, 24 Sep 2015 16:20:23 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <richard.mortier@gmail.com>) id 1Zf9Ft-0002WD-1x
	for mirageos-devel@lists.xenproject.org; Thu, 24 Sep 2015 16:20:21 +0000
Received: from [85.158.139.211] by server-13.bemta-5.messagelabs.com id
	EE/C1-02324-4C224065; Thu, 24 Sep 2015 16:20:20 +0000
X-Env-Sender: richard.mortier@gmail.com
X-Msg-Ref: server-2.tower-206.messagelabs.com!1443111619!14089002!1
X-Originating-IP: [209.85.212.181]
X-SpamReason: No, hits=0.6 required=7.0 tests=MAILTO_TO_SPAM_ADDR, RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 17608 invoked from network); 24 Sep 2015 16:20:19 -0000
Received: from mail-wi0-f181.google.com (HELO mail-wi0-f181.google.com)
	(209.85.212.181)
	by server-2.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
	24 Sep 2015 16:20:19 -0000
Received: by wicfx3 with SMTP id fx3so119973375wic.0
	for <mirageos-devel@lists.xenproject.org>;
	Thu, 24 Sep 2015 09:20:19 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=mime-version:in-reply-to:references:date:message-id:subject:from:to
	:cc:content-type;
	bh=UcwF0FggzB/HkUP0XDqu4wJA1bWRugt5prn4ww9QnZ8=;
	b=hId1wNZW8cI+WzXN+eIpHh9Fy9PzQmc7hNBY2ZinwxD5fhzKCwk5IgP9irl4Wp6lkA
	HnFKtZaKnUNRWs6+f0giicZYxfhJWfdLFx5/Kh0iR0iH9Q7TnPqale4BjLN4GGFgXfqy
	9HCl9615hVmW679SMGEC/R3b9twYPR3VA9oAftgWsord8mHDe7sRAOvK+1xTjxOrtgUo
	bA0lqDTH6c4wT2Vyrub3IsXP04kUFX2RJxzEx6QLML+zKbwlA77yLkLRAUMFtL5IjxeG
	3hksLsAt0p8F+7tGwyChTSB3GNX/PZkOUs4+VNlSJ6xBTKrvu4ph50EFRKPo2dPEPduy
	wzxA==
X-Received: by 10.180.24.102 with SMTP id t6mr11453352wif.83.1443111619445;
	Thu, 24 Sep 2015 09:20:19 -0700 (PDT)
Received: from mail-wi0-f182.google.com (mail-wi0-f182.google.com.
	[209.85.212.182]) by smtp.gmail.com with ESMTPSA id
	ly4sm13036512wjb.4.2015.09.24.09.20.18
	for <mirageos-devel@lists.xenproject.org>
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Thu, 24 Sep 2015 09:20:19 -0700 (PDT)
Received: by wicfx3 with SMTP id fx3so35678345wic.1
	for <mirageos-devel@lists.xenproject.org>;
	Thu, 24 Sep 2015 09:20:17 -0700 (PDT)
MIME-Version: 1.0
X-Received: by 10.180.208.2 with SMTP id ma2mr10458732wic.44.1443111617965;
	Thu, 24 Sep 2015 09:20:17 -0700 (PDT)
Received: by 10.28.130.67 with HTTP; Thu, 24 Sep 2015 09:20:17 -0700 (PDT)
In-Reply-To: <CAAbK42_Zsyy-UYgT2yvtBat9QjaDyk2v-T1tpxYcnyf4pdL1tA@mail.gmail.com>
References: <CAAbK429srd4r7Kp10nPK5vndcZYLoXOsh9W=K_E4mpKVrVpZXA@mail.gmail.com>
	<56009188.1070102@somerandomidiot.com>
	<CAAbK429psAZAncgBwHP4t=hcBB104dY5T+Mefn0ze-SEYz4dDA@mail.gmail.com>
	<EF478C7D-4CF9-41FD-9309-A6602819AE4B@recoil.org>
	<CAAbK429TUAiBS+wRLuBFb3L2P4ymbbAu5e0rQdSn_U74_QtuWg@mail.gmail.com>
	<CAAbK42_Zsyy-UYgT2yvtBat9QjaDyk2v-T1tpxYcnyf4pdL1tA@mail.gmail.com>
Date: Thu, 24 Sep 2015 17:20:17 +0100
Message-ID: <CAN2Hq06nCBU4uR9aBHop=mQHwypZRBScroLWvA6-yfEMxWQCjQ@mail.gmail.com>
From: Richard Mortier <richard.mortier@cl.cam.ac.uk>
To: Lasya Venneti <comethalley61@gmail.com>
Cc: mirageos-devel <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Getting Started
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

Hi;

On 24 September 2015 at 17:09, Lasya Venneti <comethalley61@gmail.com> wrote:
> Dear all,
>
> While following the installation instructions, the 'opam init' command has
> failed with the error :
> Sys_error("/home/lasya/.opam/repo/default/packages/alcotest/alcotest.0.4.1/opam:
> Too many open files")
> I have also attached the screen log to the mail. My laptop is mid 2014
> Lenovo-Y510p with Ubuntu 14.04 64 bit. Can somebody tell me how do I solve
> this and why is this happening? Am I doing something wrong?

Probably a `ulimit` setting, eg.,
http://askubuntu.com/questions/181215/too-many-open-files-how-to-find-the-culprit.

Try `ulimit -a` to see what current limits are, and then something
like `ulimit -n 5000` (or a number bigger than the current limit
anyway) to get around this.

ISTR this was an issue recently with alcotest specifically -- @samoht,
was there a proper fix intended for this at some point? (Or is it
really just a very low default ulimit setting on Ubuntu?)

-- 
Richard Mortier
richard.mortier@cl.cam.ac.uk

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Thu Sep 24 16:20:24 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 24 Sep 2015 16:20:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1Zf9Fv-0002WO-3r; Thu, 24 Sep 2015 16:20:23 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <richard.mortier@gmail.com>) id 1Zf9Ft-0002WD-1x
	for mirageos-devel@lists.xenproject.org; Thu, 24 Sep 2015 16:20:21 +0000
Received: from [85.158.139.211] by server-13.bemta-5.messagelabs.com id
	EE/C1-02324-4C224065; Thu, 24 Sep 2015 16:20:20 +0000
X-Env-Sender: richard.mortier@gmail.com
X-Msg-Ref: server-2.tower-206.messagelabs.com!1443111619!14089002!1
X-Originating-IP: [209.85.212.181]
X-SpamReason: No, hits=0.6 required=7.0 tests=MAILTO_TO_SPAM_ADDR, RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 17608 invoked from network); 24 Sep 2015 16:20:19 -0000
Received: from mail-wi0-f181.google.com (HELO mail-wi0-f181.google.com)
	(209.85.212.181)
	by server-2.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
	24 Sep 2015 16:20:19 -0000
Received: by wicfx3 with SMTP id fx3so119973375wic.0
	for <mirageos-devel@lists.xenproject.org>;
	Thu, 24 Sep 2015 09:20:19 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=mime-version:in-reply-to:references:date:message-id:subject:from:to
	:cc:content-type;
	bh=UcwF0FggzB/HkUP0XDqu4wJA1bWRugt5prn4ww9QnZ8=;
	b=hId1wNZW8cI+WzXN+eIpHh9Fy9PzQmc7hNBY2ZinwxD5fhzKCwk5IgP9irl4Wp6lkA
	HnFKtZaKnUNRWs6+f0giicZYxfhJWfdLFx5/Kh0iR0iH9Q7TnPqale4BjLN4GGFgXfqy
	9HCl9615hVmW679SMGEC/R3b9twYPR3VA9oAftgWsord8mHDe7sRAOvK+1xTjxOrtgUo
	bA0lqDTH6c4wT2Vyrub3IsXP04kUFX2RJxzEx6QLML+zKbwlA77yLkLRAUMFtL5IjxeG
	3hksLsAt0p8F+7tGwyChTSB3GNX/PZkOUs4+VNlSJ6xBTKrvu4ph50EFRKPo2dPEPduy
	wzxA==
X-Received: by 10.180.24.102 with SMTP id t6mr11453352wif.83.1443111619445;
	Thu, 24 Sep 2015 09:20:19 -0700 (PDT)
Received: from mail-wi0-f182.google.com (mail-wi0-f182.google.com.
	[209.85.212.182]) by smtp.gmail.com with ESMTPSA id
	ly4sm13036512wjb.4.2015.09.24.09.20.18
	for <mirageos-devel@lists.xenproject.org>
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Thu, 24 Sep 2015 09:20:19 -0700 (PDT)
Received: by wicfx3 with SMTP id fx3so35678345wic.1
	for <mirageos-devel@lists.xenproject.org>;
	Thu, 24 Sep 2015 09:20:17 -0700 (PDT)
MIME-Version: 1.0
X-Received: by 10.180.208.2 with SMTP id ma2mr10458732wic.44.1443111617965;
	Thu, 24 Sep 2015 09:20:17 -0700 (PDT)
Received: by 10.28.130.67 with HTTP; Thu, 24 Sep 2015 09:20:17 -0700 (PDT)
In-Reply-To: <CAAbK42_Zsyy-UYgT2yvtBat9QjaDyk2v-T1tpxYcnyf4pdL1tA@mail.gmail.com>
References: <CAAbK429srd4r7Kp10nPK5vndcZYLoXOsh9W=K_E4mpKVrVpZXA@mail.gmail.com>
	<56009188.1070102@somerandomidiot.com>
	<CAAbK429psAZAncgBwHP4t=hcBB104dY5T+Mefn0ze-SEYz4dDA@mail.gmail.com>
	<EF478C7D-4CF9-41FD-9309-A6602819AE4B@recoil.org>
	<CAAbK429TUAiBS+wRLuBFb3L2P4ymbbAu5e0rQdSn_U74_QtuWg@mail.gmail.com>
	<CAAbK42_Zsyy-UYgT2yvtBat9QjaDyk2v-T1tpxYcnyf4pdL1tA@mail.gmail.com>
Date: Thu, 24 Sep 2015 17:20:17 +0100
Message-ID: <CAN2Hq06nCBU4uR9aBHop=mQHwypZRBScroLWvA6-yfEMxWQCjQ@mail.gmail.com>
From: Richard Mortier <richard.mortier@cl.cam.ac.uk>
To: Lasya Venneti <comethalley61@gmail.com>
Cc: mirageos-devel <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Getting Started
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

Hi;

On 24 September 2015 at 17:09, Lasya Venneti <comethalley61@gmail.com> wrote:
> Dear all,
>
> While following the installation instructions, the 'opam init' command has
> failed with the error :
> Sys_error("/home/lasya/.opam/repo/default/packages/alcotest/alcotest.0.4.1/opam:
> Too many open files")
> I have also attached the screen log to the mail. My laptop is mid 2014
> Lenovo-Y510p with Ubuntu 14.04 64 bit. Can somebody tell me how do I solve
> this and why is this happening? Am I doing something wrong?

Probably a `ulimit` setting, eg.,
http://askubuntu.com/questions/181215/too-many-open-files-how-to-find-the-culprit.

Try `ulimit -a` to see what current limits are, and then something
like `ulimit -n 5000` (or a number bigger than the current limit
anyway) to get around this.

ISTR this was an issue recently with alcotest specifically -- @samoht,
was there a proper fix intended for this at some point? (Or is it
really just a very low default ulimit setting on Ubuntu?)

-- 
Richard Mortier
richard.mortier@cl.cam.ac.uk

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Thu Sep 24 19:19:56 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 24 Sep 2015 19:19:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZfC3X-0001Gp-8e; Thu, 24 Sep 2015 19:19:47 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <russell.pavlicek.xen@gmail.com>)
	id 1ZfC3V-0001GV-I4; Thu, 24 Sep 2015 19:19:45 +0000
Received: from [85.158.137.68] by server-8.bemta-3.messagelabs.com id
	D8/60-31069-0DC44065; Thu, 24 Sep 2015 19:19:44 +0000
X-Env-Sender: russell.pavlicek.xen@gmail.com
X-Msg-Ref: server-3.tower-31.messagelabs.com!1443122382!15430643!1
X-Originating-IP: [209.85.220.181]
X-SpamReason: No, hits=2.1 required=7.0 tests=RCVD_BY_IP,
  SUSPICIOUS_RECIPS
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 10024 invoked from network); 24 Sep 2015 19:19:43 -0000
Received: from mail-qk0-f181.google.com (HELO mail-qk0-f181.google.com)
	(209.85.220.181)
	by server-3.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	24 Sep 2015 19:19:43 -0000
Received: by qkap81 with SMTP id p81so34003668qka.2;
	Thu, 24 Sep 2015 12:19:42 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:sender:date:message-id:subject:from:to:content-type;
	bh=25UNzdZkTCI/37MTU6aR2jWal99sD5yW1Cy/A3bHR40=;
	b=c/dnYo9ntHWPkixfjXFJffrd4MnGpp8rXFqFAC0V1xqVqukVwFgu7Ij85j+8T2CAdS
	Zrvx4vWUu29rAdvLxXHJkF3zCia+xt/6gjLuQgwtEBOMrkQn5g3rxRGaK8oC79LnFUbv
	yiaxzbYilx3sU10ibBNDBI0YbyZ6cP34ZXEWIvt3IdSI0fLBpdoqwwZBN2+WONYqM+Xq
	23wQ2Vzd0LQhL/pnJSoNCmri4bemoO5Dme/z+P7djDp+tGm3DOKvHVkDBaKhZYk1T80m
	A4JO/njSQAg86yXwqMnpK+/nl+DenXnU3N1X7j5WwK2PO1tyeNaFOPoU6uRGMLJD218w
	rtjA==
MIME-Version: 1.0
X-Received: by 10.55.31.213 with SMTP id n82mr1729320qkh.17.1443122382520;
	Thu, 24 Sep 2015 12:19:42 -0700 (PDT)
Received: by 10.55.2.8 with HTTP; Thu, 24 Sep 2015 12:19:42 -0700 (PDT)
Date: Thu, 24 Sep 2015 15:19:42 -0400
X-Google-Sender-Auth: unWwEHBvCD9GtVcSmlSyT-dBiGc
Message-ID: <CAHehzX3mGFZa8k-Gd=fejMWRXhM7JnN9Xj-1-pocgiEOS-TkUw@mail.gmail.com>
From: Russ Pavlicek <russell.pavlicek@xenproject.org>
To: xen-devel <xen-devel@lists.xenproject.org>, xen-users@lists.xenproject.org,
	xs-devel@lists.xenserver.org, xen-api@lists.xen.org, 
	mirageos-devel@lists.xenproject.org
Subject: [MirageOS-devel] Make ready for 4.6! Xen Project Document Day is
	Wednesday, Sept 30
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

Our next Xen Project Document Day is this Wednesday, September 30!

OUR THEME OF THE MONTH: "Ready for 4.6"

This month, we prepare for the release of Xen Project 4.6 early next
month. We need to make sure that users of the new release can find the
documentation they need to make it all work. So, this month, we need
to:

- Add new documentation for new features
- Modify existing documentation for anything which is changing in the
newest release, and
- Deprecate old documentation, letting people know that certain
information is applies only to older releases

Check out the current documentation, and anything which doesn't map to
4.6 (or 4.5, for that matter) commands or best practices will need
improvement.

More detailed information can be found in the TODO document (below).
And, as always, feel free to add any other documentation which you
believe to be necessary.

All the information you need to participate in Document Day is here:

http://wiki.xenproject.org/wiki/Xen_Document_Days

Also take a look at the current TODO list to see other items which
need attention:

http://wiki.xenproject.org/wiki/Xen_Document_Days/TODO

Please think about how you can help out.  If you haven't requested
to be made a Wiki editor, save time and do it now so you are ready to
go on Document Day.  Just fill out the form below:

http://xenproject.org/component/content/article/100-misc/145-request-to-be-made-a-wiki-editor.html

We hope to see you Wednesday in #xendocs!

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Thu Sep 24 19:19:56 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 24 Sep 2015 19:19:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZfC3X-0001Gp-8e; Thu, 24 Sep 2015 19:19:47 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <russell.pavlicek.xen@gmail.com>)
	id 1ZfC3V-0001GV-I4; Thu, 24 Sep 2015 19:19:45 +0000
Received: from [85.158.137.68] by server-8.bemta-3.messagelabs.com id
	D8/60-31069-0DC44065; Thu, 24 Sep 2015 19:19:44 +0000
X-Env-Sender: russell.pavlicek.xen@gmail.com
X-Msg-Ref: server-3.tower-31.messagelabs.com!1443122382!15430643!1
X-Originating-IP: [209.85.220.181]
X-SpamReason: No, hits=2.1 required=7.0 tests=RCVD_BY_IP,
  SUSPICIOUS_RECIPS
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 10024 invoked from network); 24 Sep 2015 19:19:43 -0000
Received: from mail-qk0-f181.google.com (HELO mail-qk0-f181.google.com)
	(209.85.220.181)
	by server-3.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	24 Sep 2015 19:19:43 -0000
Received: by qkap81 with SMTP id p81so34003668qka.2;
	Thu, 24 Sep 2015 12:19:42 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:sender:date:message-id:subject:from:to:content-type;
	bh=25UNzdZkTCI/37MTU6aR2jWal99sD5yW1Cy/A3bHR40=;
	b=c/dnYo9ntHWPkixfjXFJffrd4MnGpp8rXFqFAC0V1xqVqukVwFgu7Ij85j+8T2CAdS
	Zrvx4vWUu29rAdvLxXHJkF3zCia+xt/6gjLuQgwtEBOMrkQn5g3rxRGaK8oC79LnFUbv
	yiaxzbYilx3sU10ibBNDBI0YbyZ6cP34ZXEWIvt3IdSI0fLBpdoqwwZBN2+WONYqM+Xq
	23wQ2Vzd0LQhL/pnJSoNCmri4bemoO5Dme/z+P7djDp+tGm3DOKvHVkDBaKhZYk1T80m
	A4JO/njSQAg86yXwqMnpK+/nl+DenXnU3N1X7j5WwK2PO1tyeNaFOPoU6uRGMLJD218w
	rtjA==
MIME-Version: 1.0
X-Received: by 10.55.31.213 with SMTP id n82mr1729320qkh.17.1443122382520;
	Thu, 24 Sep 2015 12:19:42 -0700 (PDT)
Received: by 10.55.2.8 with HTTP; Thu, 24 Sep 2015 12:19:42 -0700 (PDT)
Date: Thu, 24 Sep 2015 15:19:42 -0400
X-Google-Sender-Auth: unWwEHBvCD9GtVcSmlSyT-dBiGc
Message-ID: <CAHehzX3mGFZa8k-Gd=fejMWRXhM7JnN9Xj-1-pocgiEOS-TkUw@mail.gmail.com>
From: Russ Pavlicek <russell.pavlicek@xenproject.org>
To: xen-devel <xen-devel@lists.xenproject.org>, xen-users@lists.xenproject.org,
	xs-devel@lists.xenserver.org, xen-api@lists.xen.org, 
	mirageos-devel@lists.xenproject.org
Subject: [MirageOS-devel] Make ready for 4.6! Xen Project Document Day is
	Wednesday, Sept 30
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

Our next Xen Project Document Day is this Wednesday, September 30!

OUR THEME OF THE MONTH: "Ready for 4.6"

This month, we prepare for the release of Xen Project 4.6 early next
month. We need to make sure that users of the new release can find the
documentation they need to make it all work. So, this month, we need
to:

- Add new documentation for new features
- Modify existing documentation for anything which is changing in the
newest release, and
- Deprecate old documentation, letting people know that certain
information is applies only to older releases

Check out the current documentation, and anything which doesn't map to
4.6 (or 4.5, for that matter) commands or best practices will need
improvement.

More detailed information can be found in the TODO document (below).
And, as always, feel free to add any other documentation which you
believe to be necessary.

All the information you need to participate in Document Day is here:

http://wiki.xenproject.org/wiki/Xen_Document_Days

Also take a look at the current TODO list to see other items which
need attention:

http://wiki.xenproject.org/wiki/Xen_Document_Days/TODO

Please think about how you can help out.  If you haven't requested
to be made a Wiki editor, save time and do it now so you are ready to
go on Document Day.  Just fill out the form below:

http://xenproject.org/component/content/article/100-misc/145-request-to-be-made-a-wiki-editor.html

We hope to see you Wednesday in #xendocs!

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Thu Sep 24 20:03:38 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 24 Sep 2015 20:03:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZfCjn-0005AZ-TM; Thu, 24 Sep 2015 20:03:27 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <comethalley61@gmail.com>) id 1ZfCjm-0005AU-6X
	for mirageos-devel@lists.xenproject.org; Thu, 24 Sep 2015 20:03:26 +0000
Received: from [85.158.139.211] by server-2.bemta-5.messagelabs.com id
	01/37-31450-D0754065; Thu, 24 Sep 2015 20:03:25 +0000
X-Env-Sender: comethalley61@gmail.com
X-Msg-Ref: server-11.tower-206.messagelabs.com!1443125003!33484147!1
X-Originating-IP: [209.85.213.181]
X-SpamReason: No, hits=2.3 required=7.0 tests=DEAR_SOMETHING,HTML_30_40,
	HTML_MESSAGE,MAILTO_TO_SPAM_ADDR,RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 13046 invoked from network); 24 Sep 2015 20:03:24 -0000
Received: from mail-ig0-f181.google.com (HELO mail-ig0-f181.google.com)
	(209.85.213.181)
	by server-11.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
	24 Sep 2015 20:03:24 -0000
Received: by igxx6 with SMTP id x6so56968900igx.1
	for <mirageos-devel@lists.xenproject.org>;
	Thu, 24 Sep 2015 13:03:23 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:in-reply-to:references:date:message-id:subject:from:to
	:cc:content-type;
	bh=XMcJ13PLgDdJQhLO44w0GhyclycixJ3Eac5HMpuV/5Q=;
	b=Wu0jBeVbHg9F1h1EJdeXMGSVnxoWig8e8jWn9dLgkufKV/QaTA9ke3J+cMHaRLmBr2
	uDFLM1YYsIWi2bSRbRkSlLdaBWWaFZLGlBZPVcP8pRFkM2hwKzXr9BbdBOvnmNypoOaL
	COni0JqDYOfsM8gEtfdv8vlX67wiCaX4N7ocotQaXusbGN24Z5N+ZDkiCwzQB6M1SOZw
	gdUJdByhubbOs/7lzwPHOtiLX2/yKAlih6NFur20/7nTZyqIxgnAiz2sqy8KEELeN4LS
	ECS9d/kFkS6MTX2jHbi3C6hJpD2+Rp1T/LDwrJo0Ofv4QfsP98tre6k5zFozbYpkCFpc
	gvNQ==
MIME-Version: 1.0
X-Received: by 10.50.138.227 with SMTP id qt3mr2850585igb.58.1443125003064;
	Thu, 24 Sep 2015 13:03:23 -0700 (PDT)
Received: by 10.107.180.149 with HTTP; Thu, 24 Sep 2015 13:03:22 -0700 (PDT)
In-Reply-To: <CAN2Hq06nCBU4uR9aBHop=mQHwypZRBScroLWvA6-yfEMxWQCjQ@mail.gmail.com>
References: <CAAbK429srd4r7Kp10nPK5vndcZYLoXOsh9W=K_E4mpKVrVpZXA@mail.gmail.com>
	<56009188.1070102@somerandomidiot.com>
	<CAAbK429psAZAncgBwHP4t=hcBB104dY5T+Mefn0ze-SEYz4dDA@mail.gmail.com>
	<EF478C7D-4CF9-41FD-9309-A6602819AE4B@recoil.org>
	<CAAbK429TUAiBS+wRLuBFb3L2P4ymbbAu5e0rQdSn_U74_QtuWg@mail.gmail.com>
	<CAAbK42_Zsyy-UYgT2yvtBat9QjaDyk2v-T1tpxYcnyf4pdL1tA@mail.gmail.com>
	<CAN2Hq06nCBU4uR9aBHop=mQHwypZRBScroLWvA6-yfEMxWQCjQ@mail.gmail.com>
Date: Fri, 25 Sep 2015 01:33:22 +0530
Message-ID: <CAAbK42_78FuUjfPp8pQEo+D80uLU3PL26DAZ9pZmGAXvMCbdRg@mail.gmail.com>
From: Lasya Venneti <comethalley61@gmail.com>
To: Richard Mortier <richard.mortier@cl.cam.ac.uk>
Cc: mirageos-devel@lists.xenproject.org
Subject: Re: [MirageOS-devel] Getting Started
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============0817221162499531172=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============0817221162499531172==
Content-Type: multipart/alternative; boundary=089e0122a09c2c9ce6052083b936

--089e0122a09c2c9ce6052083b936
Content-Type: text/plain; charset=UTF-8

Dear Sir,

I have tried as per your suggestion but it still doesn't seem to be
working. After this, Even though the installation process says "you need
not be the root user" I sudo-ed most commands and it seemed to be working,
installation seems to be successful from the prompts. (However, typing
'mirage --help' doesn't work yet, says install mirage thought apt-get ).
Can I proceed? Or am I doing something wrong?

Sincerely,
Lasya V

On 24 September 2015 at 21:50, Richard Mortier <richard.mortier@cl.cam.ac.uk
> wrote:, inst

> Hi;
>
> On 24 September 2015 at 17:09, Lasya Venneti <comethalley61@gmail.com>
> wrote:
> > Dear all,
> >
> > While following the installation instructions, the 'opam init' command
> has
> > failed with the error :
> >
> Sys_error("/home/lasya/.opam/repo/default/packages/alcotest/alcotest.0.4.1/opam:
> > Too many open files")
> > I have also attached the screen log to the mail. My laptop is mid 2014
> > Lenovo-Y510p with Ubuntu 14.04 64 bit. Can somebody tell me how do I
> solve
> > this and why is this happening? Am I doing something wrong?
>
> Probably a `ulimit` setting, eg.,
>
> http://askubuntu.com/questions/181215/too-many-open-files-how-to-find-the-culprit
> .
>
> Try `ulimit -a` to see what current limits are, and then something
> like `ulimit -n 5000` (or a number bigger than the current limit
> anyway) to get around this.
>
> ISTR this was an issue recently with alcotest specifically -- @samoht,
> was there a proper fix intended for this at some point? (Or is it
> really just a very low default ulimit setting on Ubuntu?)
>
> --
> Richard Mortier
> richard.mortier@cl.cam.ac.uk
>

--089e0122a09c2c9ce6052083b936
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Dear Sir,=C2=A0<div><br></div><div>I have tried as per you=
r suggestion but it still doesn&#39;t seem to be working. After this, Even =
though the installation process says &quot;you need not be the root user&qu=
ot; I sudo-ed most commands and it seemed to be working, installation seems=
 to be successful from the prompts. (However, typing &#39;mirage --help&#39=
; doesn&#39;t work yet, says install mirage thought apt-get ). Can I procee=
d? Or am I doing something wrong?</div><div><br></div><div>Sincerely,</div>=
<div>Lasya V</div><div class=3D"gmail_extra"><br><div class=3D"gmail_quote"=
>On 24 September 2015 at 21:50, Richard Mortier <span dir=3D"ltr">&lt;<a hr=
ef=3D"mailto:richard.mortier@cl.cam.ac.uk" target=3D"_blank">richard.mortie=
r@cl.cam.ac.uk</a>&gt;</span> wrote:, inst<br><blockquote class=3D"gmail_qu=
ote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex=
">Hi;<br>
<span class=3D""><br>
On 24 September 2015 at 17:09, Lasya Venneti &lt;<a href=3D"mailto:comethal=
ley61@gmail.com">comethalley61@gmail.com</a>&gt; wrote:<br>
&gt; Dear all,<br>
&gt;<br>
&gt; While following the installation instructions, the &#39;opam init&#39;=
 command has<br>
&gt; failed with the error :<br>
&gt; Sys_error(&quot;/home/lasya/.opam/repo/default/packages/alcotest/alcot=
est.0.4.1/opam:<br>
&gt; Too many open files&quot;)<br>
&gt; I have also attached the screen log to the mail. My laptop is mid 2014=
<br>
&gt; Lenovo-Y510p with Ubuntu 14.04 64 bit. Can somebody tell me how do I s=
olve<br>
&gt; this and why is this happening? Am I doing something wrong?<br>
<br>
</span>Probably a `ulimit` setting, eg.,<br>
<a href=3D"http://askubuntu.com/questions/181215/too-many-open-files-how-to=
-find-the-culprit" rel=3D"noreferrer" target=3D"_blank">http://askubuntu.co=
m/questions/181215/too-many-open-files-how-to-find-the-culprit</a>.<br>
<br>
Try `ulimit -a` to see what current limits are, and then something<br>
like `ulimit -n 5000` (or a number bigger than the current limit<br>
anyway) to get around this.<br>
<br>
ISTR this was an issue recently with alcotest specifically -- @samoht,<br>
was there a proper fix intended for this at some point? (Or is it<br>
really just a very low default ulimit setting on Ubuntu?)<br>
<span class=3D"HOEnZb"><font color=3D"#888888"><br>
--<br>
Richard Mortier<br>
<a href=3D"mailto:richard.mortier@cl.cam.ac.uk">richard.mortier@cl.cam.ac.u=
k</a><br>
</font></span></blockquote></div><br></div></div>

--089e0122a09c2c9ce6052083b936--


--===============0817221162499531172==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

--===============0817221162499531172==--


From mirageos-devel-bounces@lists.xenproject.org Thu Sep 24 20:03:38 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 24 Sep 2015 20:03:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZfCjn-0005AZ-TM; Thu, 24 Sep 2015 20:03:27 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <comethalley61@gmail.com>) id 1ZfCjm-0005AU-6X
	for mirageos-devel@lists.xenproject.org; Thu, 24 Sep 2015 20:03:26 +0000
Received: from [85.158.139.211] by server-2.bemta-5.messagelabs.com id
	01/37-31450-D0754065; Thu, 24 Sep 2015 20:03:25 +0000
X-Env-Sender: comethalley61@gmail.com
X-Msg-Ref: server-11.tower-206.messagelabs.com!1443125003!33484147!1
X-Originating-IP: [209.85.213.181]
X-SpamReason: No, hits=2.3 required=7.0 tests=DEAR_SOMETHING,HTML_30_40,
	HTML_MESSAGE,MAILTO_TO_SPAM_ADDR,RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 13046 invoked from network); 24 Sep 2015 20:03:24 -0000
Received: from mail-ig0-f181.google.com (HELO mail-ig0-f181.google.com)
	(209.85.213.181)
	by server-11.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
	24 Sep 2015 20:03:24 -0000
Received: by igxx6 with SMTP id x6so56968900igx.1
	for <mirageos-devel@lists.xenproject.org>;
	Thu, 24 Sep 2015 13:03:23 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:in-reply-to:references:date:message-id:subject:from:to
	:cc:content-type;
	bh=XMcJ13PLgDdJQhLO44w0GhyclycixJ3Eac5HMpuV/5Q=;
	b=Wu0jBeVbHg9F1h1EJdeXMGSVnxoWig8e8jWn9dLgkufKV/QaTA9ke3J+cMHaRLmBr2
	uDFLM1YYsIWi2bSRbRkSlLdaBWWaFZLGlBZPVcP8pRFkM2hwKzXr9BbdBOvnmNypoOaL
	COni0JqDYOfsM8gEtfdv8vlX67wiCaX4N7ocotQaXusbGN24Z5N+ZDkiCwzQB6M1SOZw
	gdUJdByhubbOs/7lzwPHOtiLX2/yKAlih6NFur20/7nTZyqIxgnAiz2sqy8KEELeN4LS
	ECS9d/kFkS6MTX2jHbi3C6hJpD2+Rp1T/LDwrJo0Ofv4QfsP98tre6k5zFozbYpkCFpc
	gvNQ==
MIME-Version: 1.0
X-Received: by 10.50.138.227 with SMTP id qt3mr2850585igb.58.1443125003064;
	Thu, 24 Sep 2015 13:03:23 -0700 (PDT)
Received: by 10.107.180.149 with HTTP; Thu, 24 Sep 2015 13:03:22 -0700 (PDT)
In-Reply-To: <CAN2Hq06nCBU4uR9aBHop=mQHwypZRBScroLWvA6-yfEMxWQCjQ@mail.gmail.com>
References: <CAAbK429srd4r7Kp10nPK5vndcZYLoXOsh9W=K_E4mpKVrVpZXA@mail.gmail.com>
	<56009188.1070102@somerandomidiot.com>
	<CAAbK429psAZAncgBwHP4t=hcBB104dY5T+Mefn0ze-SEYz4dDA@mail.gmail.com>
	<EF478C7D-4CF9-41FD-9309-A6602819AE4B@recoil.org>
	<CAAbK429TUAiBS+wRLuBFb3L2P4ymbbAu5e0rQdSn_U74_QtuWg@mail.gmail.com>
	<CAAbK42_Zsyy-UYgT2yvtBat9QjaDyk2v-T1tpxYcnyf4pdL1tA@mail.gmail.com>
	<CAN2Hq06nCBU4uR9aBHop=mQHwypZRBScroLWvA6-yfEMxWQCjQ@mail.gmail.com>
Date: Fri, 25 Sep 2015 01:33:22 +0530
Message-ID: <CAAbK42_78FuUjfPp8pQEo+D80uLU3PL26DAZ9pZmGAXvMCbdRg@mail.gmail.com>
From: Lasya Venneti <comethalley61@gmail.com>
To: Richard Mortier <richard.mortier@cl.cam.ac.uk>
Cc: mirageos-devel@lists.xenproject.org
Subject: Re: [MirageOS-devel] Getting Started
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============0817221162499531172=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============0817221162499531172==
Content-Type: multipart/alternative; boundary=089e0122a09c2c9ce6052083b936

--089e0122a09c2c9ce6052083b936
Content-Type: text/plain; charset=UTF-8

Dear Sir,

I have tried as per your suggestion but it still doesn't seem to be
working. After this, Even though the installation process says "you need
not be the root user" I sudo-ed most commands and it seemed to be working,
installation seems to be successful from the prompts. (However, typing
'mirage --help' doesn't work yet, says install mirage thought apt-get ).
Can I proceed? Or am I doing something wrong?

Sincerely,
Lasya V

On 24 September 2015 at 21:50, Richard Mortier <richard.mortier@cl.cam.ac.uk
> wrote:, inst

> Hi;
>
> On 24 September 2015 at 17:09, Lasya Venneti <comethalley61@gmail.com>
> wrote:
> > Dear all,
> >
> > While following the installation instructions, the 'opam init' command
> has
> > failed with the error :
> >
> Sys_error("/home/lasya/.opam/repo/default/packages/alcotest/alcotest.0.4.1/opam:
> > Too many open files")
> > I have also attached the screen log to the mail. My laptop is mid 2014
> > Lenovo-Y510p with Ubuntu 14.04 64 bit. Can somebody tell me how do I
> solve
> > this and why is this happening? Am I doing something wrong?
>
> Probably a `ulimit` setting, eg.,
>
> http://askubuntu.com/questions/181215/too-many-open-files-how-to-find-the-culprit
> .
>
> Try `ulimit -a` to see what current limits are, and then something
> like `ulimit -n 5000` (or a number bigger than the current limit
> anyway) to get around this.
>
> ISTR this was an issue recently with alcotest specifically -- @samoht,
> was there a proper fix intended for this at some point? (Or is it
> really just a very low default ulimit setting on Ubuntu?)
>
> --
> Richard Mortier
> richard.mortier@cl.cam.ac.uk
>

--089e0122a09c2c9ce6052083b936
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Dear Sir,=C2=A0<div><br></div><div>I have tried as per you=
r suggestion but it still doesn&#39;t seem to be working. After this, Even =
though the installation process says &quot;you need not be the root user&qu=
ot; I sudo-ed most commands and it seemed to be working, installation seems=
 to be successful from the prompts. (However, typing &#39;mirage --help&#39=
; doesn&#39;t work yet, says install mirage thought apt-get ). Can I procee=
d? Or am I doing something wrong?</div><div><br></div><div>Sincerely,</div>=
<div>Lasya V</div><div class=3D"gmail_extra"><br><div class=3D"gmail_quote"=
>On 24 September 2015 at 21:50, Richard Mortier <span dir=3D"ltr">&lt;<a hr=
ef=3D"mailto:richard.mortier@cl.cam.ac.uk" target=3D"_blank">richard.mortie=
r@cl.cam.ac.uk</a>&gt;</span> wrote:, inst<br><blockquote class=3D"gmail_qu=
ote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex=
">Hi;<br>
<span class=3D""><br>
On 24 September 2015 at 17:09, Lasya Venneti &lt;<a href=3D"mailto:comethal=
ley61@gmail.com">comethalley61@gmail.com</a>&gt; wrote:<br>
&gt; Dear all,<br>
&gt;<br>
&gt; While following the installation instructions, the &#39;opam init&#39;=
 command has<br>
&gt; failed with the error :<br>
&gt; Sys_error(&quot;/home/lasya/.opam/repo/default/packages/alcotest/alcot=
est.0.4.1/opam:<br>
&gt; Too many open files&quot;)<br>
&gt; I have also attached the screen log to the mail. My laptop is mid 2014=
<br>
&gt; Lenovo-Y510p with Ubuntu 14.04 64 bit. Can somebody tell me how do I s=
olve<br>
&gt; this and why is this happening? Am I doing something wrong?<br>
<br>
</span>Probably a `ulimit` setting, eg.,<br>
<a href=3D"http://askubuntu.com/questions/181215/too-many-open-files-how-to=
-find-the-culprit" rel=3D"noreferrer" target=3D"_blank">http://askubuntu.co=
m/questions/181215/too-many-open-files-how-to-find-the-culprit</a>.<br>
<br>
Try `ulimit -a` to see what current limits are, and then something<br>
like `ulimit -n 5000` (or a number bigger than the current limit<br>
anyway) to get around this.<br>
<br>
ISTR this was an issue recently with alcotest specifically -- @samoht,<br>
was there a proper fix intended for this at some point? (Or is it<br>
really just a very low default ulimit setting on Ubuntu?)<br>
<span class=3D"HOEnZb"><font color=3D"#888888"><br>
--<br>
Richard Mortier<br>
<a href=3D"mailto:richard.mortier@cl.cam.ac.uk">richard.mortier@cl.cam.ac.u=
k</a><br>
</font></span></blockquote></div><br></div></div>

--089e0122a09c2c9ce6052083b936--


--===============0817221162499531172==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

--===============0817221162499531172==--


From mirageos-devel-bounces@lists.xenproject.org Thu Sep 24 20:25:22 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 24 Sep 2015 20:25:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZfD4v-0006oY-Hq; Thu, 24 Sep 2015 20:25:17 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <amc79@cam.ac.uk>) id 1ZfD4t-0006oT-QZ
	for mirageos-devel@lists.xenproject.org; Thu, 24 Sep 2015 20:25:16 +0000
Received: from [85.158.139.211] by server-3.bemta-5.messagelabs.com id
	85/FC-06179-B2C54065; Thu, 24 Sep 2015 20:25:15 +0000
X-Env-Sender: amc79@cam.ac.uk
X-Msg-Ref: server-14.tower-206.messagelabs.com!1443126314!32193191!1
X-Originating-IP: [131.111.8.141]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
	VHJ1c3RlZCBJUDogMTMxLjExMS44LjE0MSA9PiAxNTQ4NjI=\n
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 28450 invoked from network); 24 Sep 2015 20:25:14 -0000
Received: from ppsw-41.csi.cam.ac.uk (HELO ppsw-41.csi.cam.ac.uk)
	(131.111.8.141)
	by server-14.tower-206.messagelabs.com with DHE-RSA-AES256-SHA
	encrypted SMTP; 24 Sep 2015 20:25:14 -0000
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: http://www.cam.ac.uk/cs/email/scanner/
Received: from cpc21-cmbg14-2-0-cust311.5-4.cable.virginm.net
	([86.6.27.56]:42450 helo=[10.0.1.5])
	by ppsw-41.csi.cam.ac.uk (smtp.hermes.cam.ac.uk [131.111.8.157]:587)
	with esmtpsa (PLAIN:amc79) (TLSv1:ECDHE-RSA-AES256-SHA:256)
	id 1ZfD4r-0001jw-Qk (Exim 4.86_36-e07b163)
	(return-path <amc79@cam.ac.uk>); Thu, 24 Sep 2015 21:25:13 +0100
Mime-Version: 1.0 (1.0)
From: Amir Chaudhry <amc79@cam.ac.uk>
X-Mailer: iPhone Mail (13B5110e)
In-Reply-To: <CAAbK42_78FuUjfPp8pQEo+D80uLU3PL26DAZ9pZmGAXvMCbdRg@mail.gmail.com>
Date: Thu, 24 Sep 2015 21:25:12 +0100
Message-Id: <F8575118-700C-4ABF-A8F9-3830C3B40042@cam.ac.uk>
References: <CAAbK429srd4r7Kp10nPK5vndcZYLoXOsh9W=K_E4mpKVrVpZXA@mail.gmail.com>
	<56009188.1070102@somerandomidiot.com>
	<CAAbK429psAZAncgBwHP4t=hcBB104dY5T+Mefn0ze-SEYz4dDA@mail.gmail.com>
	<EF478C7D-4CF9-41FD-9309-A6602819AE4B@recoil.org>
	<CAAbK429TUAiBS+wRLuBFb3L2P4ymbbAu5e0rQdSn_U74_QtuWg@mail.gmail.com>
	<CAAbK42_Zsyy-UYgT2yvtBat9QjaDyk2v-T1tpxYcnyf4pdL1tA@mail.gmail.com>
	<CAN2Hq06nCBU4uR9aBHop=mQHwypZRBScroLWvA6-yfEMxWQCjQ@mail.gmail.com>
	<CAAbK42_78FuUjfPp8pQEo+D80uLU3PL26DAZ9pZmGAXvMCbdRg@mail.gmail.com>
To: Lasya Venneti <comethalley61@gmail.com>
Cc: mirageos-devel@lists.xenproject.org
Subject: Re: [MirageOS-devel] Getting Started
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============5203116299110529963=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org


--===============5203116299110529963==
Content-Type: multipart/alternative;
	boundary=Apple-Mail-5994F222-6650-45BC-AA68-A6CF702B90EA
Content-Transfer-Encoding: 7bit


--Apple-Mail-5994F222-6650-45BC-AA68-A6CF702B90EA
Content-Type: text/plain;
	charset=us-ascii
Content-Transfer-Encoding: quoted-printable

=46rom the screen log you attached I see a lot of errors related to using OP=
AM 1.1.1. The current version of OPAM is 1.2.2, I believe.=20

How did you install OPAM?

You mention that it seems to be working so could you tell us what the output=
 of the following is:
opam config report

Also, you shouldn't need to use sudo at any point with OPAM.=20

Best wishes,
Amir

--
Sent via mobile

> On 24 Sep 2015, at 21:03, Lasya Venneti <comethalley61@gmail.com> wrote:
>=20
> Dear Sir,=20
>=20
> I have tried as per your suggestion but it still doesn't seem to be workin=
g. After this, Even though the installation process says "you need not be th=
e root user" I sudo-ed most commands and it seemed to be working, installati=
on seems to be successful from the prompts. (However, typing 'mirage --help'=
 doesn't work yet, says install mirage thought apt-get ). Can I proceed? Or a=
m I doing something wrong?
>=20
> Sincerely,
> Lasya V
>=20
> On 24 September 2015 at 21:50, Richard Mortier <richard.mortier@cl.cam.ac.=
uk> wrote:, inst
>> Hi;
>>=20
>> On 24 September 2015 at 17:09, Lasya Venneti <comethalley61@gmail.com> wr=
ote:
>> > Dear all,
>> >
>> > While following the installation instructions, the 'opam init' command h=
as
>> > failed with the error :
>> > Sys_error("/home/lasya/.opam/repo/default/packages/alcotest/alcotest.0.=
4.1/opam:
>> > Too many open files")
>> > I have also attached the screen log to the mail. My laptop is mid 2014
>> > Lenovo-Y510p with Ubuntu 14.04 64 bit. Can somebody tell me how do I so=
lve
>> > this and why is this happening? Am I doing something wrong?
>>=20
>> Probably a `ulimit` setting, eg.,
>> http://askubuntu.com/questions/181215/too-many-open-files-how-to-find-the=
-culprit.
>>=20
>> Try `ulimit -a` to see what current limits are, and then something
>> like `ulimit -n 5000` (or a number bigger than the current limit
>> anyway) to get around this.
>>=20
>> ISTR this was an issue recently with alcotest specifically -- @samoht,
>> was there a proper fix intended for this at some point? (Or is it
>> really just a very low default ulimit setting on Ubuntu?)
>>=20
>> --
>> Richard Mortier
>> richard.mortier@cl.cam.ac.uk
>=20
> _______________________________________________
> MirageOS-devel mailing list
> MirageOS-devel@lists.xenproject.org
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

--Apple-Mail-5994F222-6650-45BC-AA68-A6CF702B90EA
Content-Type: text/html;
	charset=utf-8
Content-Transfer-Encoding: quoted-printable

<html><head><meta http-equiv=3D"content-type" content=3D"text/html; charset=3D=
utf-8"></head><body dir=3D"auto"><div>=46rom the screen log you attached I s=
ee a lot of errors related to using OPAM 1.1.1. The current version of OPAM i=
s 1.2.2, I believe.&nbsp;</div><div id=3D"AppleMailSignature"><br></div><div=
 id=3D"AppleMailSignature">How did you install OPAM?</div><div id=3D"AppleMa=
ilSignature"><br></div><div id=3D"AppleMailSignature">You mention that it se=
ems to be working so could you tell us what the output of the following is:<=
/div><div id=3D"AppleMailSignature">opam config report</div><div id=3D"Apple=
MailSignature"><br></div><div id=3D"AppleMailSignature">Also, you shouldn't n=
eed to use sudo at any point with OPAM.&nbsp;<br><br>Best wishes,<div>Amir</=
div><div><br></div><div>--</div><div>Sent via mobile</div></div><div><br>On 2=
4 Sep 2015, at 21:03, Lasya Venneti &lt;<a href=3D"mailto:comethalley61@gmai=
l.com">comethalley61@gmail.com</a>&gt; wrote:<br><br></div><blockquote type=3D=
"cite"><div><div dir=3D"ltr">Dear Sir,&nbsp;<div><br></div><div>I have tried=
 as per your suggestion but it still doesn't seem to be working. After this,=
 Even though the installation process says "you need not be the root user" I=
 sudo-ed most commands and it seemed to be working, installation seems to be=
 successful from the prompts. (However, typing 'mirage --help' doesn't work y=
et, says install mirage thought apt-get ). Can I proceed? Or am I doing some=
thing wrong?</div><div><br></div><div>Sincerely,</div><div>Lasya V</div><div=
 class=3D"gmail_extra"><br><div class=3D"gmail_quote">On 24 September 2015 a=
t 21:50, Richard Mortier <span dir=3D"ltr">&lt;<a href=3D"mailto:richard.mor=
tier@cl.cam.ac.uk" target=3D"_blank">richard.mortier@cl.cam.ac.uk</a>&gt;</s=
pan> wrote:, inst<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0=
 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi;<br>
<span class=3D""><br>
On 24 September 2015 at 17:09, Lasya Venneti &lt;<a href=3D"mailto:comethall=
ey61@gmail.com">comethalley61@gmail.com</a>&gt; wrote:<br>
&gt; Dear all,<br>
&gt;<br>
&gt; While following the installation instructions, the 'opam init' command h=
as<br>
&gt; failed with the error :<br>
&gt; Sys_error("/home/lasya/.opam/repo/default/packages/alcotest/alcotest.0.=
4.1/opam:<br>
&gt; Too many open files")<br>
&gt; I have also attached the screen log to the mail. My laptop is mid 2014<=
br>
&gt; Lenovo-Y510p with Ubuntu 14.04 64 bit. Can somebody tell me how do I so=
lve<br>
&gt; this and why is this happening? Am I doing something wrong?<br>
<br>
</span>Probably a `ulimit` setting, eg.,<br>
<a href=3D"http://askubuntu.com/questions/181215/too-many-open-files-how-to-=
find-the-culprit" rel=3D"noreferrer" target=3D"_blank">http://askubuntu.com/=
questions/181215/too-many-open-files-how-to-find-the-culprit</a>.<br>
<br>
Try `ulimit -a` to see what current limits are, and then something<br>
like `ulimit -n 5000` (or a number bigger than the current limit<br>
anyway) to get around this.<br>
<br>
ISTR this was an issue recently with alcotest specifically -- @samoht,<br>
was there a proper fix intended for this at some point? (Or is it<br>
really just a very low default ulimit setting on Ubuntu?)<br>
<span class=3D"HOEnZb"><font color=3D"#888888"><br>
--<br>
Richard Mortier<br>
<a href=3D"mailto:richard.mortier@cl.cam.ac.uk">richard.mortier@cl.cam.ac.uk=
</a><br>
</font></span></blockquote></div><br></div></div>
</div></blockquote><blockquote type=3D"cite"><div><span>____________________=
___________________________</span><br><span>MirageOS-devel mailing list</spa=
n><br><span><a href=3D"mailto:MirageOS-devel@lists.xenproject.org">MirageOS-=
devel@lists.xenproject.org</a></span><br><span><a href=3D"http://lists.xenpr=
oject.org/cgi-bin/mailman/listinfo/mirageos-devel">http://lists.xenproject.o=
rg/cgi-bin/mailman/listinfo/mirageos-devel</a></span><br></div></blockquote>=
</body></html>=

--Apple-Mail-5994F222-6650-45BC-AA68-A6CF702B90EA--


--===============5203116299110529963==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

--===============5203116299110529963==--


From mirageos-devel-bounces@lists.xenproject.org Thu Sep 24 20:25:22 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 24 Sep 2015 20:25:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZfD4v-0006oY-Hq; Thu, 24 Sep 2015 20:25:17 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <amc79@cam.ac.uk>) id 1ZfD4t-0006oT-QZ
	for mirageos-devel@lists.xenproject.org; Thu, 24 Sep 2015 20:25:16 +0000
Received: from [85.158.139.211] by server-3.bemta-5.messagelabs.com id
	85/FC-06179-B2C54065; Thu, 24 Sep 2015 20:25:15 +0000
X-Env-Sender: amc79@cam.ac.uk
X-Msg-Ref: server-14.tower-206.messagelabs.com!1443126314!32193191!1
X-Originating-IP: [131.111.8.141]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
	VHJ1c3RlZCBJUDogMTMxLjExMS44LjE0MSA9PiAxNTQ4NjI=\n
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 28450 invoked from network); 24 Sep 2015 20:25:14 -0000
Received: from ppsw-41.csi.cam.ac.uk (HELO ppsw-41.csi.cam.ac.uk)
	(131.111.8.141)
	by server-14.tower-206.messagelabs.com with DHE-RSA-AES256-SHA
	encrypted SMTP; 24 Sep 2015 20:25:14 -0000
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: http://www.cam.ac.uk/cs/email/scanner/
Received: from cpc21-cmbg14-2-0-cust311.5-4.cable.virginm.net
	([86.6.27.56]:42450 helo=[10.0.1.5])
	by ppsw-41.csi.cam.ac.uk (smtp.hermes.cam.ac.uk [131.111.8.157]:587)
	with esmtpsa (PLAIN:amc79) (TLSv1:ECDHE-RSA-AES256-SHA:256)
	id 1ZfD4r-0001jw-Qk (Exim 4.86_36-e07b163)
	(return-path <amc79@cam.ac.uk>); Thu, 24 Sep 2015 21:25:13 +0100
Mime-Version: 1.0 (1.0)
From: Amir Chaudhry <amc79@cam.ac.uk>
X-Mailer: iPhone Mail (13B5110e)
In-Reply-To: <CAAbK42_78FuUjfPp8pQEo+D80uLU3PL26DAZ9pZmGAXvMCbdRg@mail.gmail.com>
Date: Thu, 24 Sep 2015 21:25:12 +0100
Message-Id: <F8575118-700C-4ABF-A8F9-3830C3B40042@cam.ac.uk>
References: <CAAbK429srd4r7Kp10nPK5vndcZYLoXOsh9W=K_E4mpKVrVpZXA@mail.gmail.com>
	<56009188.1070102@somerandomidiot.com>
	<CAAbK429psAZAncgBwHP4t=hcBB104dY5T+Mefn0ze-SEYz4dDA@mail.gmail.com>
	<EF478C7D-4CF9-41FD-9309-A6602819AE4B@recoil.org>
	<CAAbK429TUAiBS+wRLuBFb3L2P4ymbbAu5e0rQdSn_U74_QtuWg@mail.gmail.com>
	<CAAbK42_Zsyy-UYgT2yvtBat9QjaDyk2v-T1tpxYcnyf4pdL1tA@mail.gmail.com>
	<CAN2Hq06nCBU4uR9aBHop=mQHwypZRBScroLWvA6-yfEMxWQCjQ@mail.gmail.com>
	<CAAbK42_78FuUjfPp8pQEo+D80uLU3PL26DAZ9pZmGAXvMCbdRg@mail.gmail.com>
To: Lasya Venneti <comethalley61@gmail.com>
Cc: mirageos-devel@lists.xenproject.org
Subject: Re: [MirageOS-devel] Getting Started
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============5203116299110529963=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org


--===============5203116299110529963==
Content-Type: multipart/alternative;
	boundary=Apple-Mail-5994F222-6650-45BC-AA68-A6CF702B90EA
Content-Transfer-Encoding: 7bit


--Apple-Mail-5994F222-6650-45BC-AA68-A6CF702B90EA
Content-Type: text/plain;
	charset=us-ascii
Content-Transfer-Encoding: quoted-printable

=46rom the screen log you attached I see a lot of errors related to using OP=
AM 1.1.1. The current version of OPAM is 1.2.2, I believe.=20

How did you install OPAM?

You mention that it seems to be working so could you tell us what the output=
 of the following is:
opam config report

Also, you shouldn't need to use sudo at any point with OPAM.=20

Best wishes,
Amir

--
Sent via mobile

> On 24 Sep 2015, at 21:03, Lasya Venneti <comethalley61@gmail.com> wrote:
>=20
> Dear Sir,=20
>=20
> I have tried as per your suggestion but it still doesn't seem to be workin=
g. After this, Even though the installation process says "you need not be th=
e root user" I sudo-ed most commands and it seemed to be working, installati=
on seems to be successful from the prompts. (However, typing 'mirage --help'=
 doesn't work yet, says install mirage thought apt-get ). Can I proceed? Or a=
m I doing something wrong?
>=20
> Sincerely,
> Lasya V
>=20
> On 24 September 2015 at 21:50, Richard Mortier <richard.mortier@cl.cam.ac.=
uk> wrote:, inst
>> Hi;
>>=20
>> On 24 September 2015 at 17:09, Lasya Venneti <comethalley61@gmail.com> wr=
ote:
>> > Dear all,
>> >
>> > While following the installation instructions, the 'opam init' command h=
as
>> > failed with the error :
>> > Sys_error("/home/lasya/.opam/repo/default/packages/alcotest/alcotest.0.=
4.1/opam:
>> > Too many open files")
>> > I have also attached the screen log to the mail. My laptop is mid 2014
>> > Lenovo-Y510p with Ubuntu 14.04 64 bit. Can somebody tell me how do I so=
lve
>> > this and why is this happening? Am I doing something wrong?
>>=20
>> Probably a `ulimit` setting, eg.,
>> http://askubuntu.com/questions/181215/too-many-open-files-how-to-find-the=
-culprit.
>>=20
>> Try `ulimit -a` to see what current limits are, and then something
>> like `ulimit -n 5000` (or a number bigger than the current limit
>> anyway) to get around this.
>>=20
>> ISTR this was an issue recently with alcotest specifically -- @samoht,
>> was there a proper fix intended for this at some point? (Or is it
>> really just a very low default ulimit setting on Ubuntu?)
>>=20
>> --
>> Richard Mortier
>> richard.mortier@cl.cam.ac.uk
>=20
> _______________________________________________
> MirageOS-devel mailing list
> MirageOS-devel@lists.xenproject.org
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

--Apple-Mail-5994F222-6650-45BC-AA68-A6CF702B90EA
Content-Type: text/html;
	charset=utf-8
Content-Transfer-Encoding: quoted-printable

<html><head><meta http-equiv=3D"content-type" content=3D"text/html; charset=3D=
utf-8"></head><body dir=3D"auto"><div>=46rom the screen log you attached I s=
ee a lot of errors related to using OPAM 1.1.1. The current version of OPAM i=
s 1.2.2, I believe.&nbsp;</div><div id=3D"AppleMailSignature"><br></div><div=
 id=3D"AppleMailSignature">How did you install OPAM?</div><div id=3D"AppleMa=
ilSignature"><br></div><div id=3D"AppleMailSignature">You mention that it se=
ems to be working so could you tell us what the output of the following is:<=
/div><div id=3D"AppleMailSignature">opam config report</div><div id=3D"Apple=
MailSignature"><br></div><div id=3D"AppleMailSignature">Also, you shouldn't n=
eed to use sudo at any point with OPAM.&nbsp;<br><br>Best wishes,<div>Amir</=
div><div><br></div><div>--</div><div>Sent via mobile</div></div><div><br>On 2=
4 Sep 2015, at 21:03, Lasya Venneti &lt;<a href=3D"mailto:comethalley61@gmai=
l.com">comethalley61@gmail.com</a>&gt; wrote:<br><br></div><blockquote type=3D=
"cite"><div><div dir=3D"ltr">Dear Sir,&nbsp;<div><br></div><div>I have tried=
 as per your suggestion but it still doesn't seem to be working. After this,=
 Even though the installation process says "you need not be the root user" I=
 sudo-ed most commands and it seemed to be working, installation seems to be=
 successful from the prompts. (However, typing 'mirage --help' doesn't work y=
et, says install mirage thought apt-get ). Can I proceed? Or am I doing some=
thing wrong?</div><div><br></div><div>Sincerely,</div><div>Lasya V</div><div=
 class=3D"gmail_extra"><br><div class=3D"gmail_quote">On 24 September 2015 a=
t 21:50, Richard Mortier <span dir=3D"ltr">&lt;<a href=3D"mailto:richard.mor=
tier@cl.cam.ac.uk" target=3D"_blank">richard.mortier@cl.cam.ac.uk</a>&gt;</s=
pan> wrote:, inst<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0=
 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi;<br>
<span class=3D""><br>
On 24 September 2015 at 17:09, Lasya Venneti &lt;<a href=3D"mailto:comethall=
ey61@gmail.com">comethalley61@gmail.com</a>&gt; wrote:<br>
&gt; Dear all,<br>
&gt;<br>
&gt; While following the installation instructions, the 'opam init' command h=
as<br>
&gt; failed with the error :<br>
&gt; Sys_error("/home/lasya/.opam/repo/default/packages/alcotest/alcotest.0.=
4.1/opam:<br>
&gt; Too many open files")<br>
&gt; I have also attached the screen log to the mail. My laptop is mid 2014<=
br>
&gt; Lenovo-Y510p with Ubuntu 14.04 64 bit. Can somebody tell me how do I so=
lve<br>
&gt; this and why is this happening? Am I doing something wrong?<br>
<br>
</span>Probably a `ulimit` setting, eg.,<br>
<a href=3D"http://askubuntu.com/questions/181215/too-many-open-files-how-to-=
find-the-culprit" rel=3D"noreferrer" target=3D"_blank">http://askubuntu.com/=
questions/181215/too-many-open-files-how-to-find-the-culprit</a>.<br>
<br>
Try `ulimit -a` to see what current limits are, and then something<br>
like `ulimit -n 5000` (or a number bigger than the current limit<br>
anyway) to get around this.<br>
<br>
ISTR this was an issue recently with alcotest specifically -- @samoht,<br>
was there a proper fix intended for this at some point? (Or is it<br>
really just a very low default ulimit setting on Ubuntu?)<br>
<span class=3D"HOEnZb"><font color=3D"#888888"><br>
--<br>
Richard Mortier<br>
<a href=3D"mailto:richard.mortier@cl.cam.ac.uk">richard.mortier@cl.cam.ac.uk=
</a><br>
</font></span></blockquote></div><br></div></div>
</div></blockquote><blockquote type=3D"cite"><div><span>____________________=
___________________________</span><br><span>MirageOS-devel mailing list</spa=
n><br><span><a href=3D"mailto:MirageOS-devel@lists.xenproject.org">MirageOS-=
devel@lists.xenproject.org</a></span><br><span><a href=3D"http://lists.xenpr=
oject.org/cgi-bin/mailman/listinfo/mirageos-devel">http://lists.xenproject.o=
rg/cgi-bin/mailman/listinfo/mirageos-devel</a></span><br></div></blockquote>=
</body></html>=

--Apple-Mail-5994F222-6650-45BC-AA68-A6CF702B90EA--


--===============5203116299110529963==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

--===============5203116299110529963==--


From mirageos-devel-bounces@lists.xenproject.org Thu Sep 24 21:22:16 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 24 Sep 2015 21:22:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZfDxy-0003Nt-8P; Thu, 24 Sep 2015 21:22:10 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <comethalley61@gmail.com>) id 1ZfDxv-0003Nn-U7
	for mirageos-devel@lists.xenproject.org; Thu, 24 Sep 2015 21:22:08 +0000
Received: from [85.158.137.68] by server-9.bemta-3.messagelabs.com id
	BA/51-10678-F7964065; Thu, 24 Sep 2015 21:22:07 +0000
X-Env-Sender: comethalley61@gmail.com
X-Msg-Ref: server-14.tower-31.messagelabs.com!1443129722!45005766!1
X-Originating-IP: [209.85.213.178]
X-SpamReason: No, hits=2.8 required=7.0 tests=DEAR_SOMETHING,HTML_40_50,
	HTML_MESSAGE,MAILTO_TO_SPAM_ADDR,RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 8345 invoked from network); 24 Sep 2015 21:22:03 -0000
Received: from mail-ig0-f178.google.com (HELO mail-ig0-f178.google.com)
	(209.85.213.178)
	by server-14.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	24 Sep 2015 21:22:03 -0000
Received: by igcpb10 with SMTP id pb10so25069091igc.1
	for <mirageos-devel@lists.xenproject.org>;
	Thu, 24 Sep 2015 14:22:02 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:in-reply-to:references:date:message-id:subject:from:to
	:cc:content-type;
	bh=jdiMcEjet5LR0sJ1/gwjHFczUVZJrByvQT4Bs12g3wk=;
	b=oZDnPYsBLdiQYbq96YXNsK9xVHEfvMK7sCTU1Zl+ujcDfzckXOKBdjo0G9EyP5cO+x
	kvpo9GEFDVsTHZgvbc3L2S3KqBEunDrVJQ0f+YS8BJLacQTjqWDLGIo6oKSpGTMv2NNE
	SUAEjrBU7+r+RPY9mftLKnWJKVq2vdjhvph5OfE9DRXBpLaOVftvFJz+CWr++I5YcmcV
	G968QXBZ/PhpT8KsQzdffn6rP6nbJ2RNBn8zbh8PKt1vzPrIadbQZrlThK3KZ45M4dWi
	wIRWTzbMNbuGIpO1o9j2k3cFMPgIkwPV9xwZDYzX6kYoT94ypwVQHquxj6dFGgLqKffO
	mLDA==
MIME-Version: 1.0
X-Received: by 10.50.92.38 with SMTP id cj6mr33125520igb.58.1443129722323;
	Thu, 24 Sep 2015 14:22:02 -0700 (PDT)
Received: by 10.107.180.149 with HTTP; Thu, 24 Sep 2015 14:22:02 -0700 (PDT)
In-Reply-To: <F8575118-700C-4ABF-A8F9-3830C3B40042@cam.ac.uk>
References: <CAAbK429srd4r7Kp10nPK5vndcZYLoXOsh9W=K_E4mpKVrVpZXA@mail.gmail.com>
	<56009188.1070102@somerandomidiot.com>
	<CAAbK429psAZAncgBwHP4t=hcBB104dY5T+Mefn0ze-SEYz4dDA@mail.gmail.com>
	<EF478C7D-4CF9-41FD-9309-A6602819AE4B@recoil.org>
	<CAAbK429TUAiBS+wRLuBFb3L2P4ymbbAu5e0rQdSn_U74_QtuWg@mail.gmail.com>
	<CAAbK42_Zsyy-UYgT2yvtBat9QjaDyk2v-T1tpxYcnyf4pdL1tA@mail.gmail.com>
	<CAN2Hq06nCBU4uR9aBHop=mQHwypZRBScroLWvA6-yfEMxWQCjQ@mail.gmail.com>
	<CAAbK42_78FuUjfPp8pQEo+D80uLU3PL26DAZ9pZmGAXvMCbdRg@mail.gmail.com>
	<F8575118-700C-4ABF-A8F9-3830C3B40042@cam.ac.uk>
Date: Fri, 25 Sep 2015 02:52:02 +0530
Message-ID: <CAAbK42-T79VE1jaHL+xN34oPROcSApPKwh2V9pC=Nb85wiQQ=g@mail.gmail.com>
From: Lasya Venneti <comethalley61@gmail.com>
To: Amir Chaudhry <amc79@cam.ac.uk>
Cc: mirageos-devel@lists.xenproject.org
Subject: Re: [MirageOS-devel] Getting Started
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============3633054919139903948=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============3633054919139903948==
Content-Type: multipart/alternative; boundary=047d7b10c81376ca49052084d2a8

--047d7b10c81376ca49052084d2a8
Content-Type: text/plain; charset=UTF-8

Dear Sir,

I removed opam & deleted my .opam folder, and re-installed it , this time
version 1.2.2. This time all the opam commands worked without sudo and
looks like the installation was right! The last two lines for *opam install
mirage* say "installed mirage.2.6.1
Done."


*opam config report *  outputs:

# OPAM config report
# opam-version    1.2.2
# self-upgrade    no
# os              linux
# external-solver aspcud $in $out $criteria
# criteria        -removed,-notuptodate,-changed
# jobs            4
# repositories    1* (http)
# pinned          0
# current-switch  4.01.0
# last-update     2015-09-24 21:01

but mirage --help still doesn't seem to work. Returns ' The program
'mirage' is currently not installed. You can install it by typing:
sudo apt-get install mirage'


Sincerely,
Lasya V


On 25 September 2015 at 01:55, Amir Chaudhry <amc79@cam.ac.uk> wrote:

> From the screen log you attached I see a lot of errors related to using
> OPAM 1.1.1. The current version of OPAM is 1.2.2, I believe.
>
> How did you install OPAM?
>
> You mention that it seems to be working so could you tell us what the
> output of the following is:
> opam config report
>
> Also, you shouldn't need to use sudo at any point with OPAM.
>
> Best wishes,
> Amir
>
> --
> Sent via mobile
>
> On 24 Sep 2015, at 21:03, Lasya Venneti <comethalley61@gmail.com> wrote:
>
> Dear Sir,
>
> I have tried as per your suggestion but it still doesn't seem to be
> working. After this, Even though the installation process says "you need
> not be the root user" I sudo-ed most commands and it seemed to be working,
> installation seems to be successful from the prompts. (However, typing
> 'mirage --help' doesn't work yet, says install mirage thought apt-get ).
> Can I proceed? Or am I doing something wrong?
>
> Sincerely,
> Lasya V
>
> On 24 September 2015 at 21:50, Richard Mortier <
> richard.mortier@cl.cam.ac.uk> wrote:, inst
>
>> Hi;
>>
>> On 24 September 2015 at 17:09, Lasya Venneti <comethalley61@gmail.com>
>> wrote:
>> > Dear all,
>> >
>> > While following the installation instructions, the 'opam init' command
>> has
>> > failed with the error :
>> >
>> Sys_error("/home/lasya/.opam/repo/default/packages/alcotest/alcotest.0.4.1/opam:
>> > Too many open files")
>> > I have also attached the screen log to the mail. My laptop is mid 2014
>> > Lenovo-Y510p with Ubuntu 14.04 64 bit. Can somebody tell me how do I
>> solve
>> > this and why is this happening? Am I doing something wrong?
>>
>> Probably a `ulimit` setting, eg.,
>>
>> http://askubuntu.com/questions/181215/too-many-open-files-how-to-find-the-culprit
>> .
>>
>> Try `ulimit -a` to see what current limits are, and then something
>> like `ulimit -n 5000` (or a number bigger than the current limit
>> anyway) to get around this.
>>
>> ISTR this was an issue recently with alcotest specifically -- @samoht,
>> was there a proper fix intended for this at some point? (Or is it
>> really just a very low default ulimit setting on Ubuntu?)
>>
>> --
>> Richard Mortier
>> richard.mortier@cl.cam.ac.uk
>>
>
> _______________________________________________
> MirageOS-devel mailing list
> MirageOS-devel@lists.xenproject.org
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
>
>

--047d7b10c81376ca49052084d2a8
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Dear Sir,<div><br></div><div>I removed opam &amp; deleted =
my .opam folder, and re-installed it , this time version 1.2.2. This time a=
ll the opam commands worked without sudo and looks like the installation wa=
s right! The last two lines for <i>opam install mirage</i> say &quot;instal=
led mirage.2.6.1</div><div>Done.&quot;</div><div><br></div><div><br></div><=
div><i>opam config report </i>=C2=A0 outputs:</div><div><br></div><div><div=
># OPAM config report</div><div># opam-version =C2=A0 =C2=A01.2.2=C2=A0</di=
v><div># self-upgrade =C2=A0 =C2=A0no</div><div># os =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0linux</div><div># external-solver aspcud $in $ou=
t $criteria</div><div># criteria =C2=A0 =C2=A0 =C2=A0 =C2=A0-removed,-notup=
todate,-changed</div><div># jobs =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A04=
</div><div># repositories =C2=A0 =C2=A01* (http)</div><div># pinned =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A00</div><div># current-switch =C2=A04.01.0</div><=
div># last-update =C2=A0 =C2=A0 2015-09-24 21:01</div></div><div><br></div>=
<div>but mirage --help still doesn&#39;t seem to work. Returns &#39; The pr=
ogram &#39;mirage&#39; is currently not installed. You can install it by ty=
ping:</div><div>sudo apt-get install mirage&#39;</div><div><br></div><div><=
br></div><div>Sincerely,</div><div>Lasya V=C2=A0</div><div><br></div></div>=
<div class=3D"gmail_extra"><br><div class=3D"gmail_quote">On 25 September 2=
015 at 01:55, Amir Chaudhry <span dir=3D"ltr">&lt;<a href=3D"mailto:amc79@c=
am.ac.uk" target=3D"_blank">amc79@cam.ac.uk</a>&gt;</span> wrote:<br><block=
quote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc=
 solid;padding-left:1ex"><div dir=3D"auto"><div>From the screen log you att=
ached I see a lot of errors related to using OPAM 1.1.1. The current versio=
n of OPAM is 1.2.2, I believe.=C2=A0</div><div><br></div><div>How did you i=
nstall OPAM?</div><div><br></div><div>You mention that it seems to be worki=
ng so could you tell us what the output of the following is:</div><div>opam=
 config report</div><div><br></div><div>Also, you shouldn&#39;t need to use=
 sudo at any point with OPAM.=C2=A0<br><br>Best wishes,<div>Amir</div><div>=
<br></div><div>--</div><div>Sent via mobile</div></div><div><div class=3D"h=
5"><div><br>On 24 Sep 2015, at 21:03, Lasya Venneti &lt;<a href=3D"mailto:c=
omethalley61@gmail.com" target=3D"_blank">comethalley61@gmail.com</a>&gt; w=
rote:<br><br></div><blockquote type=3D"cite"><div><div dir=3D"ltr">Dear Sir=
,=C2=A0<div><br></div><div>I have tried as per your suggestion but it still=
 doesn&#39;t seem to be working. After this, Even though the installation p=
rocess says &quot;you need not be the root user&quot; I sudo-ed most comman=
ds and it seemed to be working, installation seems to be successful from th=
e prompts. (However, typing &#39;mirage --help&#39; doesn&#39;t work yet, s=
ays install mirage thought apt-get ). Can I proceed? Or am I doing somethin=
g wrong?</div><div><br></div><div>Sincerely,</div><div>Lasya V</div><div cl=
ass=3D"gmail_extra"><br><div class=3D"gmail_quote">On 24 September 2015 at =
21:50, Richard Mortier <span dir=3D"ltr">&lt;<a href=3D"mailto:richard.mort=
ier@cl.cam.ac.uk" target=3D"_blank">richard.mortier@cl.cam.ac.uk</a>&gt;</s=
pan> wrote:, inst<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 =
0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi;<br>
<span><br>
On 24 September 2015 at 17:09, Lasya Venneti &lt;<a href=3D"mailto:comethal=
ley61@gmail.com" target=3D"_blank">comethalley61@gmail.com</a>&gt; wrote:<b=
r>
&gt; Dear all,<br>
&gt;<br>
&gt; While following the installation instructions, the &#39;opam init&#39;=
 command has<br>
&gt; failed with the error :<br>
&gt; Sys_error(&quot;/home/lasya/.opam/repo/default/packages/alcotest/alcot=
est.0.4.1/opam:<br>
&gt; Too many open files&quot;)<br>
&gt; I have also attached the screen log to the mail. My laptop is mid 2014=
<br>
&gt; Lenovo-Y510p with Ubuntu 14.04 64 bit. Can somebody tell me how do I s=
olve<br>
&gt; this and why is this happening? Am I doing something wrong?<br>
<br>
</span>Probably a `ulimit` setting, eg.,<br>
<a href=3D"http://askubuntu.com/questions/181215/too-many-open-files-how-to=
-find-the-culprit" rel=3D"noreferrer" target=3D"_blank">http://askubuntu.co=
m/questions/181215/too-many-open-files-how-to-find-the-culprit</a>.<br>
<br>
Try `ulimit -a` to see what current limits are, and then something<br>
like `ulimit -n 5000` (or a number bigger than the current limit<br>
anyway) to get around this.<br>
<br>
ISTR this was an issue recently with alcotest specifically -- @samoht,<br>
was there a proper fix intended for this at some point? (Or is it<br>
really just a very low default ulimit setting on Ubuntu?)<br>
<span><font color=3D"#888888"><br>
--<br>
Richard Mortier<br>
<a href=3D"mailto:richard.mortier@cl.cam.ac.uk" target=3D"_blank">richard.m=
ortier@cl.cam.ac.uk</a><br>
</font></span></blockquote></div><br></div></div>
</div></blockquote></div></div><span class=3D""><blockquote type=3D"cite"><=
div><span>_______________________________________________</span><br><span>M=
irageOS-devel mailing list</span><br><span><a href=3D"mailto:MirageOS-devel=
@lists.xenproject.org" target=3D"_blank">MirageOS-devel@lists.xenproject.or=
g</a></span><br><span><a href=3D"http://lists.xenproject.org/cgi-bin/mailma=
n/listinfo/mirageos-devel" target=3D"_blank">http://lists.xenproject.org/cg=
i-bin/mailman/listinfo/mirageos-devel</a></span><br></div></blockquote></sp=
an></div></blockquote></div><br></div>

--047d7b10c81376ca49052084d2a8--


--===============3633054919139903948==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

--===============3633054919139903948==--


From mirageos-devel-bounces@lists.xenproject.org Thu Sep 24 21:22:16 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 24 Sep 2015 21:22:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZfDxy-0003Nt-8P; Thu, 24 Sep 2015 21:22:10 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <comethalley61@gmail.com>) id 1ZfDxv-0003Nn-U7
	for mirageos-devel@lists.xenproject.org; Thu, 24 Sep 2015 21:22:08 +0000
Received: from [85.158.137.68] by server-9.bemta-3.messagelabs.com id
	BA/51-10678-F7964065; Thu, 24 Sep 2015 21:22:07 +0000
X-Env-Sender: comethalley61@gmail.com
X-Msg-Ref: server-14.tower-31.messagelabs.com!1443129722!45005766!1
X-Originating-IP: [209.85.213.178]
X-SpamReason: No, hits=2.8 required=7.0 tests=DEAR_SOMETHING,HTML_40_50,
	HTML_MESSAGE,MAILTO_TO_SPAM_ADDR,RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 8345 invoked from network); 24 Sep 2015 21:22:03 -0000
Received: from mail-ig0-f178.google.com (HELO mail-ig0-f178.google.com)
	(209.85.213.178)
	by server-14.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	24 Sep 2015 21:22:03 -0000
Received: by igcpb10 with SMTP id pb10so25069091igc.1
	for <mirageos-devel@lists.xenproject.org>;
	Thu, 24 Sep 2015 14:22:02 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:in-reply-to:references:date:message-id:subject:from:to
	:cc:content-type;
	bh=jdiMcEjet5LR0sJ1/gwjHFczUVZJrByvQT4Bs12g3wk=;
	b=oZDnPYsBLdiQYbq96YXNsK9xVHEfvMK7sCTU1Zl+ujcDfzckXOKBdjo0G9EyP5cO+x
	kvpo9GEFDVsTHZgvbc3L2S3KqBEunDrVJQ0f+YS8BJLacQTjqWDLGIo6oKSpGTMv2NNE
	SUAEjrBU7+r+RPY9mftLKnWJKVq2vdjhvph5OfE9DRXBpLaOVftvFJz+CWr++I5YcmcV
	G968QXBZ/PhpT8KsQzdffn6rP6nbJ2RNBn8zbh8PKt1vzPrIadbQZrlThK3KZ45M4dWi
	wIRWTzbMNbuGIpO1o9j2k3cFMPgIkwPV9xwZDYzX6kYoT94ypwVQHquxj6dFGgLqKffO
	mLDA==
MIME-Version: 1.0
X-Received: by 10.50.92.38 with SMTP id cj6mr33125520igb.58.1443129722323;
	Thu, 24 Sep 2015 14:22:02 -0700 (PDT)
Received: by 10.107.180.149 with HTTP; Thu, 24 Sep 2015 14:22:02 -0700 (PDT)
In-Reply-To: <F8575118-700C-4ABF-A8F9-3830C3B40042@cam.ac.uk>
References: <CAAbK429srd4r7Kp10nPK5vndcZYLoXOsh9W=K_E4mpKVrVpZXA@mail.gmail.com>
	<56009188.1070102@somerandomidiot.com>
	<CAAbK429psAZAncgBwHP4t=hcBB104dY5T+Mefn0ze-SEYz4dDA@mail.gmail.com>
	<EF478C7D-4CF9-41FD-9309-A6602819AE4B@recoil.org>
	<CAAbK429TUAiBS+wRLuBFb3L2P4ymbbAu5e0rQdSn_U74_QtuWg@mail.gmail.com>
	<CAAbK42_Zsyy-UYgT2yvtBat9QjaDyk2v-T1tpxYcnyf4pdL1tA@mail.gmail.com>
	<CAN2Hq06nCBU4uR9aBHop=mQHwypZRBScroLWvA6-yfEMxWQCjQ@mail.gmail.com>
	<CAAbK42_78FuUjfPp8pQEo+D80uLU3PL26DAZ9pZmGAXvMCbdRg@mail.gmail.com>
	<F8575118-700C-4ABF-A8F9-3830C3B40042@cam.ac.uk>
Date: Fri, 25 Sep 2015 02:52:02 +0530
Message-ID: <CAAbK42-T79VE1jaHL+xN34oPROcSApPKwh2V9pC=Nb85wiQQ=g@mail.gmail.com>
From: Lasya Venneti <comethalley61@gmail.com>
To: Amir Chaudhry <amc79@cam.ac.uk>
Cc: mirageos-devel@lists.xenproject.org
Subject: Re: [MirageOS-devel] Getting Started
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============3633054919139903948=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============3633054919139903948==
Content-Type: multipart/alternative; boundary=047d7b10c81376ca49052084d2a8

--047d7b10c81376ca49052084d2a8
Content-Type: text/plain; charset=UTF-8

Dear Sir,

I removed opam & deleted my .opam folder, and re-installed it , this time
version 1.2.2. This time all the opam commands worked without sudo and
looks like the installation was right! The last two lines for *opam install
mirage* say "installed mirage.2.6.1
Done."


*opam config report *  outputs:

# OPAM config report
# opam-version    1.2.2
# self-upgrade    no
# os              linux
# external-solver aspcud $in $out $criteria
# criteria        -removed,-notuptodate,-changed
# jobs            4
# repositories    1* (http)
# pinned          0
# current-switch  4.01.0
# last-update     2015-09-24 21:01

but mirage --help still doesn't seem to work. Returns ' The program
'mirage' is currently not installed. You can install it by typing:
sudo apt-get install mirage'


Sincerely,
Lasya V


On 25 September 2015 at 01:55, Amir Chaudhry <amc79@cam.ac.uk> wrote:

> From the screen log you attached I see a lot of errors related to using
> OPAM 1.1.1. The current version of OPAM is 1.2.2, I believe.
>
> How did you install OPAM?
>
> You mention that it seems to be working so could you tell us what the
> output of the following is:
> opam config report
>
> Also, you shouldn't need to use sudo at any point with OPAM.
>
> Best wishes,
> Amir
>
> --
> Sent via mobile
>
> On 24 Sep 2015, at 21:03, Lasya Venneti <comethalley61@gmail.com> wrote:
>
> Dear Sir,
>
> I have tried as per your suggestion but it still doesn't seem to be
> working. After this, Even though the installation process says "you need
> not be the root user" I sudo-ed most commands and it seemed to be working,
> installation seems to be successful from the prompts. (However, typing
> 'mirage --help' doesn't work yet, says install mirage thought apt-get ).
> Can I proceed? Or am I doing something wrong?
>
> Sincerely,
> Lasya V
>
> On 24 September 2015 at 21:50, Richard Mortier <
> richard.mortier@cl.cam.ac.uk> wrote:, inst
>
>> Hi;
>>
>> On 24 September 2015 at 17:09, Lasya Venneti <comethalley61@gmail.com>
>> wrote:
>> > Dear all,
>> >
>> > While following the installation instructions, the 'opam init' command
>> has
>> > failed with the error :
>> >
>> Sys_error("/home/lasya/.opam/repo/default/packages/alcotest/alcotest.0.4.1/opam:
>> > Too many open files")
>> > I have also attached the screen log to the mail. My laptop is mid 2014
>> > Lenovo-Y510p with Ubuntu 14.04 64 bit. Can somebody tell me how do I
>> solve
>> > this and why is this happening? Am I doing something wrong?
>>
>> Probably a `ulimit` setting, eg.,
>>
>> http://askubuntu.com/questions/181215/too-many-open-files-how-to-find-the-culprit
>> .
>>
>> Try `ulimit -a` to see what current limits are, and then something
>> like `ulimit -n 5000` (or a number bigger than the current limit
>> anyway) to get around this.
>>
>> ISTR this was an issue recently with alcotest specifically -- @samoht,
>> was there a proper fix intended for this at some point? (Or is it
>> really just a very low default ulimit setting on Ubuntu?)
>>
>> --
>> Richard Mortier
>> richard.mortier@cl.cam.ac.uk
>>
>
> _______________________________________________
> MirageOS-devel mailing list
> MirageOS-devel@lists.xenproject.org
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
>
>

--047d7b10c81376ca49052084d2a8
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Dear Sir,<div><br></div><div>I removed opam &amp; deleted =
my .opam folder, and re-installed it , this time version 1.2.2. This time a=
ll the opam commands worked without sudo and looks like the installation wa=
s right! The last two lines for <i>opam install mirage</i> say &quot;instal=
led mirage.2.6.1</div><div>Done.&quot;</div><div><br></div><div><br></div><=
div><i>opam config report </i>=C2=A0 outputs:</div><div><br></div><div><div=
># OPAM config report</div><div># opam-version =C2=A0 =C2=A01.2.2=C2=A0</di=
v><div># self-upgrade =C2=A0 =C2=A0no</div><div># os =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0linux</div><div># external-solver aspcud $in $ou=
t $criteria</div><div># criteria =C2=A0 =C2=A0 =C2=A0 =C2=A0-removed,-notup=
todate,-changed</div><div># jobs =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A04=
</div><div># repositories =C2=A0 =C2=A01* (http)</div><div># pinned =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A00</div><div># current-switch =C2=A04.01.0</div><=
div># last-update =C2=A0 =C2=A0 2015-09-24 21:01</div></div><div><br></div>=
<div>but mirage --help still doesn&#39;t seem to work. Returns &#39; The pr=
ogram &#39;mirage&#39; is currently not installed. You can install it by ty=
ping:</div><div>sudo apt-get install mirage&#39;</div><div><br></div><div><=
br></div><div>Sincerely,</div><div>Lasya V=C2=A0</div><div><br></div></div>=
<div class=3D"gmail_extra"><br><div class=3D"gmail_quote">On 25 September 2=
015 at 01:55, Amir Chaudhry <span dir=3D"ltr">&lt;<a href=3D"mailto:amc79@c=
am.ac.uk" target=3D"_blank">amc79@cam.ac.uk</a>&gt;</span> wrote:<br><block=
quote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc=
 solid;padding-left:1ex"><div dir=3D"auto"><div>From the screen log you att=
ached I see a lot of errors related to using OPAM 1.1.1. The current versio=
n of OPAM is 1.2.2, I believe.=C2=A0</div><div><br></div><div>How did you i=
nstall OPAM?</div><div><br></div><div>You mention that it seems to be worki=
ng so could you tell us what the output of the following is:</div><div>opam=
 config report</div><div><br></div><div>Also, you shouldn&#39;t need to use=
 sudo at any point with OPAM.=C2=A0<br><br>Best wishes,<div>Amir</div><div>=
<br></div><div>--</div><div>Sent via mobile</div></div><div><div class=3D"h=
5"><div><br>On 24 Sep 2015, at 21:03, Lasya Venneti &lt;<a href=3D"mailto:c=
omethalley61@gmail.com" target=3D"_blank">comethalley61@gmail.com</a>&gt; w=
rote:<br><br></div><blockquote type=3D"cite"><div><div dir=3D"ltr">Dear Sir=
,=C2=A0<div><br></div><div>I have tried as per your suggestion but it still=
 doesn&#39;t seem to be working. After this, Even though the installation p=
rocess says &quot;you need not be the root user&quot; I sudo-ed most comman=
ds and it seemed to be working, installation seems to be successful from th=
e prompts. (However, typing &#39;mirage --help&#39; doesn&#39;t work yet, s=
ays install mirage thought apt-get ). Can I proceed? Or am I doing somethin=
g wrong?</div><div><br></div><div>Sincerely,</div><div>Lasya V</div><div cl=
ass=3D"gmail_extra"><br><div class=3D"gmail_quote">On 24 September 2015 at =
21:50, Richard Mortier <span dir=3D"ltr">&lt;<a href=3D"mailto:richard.mort=
ier@cl.cam.ac.uk" target=3D"_blank">richard.mortier@cl.cam.ac.uk</a>&gt;</s=
pan> wrote:, inst<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 =
0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi;<br>
<span><br>
On 24 September 2015 at 17:09, Lasya Venneti &lt;<a href=3D"mailto:comethal=
ley61@gmail.com" target=3D"_blank">comethalley61@gmail.com</a>&gt; wrote:<b=
r>
&gt; Dear all,<br>
&gt;<br>
&gt; While following the installation instructions, the &#39;opam init&#39;=
 command has<br>
&gt; failed with the error :<br>
&gt; Sys_error(&quot;/home/lasya/.opam/repo/default/packages/alcotest/alcot=
est.0.4.1/opam:<br>
&gt; Too many open files&quot;)<br>
&gt; I have also attached the screen log to the mail. My laptop is mid 2014=
<br>
&gt; Lenovo-Y510p with Ubuntu 14.04 64 bit. Can somebody tell me how do I s=
olve<br>
&gt; this and why is this happening? Am I doing something wrong?<br>
<br>
</span>Probably a `ulimit` setting, eg.,<br>
<a href=3D"http://askubuntu.com/questions/181215/too-many-open-files-how-to=
-find-the-culprit" rel=3D"noreferrer" target=3D"_blank">http://askubuntu.co=
m/questions/181215/too-many-open-files-how-to-find-the-culprit</a>.<br>
<br>
Try `ulimit -a` to see what current limits are, and then something<br>
like `ulimit -n 5000` (or a number bigger than the current limit<br>
anyway) to get around this.<br>
<br>
ISTR this was an issue recently with alcotest specifically -- @samoht,<br>
was there a proper fix intended for this at some point? (Or is it<br>
really just a very low default ulimit setting on Ubuntu?)<br>
<span><font color=3D"#888888"><br>
--<br>
Richard Mortier<br>
<a href=3D"mailto:richard.mortier@cl.cam.ac.uk" target=3D"_blank">richard.m=
ortier@cl.cam.ac.uk</a><br>
</font></span></blockquote></div><br></div></div>
</div></blockquote></div></div><span class=3D""><blockquote type=3D"cite"><=
div><span>_______________________________________________</span><br><span>M=
irageOS-devel mailing list</span><br><span><a href=3D"mailto:MirageOS-devel=
@lists.xenproject.org" target=3D"_blank">MirageOS-devel@lists.xenproject.or=
g</a></span><br><span><a href=3D"http://lists.xenproject.org/cgi-bin/mailma=
n/listinfo/mirageos-devel" target=3D"_blank">http://lists.xenproject.org/cg=
i-bin/mailman/listinfo/mirageos-devel</a></span><br></div></blockquote></sp=
an></div></blockquote></div><br></div>

--047d7b10c81376ca49052084d2a8--


--===============3633054919139903948==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

--===============3633054919139903948==--


From mirageos-devel-bounces@lists.xenproject.org Thu Sep 24 21:27:06 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 24 Sep 2015 21:27:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZfE2h-0003yw-Oh; Thu, 24 Sep 2015 21:27:03 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mindy@somerandomidiot.com>) id 1ZfE2g-0003vW-KW
	for mirageos-devel@lists.xenproject.org; Thu, 24 Sep 2015 21:27:02 +0000
Received: from [85.158.137.68] by server-4.bemta-3.messagelabs.com id
	A7/7D-09570-5AA64065; Thu, 24 Sep 2015 21:27:01 +0000
X-Env-Sender: mindy@somerandomidiot.com
X-Msg-Ref: server-6.tower-31.messagelabs.com!1443130020!43022127!1
X-Originating-IP: [217.70.183.196]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
	VHJ1c3RlZCBJUDogMjE3LjcwLjE4My4xOTYgPT4gMzk1MTY=\n
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 20516 invoked from network); 24 Sep 2015 21:27:00 -0000
Received: from relay4-d.mail.gandi.net (HELO relay4-d.mail.gandi.net)
	(217.70.183.196)
	by server-6.tower-31.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 24 Sep 2015 21:27:00 -0000
Received: from mfilter30-d.gandi.net (mfilter30-d.gandi.net [217.70.178.161])
	by relay4-d.mail.gandi.net (Postfix) with ESMTP id 075B1172077;
	Thu, 24 Sep 2015 23:27:00 +0200 (CEST)
X-Virus-Scanned: Debian amavisd-new at mfilter30-d.gandi.net
Received: from relay4-d.mail.gandi.net ([IPv6:::ffff:217.70.183.196])
	by mfilter30-d.gandi.net (mfilter30-d.gandi.net [::ffff:10.0.15.180])
	(amavisd-new, port 10024)
	with ESMTP id RNVUdJeXBm6F; Thu, 24 Sep 2015 23:26:58 +0200 (CEST)
X-Originating-IP: 92.40.248.137
Received: from [10.146.181.34] (92.40.248.137.threembb.co.uk [92.40.248.137])
	(Authenticated sender: guybrush@somerandomidiot.com)
	by relay4-d.mail.gandi.net (Postfix) with ESMTPSA id 69711172074;
	Thu, 24 Sep 2015 23:26:38 +0200 (CEST)
User-Agent: K-9 Mail for Android
In-Reply-To: <CAAbK42-T79VE1jaHL+xN34oPROcSApPKwh2V9pC=Nb85wiQQ=g@mail.gmail.com>
References: <CAAbK429srd4r7Kp10nPK5vndcZYLoXOsh9W=K_E4mpKVrVpZXA@mail.gmail.com>
	<56009188.1070102@somerandomidiot.com>
	<CAAbK429psAZAncgBwHP4t=hcBB104dY5T+Mefn0ze-SEYz4dDA@mail.gmail.com>
	<EF478C7D-4CF9-41FD-9309-A6602819AE4B@recoil.org>
	<CAAbK429TUAiBS+wRLuBFb3L2P4ymbbAu5e0rQdSn_U74_QtuWg@mail.gmail.com>
	<CAAbK42_Zsyy-UYgT2yvtBat9QjaDyk2v-T1tpxYcnyf4pdL1tA@mail.gmail.com>
	<CAN2Hq06nCBU4uR9aBHop=mQHwypZRBScroLWvA6-yfEMxWQCjQ@mail.gmail.com>
	<CAAbK42_78FuUjfPp8pQEo+D80uLU3PL26DAZ9pZmGAXvMCbdRg@mail.gmail.com>
	<F8575118-700C-4ABF-A8F9-3830C3B40042@cam.ac.uk>
	<CAAbK42-T79VE1jaHL+xN34oPROcSApPKwh2V9pC=Nb85wiQQ=g@mail.gmail.com>
MIME-Version: 1.0
From: Mindy Preston <mindy@somerandomidiot.com>
Date: Thu, 24 Sep 2015 16:26:21 -0500
To: Lasya Venneti <comethalley61@gmail.com>,Amir Chaudhry <amc79@cam.ac.uk>
Message-ID: <7B594D52-53CD-4EE7-A172-0A95B4F851A2@somerandomidiot.com>
Cc: mirageos-devel@lists.xenproject.org
Subject: Re: [MirageOS-devel] Getting Started
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============0942261827724598322=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============0942261827724598322==
Content-Type: multipart/alternative; boundary="----B54UEUG59CW6HIE78X1XWQ519D5HSF"
Content-Transfer-Encoding: 7bit

------B54UEUG59CW6HIE78X1XWQ519D5HSF
Content-Type: text/plain;
 charset=UTF-8
Content-Transfer-Encoding: quoted-printable

Hi Lasya,

You may need to run:

eval `opam config env`

to be sure that the directory to which opam installed mirage is in your $=
PATH .

Cheers,
Mindy

On September 24, 2015 4:22:02 PM CDT, Lasya Venneti <comethalley61@gmail.=
com> wrote:
>Dear Sir,
>
>I removed opam & deleted my .opam folder, and re-installed it , this
>time
>version 1.2.2. This time all the opam commands worked without sudo and
>looks like the installation was right! The last two lines for *opam
>install
>mirage* say "installed mirage.2.6.1
>Done."
>
>
>*opam config report *  outputs:
>
># OPAM config report
># opam-version    1.2.2
># self-upgrade    no
># os              linux
># external-solver aspcud $in $out $criteria
># criteria        -removed,-notuptodate,-changed
># jobs            4
># repositories    1* (http)
># pinned          0
># current-switch  4.01.0
># last-update     2015-09-24 21:01
>
>but mirage --help still doesn't seem to work. Returns ' The program
>'mirage' is currently not installed. You can install it by typing:
>sudo apt-get install mirage'
>
>
>Sincerely,
>Lasya V
>
>
>On 25 September 2015 at 01:55, Amir Chaudhry <amc79@cam.ac.uk> wrote:
>
>> From the screen log you attached I see a lot of errors related to
>using
>> OPAM 1.1.1. The current version of OPAM is 1.2.2, I believe.
>>
>> How did you install OPAM?
>>
>> You mention that it seems to be working so could you tell us what the
>> output of the following is:
>> opam config report
>>
>> Also, you shouldn't need to use sudo at any point with OPAM.
>>
>> Best wishes,
>> Amir
>>
>> --
>> Sent via mobile
>>
>> On 24 Sep 2015, at 21:03, Lasya Venneti <comethalley61@gmail.com>
>wrote:
>>
>> Dear Sir,
>>
>> I have tried as per your suggestion but it still doesn't seem to be
>> working. After this, Even though the installation process says "you
>need
>> not be the root user" I sudo-ed most commands and it seemed to be
>working,
>> installation seems to be successful from the prompts. (However,
>typing
>> 'mirage --help' doesn't work yet, says install mirage thought apt-get
>).
>> Can I proceed? Or am I doing something wrong?
>>
>> Sincerely,
>> Lasya V
>>
>> On 24 September 2015 at 21:50, Richard Mortier <
>> richard.mortier@cl.cam.ac.uk> wrote:, inst
>>
>>> Hi;
>>>
>>> On 24 September 2015 at 17:09, Lasya Venneti
><comethalley61@gmail.com>
>>> wrote:
>>> > Dear all,
>>> >
>>> > While following the installation instructions, the 'opam init'
>command
>>> has
>>> > failed with the error :
>>> >
>>>
>Sys_error("/home/lasya/.opam/repo/default/packages/alcotest/alcotest.0.4=
.1/opam:
>>> > Too many open files")
>>> > I have also attached the screen log to the mail. My laptop is mid
>2014
>>> > Lenovo-Y510p with Ubuntu 14.04 64 bit. Can somebody tell me how do
>I
>>> solve
>>> > this and why is this happening? Am I doing something wrong?
>>>
>>> Probably a `ulimit` setting, eg.,
>>>
>>>
>http://askubuntu.com/questions/181215/too-many-open-files-how-to-find-th=
e-culprit
>>> .
>>>
>>> Try `ulimit -a` to see what current limits are, and then something
>>> like `ulimit -n 5000` (or a number bigger than the current limit
>>> anyway) to get around this.
>>>
>>> ISTR this was an issue recently with alcotest specifically --
>@samoht,
>>> was there a proper fix intended for this at some point? (Or is it
>>> really just a very low default ulimit setting on Ubuntu?)
>>>
>>> --
>>> Richard Mortier
>>> richard.mortier@cl.cam.ac.uk
>>>
>>
>> _______________________________________________
>> MirageOS-devel mailing list
>> MirageOS-devel@lists.xenproject.org
>> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
>>
>>
>
>
>------------------------------------------------------------------------
>
>_______________________________________________
>MirageOS-devel mailing list
>MirageOS-devel@lists.xenproject.org
>http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

--=20
Composed on a touchscreen keyboard; please forgive typos and brevity.
------B54UEUG59CW6HIE78X1XWQ519D5HSF
Content-Type: text/html;
 charset=utf-8
Content-Transfer-Encoding: quoted-printable

<html><head></head><body>Hi Lasya,<br>
<br>
You may need to run:<br>
<br>
eval `opam config env`<br>
<br>
to be sure that the directory to which opam installed mirage is in your $=
PATH .<br>
<br>
Cheers,<br>
Mindy<br><br><div class=3D"gmail_quote">On September 24, 2015 4:22:02 PM =
CDT, Lasya Venneti &lt;comethalley61@gmail.com&gt; wrote:<blockquote clas=
s=3D"gmail_quote" style=3D"margin: 0pt 0pt 0pt 0.8ex; border-left: 1px so=
lid rgb(204, 204, 204); padding-left: 1ex;">
<div dir=3D"ltr">Dear Sir,<div><br /></div><div>I removed opam &amp; dele=
ted my .opam folder, and re-installed it , this time version 1.2.2. This =
time all the opam commands worked without sudo and looks like the install=
ation was right! The last two lines for <i>opam install mirage</i> say &q=
uot;installed mirage.2.6.1</div><div>Done.&quot;</div><div><br /></div><d=
iv><br /></div><div><i>opam config report </i>=C2=A0 outputs:</div><div><=
br /></div><div><div># OPAM config report</div><div># opam-version =C2=A0=
 =C2=A01.2.2=C2=A0</div><div># self-upgrade =C2=A0 =C2=A0no</div><div># o=
s =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0linux</div><div># exter=
nal-solver aspcud $in $out $criteria</div><div># criteria =C2=A0 =C2=A0 =C2=
=A0 =C2=A0-removed,-notuptodate,-changed</div><div># jobs =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A04</div><div># repositories =C2=A0 =C2=A01* (http)=
</div><div># pinned =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A00</div><div># curre=
nt-switch =C2=A04.01.0</div><div># last-update =C2=A0 =C2=A0 2015-09-24 2=
1:01</div></div><div><br /></div><div>but mirage --help still doesn&#39;t=
 seem to work. Returns &#39; The
program &#39;mirage&#39; is currently not installed. You can install it b=
y typing:</div><div>sudo apt-get install mirage&#39;</div><div><br /></di=
v><div><br /></div><div>Sincerely,</div><div>Lasya V=C2=A0</div><div><br =
/></div></div><div class=3D"gmail_extra"><br /><div class=3D"gmail_quote"=
>On 25 September 2015 at 01:55, Amir Chaudhry <span dir=3D"ltr">&lt;<a hr=
ef=3D"mailto:amc79@cam.ac.uk" target=3D"_blank">amc79@cam.ac.uk</a>&gt;</=
span> wrote:<br /><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0=
 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir=3D"auto"><div=
>From the screen log you attached I see a lot of errors related to using =
OPAM 1.1.1. The current version of OPAM is 1.2.2, I believe.=C2=A0</div><=
div><br /></div><div>How did you install OPAM?</div><div><br /></div><div=
>You mention that it seems to be working so could you tell us what the ou=
tput of the following is:</div><div>opam config report</div><div><br /></=
div><div>Also, you shouldn&#39;t need to use sudo at any point with
OPAM.=C2=A0<br /><br />Best wishes,<div>Amir</div><div><br /></div><div>-=
-</div><div>Sent via mobile</div></div><div><div class=3D"h5"><div><br />=
On 24 Sep 2015, at 21:03, Lasya Venneti &lt;<a href=3D"mailto:comethalley=
61@gmail.com" target=3D"_blank">comethalley61@gmail.com</a>&gt; wrote:<br=
 /><br /></div><blockquote type=3D"cite"><div><div dir=3D"ltr">Dear Sir,=C2=
=A0<div><br /></div><div>I have tried as per your suggestion but it still=
 doesn&#39;t seem to be working. After this, Even though the installation=
 process says &quot;you need not be the root user&quot; I sudo-ed most co=
mmands and it seemed to be working, installation seems to be successful f=
rom the prompts. (However, typing &#39;mirage --help&#39; doesn&#39;t wor=
k yet, says install mirage thought apt-get ). Can I proceed? Or am I doin=
g something wrong?</div><div><br /></div><div>Sincerely,</div><div>Lasya =
V</div><div class=3D"gmail_extra"><br /><div class=3D"gmail_quote">On 24 =
September 2015 at 21:50, Richard Mortier <span dir=3D"ltr">&lt;<a
href=3D"mailto:richard.mortier@cl.cam.ac.uk" target=3D"_blank">richard.mo=
rtier@cl.cam.ac.uk</a>&gt;</span> wrote:, inst<br /><blockquote class=3D"=
gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;paddin=
g-left:1ex">Hi;<br />
<span><br />
On 24 September 2015 at 17:09, Lasya Venneti &lt;<a href=3D"mailto:cometh=
alley61@gmail.com" target=3D"_blank">comethalley61@gmail.com</a>&gt; wrot=
e:<br />
&gt; Dear all,<br />
&gt;<br />
&gt; While following the installation instructions, the &#39;opam init&#3=
9; command has<br />
&gt; failed with the error :<br />
&gt; Sys_error(&quot;/home/lasya/.opam/repo/default/packages/alcotest/alc=
otest.0.4.1/opam:<br />
&gt; Too many open files&quot;)<br />
&gt; I have also attached the screen log to the mail. My laptop is mid 20=
14<br />
&gt; Lenovo-Y510p with Ubuntu 14.04 64 bit. Can somebody tell me how do I=
 solve<br />
&gt; this and why is this happening? Am I doing something wrong?<br />
<br />
</span>Probably a `ulimit` setting, eg.,<br />
<a href=3D"http://askubuntu.com/questions/181215/too-many-open-files-how-=
to-find-the-culprit" rel=3D"noreferrer" target=3D"_blank">http://askubunt=
u.com/questions/181215/too-many-open-files-how-to-find-the-culprit</a>.<b=
r />
<br />
Try `ulimit -a` to see what current limits are, and then something<br />
like `ulimit -n 5000` (or a number bigger than the current limit<br />
anyway) to get around this.<br />
<br />
ISTR this was an issue recently with alcotest specifically -- @samoht,<br=
 />
was there a proper fix intended for this at some point? (Or is it<br />
really just a very low default ulimit setting on Ubuntu?)<br />
<span><font color=3D"#888888"><br />
--<br />
Richard Mortier<br />
<a href=3D"mailto:richard.mortier@cl.cam.ac.uk" target=3D"_blank">richard=
.mortier@cl.cam.ac.uk</a><br />
</font></span></blockquote></div><br /></div></div>
</div></blockquote></div></div><span class=3D""><blockquote type=3D"cite"=
><div><span>_______________________________________________</span><br /><=
span>MirageOS-devel mailing list</span><br /><span><a href=3D"mailto:Mira=
geOS-devel@lists.xenproject.org" target=3D"_blank">MirageOS-devel@lists.x=
enproject.org</a></span><br /><span><a href=3D"http://lists.xenproject.or=
g/cgi-bin/mailman/listinfo/mirageos-devel" target=3D"_blank">http://lists=
.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel</a></span><br /><=
/div></blockquote></span></div></blockquote></div><br /></div>
<p style=3D"margin-top: 2.5em; margin-bottom: 1em; border-bottom: 1px sol=
id #000"></p><pre class=3D"k9mail"><hr /><br />MirageOS-devel mailing lis=
t<br />MirageOS-devel@lists.xenproject.org<br /><a href=3D"http://lists.x=
enproject.org/cgi-bin/mailman/listinfo/mirageos-devel">http://lists.xenpr=
oject.org/cgi-bin/mailman/listinfo/mirageos-devel</a><br /></pre></blockq=
uote></div><br>
-- <br>
Composed on a touchscreen keyboard; please forgive typos and brevity.</bo=
dy></html>
------B54UEUG59CW6HIE78X1XWQ519D5HSF--



--===============0942261827724598322==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

--===============0942261827724598322==--



From mirageos-devel-bounces@lists.xenproject.org Thu Sep 24 21:27:06 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 24 Sep 2015 21:27:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZfE2h-0003yw-Oh; Thu, 24 Sep 2015 21:27:03 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mindy@somerandomidiot.com>) id 1ZfE2g-0003vW-KW
	for mirageos-devel@lists.xenproject.org; Thu, 24 Sep 2015 21:27:02 +0000
Received: from [85.158.137.68] by server-4.bemta-3.messagelabs.com id
	A7/7D-09570-5AA64065; Thu, 24 Sep 2015 21:27:01 +0000
X-Env-Sender: mindy@somerandomidiot.com
X-Msg-Ref: server-6.tower-31.messagelabs.com!1443130020!43022127!1
X-Originating-IP: [217.70.183.196]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
	VHJ1c3RlZCBJUDogMjE3LjcwLjE4My4xOTYgPT4gMzk1MTY=\n
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 20516 invoked from network); 24 Sep 2015 21:27:00 -0000
Received: from relay4-d.mail.gandi.net (HELO relay4-d.mail.gandi.net)
	(217.70.183.196)
	by server-6.tower-31.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 24 Sep 2015 21:27:00 -0000
Received: from mfilter30-d.gandi.net (mfilter30-d.gandi.net [217.70.178.161])
	by relay4-d.mail.gandi.net (Postfix) with ESMTP id 075B1172077;
	Thu, 24 Sep 2015 23:27:00 +0200 (CEST)
X-Virus-Scanned: Debian amavisd-new at mfilter30-d.gandi.net
Received: from relay4-d.mail.gandi.net ([IPv6:::ffff:217.70.183.196])
	by mfilter30-d.gandi.net (mfilter30-d.gandi.net [::ffff:10.0.15.180])
	(amavisd-new, port 10024)
	with ESMTP id RNVUdJeXBm6F; Thu, 24 Sep 2015 23:26:58 +0200 (CEST)
X-Originating-IP: 92.40.248.137
Received: from [10.146.181.34] (92.40.248.137.threembb.co.uk [92.40.248.137])
	(Authenticated sender: guybrush@somerandomidiot.com)
	by relay4-d.mail.gandi.net (Postfix) with ESMTPSA id 69711172074;
	Thu, 24 Sep 2015 23:26:38 +0200 (CEST)
User-Agent: K-9 Mail for Android
In-Reply-To: <CAAbK42-T79VE1jaHL+xN34oPROcSApPKwh2V9pC=Nb85wiQQ=g@mail.gmail.com>
References: <CAAbK429srd4r7Kp10nPK5vndcZYLoXOsh9W=K_E4mpKVrVpZXA@mail.gmail.com>
	<56009188.1070102@somerandomidiot.com>
	<CAAbK429psAZAncgBwHP4t=hcBB104dY5T+Mefn0ze-SEYz4dDA@mail.gmail.com>
	<EF478C7D-4CF9-41FD-9309-A6602819AE4B@recoil.org>
	<CAAbK429TUAiBS+wRLuBFb3L2P4ymbbAu5e0rQdSn_U74_QtuWg@mail.gmail.com>
	<CAAbK42_Zsyy-UYgT2yvtBat9QjaDyk2v-T1tpxYcnyf4pdL1tA@mail.gmail.com>
	<CAN2Hq06nCBU4uR9aBHop=mQHwypZRBScroLWvA6-yfEMxWQCjQ@mail.gmail.com>
	<CAAbK42_78FuUjfPp8pQEo+D80uLU3PL26DAZ9pZmGAXvMCbdRg@mail.gmail.com>
	<F8575118-700C-4ABF-A8F9-3830C3B40042@cam.ac.uk>
	<CAAbK42-T79VE1jaHL+xN34oPROcSApPKwh2V9pC=Nb85wiQQ=g@mail.gmail.com>
MIME-Version: 1.0
From: Mindy Preston <mindy@somerandomidiot.com>
Date: Thu, 24 Sep 2015 16:26:21 -0500
To: Lasya Venneti <comethalley61@gmail.com>,Amir Chaudhry <amc79@cam.ac.uk>
Message-ID: <7B594D52-53CD-4EE7-A172-0A95B4F851A2@somerandomidiot.com>
Cc: mirageos-devel@lists.xenproject.org
Subject: Re: [MirageOS-devel] Getting Started
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============0942261827724598322=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============0942261827724598322==
Content-Type: multipart/alternative; boundary="----B54UEUG59CW6HIE78X1XWQ519D5HSF"
Content-Transfer-Encoding: 7bit

------B54UEUG59CW6HIE78X1XWQ519D5HSF
Content-Type: text/plain;
 charset=UTF-8
Content-Transfer-Encoding: quoted-printable

Hi Lasya,

You may need to run:

eval `opam config env`

to be sure that the directory to which opam installed mirage is in your $=
PATH .

Cheers,
Mindy

On September 24, 2015 4:22:02 PM CDT, Lasya Venneti <comethalley61@gmail.=
com> wrote:
>Dear Sir,
>
>I removed opam & deleted my .opam folder, and re-installed it , this
>time
>version 1.2.2. This time all the opam commands worked without sudo and
>looks like the installation was right! The last two lines for *opam
>install
>mirage* say "installed mirage.2.6.1
>Done."
>
>
>*opam config report *  outputs:
>
># OPAM config report
># opam-version    1.2.2
># self-upgrade    no
># os              linux
># external-solver aspcud $in $out $criteria
># criteria        -removed,-notuptodate,-changed
># jobs            4
># repositories    1* (http)
># pinned          0
># current-switch  4.01.0
># last-update     2015-09-24 21:01
>
>but mirage --help still doesn't seem to work. Returns ' The program
>'mirage' is currently not installed. You can install it by typing:
>sudo apt-get install mirage'
>
>
>Sincerely,
>Lasya V
>
>
>On 25 September 2015 at 01:55, Amir Chaudhry <amc79@cam.ac.uk> wrote:
>
>> From the screen log you attached I see a lot of errors related to
>using
>> OPAM 1.1.1. The current version of OPAM is 1.2.2, I believe.
>>
>> How did you install OPAM?
>>
>> You mention that it seems to be working so could you tell us what the
>> output of the following is:
>> opam config report
>>
>> Also, you shouldn't need to use sudo at any point with OPAM.
>>
>> Best wishes,
>> Amir
>>
>> --
>> Sent via mobile
>>
>> On 24 Sep 2015, at 21:03, Lasya Venneti <comethalley61@gmail.com>
>wrote:
>>
>> Dear Sir,
>>
>> I have tried as per your suggestion but it still doesn't seem to be
>> working. After this, Even though the installation process says "you
>need
>> not be the root user" I sudo-ed most commands and it seemed to be
>working,
>> installation seems to be successful from the prompts. (However,
>typing
>> 'mirage --help' doesn't work yet, says install mirage thought apt-get
>).
>> Can I proceed? Or am I doing something wrong?
>>
>> Sincerely,
>> Lasya V
>>
>> On 24 September 2015 at 21:50, Richard Mortier <
>> richard.mortier@cl.cam.ac.uk> wrote:, inst
>>
>>> Hi;
>>>
>>> On 24 September 2015 at 17:09, Lasya Venneti
><comethalley61@gmail.com>
>>> wrote:
>>> > Dear all,
>>> >
>>> > While following the installation instructions, the 'opam init'
>command
>>> has
>>> > failed with the error :
>>> >
>>>
>Sys_error("/home/lasya/.opam/repo/default/packages/alcotest/alcotest.0.4=
.1/opam:
>>> > Too many open files")
>>> > I have also attached the screen log to the mail. My laptop is mid
>2014
>>> > Lenovo-Y510p with Ubuntu 14.04 64 bit. Can somebody tell me how do
>I
>>> solve
>>> > this and why is this happening? Am I doing something wrong?
>>>
>>> Probably a `ulimit` setting, eg.,
>>>
>>>
>http://askubuntu.com/questions/181215/too-many-open-files-how-to-find-th=
e-culprit
>>> .
>>>
>>> Try `ulimit -a` to see what current limits are, and then something
>>> like `ulimit -n 5000` (or a number bigger than the current limit
>>> anyway) to get around this.
>>>
>>> ISTR this was an issue recently with alcotest specifically --
>@samoht,
>>> was there a proper fix intended for this at some point? (Or is it
>>> really just a very low default ulimit setting on Ubuntu?)
>>>
>>> --
>>> Richard Mortier
>>> richard.mortier@cl.cam.ac.uk
>>>
>>
>> _______________________________________________
>> MirageOS-devel mailing list
>> MirageOS-devel@lists.xenproject.org
>> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
>>
>>
>
>
>------------------------------------------------------------------------
>
>_______________________________________________
>MirageOS-devel mailing list
>MirageOS-devel@lists.xenproject.org
>http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

--=20
Composed on a touchscreen keyboard; please forgive typos and brevity.
------B54UEUG59CW6HIE78X1XWQ519D5HSF
Content-Type: text/html;
 charset=utf-8
Content-Transfer-Encoding: quoted-printable

<html><head></head><body>Hi Lasya,<br>
<br>
You may need to run:<br>
<br>
eval `opam config env`<br>
<br>
to be sure that the directory to which opam installed mirage is in your $=
PATH .<br>
<br>
Cheers,<br>
Mindy<br><br><div class=3D"gmail_quote">On September 24, 2015 4:22:02 PM =
CDT, Lasya Venneti &lt;comethalley61@gmail.com&gt; wrote:<blockquote clas=
s=3D"gmail_quote" style=3D"margin: 0pt 0pt 0pt 0.8ex; border-left: 1px so=
lid rgb(204, 204, 204); padding-left: 1ex;">
<div dir=3D"ltr">Dear Sir,<div><br /></div><div>I removed opam &amp; dele=
ted my .opam folder, and re-installed it , this time version 1.2.2. This =
time all the opam commands worked without sudo and looks like the install=
ation was right! The last two lines for <i>opam install mirage</i> say &q=
uot;installed mirage.2.6.1</div><div>Done.&quot;</div><div><br /></div><d=
iv><br /></div><div><i>opam config report </i>=C2=A0 outputs:</div><div><=
br /></div><div><div># OPAM config report</div><div># opam-version =C2=A0=
 =C2=A01.2.2=C2=A0</div><div># self-upgrade =C2=A0 =C2=A0no</div><div># o=
s =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0linux</div><div># exter=
nal-solver aspcud $in $out $criteria</div><div># criteria =C2=A0 =C2=A0 =C2=
=A0 =C2=A0-removed,-notuptodate,-changed</div><div># jobs =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A04</div><div># repositories =C2=A0 =C2=A01* (http)=
</div><div># pinned =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A00</div><div># curre=
nt-switch =C2=A04.01.0</div><div># last-update =C2=A0 =C2=A0 2015-09-24 2=
1:01</div></div><div><br /></div><div>but mirage --help still doesn&#39;t=
 seem to work. Returns &#39; The
program &#39;mirage&#39; is currently not installed. You can install it b=
y typing:</div><div>sudo apt-get install mirage&#39;</div><div><br /></di=
v><div><br /></div><div>Sincerely,</div><div>Lasya V=C2=A0</div><div><br =
/></div></div><div class=3D"gmail_extra"><br /><div class=3D"gmail_quote"=
>On 25 September 2015 at 01:55, Amir Chaudhry <span dir=3D"ltr">&lt;<a hr=
ef=3D"mailto:amc79@cam.ac.uk" target=3D"_blank">amc79@cam.ac.uk</a>&gt;</=
span> wrote:<br /><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0=
 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir=3D"auto"><div=
>From the screen log you attached I see a lot of errors related to using =
OPAM 1.1.1. The current version of OPAM is 1.2.2, I believe.=C2=A0</div><=
div><br /></div><div>How did you install OPAM?</div><div><br /></div><div=
>You mention that it seems to be working so could you tell us what the ou=
tput of the following is:</div><div>opam config report</div><div><br /></=
div><div>Also, you shouldn&#39;t need to use sudo at any point with
OPAM.=C2=A0<br /><br />Best wishes,<div>Amir</div><div><br /></div><div>-=
-</div><div>Sent via mobile</div></div><div><div class=3D"h5"><div><br />=
On 24 Sep 2015, at 21:03, Lasya Venneti &lt;<a href=3D"mailto:comethalley=
61@gmail.com" target=3D"_blank">comethalley61@gmail.com</a>&gt; wrote:<br=
 /><br /></div><blockquote type=3D"cite"><div><div dir=3D"ltr">Dear Sir,=C2=
=A0<div><br /></div><div>I have tried as per your suggestion but it still=
 doesn&#39;t seem to be working. After this, Even though the installation=
 process says &quot;you need not be the root user&quot; I sudo-ed most co=
mmands and it seemed to be working, installation seems to be successful f=
rom the prompts. (However, typing &#39;mirage --help&#39; doesn&#39;t wor=
k yet, says install mirage thought apt-get ). Can I proceed? Or am I doin=
g something wrong?</div><div><br /></div><div>Sincerely,</div><div>Lasya =
V</div><div class=3D"gmail_extra"><br /><div class=3D"gmail_quote">On 24 =
September 2015 at 21:50, Richard Mortier <span dir=3D"ltr">&lt;<a
href=3D"mailto:richard.mortier@cl.cam.ac.uk" target=3D"_blank">richard.mo=
rtier@cl.cam.ac.uk</a>&gt;</span> wrote:, inst<br /><blockquote class=3D"=
gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;paddin=
g-left:1ex">Hi;<br />
<span><br />
On 24 September 2015 at 17:09, Lasya Venneti &lt;<a href=3D"mailto:cometh=
alley61@gmail.com" target=3D"_blank">comethalley61@gmail.com</a>&gt; wrot=
e:<br />
&gt; Dear all,<br />
&gt;<br />
&gt; While following the installation instructions, the &#39;opam init&#3=
9; command has<br />
&gt; failed with the error :<br />
&gt; Sys_error(&quot;/home/lasya/.opam/repo/default/packages/alcotest/alc=
otest.0.4.1/opam:<br />
&gt; Too many open files&quot;)<br />
&gt; I have also attached the screen log to the mail. My laptop is mid 20=
14<br />
&gt; Lenovo-Y510p with Ubuntu 14.04 64 bit. Can somebody tell me how do I=
 solve<br />
&gt; this and why is this happening? Am I doing something wrong?<br />
<br />
</span>Probably a `ulimit` setting, eg.,<br />
<a href=3D"http://askubuntu.com/questions/181215/too-many-open-files-how-=
to-find-the-culprit" rel=3D"noreferrer" target=3D"_blank">http://askubunt=
u.com/questions/181215/too-many-open-files-how-to-find-the-culprit</a>.<b=
r />
<br />
Try `ulimit -a` to see what current limits are, and then something<br />
like `ulimit -n 5000` (or a number bigger than the current limit<br />
anyway) to get around this.<br />
<br />
ISTR this was an issue recently with alcotest specifically -- @samoht,<br=
 />
was there a proper fix intended for this at some point? (Or is it<br />
really just a very low default ulimit setting on Ubuntu?)<br />
<span><font color=3D"#888888"><br />
--<br />
Richard Mortier<br />
<a href=3D"mailto:richard.mortier@cl.cam.ac.uk" target=3D"_blank">richard=
.mortier@cl.cam.ac.uk</a><br />
</font></span></blockquote></div><br /></div></div>
</div></blockquote></div></div><span class=3D""><blockquote type=3D"cite"=
><div><span>_______________________________________________</span><br /><=
span>MirageOS-devel mailing list</span><br /><span><a href=3D"mailto:Mira=
geOS-devel@lists.xenproject.org" target=3D"_blank">MirageOS-devel@lists.x=
enproject.org</a></span><br /><span><a href=3D"http://lists.xenproject.or=
g/cgi-bin/mailman/listinfo/mirageos-devel" target=3D"_blank">http://lists=
.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel</a></span><br /><=
/div></blockquote></span></div></blockquote></div><br /></div>
<p style=3D"margin-top: 2.5em; margin-bottom: 1em; border-bottom: 1px sol=
id #000"></p><pre class=3D"k9mail"><hr /><br />MirageOS-devel mailing lis=
t<br />MirageOS-devel@lists.xenproject.org<br /><a href=3D"http://lists.x=
enproject.org/cgi-bin/mailman/listinfo/mirageos-devel">http://lists.xenpr=
oject.org/cgi-bin/mailman/listinfo/mirageos-devel</a><br /></pre></blockq=
uote></div><br>
-- <br>
Composed on a touchscreen keyboard; please forgive typos and brevity.</bo=
dy></html>
------B54UEUG59CW6HIE78X1XWQ519D5HSF--



--===============0942261827724598322==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

--===============0942261827724598322==--



From mirageos-devel-bounces@lists.xenproject.org Fri Sep 25 01:29:23 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 25 Sep 2015 01:29:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZfHp1-0004Cc-US; Fri, 25 Sep 2015 01:29:11 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <andrew.stuart@supercoders.com.au>)
	id 1ZfHp0-0004CX-SW
	for mirageos-devel@lists.xenproject.org; Fri, 25 Sep 2015 01:29:10 +0000
Received: from [85.158.137.68] by server-8.bemta-3.messagelabs.com id
	DD/97-31069-563A4065; Fri, 25 Sep 2015 01:29:09 +0000
X-Env-Sender: andrew.stuart@supercoders.com.au
X-Msg-Ref: server-10.tower-31.messagelabs.com!1443144548!47441222!1
X-Originating-IP: [54.215.13.78]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 1392 invoked from network); 25 Sep 2015 01:29:08 -0000
Received: from mail.supercoders.com.au (HELO mail.supercoders.com.au)
	(54.215.13.78) by server-10.tower-31.messagelabs.com with SMTP;
	25 Sep 2015 01:29:08 -0000
Received: from [192.168.1.100] (CPE-124-189-108-248.gziz1.win.bigpond.net.au
	[124.189.108.248])
	by mail.supercoders.com.au (Postfix) with ESMTPS id 2FEF2600A7;
	Fri, 25 Sep 2015 01:29:07 +0000 (UTC)
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\))
From: Andrew Stuart <andrew.stuart@supercoders.com.au>
In-Reply-To: <ED8B15E1-1CE5-41DA-A942-77C5740FDFA7@recoil.org>
Date: Fri, 25 Sep 2015 11:29:05 +1000
Message-Id: <BFF6F5EB-03C2-47CE-8DCB-D49B435D9E87@supercoders.com.au>
References: <EA788F96-A5B5-40A2-8460-FF7B24D4BF16@supercoders.com.au>
	<ED8B15E1-1CE5-41DA-A942-77C5740FDFA7@recoil.org>
To: Anil Madhavapeddy <anil@recoil.org>
X-Mailer: Apple Mail (2.2104)
Cc: mirageos-devel <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Possible to build for Xen HVM?
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

SGkgQW5pbCwKCknigJlkIGxpa2UgdG8gZXhlY3V0ZSB0aGUgdW5pa2VybmVsIG9uIEtWTSBvciBY
ZW4gSFZNIG9yIEVDMiBIVk0sIGFsbCBvZiB3aGljaCBJIHVuZGVyc3RhbmQgdG8gYmUgY29tcGF0
aWJsZS4KClRoZSBkaXJlY3Rpb24gYXQgRUMyIGlzIEhWTSByYXRoZXIgdGhhbiBQViBhbmQgdGhl
IG5ldyBpbnN0YW5jZSB0eXBlcyBhcmUgYWxsIEhWTS4KClZhcmlvdXMgb3RoZXIgY2xvdWQgcHJv
dmlkZXJzIGFyZSBLVk0gc28gaXQgd291bGQgYmUgZ29vZCB0byBiZSBhYmxlIHRvIGV4ZWN1dGUg
b24gc3VjaCB0YXJnZXRzLgoKPj4gTWFydGluIEx1Y2luYSBoYXMgZ290IGEgdmVyc2lvbiBvZiBN
aXJhZ2UgdGhhdCBidWlsZHMgdXNpbmcgUnVtcHJ1biwgd2hpY2ggcmVxdWlyZXMgYSBiaXQgb2Yg
Y3Jvc3MtY29tcGlsYXRpb24uICBUaGUgcmVzdWx0aW5nIGtlcm5lbCBib290cyBhcyBIVk0sIGJ1
dCB0aGUgcGF0Y2hlcyBoYXZlbid0IGJlZW4gaW5saW5lZCB5ZXQuCgpJ4oCZbSBmYW1pbGlhciB3
aWggcnVtcHJ1biBzbyBtYXliZSB0aGF04oCZcyB0aGUgcmlnaHQgd2F5IHRvIGdvIGZvciBLVk0v
SFZNIGZ1bmN0aW9uYWxpdHkuIEkgd2FzIHdvbmRlcmluZyBpZiBNaXJhZ2VPUyB1bmlrZXJuZWxz
IHdlcmUgYWJsZSB0byBkbyBzdGFuZGFsb25lIEhWTSB3aXRob3V0IG5lZWRpbmcgcnVtcC4KCj4+
IFdoYXQncyB5b3VyIFhlbi9IVk0gdXNlY2FzZT8gIElzIGl0IGEgY2xvdWQgcHJvdmlkZXIgdGhh
dCBvbmx5IHN1cHBvcnRzIGl0LCBvciBzb21lIG90aGVyIHJlYXNvbiB3aHkgUFYgYm9vdCBpc24n
dCBlbm91Z2g/CgpQVuKAmXMgbmVlZCBmb3IgYSBzcGVjaWZpYyBrZXJuZWwgaXMgbGVzcyBmbGV4
aWJsZSB0aGFuIEhWTS9LVk0KCgp0aGFua3MKCmFzCgoKCgoKCl9fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fCk1pcmFnZU9TLWRldmVsIG1haWxpbmcgbGlzdApN
aXJhZ2VPUy1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwOi8vbGlzdHMueGVucHJvamVj
dC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL21pcmFnZW9zLWRldmVsCg==

From mirageos-devel-bounces@lists.xenproject.org Fri Sep 25 01:29:23 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 25 Sep 2015 01:29:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZfHp1-0004Cc-US; Fri, 25 Sep 2015 01:29:11 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <andrew.stuart@supercoders.com.au>)
	id 1ZfHp0-0004CX-SW
	for mirageos-devel@lists.xenproject.org; Fri, 25 Sep 2015 01:29:10 +0000
Received: from [85.158.137.68] by server-8.bemta-3.messagelabs.com id
	DD/97-31069-563A4065; Fri, 25 Sep 2015 01:29:09 +0000
X-Env-Sender: andrew.stuart@supercoders.com.au
X-Msg-Ref: server-10.tower-31.messagelabs.com!1443144548!47441222!1
X-Originating-IP: [54.215.13.78]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 1392 invoked from network); 25 Sep 2015 01:29:08 -0000
Received: from mail.supercoders.com.au (HELO mail.supercoders.com.au)
	(54.215.13.78) by server-10.tower-31.messagelabs.com with SMTP;
	25 Sep 2015 01:29:08 -0000
Received: from [192.168.1.100] (CPE-124-189-108-248.gziz1.win.bigpond.net.au
	[124.189.108.248])
	by mail.supercoders.com.au (Postfix) with ESMTPS id 2FEF2600A7;
	Fri, 25 Sep 2015 01:29:07 +0000 (UTC)
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\))
From: Andrew Stuart <andrew.stuart@supercoders.com.au>
In-Reply-To: <ED8B15E1-1CE5-41DA-A942-77C5740FDFA7@recoil.org>
Date: Fri, 25 Sep 2015 11:29:05 +1000
Message-Id: <BFF6F5EB-03C2-47CE-8DCB-D49B435D9E87@supercoders.com.au>
References: <EA788F96-A5B5-40A2-8460-FF7B24D4BF16@supercoders.com.au>
	<ED8B15E1-1CE5-41DA-A942-77C5740FDFA7@recoil.org>
To: Anil Madhavapeddy <anil@recoil.org>
X-Mailer: Apple Mail (2.2104)
Cc: mirageos-devel <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Possible to build for Xen HVM?
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

SGkgQW5pbCwKCknigJlkIGxpa2UgdG8gZXhlY3V0ZSB0aGUgdW5pa2VybmVsIG9uIEtWTSBvciBY
ZW4gSFZNIG9yIEVDMiBIVk0sIGFsbCBvZiB3aGljaCBJIHVuZGVyc3RhbmQgdG8gYmUgY29tcGF0
aWJsZS4KClRoZSBkaXJlY3Rpb24gYXQgRUMyIGlzIEhWTSByYXRoZXIgdGhhbiBQViBhbmQgdGhl
IG5ldyBpbnN0YW5jZSB0eXBlcyBhcmUgYWxsIEhWTS4KClZhcmlvdXMgb3RoZXIgY2xvdWQgcHJv
dmlkZXJzIGFyZSBLVk0gc28gaXQgd291bGQgYmUgZ29vZCB0byBiZSBhYmxlIHRvIGV4ZWN1dGUg
b24gc3VjaCB0YXJnZXRzLgoKPj4gTWFydGluIEx1Y2luYSBoYXMgZ290IGEgdmVyc2lvbiBvZiBN
aXJhZ2UgdGhhdCBidWlsZHMgdXNpbmcgUnVtcHJ1biwgd2hpY2ggcmVxdWlyZXMgYSBiaXQgb2Yg
Y3Jvc3MtY29tcGlsYXRpb24uICBUaGUgcmVzdWx0aW5nIGtlcm5lbCBib290cyBhcyBIVk0sIGJ1
dCB0aGUgcGF0Y2hlcyBoYXZlbid0IGJlZW4gaW5saW5lZCB5ZXQuCgpJ4oCZbSBmYW1pbGlhciB3
aWggcnVtcHJ1biBzbyBtYXliZSB0aGF04oCZcyB0aGUgcmlnaHQgd2F5IHRvIGdvIGZvciBLVk0v
SFZNIGZ1bmN0aW9uYWxpdHkuIEkgd2FzIHdvbmRlcmluZyBpZiBNaXJhZ2VPUyB1bmlrZXJuZWxz
IHdlcmUgYWJsZSB0byBkbyBzdGFuZGFsb25lIEhWTSB3aXRob3V0IG5lZWRpbmcgcnVtcC4KCj4+
IFdoYXQncyB5b3VyIFhlbi9IVk0gdXNlY2FzZT8gIElzIGl0IGEgY2xvdWQgcHJvdmlkZXIgdGhh
dCBvbmx5IHN1cHBvcnRzIGl0LCBvciBzb21lIG90aGVyIHJlYXNvbiB3aHkgUFYgYm9vdCBpc24n
dCBlbm91Z2g/CgpQVuKAmXMgbmVlZCBmb3IgYSBzcGVjaWZpYyBrZXJuZWwgaXMgbGVzcyBmbGV4
aWJsZSB0aGFuIEhWTS9LVk0KCgp0aGFua3MKCmFzCgoKCgoKCl9fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fCk1pcmFnZU9TLWRldmVsIG1haWxpbmcgbGlzdApN
aXJhZ2VPUy1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwOi8vbGlzdHMueGVucHJvamVj
dC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL21pcmFnZW9zLWRldmVsCg==

From mirageos-devel-bounces@lists.xenproject.org Fri Sep 25 05:58:13 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 25 Sep 2015 05:58:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZfM1F-0003hm-K9; Fri, 25 Sep 2015 05:58:05 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <comethalley61@gmail.com>) id 1ZfM1D-0003hh-Fq
	for mirageos-devel@lists.xenproject.org; Fri, 25 Sep 2015 05:58:03 +0000
Received: from [85.158.137.68] by server-5.bemta-3.messagelabs.com id
	FC/C8-06021-A62E4065; Fri, 25 Sep 2015 05:58:02 +0000
X-Env-Sender: comethalley61@gmail.com
X-Msg-Ref: server-2.tower-31.messagelabs.com!1443160679!16291969!1
X-Originating-IP: [209.85.213.173]
X-SpamReason: No, hits=2.8 required=7.0 tests=DEAR_SOMETHING,HTML_40_50,
	HTML_MESSAGE,MAILTO_TO_SPAM_ADDR,RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 18413 invoked from network); 25 Sep 2015 05:58:00 -0000
Received: from mail-ig0-f173.google.com (HELO mail-ig0-f173.google.com)
	(209.85.213.173)
	by server-2.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	25 Sep 2015 05:58:00 -0000
Received: by igbni9 with SMTP id ni9so3108912igb.0
	for <mirageos-devel@lists.xenproject.org>;
	Thu, 24 Sep 2015 22:57:59 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:in-reply-to:references:date:message-id:subject:from:to
	:cc:content-type;
	bh=/93DL+OBhYm9LtWONGH4ufzEEASPUeoh6jF7BHAL4qQ=;
	b=lLx3Vz4DQGnflsNcnb8dsGiCvpXHriBqz5sstYEtAtWWPGhzB/2g6Q9oJSxsZgibq4
	JNH3gK0AJklbIKtWDBdZLNFA9vlHmXGuXN+SZynSVhRP27Zgyl0Z5ianD/YZnfXjXTmv
	vi/h9aLd8lyHFNgQjvTo8T9fA1Ja7UTmsw04plTvQHOvFQFQ5E/pB6Y7VvvtOFXd4u+p
	ueNUCYIgrdY8/MMK/xmkh+w6VPTKUy5o2xdoQVrdyPV5ifcPWPB2lLYpoHEQBbDvus8E
	MokMPf3jbx/sLE2zDTqdNuhzmvrcgFqY5LpvodakOCDxjzmWFljfBUvUGjTs55Ul9ctp
	cmzw==
MIME-Version: 1.0
X-Received: by 10.50.107.104 with SMTP id hb8mr766629igb.1.1443160679549; Thu,
	24 Sep 2015 22:57:59 -0700 (PDT)
Received: by 10.107.180.149 with HTTP; Thu, 24 Sep 2015 22:57:59 -0700 (PDT)
In-Reply-To: <7B594D52-53CD-4EE7-A172-0A95B4F851A2@somerandomidiot.com>
References: <CAAbK429srd4r7Kp10nPK5vndcZYLoXOsh9W=K_E4mpKVrVpZXA@mail.gmail.com>
	<56009188.1070102@somerandomidiot.com>
	<CAAbK429psAZAncgBwHP4t=hcBB104dY5T+Mefn0ze-SEYz4dDA@mail.gmail.com>
	<EF478C7D-4CF9-41FD-9309-A6602819AE4B@recoil.org>
	<CAAbK429TUAiBS+wRLuBFb3L2P4ymbbAu5e0rQdSn_U74_QtuWg@mail.gmail.com>
	<CAAbK42_Zsyy-UYgT2yvtBat9QjaDyk2v-T1tpxYcnyf4pdL1tA@mail.gmail.com>
	<CAN2Hq06nCBU4uR9aBHop=mQHwypZRBScroLWvA6-yfEMxWQCjQ@mail.gmail.com>
	<CAAbK42_78FuUjfPp8pQEo+D80uLU3PL26DAZ9pZmGAXvMCbdRg@mail.gmail.com>
	<F8575118-700C-4ABF-A8F9-3830C3B40042@cam.ac.uk>
	<CAAbK42-T79VE1jaHL+xN34oPROcSApPKwh2V9pC=Nb85wiQQ=g@mail.gmail.com>
	<7B594D52-53CD-4EE7-A172-0A95B4F851A2@somerandomidiot.com>
Date: Fri, 25 Sep 2015 11:27:59 +0530
Message-ID: <CAAbK429hGpTqfb3e==PYY-S8bZZJ7VJmL9q0D2vBHrZ7JxaZug@mail.gmail.com>
From: Lasya Venneti <comethalley61@gmail.com>
To: Mindy Preston <mindy@somerandomidiot.com>,
	mirageos-devel@lists.xenproject.org
Subject: Re: [MirageOS-devel] Getting Started
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============5011859757154739517=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============5011859757154739517==
Content-Type: multipart/alternative; boundary=047d7b10ca47a8934e05208c07df

--047d7b10ca47a8934e05208c07df
Content-Type: text/plain; charset=UTF-8

Dear all,

Thanks for your inputs! It's working now. @Mindy- ma'am I had to add
'/usr/share/app-install/desktop/mirage:mirage.desktop' to my $PATH, mirage
--help works, thank you! :)

Sincerely,
Lasya V



On 25 September 2015 at 02:56, Mindy Preston <mindy@somerandomidiot.com>
wrote:

> Hi Lasya,
>
> You may need to run:
>
> eval `opam config env`
>
> to be sure that the directory to which opam installed mirage is in your
> $PATH .
>
> Cheers,
> Mindy
>
>
> On September 24, 2015 4:22:02 PM CDT, Lasya Venneti <
> comethalley61@gmail.com> wrote:
>>
>> Dear Sir,
>>
>> I removed opam & deleted my .opam folder, and re-installed it , this time
>> version 1.2.2. This time all the opam commands worked without sudo and
>> looks like the installation was right! The last two lines for *opam
>> install mirage* say "installed mirage.2.6.1
>> Done."
>>
>>
>> *opam config report *  outputs:
>>
>> # OPAM config report
>> # opam-version    1.2.2
>> # self-upgrade    no
>> # os              linux
>> # external-solver aspcud $in $out $criteria
>> # criteria        -removed,-notuptodate,-changed
>> # jobs            4
>> # repositories    1* (http)
>> # pinned          0
>> # current-switch  4.01.0
>> # last-update     2015-09-24 21:01
>>
>> but mirage --help still doesn't seem to work. Returns ' The program
>> 'mirage' is currently not installed. You can install it by typing:
>> sudo apt-get install mirage'
>>
>>
>> Sincerely,
>> Lasya V
>>
>>
>> On 25 September 2015 at 01:55, Amir Chaudhry <amc79@cam.ac.uk> wrote:
>>
>>> From the screen log you attached I see a lot of errors related to using
>>> OPAM 1.1.1. The current version of OPAM is 1.2.2, I believe.
>>>
>>> How did you install OPAM?
>>>
>>> You mention that it seems to be working so could you tell us what the
>>> output of the following is:
>>> opam config report
>>>
>>> Also, you shouldn't need to use sudo at any point with OPAM.
>>>
>>> Best wishes,
>>> Amir
>>>
>>> --
>>> Sent via mobile
>>>
>>> On 24 Sep 2015, at 21:03, Lasya Venneti <comethalley61@gmail.com> wrote:
>>>
>>> Dear Sir,
>>>
>>> I have tried as per your suggestion but it still doesn't seem to be
>>> working. After this, Even though the installation process says "you need
>>> not be the root user" I sudo-ed most commands and it seemed to be working,
>>> installation seems to be successful from the prompts. (However, typing
>>> 'mirage --help' doesn't work yet, says install mirage thought apt-get ).
>>> Can I proceed? Or am I doing something wrong?
>>>
>>> Sincerely,
>>> Lasya V
>>>
>>> On 24 September 2015 at 21:50, Richard Mortier <
>>> richard.mortier@cl.cam.ac.uk> wrote:, inst
>>>
>>>> Hi;
>>>>
>>>> On 24 September 2015 at 17:09, Lasya Venneti <comethalley61@gmail.com>
>>>> wrote:
>>>> > Dear all,
>>>> >
>>>> > While following the installation instructions, the 'opam init'
>>>> command has
>>>> > failed with the error :
>>>> >
>>>> Sys_error("/home/lasya/.opam/repo/default/packages/alcotest/alcotest.0.4.1/opam:
>>>> > Too many open files")
>>>> > I have also attached the screen log to the mail. My laptop is mid 2014
>>>> > Lenovo-Y510p with Ubuntu 14.04 64 bit. Can somebody tell me how do I
>>>> solve
>>>> > this and why is this happening? Am I doing something wrong?
>>>>
>>>> Probably a `ulimit` setting, eg.,
>>>>
>>>> http://askubuntu.com/questions/181215/too-many-open-files-how-to-find-the-culprit
>>>> .
>>>>
>>>> Try `ulimit -a` to see what current limits are, and then something
>>>> like `ulimit -n 5000` (or a number bigger than the current limit
>>>> anyway) to get around this.
>>>>
>>>> ISTR this was an issue recently with alcotest specifically -- @samoht,
>>>> was there a proper fix intended for this at some point? (Or is it
>>>> really just a very low default ulimit setting on Ubuntu?)
>>>>
>>>> --
>>>> Richard Mortier
>>>> richard.mortier@cl.cam.ac.uk
>>>>
>>>
>>> _______________________________________________
>>> MirageOS-devel mailing list
>>> MirageOS-devel@lists.xenproject.org
>>> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
>>>
>>>
>> ------------------------------
>>
>> MirageOS-devel mailing list
>> MirageOS-devel@lists.xenproject.org
>> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
>>
>>
> --
> Composed on a touchscreen keyboard; please forgive typos and brevity.
>

--047d7b10ca47a8934e05208c07df
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Dear all,<div><br></div><div>Thanks for your inputs! It&#3=
9;s working now. @Mindy- ma&#39;am I had to add &#39;/usr/share/app-install=
/desktop/mirage:mirage.desktop&#39; to my $PATH, mirage --help works, thank=
 you! :)=C2=A0</div><div><br></div><div>Sincerely,</div><div>Lasya V=C2=A0<=
/div><div><br></div><div><br></div></div><div class=3D"gmail_extra"><br><di=
v class=3D"gmail_quote">On 25 September 2015 at 02:56, Mindy Preston <span =
dir=3D"ltr">&lt;<a href=3D"mailto:mindy@somerandomidiot.com" target=3D"_bla=
nk">mindy@somerandomidiot.com</a>&gt;</span> wrote:<br><blockquote class=3D=
"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding=
-left:1ex"><div>Hi Lasya,<br>
<br>
You may need to run:<br>
<br>
eval `opam config env`<br>
<br>
to be sure that the directory to which opam installed mirage is in your $PA=
TH .<br>
<br>
Cheers,<br>
Mindy<div><div class=3D"h5"><br><br><div class=3D"gmail_quote">On September=
 24, 2015 4:22:02 PM CDT, Lasya Venneti &lt;<a href=3D"mailto:comethalley61=
@gmail.com" target=3D"_blank">comethalley61@gmail.com</a>&gt; wrote:<blockq=
uote class=3D"gmail_quote" style=3D"margin:0pt 0pt 0pt 0.8ex;border-left:1p=
x solid rgb(204,204,204);padding-left:1ex">
<div dir=3D"ltr">Dear Sir,<div><br></div><div>I removed opam &amp; deleted =
my .opam folder, and re-installed it , this time version 1.2.2. This time a=
ll the opam commands worked without sudo and looks like the installation wa=
s right! The last two lines for <i>opam install mirage</i> say &quot;instal=
led mirage.2.6.1</div><div>Done.&quot;</div><div><br></div><div><br></div><=
div><i>opam config report </i>=C2=A0 outputs:</div><div><br></div><div><div=
># OPAM config report</div><div># opam-version =C2=A0 =C2=A01.2.2=C2=A0</di=
v><div># self-upgrade =C2=A0 =C2=A0no</div><div># os =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0linux</div><div># external-solver aspcud $in $ou=
t $criteria</div><div># criteria =C2=A0 =C2=A0 =C2=A0 =C2=A0-removed,-notup=
todate,-changed</div><div># jobs =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A04=
</div><div># repositories =C2=A0 =C2=A01* (http)</div><div># pinned =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A00</div><div># current-switch =C2=A04.01.0</div><=
div># last-update =C2=A0 =C2=A0 2015-09-24 21:01</div></div><div><br></div>=
<div>but mirage --help still doesn&#39;t seem to work. Returns &#39; The
program &#39;mirage&#39; is currently not installed. You can install it by =
typing:</div><div>sudo apt-get install mirage&#39;</div><div><br></div><div=
><br></div><div>Sincerely,</div><div>Lasya V=C2=A0</div><div><br></div></di=
v><div class=3D"gmail_extra"><br><div class=3D"gmail_quote">On 25 September=
 2015 at 01:55, Amir Chaudhry <span dir=3D"ltr">&lt;<a href=3D"mailto:amc79=
@cam.ac.uk" target=3D"_blank">amc79@cam.ac.uk</a>&gt;</span> wrote:<br><blo=
ckquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #c=
cc solid;padding-left:1ex"><div dir=3D"auto"><div>From the screen log you a=
ttached I see a lot of errors related to using OPAM 1.1.1. The current vers=
ion of OPAM is 1.2.2, I believe.=C2=A0</div><div><br></div><div>How did you=
 install OPAM?</div><div><br></div><div>You mention that it seems to be wor=
king so could you tell us what the output of the following is:</div><div>op=
am config report</div><div><br></div><div>Also, you shouldn&#39;t need to u=
se sudo at any point with
OPAM.=C2=A0<br><br>Best wishes,<div>Amir</div><div><br></div><div>--</div><=
div>Sent via mobile</div></div><div><div><div><br>On 24 Sep 2015, at 21:03,=
 Lasya Venneti &lt;<a href=3D"mailto:comethalley61@gmail.com" target=3D"_bl=
ank">comethalley61@gmail.com</a>&gt; wrote:<br><br></div><blockquote type=
=3D"cite"><div><div dir=3D"ltr">Dear Sir,=C2=A0<div><br></div><div>I have t=
ried as per your suggestion but it still doesn&#39;t seem to be working. Af=
ter this, Even though the installation process says &quot;you need not be t=
he root user&quot; I sudo-ed most commands and it seemed to be working, ins=
tallation seems to be successful from the prompts. (However, typing &#39;mi=
rage --help&#39; doesn&#39;t work yet, says install mirage thought apt-get =
). Can I proceed? Or am I doing something wrong?</div><div><br></div><div>S=
incerely,</div><div>Lasya V</div><div class=3D"gmail_extra"><br><div class=
=3D"gmail_quote">On 24 September 2015 at 21:50, Richard Mortier <span dir=
=3D"ltr">&lt;<a href=3D"mailto:richard.mortier@cl.cam.ac.uk" target=3D"_bla=
nk">richard.mortier@cl.cam.ac.uk</a>&gt;</span> wrote:, inst<br><blockquote=
 class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc soli=
d;padding-left:1ex">Hi;<br>
<span><br>
On 24 September 2015 at 17:09, Lasya Venneti &lt;<a href=3D"mailto:comethal=
ley61@gmail.com" target=3D"_blank">comethalley61@gmail.com</a>&gt; wrote:<b=
r>
&gt; Dear all,<br>
&gt;<br>
&gt; While following the installation instructions, the &#39;opam init&#39;=
 command has<br>
&gt; failed with the error :<br>
&gt; Sys_error(&quot;/home/lasya/.opam/repo/default/packages/alcotest/alcot=
est.0.4.1/opam:<br>
&gt; Too many open files&quot;)<br>
&gt; I have also attached the screen log to the mail. My laptop is mid 2014=
<br>
&gt; Lenovo-Y510p with Ubuntu 14.04 64 bit. Can somebody tell me how do I s=
olve<br>
&gt; this and why is this happening? Am I doing something wrong?<br>
<br>
</span>Probably a `ulimit` setting, eg.,<br>
<a href=3D"http://askubuntu.com/questions/181215/too-many-open-files-how-to=
-find-the-culprit" rel=3D"noreferrer" target=3D"_blank">http://askubuntu.co=
m/questions/181215/too-many-open-files-how-to-find-the-culprit</a>.<br>
<br>
Try `ulimit -a` to see what current limits are, and then something<br>
like `ulimit -n 5000` (or a number bigger than the current limit<br>
anyway) to get around this.<br>
<br>
ISTR this was an issue recently with alcotest specifically -- @samoht,<br>
was there a proper fix intended for this at some point? (Or is it<br>
really just a very low default ulimit setting on Ubuntu?)<br>
<span><font color=3D"#888888"><br>
--<br>
Richard Mortier<br>
<a href=3D"mailto:richard.mortier@cl.cam.ac.uk" target=3D"_blank">richard.m=
ortier@cl.cam.ac.uk</a><br>
</font></span></blockquote></div><br></div></div>
</div></blockquote></div></div><span><blockquote type=3D"cite"><div><span>_=
______________________________________________</span><br><span>MirageOS-dev=
el mailing list</span><br><span><a href=3D"mailto:MirageOS-devel@lists.xenp=
roject.org" target=3D"_blank">MirageOS-devel@lists.xenproject.org</a></span=
><br><span><a href=3D"http://lists.xenproject.org/cgi-bin/mailman/listinfo/=
mirageos-devel" target=3D"_blank">http://lists.xenproject.org/cgi-bin/mailm=
an/listinfo/mirageos-devel</a></span><br></div></blockquote></span></div></=
blockquote></div><br></div>
<p style=3D"margin-top:2.5em;margin-bottom:1em;border-bottom:1px solid #000=
"></p><pre><hr><br>MirageOS-devel mailing list<br><a href=3D"mailto:MirageO=
S-devel@lists.xenproject.org" target=3D"_blank">MirageOS-devel@lists.xenpro=
ject.org</a><br><a href=3D"http://lists.xenproject.org/cgi-bin/mailman/list=
info/mirageos-devel" target=3D"_blank">http://lists.xenproject.org/cgi-bin/=
mailman/listinfo/mirageos-devel</a><br></pre></blockquote></div><br></div><=
/div><span class=3D"HOEnZb"><font color=3D"#888888">
-- <br>
Composed on a touchscreen keyboard; please forgive typos and brevity.</font=
></span></div></blockquote></div><br></div>

--047d7b10ca47a8934e05208c07df--


--===============5011859757154739517==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

--===============5011859757154739517==--


From mirageos-devel-bounces@lists.xenproject.org Fri Sep 25 05:58:13 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 25 Sep 2015 05:58:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZfM1F-0003hm-K9; Fri, 25 Sep 2015 05:58:05 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <comethalley61@gmail.com>) id 1ZfM1D-0003hh-Fq
	for mirageos-devel@lists.xenproject.org; Fri, 25 Sep 2015 05:58:03 +0000
Received: from [85.158.137.68] by server-5.bemta-3.messagelabs.com id
	FC/C8-06021-A62E4065; Fri, 25 Sep 2015 05:58:02 +0000
X-Env-Sender: comethalley61@gmail.com
X-Msg-Ref: server-2.tower-31.messagelabs.com!1443160679!16291969!1
X-Originating-IP: [209.85.213.173]
X-SpamReason: No, hits=2.8 required=7.0 tests=DEAR_SOMETHING,HTML_40_50,
	HTML_MESSAGE,MAILTO_TO_SPAM_ADDR,RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 18413 invoked from network); 25 Sep 2015 05:58:00 -0000
Received: from mail-ig0-f173.google.com (HELO mail-ig0-f173.google.com)
	(209.85.213.173)
	by server-2.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	25 Sep 2015 05:58:00 -0000
Received: by igbni9 with SMTP id ni9so3108912igb.0
	for <mirageos-devel@lists.xenproject.org>;
	Thu, 24 Sep 2015 22:57:59 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:in-reply-to:references:date:message-id:subject:from:to
	:cc:content-type;
	bh=/93DL+OBhYm9LtWONGH4ufzEEASPUeoh6jF7BHAL4qQ=;
	b=lLx3Vz4DQGnflsNcnb8dsGiCvpXHriBqz5sstYEtAtWWPGhzB/2g6Q9oJSxsZgibq4
	JNH3gK0AJklbIKtWDBdZLNFA9vlHmXGuXN+SZynSVhRP27Zgyl0Z5ianD/YZnfXjXTmv
	vi/h9aLd8lyHFNgQjvTo8T9fA1Ja7UTmsw04plTvQHOvFQFQ5E/pB6Y7VvvtOFXd4u+p
	ueNUCYIgrdY8/MMK/xmkh+w6VPTKUy5o2xdoQVrdyPV5ifcPWPB2lLYpoHEQBbDvus8E
	MokMPf3jbx/sLE2zDTqdNuhzmvrcgFqY5LpvodakOCDxjzmWFljfBUvUGjTs55Ul9ctp
	cmzw==
MIME-Version: 1.0
X-Received: by 10.50.107.104 with SMTP id hb8mr766629igb.1.1443160679549; Thu,
	24 Sep 2015 22:57:59 -0700 (PDT)
Received: by 10.107.180.149 with HTTP; Thu, 24 Sep 2015 22:57:59 -0700 (PDT)
In-Reply-To: <7B594D52-53CD-4EE7-A172-0A95B4F851A2@somerandomidiot.com>
References: <CAAbK429srd4r7Kp10nPK5vndcZYLoXOsh9W=K_E4mpKVrVpZXA@mail.gmail.com>
	<56009188.1070102@somerandomidiot.com>
	<CAAbK429psAZAncgBwHP4t=hcBB104dY5T+Mefn0ze-SEYz4dDA@mail.gmail.com>
	<EF478C7D-4CF9-41FD-9309-A6602819AE4B@recoil.org>
	<CAAbK429TUAiBS+wRLuBFb3L2P4ymbbAu5e0rQdSn_U74_QtuWg@mail.gmail.com>
	<CAAbK42_Zsyy-UYgT2yvtBat9QjaDyk2v-T1tpxYcnyf4pdL1tA@mail.gmail.com>
	<CAN2Hq06nCBU4uR9aBHop=mQHwypZRBScroLWvA6-yfEMxWQCjQ@mail.gmail.com>
	<CAAbK42_78FuUjfPp8pQEo+D80uLU3PL26DAZ9pZmGAXvMCbdRg@mail.gmail.com>
	<F8575118-700C-4ABF-A8F9-3830C3B40042@cam.ac.uk>
	<CAAbK42-T79VE1jaHL+xN34oPROcSApPKwh2V9pC=Nb85wiQQ=g@mail.gmail.com>
	<7B594D52-53CD-4EE7-A172-0A95B4F851A2@somerandomidiot.com>
Date: Fri, 25 Sep 2015 11:27:59 +0530
Message-ID: <CAAbK429hGpTqfb3e==PYY-S8bZZJ7VJmL9q0D2vBHrZ7JxaZug@mail.gmail.com>
From: Lasya Venneti <comethalley61@gmail.com>
To: Mindy Preston <mindy@somerandomidiot.com>,
	mirageos-devel@lists.xenproject.org
Subject: Re: [MirageOS-devel] Getting Started
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============5011859757154739517=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============5011859757154739517==
Content-Type: multipart/alternative; boundary=047d7b10ca47a8934e05208c07df

--047d7b10ca47a8934e05208c07df
Content-Type: text/plain; charset=UTF-8

Dear all,

Thanks for your inputs! It's working now. @Mindy- ma'am I had to add
'/usr/share/app-install/desktop/mirage:mirage.desktop' to my $PATH, mirage
--help works, thank you! :)

Sincerely,
Lasya V



On 25 September 2015 at 02:56, Mindy Preston <mindy@somerandomidiot.com>
wrote:

> Hi Lasya,
>
> You may need to run:
>
> eval `opam config env`
>
> to be sure that the directory to which opam installed mirage is in your
> $PATH .
>
> Cheers,
> Mindy
>
>
> On September 24, 2015 4:22:02 PM CDT, Lasya Venneti <
> comethalley61@gmail.com> wrote:
>>
>> Dear Sir,
>>
>> I removed opam & deleted my .opam folder, and re-installed it , this time
>> version 1.2.2. This time all the opam commands worked without sudo and
>> looks like the installation was right! The last two lines for *opam
>> install mirage* say "installed mirage.2.6.1
>> Done."
>>
>>
>> *opam config report *  outputs:
>>
>> # OPAM config report
>> # opam-version    1.2.2
>> # self-upgrade    no
>> # os              linux
>> # external-solver aspcud $in $out $criteria
>> # criteria        -removed,-notuptodate,-changed
>> # jobs            4
>> # repositories    1* (http)
>> # pinned          0
>> # current-switch  4.01.0
>> # last-update     2015-09-24 21:01
>>
>> but mirage --help still doesn't seem to work. Returns ' The program
>> 'mirage' is currently not installed. You can install it by typing:
>> sudo apt-get install mirage'
>>
>>
>> Sincerely,
>> Lasya V
>>
>>
>> On 25 September 2015 at 01:55, Amir Chaudhry <amc79@cam.ac.uk> wrote:
>>
>>> From the screen log you attached I see a lot of errors related to using
>>> OPAM 1.1.1. The current version of OPAM is 1.2.2, I believe.
>>>
>>> How did you install OPAM?
>>>
>>> You mention that it seems to be working so could you tell us what the
>>> output of the following is:
>>> opam config report
>>>
>>> Also, you shouldn't need to use sudo at any point with OPAM.
>>>
>>> Best wishes,
>>> Amir
>>>
>>> --
>>> Sent via mobile
>>>
>>> On 24 Sep 2015, at 21:03, Lasya Venneti <comethalley61@gmail.com> wrote:
>>>
>>> Dear Sir,
>>>
>>> I have tried as per your suggestion but it still doesn't seem to be
>>> working. After this, Even though the installation process says "you need
>>> not be the root user" I sudo-ed most commands and it seemed to be working,
>>> installation seems to be successful from the prompts. (However, typing
>>> 'mirage --help' doesn't work yet, says install mirage thought apt-get ).
>>> Can I proceed? Or am I doing something wrong?
>>>
>>> Sincerely,
>>> Lasya V
>>>
>>> On 24 September 2015 at 21:50, Richard Mortier <
>>> richard.mortier@cl.cam.ac.uk> wrote:, inst
>>>
>>>> Hi;
>>>>
>>>> On 24 September 2015 at 17:09, Lasya Venneti <comethalley61@gmail.com>
>>>> wrote:
>>>> > Dear all,
>>>> >
>>>> > While following the installation instructions, the 'opam init'
>>>> command has
>>>> > failed with the error :
>>>> >
>>>> Sys_error("/home/lasya/.opam/repo/default/packages/alcotest/alcotest.0.4.1/opam:
>>>> > Too many open files")
>>>> > I have also attached the screen log to the mail. My laptop is mid 2014
>>>> > Lenovo-Y510p with Ubuntu 14.04 64 bit. Can somebody tell me how do I
>>>> solve
>>>> > this and why is this happening? Am I doing something wrong?
>>>>
>>>> Probably a `ulimit` setting, eg.,
>>>>
>>>> http://askubuntu.com/questions/181215/too-many-open-files-how-to-find-the-culprit
>>>> .
>>>>
>>>> Try `ulimit -a` to see what current limits are, and then something
>>>> like `ulimit -n 5000` (or a number bigger than the current limit
>>>> anyway) to get around this.
>>>>
>>>> ISTR this was an issue recently with alcotest specifically -- @samoht,
>>>> was there a proper fix intended for this at some point? (Or is it
>>>> really just a very low default ulimit setting on Ubuntu?)
>>>>
>>>> --
>>>> Richard Mortier
>>>> richard.mortier@cl.cam.ac.uk
>>>>
>>>
>>> _______________________________________________
>>> MirageOS-devel mailing list
>>> MirageOS-devel@lists.xenproject.org
>>> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
>>>
>>>
>> ------------------------------
>>
>> MirageOS-devel mailing list
>> MirageOS-devel@lists.xenproject.org
>> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
>>
>>
> --
> Composed on a touchscreen keyboard; please forgive typos and brevity.
>

--047d7b10ca47a8934e05208c07df
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Dear all,<div><br></div><div>Thanks for your inputs! It&#3=
9;s working now. @Mindy- ma&#39;am I had to add &#39;/usr/share/app-install=
/desktop/mirage:mirage.desktop&#39; to my $PATH, mirage --help works, thank=
 you! :)=C2=A0</div><div><br></div><div>Sincerely,</div><div>Lasya V=C2=A0<=
/div><div><br></div><div><br></div></div><div class=3D"gmail_extra"><br><di=
v class=3D"gmail_quote">On 25 September 2015 at 02:56, Mindy Preston <span =
dir=3D"ltr">&lt;<a href=3D"mailto:mindy@somerandomidiot.com" target=3D"_bla=
nk">mindy@somerandomidiot.com</a>&gt;</span> wrote:<br><blockquote class=3D=
"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding=
-left:1ex"><div>Hi Lasya,<br>
<br>
You may need to run:<br>
<br>
eval `opam config env`<br>
<br>
to be sure that the directory to which opam installed mirage is in your $PA=
TH .<br>
<br>
Cheers,<br>
Mindy<div><div class=3D"h5"><br><br><div class=3D"gmail_quote">On September=
 24, 2015 4:22:02 PM CDT, Lasya Venneti &lt;<a href=3D"mailto:comethalley61=
@gmail.com" target=3D"_blank">comethalley61@gmail.com</a>&gt; wrote:<blockq=
uote class=3D"gmail_quote" style=3D"margin:0pt 0pt 0pt 0.8ex;border-left:1p=
x solid rgb(204,204,204);padding-left:1ex">
<div dir=3D"ltr">Dear Sir,<div><br></div><div>I removed opam &amp; deleted =
my .opam folder, and re-installed it , this time version 1.2.2. This time a=
ll the opam commands worked without sudo and looks like the installation wa=
s right! The last two lines for <i>opam install mirage</i> say &quot;instal=
led mirage.2.6.1</div><div>Done.&quot;</div><div><br></div><div><br></div><=
div><i>opam config report </i>=C2=A0 outputs:</div><div><br></div><div><div=
># OPAM config report</div><div># opam-version =C2=A0 =C2=A01.2.2=C2=A0</di=
v><div># self-upgrade =C2=A0 =C2=A0no</div><div># os =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0linux</div><div># external-solver aspcud $in $ou=
t $criteria</div><div># criteria =C2=A0 =C2=A0 =C2=A0 =C2=A0-removed,-notup=
todate,-changed</div><div># jobs =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A04=
</div><div># repositories =C2=A0 =C2=A01* (http)</div><div># pinned =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A00</div><div># current-switch =C2=A04.01.0</div><=
div># last-update =C2=A0 =C2=A0 2015-09-24 21:01</div></div><div><br></div>=
<div>but mirage --help still doesn&#39;t seem to work. Returns &#39; The
program &#39;mirage&#39; is currently not installed. You can install it by =
typing:</div><div>sudo apt-get install mirage&#39;</div><div><br></div><div=
><br></div><div>Sincerely,</div><div>Lasya V=C2=A0</div><div><br></div></di=
v><div class=3D"gmail_extra"><br><div class=3D"gmail_quote">On 25 September=
 2015 at 01:55, Amir Chaudhry <span dir=3D"ltr">&lt;<a href=3D"mailto:amc79=
@cam.ac.uk" target=3D"_blank">amc79@cam.ac.uk</a>&gt;</span> wrote:<br><blo=
ckquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #c=
cc solid;padding-left:1ex"><div dir=3D"auto"><div>From the screen log you a=
ttached I see a lot of errors related to using OPAM 1.1.1. The current vers=
ion of OPAM is 1.2.2, I believe.=C2=A0</div><div><br></div><div>How did you=
 install OPAM?</div><div><br></div><div>You mention that it seems to be wor=
king so could you tell us what the output of the following is:</div><div>op=
am config report</div><div><br></div><div>Also, you shouldn&#39;t need to u=
se sudo at any point with
OPAM.=C2=A0<br><br>Best wishes,<div>Amir</div><div><br></div><div>--</div><=
div>Sent via mobile</div></div><div><div><div><br>On 24 Sep 2015, at 21:03,=
 Lasya Venneti &lt;<a href=3D"mailto:comethalley61@gmail.com" target=3D"_bl=
ank">comethalley61@gmail.com</a>&gt; wrote:<br><br></div><blockquote type=
=3D"cite"><div><div dir=3D"ltr">Dear Sir,=C2=A0<div><br></div><div>I have t=
ried as per your suggestion but it still doesn&#39;t seem to be working. Af=
ter this, Even though the installation process says &quot;you need not be t=
he root user&quot; I sudo-ed most commands and it seemed to be working, ins=
tallation seems to be successful from the prompts. (However, typing &#39;mi=
rage --help&#39; doesn&#39;t work yet, says install mirage thought apt-get =
). Can I proceed? Or am I doing something wrong?</div><div><br></div><div>S=
incerely,</div><div>Lasya V</div><div class=3D"gmail_extra"><br><div class=
=3D"gmail_quote">On 24 September 2015 at 21:50, Richard Mortier <span dir=
=3D"ltr">&lt;<a href=3D"mailto:richard.mortier@cl.cam.ac.uk" target=3D"_bla=
nk">richard.mortier@cl.cam.ac.uk</a>&gt;</span> wrote:, inst<br><blockquote=
 class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc soli=
d;padding-left:1ex">Hi;<br>
<span><br>
On 24 September 2015 at 17:09, Lasya Venneti &lt;<a href=3D"mailto:comethal=
ley61@gmail.com" target=3D"_blank">comethalley61@gmail.com</a>&gt; wrote:<b=
r>
&gt; Dear all,<br>
&gt;<br>
&gt; While following the installation instructions, the &#39;opam init&#39;=
 command has<br>
&gt; failed with the error :<br>
&gt; Sys_error(&quot;/home/lasya/.opam/repo/default/packages/alcotest/alcot=
est.0.4.1/opam:<br>
&gt; Too many open files&quot;)<br>
&gt; I have also attached the screen log to the mail. My laptop is mid 2014=
<br>
&gt; Lenovo-Y510p with Ubuntu 14.04 64 bit. Can somebody tell me how do I s=
olve<br>
&gt; this and why is this happening? Am I doing something wrong?<br>
<br>
</span>Probably a `ulimit` setting, eg.,<br>
<a href=3D"http://askubuntu.com/questions/181215/too-many-open-files-how-to=
-find-the-culprit" rel=3D"noreferrer" target=3D"_blank">http://askubuntu.co=
m/questions/181215/too-many-open-files-how-to-find-the-culprit</a>.<br>
<br>
Try `ulimit -a` to see what current limits are, and then something<br>
like `ulimit -n 5000` (or a number bigger than the current limit<br>
anyway) to get around this.<br>
<br>
ISTR this was an issue recently with alcotest specifically -- @samoht,<br>
was there a proper fix intended for this at some point? (Or is it<br>
really just a very low default ulimit setting on Ubuntu?)<br>
<span><font color=3D"#888888"><br>
--<br>
Richard Mortier<br>
<a href=3D"mailto:richard.mortier@cl.cam.ac.uk" target=3D"_blank">richard.m=
ortier@cl.cam.ac.uk</a><br>
</font></span></blockquote></div><br></div></div>
</div></blockquote></div></div><span><blockquote type=3D"cite"><div><span>_=
______________________________________________</span><br><span>MirageOS-dev=
el mailing list</span><br><span><a href=3D"mailto:MirageOS-devel@lists.xenp=
roject.org" target=3D"_blank">MirageOS-devel@lists.xenproject.org</a></span=
><br><span><a href=3D"http://lists.xenproject.org/cgi-bin/mailman/listinfo/=
mirageos-devel" target=3D"_blank">http://lists.xenproject.org/cgi-bin/mailm=
an/listinfo/mirageos-devel</a></span><br></div></blockquote></span></div></=
blockquote></div><br></div>
<p style=3D"margin-top:2.5em;margin-bottom:1em;border-bottom:1px solid #000=
"></p><pre><hr><br>MirageOS-devel mailing list<br><a href=3D"mailto:MirageO=
S-devel@lists.xenproject.org" target=3D"_blank">MirageOS-devel@lists.xenpro=
ject.org</a><br><a href=3D"http://lists.xenproject.org/cgi-bin/mailman/list=
info/mirageos-devel" target=3D"_blank">http://lists.xenproject.org/cgi-bin/=
mailman/listinfo/mirageos-devel</a><br></pre></blockquote></div><br></div><=
/div><span class=3D"HOEnZb"><font color=3D"#888888">
-- <br>
Composed on a touchscreen keyboard; please forgive typos and brevity.</font=
></span></div></blockquote></div><br></div>

--047d7b10ca47a8934e05208c07df--


--===============5011859757154739517==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

--===============5011859757154739517==--


From mirageos-devel-bounces@lists.xenproject.org Fri Sep 25 12:48:14 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 25 Sep 2015 12:48:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZfSQ2-0001M1-IV; Fri, 25 Sep 2015 12:48:06 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <jjl25@cam.ac.uk>) id 1ZfSQ0-0001La-EE
	for mirageos-devel@lists.xenproject.org; Fri, 25 Sep 2015 12:48:04 +0000
Received: from [85.158.137.68] by server-6.bemta-3.messagelabs.com id
	41/6A-29649-38245065; Fri, 25 Sep 2015 12:48:03 +0000
X-Env-Sender: jjl25@cam.ac.uk
X-Msg-Ref: server-12.tower-31.messagelabs.com!1443185282!10738966!1
X-Originating-IP: [131.111.8.140]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 21297 invoked from network); 25 Sep 2015 12:48:03 -0000
Received: from ppsw-40.csi.cam.ac.uk (HELO ppsw-40.csi.cam.ac.uk)
	(131.111.8.140)
	by server-12.tower-31.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 25 Sep 2015 12:48:03 -0000
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: http://www.cam.ac.uk/cs/email/scanner/
Received: from [185.25.64.249] (port=35024 helo=localhost)
	by ppsw-40.csi.cam.ac.uk (smtp.hermes.cam.ac.uk [131.111.8.156]:587)
	with esmtpsa (PLAIN:jjl25) (TLSv1.2:ECDHE-RSA-AES128-GCM-SHA256:128)
	id 1ZfSPx-0002CO-lV (Exim 4.86_36-e07b163)
	(return-path <jjl25@cam.ac.uk>); Fri, 25 Sep 2015 13:48:01 +0100
Date: Fri, 25 Sep 2015 13:46:31 +0100
From: Jon Ludlam <jjl25@cam.ac.uk>
To: Andrew Stuart <andrew.stuart@supercoders.com.au>
Message-ID: <20150925124631.GC14651@humongous.uk.xensource.com>
References: <EA788F96-A5B5-40A2-8460-FF7B24D4BF16@supercoders.com.au>
	<ED8B15E1-1CE5-41DA-A942-77C5740FDFA7@recoil.org>
	<BFF6F5EB-03C2-47CE-8DCB-D49B435D9E87@supercoders.com.au>
MIME-Version: 1.0
Content-Length: 2590
Content-Disposition: inline
In-Reply-To: <BFF6F5EB-03C2-47CE-8DCB-D49B435D9E87@supercoders.com.au>
User-Agent: Mutt/1.5.23 (2014-03-12)
Cc: mirageos-devel <mirageos-devel@lists.xenproject.org>,
	Anil Madhavapeddy <anil@recoil.org>
Subject: Re: [MirageOS-devel] Possible to build for Xen HVM?
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

T24gRnJpLCBTZXAgMjUsIDIwMTUgYXQgMTE6Mjk6MDVBTSArMTAwMCwgQW5kcmV3IFN0dWFydCB3
cm90ZToKPiBIaSBBbmlsLAo+IAo+IEnigJlkIGxpa2UgdG8gZXhlY3V0ZSB0aGUgdW5pa2VybmVs
IG9uIEtWTSBvciBYZW4gSFZNIG9yIEVDMiBIVk0sIGFsbCBvZiB3aGljaCBJIHVuZGVyc3RhbmQg
dG8gYmUgY29tcGF0aWJsZS4KPiAKPiBUaGUgZGlyZWN0aW9uIGF0IEVDMiBpcyBIVk0gcmF0aGVy
IHRoYW4gUFYgYW5kIHRoZSBuZXcgaW5zdGFuY2UgdHlwZXMgYXJlIGFsbCBIVk0uCj4KCkhWTSBi
b290aW5nIHNob3VsZG4ndCBiZSBhIGJpZyBwcm9qZWN0IGZvciBNaXJhZ2UgLSBhcyBBbmlsIG1l
bnRpb25lZApJIGhhZCBhIGdvIGEgd2hpbGUgYmFjayBbMV0sIGFuZCB3YXMgbWFraW5nIHJlYXNv
bmFibGUgcHJvZ3Jlc3MuIE9uY2UKaXQgaGFzIGJvb3RlZCwgdGhlIHNhbWUgbmV0L2Jsb2NrIGRy
aXZlcnMgdGhhdCB3b3JrIGZvciBQViBYZW4gc2hvdWxkCndvcmsgZm9yIEhWTSB0b28uCgpGb3Ig
S1ZNIGl0J3MgYSBsaXR0bGUgaGFyZGVyLCBhcyB3ZSdsbCBuZWVkIHRvIGhhdmUgdmlydGlvIGRy
aXZlcnMgZm9yCnRoZSBuZXR3b3JrIGFuZCBkaXNrLCBhbmQgdGhlc2Ugd2lsbCBuZWVkIHRvIGJl
IHdyaXR0ZW4gZnJvbSBzY3JhdGNoLAppbmNsdWRpbmcgYWxsIHRoZSBzdXBwb3J0aW5nIFBDSSBp
bmZyYXN0cnVjdHVyZS4gTm90IHN1cGVyIGhhcmQsIGJ1dAptb3JlIHdvcmsgdGhhbiBzaW1wbHkg
SFZNIGJvb3RpbmcuCgpKb24KClsxXTogaHR0cHM6Ly9naXRodWIuY29tL2pvbmx1ZGxhbS9taXJh
Z2UtcGxhdGZvcm0vdHJlZS9odm0KCj4gVmFyaW91cyBvdGhlciBjbG91ZCBwcm92aWRlcnMgYXJl
IEtWTSBzbyBpdCB3b3VsZCBiZSBnb29kIHRvIGJlIGFibGUgdG8gZXhlY3V0ZSBvbiBzdWNoIHRh
cmdldHMuCj4gCj4gPj4gTWFydGluIEx1Y2luYSBoYXMgZ290IGEgdmVyc2lvbiBvZiBNaXJhZ2Ug
dGhhdCBidWlsZHMgdXNpbmcgUnVtcHJ1biwgd2hpY2ggcmVxdWlyZXMgYSBiaXQgb2YgY3Jvc3Mt
Y29tcGlsYXRpb24uICBUaGUgcmVzdWx0aW5nIGtlcm5lbCBib290cyBhcyBIVk0sIGJ1dCB0aGUg
cGF0Y2hlcyBoYXZlbid0IGJlZW4gaW5saW5lZCB5ZXQuCj4gCj4gSeKAmW0gZmFtaWxpYXIgd2lo
IHJ1bXBydW4gc28gbWF5YmUgdGhhdOKAmXMgdGhlIHJpZ2h0IHdheSB0byBnbyBmb3IgS1ZNL0hW
TSBmdW5jdGlvbmFsaXR5LiBJIHdhcyB3b25kZXJpbmcgaWYgTWlyYWdlT1MgdW5pa2VybmVscyB3
ZXJlIGFibGUgdG8gZG8gc3RhbmRhbG9uZSBIVk0gd2l0aG91dCBuZWVkaW5nIHJ1bXAuCj4gCj4g
Pj4gV2hhdCdzIHlvdXIgWGVuL0hWTSB1c2VjYXNlPyAgSXMgaXQgYSBjbG91ZCBwcm92aWRlciB0
aGF0IG9ubHkgc3VwcG9ydHMgaXQsIG9yIHNvbWUgb3RoZXIgcmVhc29uIHdoeSBQViBib290IGlz
bid0IGVub3VnaD8KPiAKPiBQVuKAmXMgbmVlZCBmb3IgYSBzcGVjaWZpYyBrZXJuZWwgaXMgbGVz
cyBmbGV4aWJsZSB0aGFuIEhWTS9LVk0KPiAKPiAKPiB0aGFua3MKPiAKPiBhcwo+IAo+IAo+IAo+
IAo+IAo+IAo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
Cj4gTWlyYWdlT1MtZGV2ZWwgbWFpbGluZyBsaXN0Cj4gTWlyYWdlT1MtZGV2ZWxAbGlzdHMueGVu
cHJvamVjdC5vcmcKPiBodHRwOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFu
L2xpc3RpbmZvL21pcmFnZW9zLWRldmVsCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fXwpNaXJhZ2VPUy1kZXZlbCBtYWlsaW5nIGxpc3QKTWlyYWdlT1MtZGV2
ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cDovL2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1i
aW4vbWFpbG1hbi9saXN0aW5mby9taXJhZ2Vvcy1kZXZlbAo=

From mirageos-devel-bounces@lists.xenproject.org Fri Sep 25 12:48:14 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 25 Sep 2015 12:48:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZfSQ2-0001M1-IV; Fri, 25 Sep 2015 12:48:06 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <jjl25@cam.ac.uk>) id 1ZfSQ0-0001La-EE
	for mirageos-devel@lists.xenproject.org; Fri, 25 Sep 2015 12:48:04 +0000
Received: from [85.158.137.68] by server-6.bemta-3.messagelabs.com id
	41/6A-29649-38245065; Fri, 25 Sep 2015 12:48:03 +0000
X-Env-Sender: jjl25@cam.ac.uk
X-Msg-Ref: server-12.tower-31.messagelabs.com!1443185282!10738966!1
X-Originating-IP: [131.111.8.140]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 21297 invoked from network); 25 Sep 2015 12:48:03 -0000
Received: from ppsw-40.csi.cam.ac.uk (HELO ppsw-40.csi.cam.ac.uk)
	(131.111.8.140)
	by server-12.tower-31.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 25 Sep 2015 12:48:03 -0000
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: http://www.cam.ac.uk/cs/email/scanner/
Received: from [185.25.64.249] (port=35024 helo=localhost)
	by ppsw-40.csi.cam.ac.uk (smtp.hermes.cam.ac.uk [131.111.8.156]:587)
	with esmtpsa (PLAIN:jjl25) (TLSv1.2:ECDHE-RSA-AES128-GCM-SHA256:128)
	id 1ZfSPx-0002CO-lV (Exim 4.86_36-e07b163)
	(return-path <jjl25@cam.ac.uk>); Fri, 25 Sep 2015 13:48:01 +0100
Date: Fri, 25 Sep 2015 13:46:31 +0100
From: Jon Ludlam <jjl25@cam.ac.uk>
To: Andrew Stuart <andrew.stuart@supercoders.com.au>
Message-ID: <20150925124631.GC14651@humongous.uk.xensource.com>
References: <EA788F96-A5B5-40A2-8460-FF7B24D4BF16@supercoders.com.au>
	<ED8B15E1-1CE5-41DA-A942-77C5740FDFA7@recoil.org>
	<BFF6F5EB-03C2-47CE-8DCB-D49B435D9E87@supercoders.com.au>
MIME-Version: 1.0
Content-Length: 2590
Content-Disposition: inline
In-Reply-To: <BFF6F5EB-03C2-47CE-8DCB-D49B435D9E87@supercoders.com.au>
User-Agent: Mutt/1.5.23 (2014-03-12)
Cc: mirageos-devel <mirageos-devel@lists.xenproject.org>,
	Anil Madhavapeddy <anil@recoil.org>
Subject: Re: [MirageOS-devel] Possible to build for Xen HVM?
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

T24gRnJpLCBTZXAgMjUsIDIwMTUgYXQgMTE6Mjk6MDVBTSArMTAwMCwgQW5kcmV3IFN0dWFydCB3
cm90ZToKPiBIaSBBbmlsLAo+IAo+IEnigJlkIGxpa2UgdG8gZXhlY3V0ZSB0aGUgdW5pa2VybmVs
IG9uIEtWTSBvciBYZW4gSFZNIG9yIEVDMiBIVk0sIGFsbCBvZiB3aGljaCBJIHVuZGVyc3RhbmQg
dG8gYmUgY29tcGF0aWJsZS4KPiAKPiBUaGUgZGlyZWN0aW9uIGF0IEVDMiBpcyBIVk0gcmF0aGVy
IHRoYW4gUFYgYW5kIHRoZSBuZXcgaW5zdGFuY2UgdHlwZXMgYXJlIGFsbCBIVk0uCj4KCkhWTSBi
b290aW5nIHNob3VsZG4ndCBiZSBhIGJpZyBwcm9qZWN0IGZvciBNaXJhZ2UgLSBhcyBBbmlsIG1l
bnRpb25lZApJIGhhZCBhIGdvIGEgd2hpbGUgYmFjayBbMV0sIGFuZCB3YXMgbWFraW5nIHJlYXNv
bmFibGUgcHJvZ3Jlc3MuIE9uY2UKaXQgaGFzIGJvb3RlZCwgdGhlIHNhbWUgbmV0L2Jsb2NrIGRy
aXZlcnMgdGhhdCB3b3JrIGZvciBQViBYZW4gc2hvdWxkCndvcmsgZm9yIEhWTSB0b28uCgpGb3Ig
S1ZNIGl0J3MgYSBsaXR0bGUgaGFyZGVyLCBhcyB3ZSdsbCBuZWVkIHRvIGhhdmUgdmlydGlvIGRy
aXZlcnMgZm9yCnRoZSBuZXR3b3JrIGFuZCBkaXNrLCBhbmQgdGhlc2Ugd2lsbCBuZWVkIHRvIGJl
IHdyaXR0ZW4gZnJvbSBzY3JhdGNoLAppbmNsdWRpbmcgYWxsIHRoZSBzdXBwb3J0aW5nIFBDSSBp
bmZyYXN0cnVjdHVyZS4gTm90IHN1cGVyIGhhcmQsIGJ1dAptb3JlIHdvcmsgdGhhbiBzaW1wbHkg
SFZNIGJvb3RpbmcuCgpKb24KClsxXTogaHR0cHM6Ly9naXRodWIuY29tL2pvbmx1ZGxhbS9taXJh
Z2UtcGxhdGZvcm0vdHJlZS9odm0KCj4gVmFyaW91cyBvdGhlciBjbG91ZCBwcm92aWRlcnMgYXJl
IEtWTSBzbyBpdCB3b3VsZCBiZSBnb29kIHRvIGJlIGFibGUgdG8gZXhlY3V0ZSBvbiBzdWNoIHRh
cmdldHMuCj4gCj4gPj4gTWFydGluIEx1Y2luYSBoYXMgZ290IGEgdmVyc2lvbiBvZiBNaXJhZ2Ug
dGhhdCBidWlsZHMgdXNpbmcgUnVtcHJ1biwgd2hpY2ggcmVxdWlyZXMgYSBiaXQgb2YgY3Jvc3Mt
Y29tcGlsYXRpb24uICBUaGUgcmVzdWx0aW5nIGtlcm5lbCBib290cyBhcyBIVk0sIGJ1dCB0aGUg
cGF0Y2hlcyBoYXZlbid0IGJlZW4gaW5saW5lZCB5ZXQuCj4gCj4gSeKAmW0gZmFtaWxpYXIgd2lo
IHJ1bXBydW4gc28gbWF5YmUgdGhhdOKAmXMgdGhlIHJpZ2h0IHdheSB0byBnbyBmb3IgS1ZNL0hW
TSBmdW5jdGlvbmFsaXR5LiBJIHdhcyB3b25kZXJpbmcgaWYgTWlyYWdlT1MgdW5pa2VybmVscyB3
ZXJlIGFibGUgdG8gZG8gc3RhbmRhbG9uZSBIVk0gd2l0aG91dCBuZWVkaW5nIHJ1bXAuCj4gCj4g
Pj4gV2hhdCdzIHlvdXIgWGVuL0hWTSB1c2VjYXNlPyAgSXMgaXQgYSBjbG91ZCBwcm92aWRlciB0
aGF0IG9ubHkgc3VwcG9ydHMgaXQsIG9yIHNvbWUgb3RoZXIgcmVhc29uIHdoeSBQViBib290IGlz
bid0IGVub3VnaD8KPiAKPiBQVuKAmXMgbmVlZCBmb3IgYSBzcGVjaWZpYyBrZXJuZWwgaXMgbGVz
cyBmbGV4aWJsZSB0aGFuIEhWTS9LVk0KPiAKPiAKPiB0aGFua3MKPiAKPiBhcwo+IAo+IAo+IAo+
IAo+IAo+IAo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
Cj4gTWlyYWdlT1MtZGV2ZWwgbWFpbGluZyBsaXN0Cj4gTWlyYWdlT1MtZGV2ZWxAbGlzdHMueGVu
cHJvamVjdC5vcmcKPiBodHRwOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFu
L2xpc3RpbmZvL21pcmFnZW9zLWRldmVsCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fXwpNaXJhZ2VPUy1kZXZlbCBtYWlsaW5nIGxpc3QKTWlyYWdlT1MtZGV2
ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cDovL2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1i
aW4vbWFpbG1hbi9saXN0aW5mby9taXJhZ2Vvcy1kZXZlbAo=

From mirageos-devel-bounces@lists.xenproject.org Fri Sep 25 21:22:51 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 25 Sep 2015 21:22:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZfaS1-00022k-9j; Fri, 25 Sep 2015 21:22:41 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <shivangi.dhir.02@gmail.com>) id 1ZfaS0-00022f-8s
	for mirageos-devel@lists.xenproject.org; Fri, 25 Sep 2015 21:22:40 +0000
Received: from [85.158.137.68] by server-3.bemta-3.messagelabs.com id
	52/2B-01753-F1BB5065; Fri, 25 Sep 2015 21:22:39 +0000
X-Env-Sender: shivangi.dhir.02@gmail.com
X-Msg-Ref: server-5.tower-31.messagelabs.com!1443216157!47820565!1
X-Originating-IP: [209.85.220.180]
X-SpamReason: No, hits=0.4 required=7.0 tests=HTML_30_40,HTML_MESSAGE,
	RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 9496 invoked from network); 25 Sep 2015 21:22:38 -0000
Received: from mail-qk0-f180.google.com (HELO mail-qk0-f180.google.com)
	(209.85.220.180)
	by server-5.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	25 Sep 2015 21:22:38 -0000
Received: by qkdw123 with SMTP id w123so47504891qkd.0
	for <mirageos-devel@lists.xenproject.org>;
	Fri, 25 Sep 2015 14:22:37 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:from:date:message-id:subject:to:content-type;
	bh=KNl5EAT7c/WJHYMS7XruWQI1z4fIrFwR+GuIphK6vUQ=;
	b=NoeCS1k3b9fXq2d/suqKo6siN87TKnlTGQNfTaKg3DeoZmABPjtaOTpEdQGxa1Jh4g
	8VjCTUU74Dha0FX2TRs9juw0bjdyJddwAoPjyDgAiLuQfUCx7yu9aSYXkxK6gtzxI0lL
	CVBzceVFG4eq6GTsk3+bvqoJQlnNQ3bEsfeTlbdEbutcBbpS/4Qjqx3249joG9X37AHV
	N1Rv/Kh/u/m4jmCfc8v0tXZaX9q1Q15bcEuhYoSqpHdR3XwcBt2qtyItkiyCCMl9jEk9
	VuthbCsB+VYAMcLIuD2hbn+1mkPkThwBHXPr0nKxlx9/UkeLPY9fUZv2iEa7M6rsFOPZ
	GBZg==
X-Received: by 10.55.56.129 with SMTP id f123mr8280411qka.79.1443216157523;
	Fri, 25 Sep 2015 14:22:37 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.140.40.9 with HTTP; Fri, 25 Sep 2015 14:21:58 -0700 (PDT)
From: Shivangi Dhir <shivangi.dhir.02@gmail.com>
Date: Sat, 26 Sep 2015 02:51:58 +0530
Message-ID: <CADeUC8BCtWWR+hhb-qcKs59M9_LxDPFvv-4mow0UrUdVA70bWw@mail.gmail.com>
To: mirageos-devel@lists.xenproject.org
Subject: [MirageOS-devel] Contributing to Xen for Outreachy 2015
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============0216800932200553286=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============0216800932200553286==
Content-Type: multipart/alternative; boundary=001a1147975a6742d6052098f27b

--001a1147975a6742d6052098f27b
Content-Type: text/plain; charset=UTF-8

Hi,

I am an Outreachy 2015 Applicant. I have a background in C, C++, Python and
shell scripting. I am also familiar with concepts of Operating Systems.

I would like to contribute to Xen but I am a little concerned about the
skill-set required for contributing to the projects mentioned in
https://github.com/mirage/mirage-www/wiki/Pioneer-Projects.

It would be very helpful if I could get some help getting started.

-- 
Regards,
Shivangi Dhir

--001a1147975a6742d6052098f27b
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div><div>Hi,<br><br></div>I am an Outreachy 2015 Applican=
t. I have a=20
background in C, C++, Python and shell scripting. I am also familiar with=
=20
concepts of Operating Systems.<br><br></div>I would like to contribute to X=
en but I am a little concerned about the skill-set required for contributin=
g to the projects mentioned in <a href=3D"https://github.com/mirage/mirage-=
www/wiki/Pioneer-Projects">https://github.com/mirage/mirage-www/wiki/Pionee=
r-Projects</a>. <br><br>It would be very helpful if I could get some help g=
etting started. <br clear=3D"all"><br>-- <br><div class=3D"gmail_signature"=
><div dir=3D"ltr"><div>Regards,<br></div>Shivangi Dhir<br></div></div>
</div>

--001a1147975a6742d6052098f27b--


--===============0216800932200553286==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

--===============0216800932200553286==--


From mirageos-devel-bounces@lists.xenproject.org Fri Sep 25 21:22:51 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 25 Sep 2015 21:22:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZfaS1-00022k-9j; Fri, 25 Sep 2015 21:22:41 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <shivangi.dhir.02@gmail.com>) id 1ZfaS0-00022f-8s
	for mirageos-devel@lists.xenproject.org; Fri, 25 Sep 2015 21:22:40 +0000
Received: from [85.158.137.68] by server-3.bemta-3.messagelabs.com id
	52/2B-01753-F1BB5065; Fri, 25 Sep 2015 21:22:39 +0000
X-Env-Sender: shivangi.dhir.02@gmail.com
X-Msg-Ref: server-5.tower-31.messagelabs.com!1443216157!47820565!1
X-Originating-IP: [209.85.220.180]
X-SpamReason: No, hits=0.4 required=7.0 tests=HTML_30_40,HTML_MESSAGE,
	RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 9496 invoked from network); 25 Sep 2015 21:22:38 -0000
Received: from mail-qk0-f180.google.com (HELO mail-qk0-f180.google.com)
	(209.85.220.180)
	by server-5.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	25 Sep 2015 21:22:38 -0000
Received: by qkdw123 with SMTP id w123so47504891qkd.0
	for <mirageos-devel@lists.xenproject.org>;
	Fri, 25 Sep 2015 14:22:37 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:from:date:message-id:subject:to:content-type;
	bh=KNl5EAT7c/WJHYMS7XruWQI1z4fIrFwR+GuIphK6vUQ=;
	b=NoeCS1k3b9fXq2d/suqKo6siN87TKnlTGQNfTaKg3DeoZmABPjtaOTpEdQGxa1Jh4g
	8VjCTUU74Dha0FX2TRs9juw0bjdyJddwAoPjyDgAiLuQfUCx7yu9aSYXkxK6gtzxI0lL
	CVBzceVFG4eq6GTsk3+bvqoJQlnNQ3bEsfeTlbdEbutcBbpS/4Qjqx3249joG9X37AHV
	N1Rv/Kh/u/m4jmCfc8v0tXZaX9q1Q15bcEuhYoSqpHdR3XwcBt2qtyItkiyCCMl9jEk9
	VuthbCsB+VYAMcLIuD2hbn+1mkPkThwBHXPr0nKxlx9/UkeLPY9fUZv2iEa7M6rsFOPZ
	GBZg==
X-Received: by 10.55.56.129 with SMTP id f123mr8280411qka.79.1443216157523;
	Fri, 25 Sep 2015 14:22:37 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.140.40.9 with HTTP; Fri, 25 Sep 2015 14:21:58 -0700 (PDT)
From: Shivangi Dhir <shivangi.dhir.02@gmail.com>
Date: Sat, 26 Sep 2015 02:51:58 +0530
Message-ID: <CADeUC8BCtWWR+hhb-qcKs59M9_LxDPFvv-4mow0UrUdVA70bWw@mail.gmail.com>
To: mirageos-devel@lists.xenproject.org
Subject: [MirageOS-devel] Contributing to Xen for Outreachy 2015
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============0216800932200553286=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============0216800932200553286==
Content-Type: multipart/alternative; boundary=001a1147975a6742d6052098f27b

--001a1147975a6742d6052098f27b
Content-Type: text/plain; charset=UTF-8

Hi,

I am an Outreachy 2015 Applicant. I have a background in C, C++, Python and
shell scripting. I am also familiar with concepts of Operating Systems.

I would like to contribute to Xen but I am a little concerned about the
skill-set required for contributing to the projects mentioned in
https://github.com/mirage/mirage-www/wiki/Pioneer-Projects.

It would be very helpful if I could get some help getting started.

-- 
Regards,
Shivangi Dhir

--001a1147975a6742d6052098f27b
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div><div>Hi,<br><br></div>I am an Outreachy 2015 Applican=
t. I have a=20
background in C, C++, Python and shell scripting. I am also familiar with=
=20
concepts of Operating Systems.<br><br></div>I would like to contribute to X=
en but I am a little concerned about the skill-set required for contributin=
g to the projects mentioned in <a href=3D"https://github.com/mirage/mirage-=
www/wiki/Pioneer-Projects">https://github.com/mirage/mirage-www/wiki/Pionee=
r-Projects</a>. <br><br>It would be very helpful if I could get some help g=
etting started. <br clear=3D"all"><br>-- <br><div class=3D"gmail_signature"=
><div dir=3D"ltr"><div>Regards,<br></div>Shivangi Dhir<br></div></div>
</div>

--001a1147975a6742d6052098f27b--


--===============0216800932200553286==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

--===============0216800932200553286==--


From mirageos-devel-bounces@lists.xenproject.org Mon Sep 28 09:04:04 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 28 Sep 2015 09:04:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZgULh-0006nZ-6y; Mon, 28 Sep 2015 09:03:53 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <richard.mortier@gmail.com>) id 1ZgULg-0006nC-5z
	for mirageos-devel@lists.xenproject.org; Mon, 28 Sep 2015 09:03:52 +0000
Received: from [85.158.137.68] by server-9.bemta-3.messagelabs.com id
	91/12-10678-37209065; Mon, 28 Sep 2015 09:03:47 +0000
X-Env-Sender: richard.mortier@gmail.com
X-Msg-Ref: server-12.tower-31.messagelabs.com!1443431027!11228766!1
X-Originating-IP: [209.85.212.178]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 19341 invoked from network); 28 Sep 2015 09:03:47 -0000
Received: from mail-wi0-f178.google.com (HELO mail-wi0-f178.google.com)
	(209.85.212.178)
	by server-12.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	28 Sep 2015 09:03:47 -0000
Received: by wiclk2 with SMTP id lk2so94909038wic.0
	for <mirageos-devel@lists.xenproject.org>;
	Mon, 28 Sep 2015 02:03:46 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=mime-version:in-reply-to:references:date:message-id:subject:from:to
	:cc:content-type;
	bh=VTzp5zornt8zI7wT4N6FcN1w+eHmIRWv3tNXuHZcyuQ=;
	b=J+9JAFkLQ9q+xMqGZL8fvPWTeEwhXWsfY7KdYxJMQuhmc9frhUD+v6ig0/10T8XwTH
	fYzUJ3V5UVmmP9w7HcDmO1Ve7vtUx1O90snGTiuKcJL+oVBLlifXYiFvCVkgtg67TIh8
	s0VZVhnz0GyucQZ24so139oImDinISTuD863hfgXLsz9QQLG5ky7FWlKocjhkX5V4u4T
	Wf/JX/ynhpLxpbfcW4J01x6+jb+dD8ndVFyA/SeZnIepbS7zb/wrhzTJjZ2ggFgyK9E2
	KT1qwhq2JGeyOmRvNCE9tSkQklmYL2dfXRSE+P46+QUHYRC/5/6SHN50bqFR/F6hmo41
	V44A==
X-Received: by 10.194.11.37 with SMTP id n5mr23262870wjb.71.1443431026744;
	Mon, 28 Sep 2015 02:03:46 -0700 (PDT)
Received: from mail-wi0-f176.google.com (mail-wi0-f176.google.com.
	[209.85.212.176]) by smtp.gmail.com with ESMTPSA id
	x9sm17175264wjf.44.2015.09.28.02.03.45
	for <mirageos-devel@lists.xenproject.org>
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Mon, 28 Sep 2015 02:03:46 -0700 (PDT)
Received: by wicfx3 with SMTP id fx3so94460417wic.1
	for <mirageos-devel@lists.xenproject.org>;
	Mon, 28 Sep 2015 02:03:44 -0700 (PDT)
MIME-Version: 1.0
X-Received: by 10.180.12.241 with SMTP id b17mr19051283wic.55.1443431024986;
	Mon, 28 Sep 2015 02:03:44 -0700 (PDT)
Received: by 10.28.130.67 with HTTP; Mon, 28 Sep 2015 02:03:44 -0700 (PDT)
In-Reply-To: <CADeUC8BCtWWR+hhb-qcKs59M9_LxDPFvv-4mow0UrUdVA70bWw@mail.gmail.com>
References: <CADeUC8BCtWWR+hhb-qcKs59M9_LxDPFvv-4mow0UrUdVA70bWw@mail.gmail.com>
Date: Mon, 28 Sep 2015 10:03:44 +0100
Message-ID: <CAN2Hq07CahNgWhM+KzRPQLYPRuj2evL16V=OSOf=SyrRL7j-Wg@mail.gmail.com>
From: Richard Mortier <richard.mortier@cl.cam.ac.uk>
To: Shivangi Dhir <shivangi.dhir.02@gmail.com>
Cc: mirageos-devel <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Contributing to Xen for Outreachy 2015
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On 25 September 2015 at 22:21, Shivangi Dhir <shivangi.dhir.02@gmail.com> wrote:
> Hi,
>
> I am an Outreachy 2015 Applicant. I have a background in C, C++, Python and
> shell scripting. I am also familiar with concepts of Operating Systems.
>
> I would like to contribute to Xen but I am a little concerned about the
> skill-set required for contributing to the projects mentioned in
> https://github.com/mirage/mirage-www/wiki/Pioneer-Projects.
>
> It would be very helpful if I could get some help getting started.

Based on what you say above, probably the biggest immediate barrier to
overcome is to learn OCaml if you want to participate in any MirageOS
projects. The easiest place to start is with
https://realworldocaml.org/ -- I generaly recommend that ch.1-10
should be sufficient to get started.

After that, then cloning repos and trying to build, run and understand
them is probably the next step :) Start with mirage/mirage-skeleton
and mirage/mirage-www.

As ever, there may be bugs, in code and/or documentation, so if you
come across something that doesn't work as described or doesn't make
any sense, please do contact the list, file an issue, or submit a pull
request!

-- 
Richard Mortier
richard.mortier@cl.cam.ac.uk

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Mon Sep 28 09:04:04 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 28 Sep 2015 09:04:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZgULh-0006nZ-6y; Mon, 28 Sep 2015 09:03:53 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <richard.mortier@gmail.com>) id 1ZgULg-0006nC-5z
	for mirageos-devel@lists.xenproject.org; Mon, 28 Sep 2015 09:03:52 +0000
Received: from [85.158.137.68] by server-9.bemta-3.messagelabs.com id
	91/12-10678-37209065; Mon, 28 Sep 2015 09:03:47 +0000
X-Env-Sender: richard.mortier@gmail.com
X-Msg-Ref: server-12.tower-31.messagelabs.com!1443431027!11228766!1
X-Originating-IP: [209.85.212.178]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 19341 invoked from network); 28 Sep 2015 09:03:47 -0000
Received: from mail-wi0-f178.google.com (HELO mail-wi0-f178.google.com)
	(209.85.212.178)
	by server-12.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	28 Sep 2015 09:03:47 -0000
Received: by wiclk2 with SMTP id lk2so94909038wic.0
	for <mirageos-devel@lists.xenproject.org>;
	Mon, 28 Sep 2015 02:03:46 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=mime-version:in-reply-to:references:date:message-id:subject:from:to
	:cc:content-type;
	bh=VTzp5zornt8zI7wT4N6FcN1w+eHmIRWv3tNXuHZcyuQ=;
	b=J+9JAFkLQ9q+xMqGZL8fvPWTeEwhXWsfY7KdYxJMQuhmc9frhUD+v6ig0/10T8XwTH
	fYzUJ3V5UVmmP9w7HcDmO1Ve7vtUx1O90snGTiuKcJL+oVBLlifXYiFvCVkgtg67TIh8
	s0VZVhnz0GyucQZ24so139oImDinISTuD863hfgXLsz9QQLG5ky7FWlKocjhkX5V4u4T
	Wf/JX/ynhpLxpbfcW4J01x6+jb+dD8ndVFyA/SeZnIepbS7zb/wrhzTJjZ2ggFgyK9E2
	KT1qwhq2JGeyOmRvNCE9tSkQklmYL2dfXRSE+P46+QUHYRC/5/6SHN50bqFR/F6hmo41
	V44A==
X-Received: by 10.194.11.37 with SMTP id n5mr23262870wjb.71.1443431026744;
	Mon, 28 Sep 2015 02:03:46 -0700 (PDT)
Received: from mail-wi0-f176.google.com (mail-wi0-f176.google.com.
	[209.85.212.176]) by smtp.gmail.com with ESMTPSA id
	x9sm17175264wjf.44.2015.09.28.02.03.45
	for <mirageos-devel@lists.xenproject.org>
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Mon, 28 Sep 2015 02:03:46 -0700 (PDT)
Received: by wicfx3 with SMTP id fx3so94460417wic.1
	for <mirageos-devel@lists.xenproject.org>;
	Mon, 28 Sep 2015 02:03:44 -0700 (PDT)
MIME-Version: 1.0
X-Received: by 10.180.12.241 with SMTP id b17mr19051283wic.55.1443431024986;
	Mon, 28 Sep 2015 02:03:44 -0700 (PDT)
Received: by 10.28.130.67 with HTTP; Mon, 28 Sep 2015 02:03:44 -0700 (PDT)
In-Reply-To: <CADeUC8BCtWWR+hhb-qcKs59M9_LxDPFvv-4mow0UrUdVA70bWw@mail.gmail.com>
References: <CADeUC8BCtWWR+hhb-qcKs59M9_LxDPFvv-4mow0UrUdVA70bWw@mail.gmail.com>
Date: Mon, 28 Sep 2015 10:03:44 +0100
Message-ID: <CAN2Hq07CahNgWhM+KzRPQLYPRuj2evL16V=OSOf=SyrRL7j-Wg@mail.gmail.com>
From: Richard Mortier <richard.mortier@cl.cam.ac.uk>
To: Shivangi Dhir <shivangi.dhir.02@gmail.com>
Cc: mirageos-devel <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Contributing to Xen for Outreachy 2015
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On 25 September 2015 at 22:21, Shivangi Dhir <shivangi.dhir.02@gmail.com> wrote:
> Hi,
>
> I am an Outreachy 2015 Applicant. I have a background in C, C++, Python and
> shell scripting. I am also familiar with concepts of Operating Systems.
>
> I would like to contribute to Xen but I am a little concerned about the
> skill-set required for contributing to the projects mentioned in
> https://github.com/mirage/mirage-www/wiki/Pioneer-Projects.
>
> It would be very helpful if I could get some help getting started.

Based on what you say above, probably the biggest immediate barrier to
overcome is to learn OCaml if you want to participate in any MirageOS
projects. The easiest place to start is with
https://realworldocaml.org/ -- I generaly recommend that ch.1-10
should be sufficient to get started.

After that, then cloning repos and trying to build, run and understand
them is probably the next step :) Start with mirage/mirage-skeleton
and mirage/mirage-www.

As ever, there may be bugs, in code and/or documentation, so if you
come across something that doesn't work as described or doesn't make
any sense, please do contact the list, file an issue, or submit a pull
request!

-- 
Richard Mortier
richard.mortier@cl.cam.ac.uk

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Mon Sep 28 09:51:03 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 28 Sep 2015 09:51:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZgV5I-0003Ki-EV; Mon, 28 Sep 2015 09:51:00 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <lars.kurth.xen@gmail.com>)
	id 1ZgV5G-0003KL-E0; Mon, 28 Sep 2015 09:50:58 +0000
Received: from [85.158.139.211] by server-15.bemta-5.messagelabs.com id
	D9/A9-10422-18D09065; Mon, 28 Sep 2015 09:50:57 +0000
X-Env-Sender: lars.kurth.xen@gmail.com
X-Msg-Ref: server-2.tower-206.messagelabs.com!1443433856!14718678!1
X-Originating-IP: [209.85.212.176]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 15322 invoked from network); 28 Sep 2015 09:50:57 -0000
Received: from mail-wi0-f176.google.com (HELO mail-wi0-f176.google.com)
	(209.85.212.176)
	by server-2.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
	28 Sep 2015 09:50:57 -0000
Received: by wicfx3 with SMTP id fx3so96239368wic.1;
	Mon, 28 Sep 2015 02:50:56 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=from:content-type:content-transfer-encoding:subject:message-id:date
	:to:mime-version;
	bh=2xriPcB1UKEYZUPT2SbhQqhDj14zZgb3vTJNvFHwS+k=;
	b=u9Xj+8xhT1kNV25bwbU/rMOQQBUjb/FUt15C6XKVwz/IP6v4XoM2Ain8QQKn00tlqL
	eIL2/6xf1PpFzmmqZR7Usp4w8nEr55e6pzkJNnfQKFjnEekJZE0uu4ij0XBzcRdj5Tti
	LjXmNxW/wmJpoFvkp7sAjBivIK7i7m1Dh57vFAWR2EFqZOvkBbL1ruuY9Ozq4GYyF1j7
	8VnaLN7GpbojOQp6dw2atlOHkSOgEm/NbrM3bWI7VrK5m42Otl0mYlINtxlzwYpil5vU
	h8OeheHGpkgu9Jp1VjRXhtOwBWiTjnNHd53tboyC2fuqWcHnFNEmXDr0pJsrW7FHFuCn
	OMZg==
X-Received: by 10.180.103.199 with SMTP id fy7mr16873259wib.85.1443433856588; 
	Mon, 28 Sep 2015 02:50:56 -0700 (PDT)
Received: from [192.168.0.9] (97e3cc8b.skybroadband.com. [151.227.204.139])
	by smtp.gmail.com with ESMTPSA id s1sm5134286wik.16.2015.09.28.02.50.55
	(version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128);
	Mon, 28 Sep 2015 02:50:55 -0700 (PDT)
From: Lars Kurth <lars.kurth.xen@gmail.com>
Message-Id: <067DDE40-6910-4EEC-BCB9-F157F7C0A009@gmail.com>
Date: Mon, 28 Sep 2015 10:50:54 +0100
To: mirageos-devel <mirageos-devel@lists.xenproject.org>,
	Xen-devel <xen-devel@lists.xen.org>, xen-api@lists.xenproject.org
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\))
X-Mailer: Apple Mail (2.2104)
Subject: [MirageOS-devel] OutreachY Proposed candidate selection process and
	FAQ
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

Hi,

I have been getting a few questions related to the Outreachy program from mentors. So I put together an FAQ

Q: How many slots do we have (across Xen, Mirage OS, XAPI)
A: We have two slots. But we do have quite *a lot* of interest both in Xen as well as in Mirage OS so far. I have funds for an extra slot and can ask the board to use 3.

Q: Who qualifies? Has the program been extended?
A: It has been extended. The program is open internationally to women (cis and trans), trans men, and genderqueer people. Additionally, it's open to residents and nationals of the United States of any gender who are Black/African American, Hispanic/Latin@, American Indian, Alaska Native, Native Hawaiian, or Pacific Islander. For more details, see https://www.gnome.org/outreachy.

Q: What is the program timeline
A: The timeline is - o denotes an outreachy milestone, x a Xen Project milestone ...

o September 28 organizations' landing pages need to be ready with project ideas
o September 29 application process opens
o November 2 application deadline
x November 6 xen project mentors get together and 
x November 9 xen project decides who to put forward
o November 17 accepted applicants announced
o December 7 - March 7 internship dates

Q: How will we select our applicants?
A: On Nov 6th, we will have all the mentors get together and agree who we select across Xen and Mirage. This worked in the past. Given the volume of interest, I believe we will need some optimizations
- Each mentor can only be the *advocate for 1 applicant* in the Nov 6th meeting (if you have several, you have to choose 1) prior to the meeting
- I will require mentors to fill out a questionnaire by Nov 6 that evaluates the interaction you had with the applicant, the community had with the applicant, and how well the "Small Contribution" requirement went (see https://wiki.gnome.org/Outreachy#Make_a_Small_Contribution)

If you have further questions, just ask.

Regards
Lars
_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Mon Sep 28 09:51:03 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 28 Sep 2015 09:51:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZgV5I-0003Ki-EV; Mon, 28 Sep 2015 09:51:00 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <lars.kurth.xen@gmail.com>)
	id 1ZgV5G-0003KL-E0; Mon, 28 Sep 2015 09:50:58 +0000
Received: from [85.158.139.211] by server-15.bemta-5.messagelabs.com id
	D9/A9-10422-18D09065; Mon, 28 Sep 2015 09:50:57 +0000
X-Env-Sender: lars.kurth.xen@gmail.com
X-Msg-Ref: server-2.tower-206.messagelabs.com!1443433856!14718678!1
X-Originating-IP: [209.85.212.176]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 15322 invoked from network); 28 Sep 2015 09:50:57 -0000
Received: from mail-wi0-f176.google.com (HELO mail-wi0-f176.google.com)
	(209.85.212.176)
	by server-2.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
	28 Sep 2015 09:50:57 -0000
Received: by wicfx3 with SMTP id fx3so96239368wic.1;
	Mon, 28 Sep 2015 02:50:56 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=from:content-type:content-transfer-encoding:subject:message-id:date
	:to:mime-version;
	bh=2xriPcB1UKEYZUPT2SbhQqhDj14zZgb3vTJNvFHwS+k=;
	b=u9Xj+8xhT1kNV25bwbU/rMOQQBUjb/FUt15C6XKVwz/IP6v4XoM2Ain8QQKn00tlqL
	eIL2/6xf1PpFzmmqZR7Usp4w8nEr55e6pzkJNnfQKFjnEekJZE0uu4ij0XBzcRdj5Tti
	LjXmNxW/wmJpoFvkp7sAjBivIK7i7m1Dh57vFAWR2EFqZOvkBbL1ruuY9Ozq4GYyF1j7
	8VnaLN7GpbojOQp6dw2atlOHkSOgEm/NbrM3bWI7VrK5m42Otl0mYlINtxlzwYpil5vU
	h8OeheHGpkgu9Jp1VjRXhtOwBWiTjnNHd53tboyC2fuqWcHnFNEmXDr0pJsrW7FHFuCn
	OMZg==
X-Received: by 10.180.103.199 with SMTP id fy7mr16873259wib.85.1443433856588; 
	Mon, 28 Sep 2015 02:50:56 -0700 (PDT)
Received: from [192.168.0.9] (97e3cc8b.skybroadband.com. [151.227.204.139])
	by smtp.gmail.com with ESMTPSA id s1sm5134286wik.16.2015.09.28.02.50.55
	(version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128);
	Mon, 28 Sep 2015 02:50:55 -0700 (PDT)
From: Lars Kurth <lars.kurth.xen@gmail.com>
Message-Id: <067DDE40-6910-4EEC-BCB9-F157F7C0A009@gmail.com>
Date: Mon, 28 Sep 2015 10:50:54 +0100
To: mirageos-devel <mirageos-devel@lists.xenproject.org>,
	Xen-devel <xen-devel@lists.xen.org>, xen-api@lists.xenproject.org
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\))
X-Mailer: Apple Mail (2.2104)
Subject: [MirageOS-devel] OutreachY Proposed candidate selection process and
	FAQ
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

Hi,

I have been getting a few questions related to the Outreachy program from mentors. So I put together an FAQ

Q: How many slots do we have (across Xen, Mirage OS, XAPI)
A: We have two slots. But we do have quite *a lot* of interest both in Xen as well as in Mirage OS so far. I have funds for an extra slot and can ask the board to use 3.

Q: Who qualifies? Has the program been extended?
A: It has been extended. The program is open internationally to women (cis and trans), trans men, and genderqueer people. Additionally, it's open to residents and nationals of the United States of any gender who are Black/African American, Hispanic/Latin@, American Indian, Alaska Native, Native Hawaiian, or Pacific Islander. For more details, see https://www.gnome.org/outreachy.

Q: What is the program timeline
A: The timeline is - o denotes an outreachy milestone, x a Xen Project milestone ...

o September 28 organizations' landing pages need to be ready with project ideas
o September 29 application process opens
o November 2 application deadline
x November 6 xen project mentors get together and 
x November 9 xen project decides who to put forward
o November 17 accepted applicants announced
o December 7 - March 7 internship dates

Q: How will we select our applicants?
A: On Nov 6th, we will have all the mentors get together and agree who we select across Xen and Mirage. This worked in the past. Given the volume of interest, I believe we will need some optimizations
- Each mentor can only be the *advocate for 1 applicant* in the Nov 6th meeting (if you have several, you have to choose 1) prior to the meeting
- I will require mentors to fill out a questionnaire by Nov 6 that evaluates the interaction you had with the applicant, the community had with the applicant, and how well the "Small Contribution" requirement went (see https://wiki.gnome.org/Outreachy#Make_a_Small_Contribution)

If you have further questions, just ask.

Regards
Lars
_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Mon Sep 28 10:01:07 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 28 Sep 2015 10:01:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZgVF4-0004pN-Lq; Mon, 28 Sep 2015 10:01:06 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <anil@recoil.org>)
	id 1ZgVF2-0004nd-QA; Mon, 28 Sep 2015 10:01:04 +0000
Received: from [85.158.139.211] by server-15.bemta-5.messagelabs.com id
	C4/50-10422-DDF09065; Mon, 28 Sep 2015 10:01:01 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-8.tower-206.messagelabs.com!1443434459!38185138!1
X-Originating-IP: [5.153.225.51]
X-SpamReason: No, hits=0.7 required=7.0 tests=BODY_RANDOM_LONG, RCVD_ILLEGAL_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 14397 invoked from network); 28 Sep 2015 10:01:00 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-8.tower-206.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 28 Sep 2015 10:01:00 -0000
Received: from [192.168.1.75] (cpc7-cmbg14-2-0-cust238.5-4.cable.virginm.net
	[86.30.244.239])
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id ccf4c6e1
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Mon, 28 Sep 2015 11:00:59 +0100 (BST)
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <067DDE40-6910-4EEC-BCB9-F157F7C0A009@gmail.com>
Date: Mon, 28 Sep 2015 11:00:58 +0100
Message-Id: <A19F9520-317B-44B3-AC63-BC5567352D09@recoil.org>
References: <067DDE40-6910-4EEC-BCB9-F157F7C0A009@gmail.com>
To: Lars Kurth <lars.kurth.xen@gmail.com>
X-Mailer: Apple Mail (2.2104)
Cc: xen-api@lists.xenproject.org,
	mirageos-devel <mirageos-devel@lists.xenproject.org>,
	Xen-devel <xen-devel@lists.xen.org>
Subject: Re: [MirageOS-devel] OutreachY Proposed candidate selection process
	and FAQ
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org


> On 28 Sep 2015, at 10:50, Lars Kurth <lars.kurth.xen@gmail.com> wrote:
> 
> Hi,
> 
> I have been getting a few questions related to the Outreachy program from mentors. So I put together an FAQ
> 
> Q: How many slots do we have (across Xen, Mirage OS, XAPI)
> A: We have two slots. But we do have quite *a lot* of interest both in Xen as well as in Mirage OS so far. I have funds for an extra slot and can ask the board to use 3.

I'm seeing more enquiries in my inbox than any year in the past (this is awesome!).  So asking the board for 3 would be a good use of funds if it's an option...

> 
> Q: Who qualifies? Has the program been extended?
> A: It has been extended. The program is open internationally to women (cis and trans), trans men, and genderqueer people. Additionally, it's open to residents and nationals of the United States of any gender who are Black/African American, Hispanic/Latin@, American Indian, Alaska Native, Native Hawaiian, or Pacific Islander. For more details, see https://www.gnome.org/outreachy.
> 
> Q: What is the program timeline
> A: The timeline is - o denotes an outreachy milestone, x a Xen Project milestone ...
> 
> o September 28 organizations' landing pages need to be ready with project ideas

I think we're set for this with the Pioneer Projects page.  Please do add/update your projects there though..

-a
_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Mon Sep 28 10:01:07 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 28 Sep 2015 10:01:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZgVF4-0004pN-Lq; Mon, 28 Sep 2015 10:01:06 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <anil@recoil.org>)
	id 1ZgVF2-0004nd-QA; Mon, 28 Sep 2015 10:01:04 +0000
Received: from [85.158.139.211] by server-15.bemta-5.messagelabs.com id
	C4/50-10422-DDF09065; Mon, 28 Sep 2015 10:01:01 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-8.tower-206.messagelabs.com!1443434459!38185138!1
X-Originating-IP: [5.153.225.51]
X-SpamReason: No, hits=0.7 required=7.0 tests=BODY_RANDOM_LONG, RCVD_ILLEGAL_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 14397 invoked from network); 28 Sep 2015 10:01:00 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-8.tower-206.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 28 Sep 2015 10:01:00 -0000
Received: from [192.168.1.75] (cpc7-cmbg14-2-0-cust238.5-4.cable.virginm.net
	[86.30.244.239])
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id ccf4c6e1
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Mon, 28 Sep 2015 11:00:59 +0100 (BST)
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <067DDE40-6910-4EEC-BCB9-F157F7C0A009@gmail.com>
Date: Mon, 28 Sep 2015 11:00:58 +0100
Message-Id: <A19F9520-317B-44B3-AC63-BC5567352D09@recoil.org>
References: <067DDE40-6910-4EEC-BCB9-F157F7C0A009@gmail.com>
To: Lars Kurth <lars.kurth.xen@gmail.com>
X-Mailer: Apple Mail (2.2104)
Cc: xen-api@lists.xenproject.org,
	mirageos-devel <mirageos-devel@lists.xenproject.org>,
	Xen-devel <xen-devel@lists.xen.org>
Subject: Re: [MirageOS-devel] OutreachY Proposed candidate selection process
	and FAQ
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org


> On 28 Sep 2015, at 10:50, Lars Kurth <lars.kurth.xen@gmail.com> wrote:
> 
> Hi,
> 
> I have been getting a few questions related to the Outreachy program from mentors. So I put together an FAQ
> 
> Q: How many slots do we have (across Xen, Mirage OS, XAPI)
> A: We have two slots. But we do have quite *a lot* of interest both in Xen as well as in Mirage OS so far. I have funds for an extra slot and can ask the board to use 3.

I'm seeing more enquiries in my inbox than any year in the past (this is awesome!).  So asking the board for 3 would be a good use of funds if it's an option...

> 
> Q: Who qualifies? Has the program been extended?
> A: It has been extended. The program is open internationally to women (cis and trans), trans men, and genderqueer people. Additionally, it's open to residents and nationals of the United States of any gender who are Black/African American, Hispanic/Latin@, American Indian, Alaska Native, Native Hawaiian, or Pacific Islander. For more details, see https://www.gnome.org/outreachy.
> 
> Q: What is the program timeline
> A: The timeline is - o denotes an outreachy milestone, x a Xen Project milestone ...
> 
> o September 28 organizations' landing pages need to be ready with project ideas

I think we're set for this with the Pioneer Projects page.  Please do add/update your projects there though..

-a
_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Mon Sep 28 10:39:28 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 28 Sep 2015 10:39:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZgVq5-0003ea-Ho; Mon, 28 Sep 2015 10:39:21 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <lars.kurth.xen@gmail.com>) id 1ZgVq4-0003eI-0L
	for mirageos-devel@lists.xenproject.org; Mon, 28 Sep 2015 10:39:20 +0000
Received: from [85.158.137.68] by server-2.bemta-3.messagelabs.com id
	17/CF-21201-7D819065; Mon, 28 Sep 2015 10:39:19 +0000
X-Env-Sender: lars.kurth.xen@gmail.com
X-Msg-Ref: server-5.tower-31.messagelabs.com!1443436758!48234358!1
X-Originating-IP: [209.85.212.182]
X-SpamReason: No, hits=0.5 required=7.0 tests=BODY_RANDOM_LONG
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 27710 invoked from network); 28 Sep 2015 10:39:18 -0000
Received: from mail-wi0-f182.google.com (HELO mail-wi0-f182.google.com)
	(209.85.212.182)
	by server-5.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	28 Sep 2015 10:39:18 -0000
Received: by wiclk2 with SMTP id lk2so98480397wic.0
	for <mirageos-devel@lists.xenproject.org>;
	Mon, 28 Sep 2015 03:39:18 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=content-type:mime-version:subject:from:in-reply-to:date:cc
	:content-transfer-encoding:message-id:references:to;
	bh=XX4VfGxbKuFvd0g70sRhsOGqJbO/HJYfxeXn1gUJv0g=;
	b=HIXPSb4azz8iDmyxs2PJF/7zbTxPQIrIOSAY8Z97n5tPX7zeX0U4tMVtOJFAUIpgbw
	GgxhRpXOIFDyMcWcGnelpY3PhxkYFXcy+1gGLHKuq3jKm1azlF28aXZ2fUHqrhV6bKBw
	ss7Adj5CxFdwrbbv8DGItT9+Hbswk8CMVrVDs+h0swBnC2ZOrra+gmY/YQ2d3yIOCuxM
	AeGyBeSeYiJEXb+eCtIxQMhl3iQnjGXZZazI8e+KLc94JqviOPsXwHxlidG4DkRkyOne
	Zt2W5la7jFghsO+cGdlaRcHyDJrAML+9kS+F+RNdKXcJ3WkKZ+eMY+5ZBMgh+6nbiM+a
	YY4g==
X-Received: by 10.181.29.74 with SMTP id ju10mr18972969wid.5.1443436758143;
	Mon, 28 Sep 2015 03:39:18 -0700 (PDT)
Received: from [192.168.0.9] (97e3cc8b.skybroadband.com. [151.227.204.139])
	by smtp.gmail.com with ESMTPSA id
	ka10sm17631612wjc.30.2015.09.28.03.39.16
	(version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128);
	Mon, 28 Sep 2015 03:39:17 -0700 (PDT)
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\))
From: Lars Kurth <lars.kurth.xen@gmail.com>
In-Reply-To: <A19F9520-317B-44B3-AC63-BC5567352D09@recoil.org>
Date: Mon, 28 Sep 2015 11:39:15 +0100
Message-Id: <02BD28E5-B54F-4C2E-B376-E25CA1A9C875@gmail.com>
References: <067DDE40-6910-4EEC-BCB9-F157F7C0A009@gmail.com>
	<A19F9520-317B-44B3-AC63-BC5567352D09@recoil.org>
To: Anil Madhavapeddy <anil@recoil.org>
X-Mailer: Apple Mail (2.2104)
Cc: mirageos-devel <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] OutreachY Proposed candidate selection process
	and FAQ
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

Reducing list

> On 28 Sep 2015, at 11:00, Anil Madhavapeddy <anil@recoil.org> wrote:
> 
> 
>> On 28 Sep 2015, at 10:50, Lars Kurth <lars.kurth.xen@gmail.com> wrote:
>> 
>> Hi,
>> 
>> I have been getting a few questions related to the Outreachy program from mentors. So I put together an FAQ
>> 
>> Q: How many slots do we have (across Xen, Mirage OS, XAPI)
>> A: We have two slots. But we do have quite *a lot* of interest both in Xen as well as in Mirage OS so far. I have funds for an extra slot and can ask the board to use 3.
> 
> I'm seeing more enquiries in my inbox than any year in the past (this is awesome!).  So asking the board for 3 would be a good use of funds if it's an option...

Will make the case


>> Q: Who qualifies? Has the program been extended?
>> A: It has been extended. The program is open internationally to women (cis and trans), trans men, and genderqueer people. Additionally, it's open to residents and nationals of the United States of any gender who are Black/African American, Hispanic/Latin@, American Indian, Alaska Native, Native Hawaiian, or Pacific Islander. For more details, see https://www.gnome.org/outreachy.
>> 
>> Q: What is the program timeline
>> A: The timeline is - o denotes an outreachy milestone, x a Xen Project milestone ...
>> 
>> o September 28 organizations' landing pages need to be ready with project ideas
> 
> I think we're set for this with the Pioneer Projects page.  Please do add/update your projects there though..

It would be good, if you could also update http://wiki.xenproject.org/wiki/Outreachy/Round11#Community_Reviewed_Project_List ... or send me some text. Just the "SMALL CODE CONTRIBUTIONS" column, if there is an easy way to get
_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Mon Sep 28 10:39:28 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 28 Sep 2015 10:39:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZgVq5-0003ea-Ho; Mon, 28 Sep 2015 10:39:21 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <lars.kurth.xen@gmail.com>) id 1ZgVq4-0003eI-0L
	for mirageos-devel@lists.xenproject.org; Mon, 28 Sep 2015 10:39:20 +0000
Received: from [85.158.137.68] by server-2.bemta-3.messagelabs.com id
	17/CF-21201-7D819065; Mon, 28 Sep 2015 10:39:19 +0000
X-Env-Sender: lars.kurth.xen@gmail.com
X-Msg-Ref: server-5.tower-31.messagelabs.com!1443436758!48234358!1
X-Originating-IP: [209.85.212.182]
X-SpamReason: No, hits=0.5 required=7.0 tests=BODY_RANDOM_LONG
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 27710 invoked from network); 28 Sep 2015 10:39:18 -0000
Received: from mail-wi0-f182.google.com (HELO mail-wi0-f182.google.com)
	(209.85.212.182)
	by server-5.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	28 Sep 2015 10:39:18 -0000
Received: by wiclk2 with SMTP id lk2so98480397wic.0
	for <mirageos-devel@lists.xenproject.org>;
	Mon, 28 Sep 2015 03:39:18 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=content-type:mime-version:subject:from:in-reply-to:date:cc
	:content-transfer-encoding:message-id:references:to;
	bh=XX4VfGxbKuFvd0g70sRhsOGqJbO/HJYfxeXn1gUJv0g=;
	b=HIXPSb4azz8iDmyxs2PJF/7zbTxPQIrIOSAY8Z97n5tPX7zeX0U4tMVtOJFAUIpgbw
	GgxhRpXOIFDyMcWcGnelpY3PhxkYFXcy+1gGLHKuq3jKm1azlF28aXZ2fUHqrhV6bKBw
	ss7Adj5CxFdwrbbv8DGItT9+Hbswk8CMVrVDs+h0swBnC2ZOrra+gmY/YQ2d3yIOCuxM
	AeGyBeSeYiJEXb+eCtIxQMhl3iQnjGXZZazI8e+KLc94JqviOPsXwHxlidG4DkRkyOne
	Zt2W5la7jFghsO+cGdlaRcHyDJrAML+9kS+F+RNdKXcJ3WkKZ+eMY+5ZBMgh+6nbiM+a
	YY4g==
X-Received: by 10.181.29.74 with SMTP id ju10mr18972969wid.5.1443436758143;
	Mon, 28 Sep 2015 03:39:18 -0700 (PDT)
Received: from [192.168.0.9] (97e3cc8b.skybroadband.com. [151.227.204.139])
	by smtp.gmail.com with ESMTPSA id
	ka10sm17631612wjc.30.2015.09.28.03.39.16
	(version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128);
	Mon, 28 Sep 2015 03:39:17 -0700 (PDT)
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\))
From: Lars Kurth <lars.kurth.xen@gmail.com>
In-Reply-To: <A19F9520-317B-44B3-AC63-BC5567352D09@recoil.org>
Date: Mon, 28 Sep 2015 11:39:15 +0100
Message-Id: <02BD28E5-B54F-4C2E-B376-E25CA1A9C875@gmail.com>
References: <067DDE40-6910-4EEC-BCB9-F157F7C0A009@gmail.com>
	<A19F9520-317B-44B3-AC63-BC5567352D09@recoil.org>
To: Anil Madhavapeddy <anil@recoil.org>
X-Mailer: Apple Mail (2.2104)
Cc: mirageos-devel <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] OutreachY Proposed candidate selection process
	and FAQ
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

Reducing list

> On 28 Sep 2015, at 11:00, Anil Madhavapeddy <anil@recoil.org> wrote:
> 
> 
>> On 28 Sep 2015, at 10:50, Lars Kurth <lars.kurth.xen@gmail.com> wrote:
>> 
>> Hi,
>> 
>> I have been getting a few questions related to the Outreachy program from mentors. So I put together an FAQ
>> 
>> Q: How many slots do we have (across Xen, Mirage OS, XAPI)
>> A: We have two slots. But we do have quite *a lot* of interest both in Xen as well as in Mirage OS so far. I have funds for an extra slot and can ask the board to use 3.
> 
> I'm seeing more enquiries in my inbox than any year in the past (this is awesome!).  So asking the board for 3 would be a good use of funds if it's an option...

Will make the case


>> Q: Who qualifies? Has the program been extended?
>> A: It has been extended. The program is open internationally to women (cis and trans), trans men, and genderqueer people. Additionally, it's open to residents and nationals of the United States of any gender who are Black/African American, Hispanic/Latin@, American Indian, Alaska Native, Native Hawaiian, or Pacific Islander. For more details, see https://www.gnome.org/outreachy.
>> 
>> Q: What is the program timeline
>> A: The timeline is - o denotes an outreachy milestone, x a Xen Project milestone ...
>> 
>> o September 28 organizations' landing pages need to be ready with project ideas
> 
> I think we're set for this with the Pioneer Projects page.  Please do add/update your projects there though..

It would be good, if you could also update http://wiki.xenproject.org/wiki/Outreachy/Round11#Community_Reviewed_Project_List ... or send me some text. Just the "SMALL CODE CONTRIBUTIONS" column, if there is an easy way to get
_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Mon Sep 28 14:26:43 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 28 Sep 2015 14:26:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZgZNy-0005jj-6I; Mon, 28 Sep 2015 14:26:34 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <thomas.gazagnaire@gmail.com>) id 1ZgZNw-0005jG-9e
	for mirageos-devel@lists.xenproject.org; Mon, 28 Sep 2015 14:26:32 +0000
Received: from [85.158.137.68] by server-13.bemta-3.messagelabs.com id
	11/DF-00536-71E49065; Mon, 28 Sep 2015 14:26:31 +0000
X-Env-Sender: thomas.gazagnaire@gmail.com
X-Msg-Ref: server-8.tower-31.messagelabs.com!1443450390!48259835!1
X-Originating-IP: [209.85.212.179]
X-SpamReason: No, hits=0.3 required=7.0 tests=MAILTO_TO_SPAM_ADDR
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 31421 invoked from network); 28 Sep 2015 14:26:30 -0000
Received: from mail-wi0-f179.google.com (HELO mail-wi0-f179.google.com)
	(209.85.212.179)
	by server-8.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	28 Sep 2015 14:26:30 -0000
Received: by wicge5 with SMTP id ge5so107688153wic.0
	for <mirageos-devel@lists.xenproject.org>;
	Mon, 28 Sep 2015 07:26:30 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=sender:content-type:mime-version:subject:from:in-reply-to:date:cc
	:content-transfer-encoding:message-id:references:to;
	bh=FuOpz2e+gdRsr2C0sltfUXXawEwlBWWv3u8tt5i6Aqk=;
	b=F8tTHC+fJOUrLpgeQEk5aVcWt4cj/yO/wkGNAtLKSYjJ9i9QBFQOBIqBbkLAZ9ufK6
	UKM3HbtcsrGWWg934AyG1Kk527+EXHY0InudZZWEbq0cji0hxauM1mI/k3v9JSI1SRUX
	X3U1hw07Bf/DI2QJ/L6j3mKqZbKJua8xyrxT6ZrybsWAwiQzCR4YPhUgsq96DINvkFtX
	ZvieqSjKRhWUBs36lZaf/F13mTCEtqMYnAG5EiZ1cqTsaZpvFj+1QY9dXBaG5JtU3vvc
	3YZErVcq2xW5IieOJcOMJJp0WalLJOCxCuUHnfhF2hUrxZ1IH/s9d/GGDG2QX85LpHZH
	drVQ==
X-Received: by 10.180.106.66 with SMTP id gs2mr19593566wib.14.1443450390267;
	Mon, 28 Sep 2015 07:26:30 -0700 (PDT)
Received: from dhcp-172-17-168-214.eduroam.wireless.private.cam.ac.uk
	(global-184-27.nat-1.net.cam.ac.uk. [131.111.184.27])
	by smtp.gmail.com with ESMTPSA id
	uc12sm18588680wib.13.2015.09.28.07.26.28
	(version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128);
	Mon, 28 Sep 2015 07:26:28 -0700 (PDT)
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\))
From: Thomas Gazagnaire <thomas@gazagnaire.org>
In-Reply-To: <F526A525-CA2A-4750-9669-4BD984B67703@cam.ac.uk>
Date: Mon, 28 Sep 2015 15:26:27 +0100
Message-Id: <6286E045-54CD-49F9-AF48-A4BA23048A57@gazagnaire.org>
References: <F526A525-CA2A-4750-9669-4BD984B67703@cam.ac.uk>
To: Gregory Tsipenyuk <gt303@cam.ac.uk>
X-Mailer: Apple Mail (2.2104)
Cc: mirageos-devel <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] irmin compression (git backend)
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

Unfortunately not directly. It's an easy patch, though, as "level" is exposed by the Git backend implementation.

See https://github.com/mirage/irmin/issues/104

Best,
Thomas

> On 24 Sep 2015, at 15:38, Gregory Tsipenyuk <gt303@cam.ac.uk> wrote:
> 
> Hello everyone,
> 
> Is there a way to disable compression in Irmin (git backend)?
> 
> Thanks,
> Gregory
> 
> _______________________________________________
> MirageOS-devel mailing list
> MirageOS-devel@lists.xenproject.org
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel


_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Mon Sep 28 14:26:43 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 28 Sep 2015 14:26:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZgZNy-0005jj-6I; Mon, 28 Sep 2015 14:26:34 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <thomas.gazagnaire@gmail.com>) id 1ZgZNw-0005jG-9e
	for mirageos-devel@lists.xenproject.org; Mon, 28 Sep 2015 14:26:32 +0000
Received: from [85.158.137.68] by server-13.bemta-3.messagelabs.com id
	11/DF-00536-71E49065; Mon, 28 Sep 2015 14:26:31 +0000
X-Env-Sender: thomas.gazagnaire@gmail.com
X-Msg-Ref: server-8.tower-31.messagelabs.com!1443450390!48259835!1
X-Originating-IP: [209.85.212.179]
X-SpamReason: No, hits=0.3 required=7.0 tests=MAILTO_TO_SPAM_ADDR
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 31421 invoked from network); 28 Sep 2015 14:26:30 -0000
Received: from mail-wi0-f179.google.com (HELO mail-wi0-f179.google.com)
	(209.85.212.179)
	by server-8.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	28 Sep 2015 14:26:30 -0000
Received: by wicge5 with SMTP id ge5so107688153wic.0
	for <mirageos-devel@lists.xenproject.org>;
	Mon, 28 Sep 2015 07:26:30 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=sender:content-type:mime-version:subject:from:in-reply-to:date:cc
	:content-transfer-encoding:message-id:references:to;
	bh=FuOpz2e+gdRsr2C0sltfUXXawEwlBWWv3u8tt5i6Aqk=;
	b=F8tTHC+fJOUrLpgeQEk5aVcWt4cj/yO/wkGNAtLKSYjJ9i9QBFQOBIqBbkLAZ9ufK6
	UKM3HbtcsrGWWg934AyG1Kk527+EXHY0InudZZWEbq0cji0hxauM1mI/k3v9JSI1SRUX
	X3U1hw07Bf/DI2QJ/L6j3mKqZbKJua8xyrxT6ZrybsWAwiQzCR4YPhUgsq96DINvkFtX
	ZvieqSjKRhWUBs36lZaf/F13mTCEtqMYnAG5EiZ1cqTsaZpvFj+1QY9dXBaG5JtU3vvc
	3YZErVcq2xW5IieOJcOMJJp0WalLJOCxCuUHnfhF2hUrxZ1IH/s9d/GGDG2QX85LpHZH
	drVQ==
X-Received: by 10.180.106.66 with SMTP id gs2mr19593566wib.14.1443450390267;
	Mon, 28 Sep 2015 07:26:30 -0700 (PDT)
Received: from dhcp-172-17-168-214.eduroam.wireless.private.cam.ac.uk
	(global-184-27.nat-1.net.cam.ac.uk. [131.111.184.27])
	by smtp.gmail.com with ESMTPSA id
	uc12sm18588680wib.13.2015.09.28.07.26.28
	(version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128);
	Mon, 28 Sep 2015 07:26:28 -0700 (PDT)
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\))
From: Thomas Gazagnaire <thomas@gazagnaire.org>
In-Reply-To: <F526A525-CA2A-4750-9669-4BD984B67703@cam.ac.uk>
Date: Mon, 28 Sep 2015 15:26:27 +0100
Message-Id: <6286E045-54CD-49F9-AF48-A4BA23048A57@gazagnaire.org>
References: <F526A525-CA2A-4750-9669-4BD984B67703@cam.ac.uk>
To: Gregory Tsipenyuk <gt303@cam.ac.uk>
X-Mailer: Apple Mail (2.2104)
Cc: mirageos-devel <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] irmin compression (git backend)
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

Unfortunately not directly. It's an easy patch, though, as "level" is exposed by the Git backend implementation.

See https://github.com/mirage/irmin/issues/104

Best,
Thomas

> On 24 Sep 2015, at 15:38, Gregory Tsipenyuk <gt303@cam.ac.uk> wrote:
> 
> Hello everyone,
> 
> Is there a way to disable compression in Irmin (git backend)?
> 
> Thanks,
> Gregory
> 
> _______________________________________________
> MirageOS-devel mailing list
> MirageOS-devel@lists.xenproject.org
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel


_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Mon Sep 28 14:27:37 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 28 Sep 2015 14:27:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZgZOz-00064d-BP; Mon, 28 Sep 2015 14:27:37 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <thomas.gazagnaire@gmail.com>) id 1ZgZOy-00064P-02
	for mirageos-devel@lists.xenproject.org; Mon, 28 Sep 2015 14:27:36 +0000
Received: from [193.109.254.147] by server-6.bemta-14.messagelabs.com id
	68/E5-16618-75E49065; Mon, 28 Sep 2015 14:27:35 +0000
X-Env-Sender: thomas.gazagnaire@gmail.com
X-Msg-Ref: server-2.tower-27.messagelabs.com!1443450454!17707087!1
X-Originating-IP: [209.85.212.176]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 21309 invoked from network); 28 Sep 2015 14:27:34 -0000
Received: from mail-wi0-f176.google.com (HELO mail-wi0-f176.google.com)
	(209.85.212.176)
	by server-2.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	28 Sep 2015 14:27:34 -0000
Received: by wicfx3 with SMTP id fx3so107486991wic.1
	for <mirageos-devel@lists.xenproject.org>;
	Mon, 28 Sep 2015 07:27:34 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=sender:content-type:mime-version:subject:from:in-reply-to:date:cc
	:content-transfer-encoding:message-id:references:to;
	bh=9PsQCYkCgx4brReXA9S83GdoZCOvNLd2zJqRospA2Gw=;
	b=P3DqQ7xZg8pfpmJfnnu+BA+bp2KFAbQZjJsVhB2qOB3bGNC3gpRXhdhJPVqCVuL6Fl
	zVzluSmAd6j3BNd3Ouyek+mN7/nauHVYAQf9iZ1e7dCYUutf4HZSe4bwLv/CFqORNMcR
	l4fDLsWJuVsgQOfR3rnsoMx+00NV0XZh0Kp0IiiHyhelfn6IJQpDYBZiHdqF/1Z6DGt9
	DKAyGDGPbVyYZhhpTQnn+dK9fgAbf7+JZ2O+CmdgDAsrC+5p0reRKMpiKhKzDMzXhDI5
	8rQvQsEr2tIXaP3QPdYeHLhyBJCz5SM6sY+NP9IX6LYH+iQVKigJserXdgxLoaXS5U0+
	6LCA==
X-Received: by 10.180.87.225 with SMTP id bb1mr20037481wib.0.1443450454193;
	Mon, 28 Sep 2015 07:27:34 -0700 (PDT)
Received: from dhcp-172-17-168-214.eduroam.wireless.private.cam.ac.uk
	(global-184-27.nat-1.net.cam.ac.uk. [131.111.184.27])
	by smtp.gmail.com with ESMTPSA id
	i10sm1493035wjz.41.2015.09.28.07.27.32
	(version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128);
	Mon, 28 Sep 2015 07:27:32 -0700 (PDT)
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\))
From: Thomas Gazagnaire <thomas@gazagnaire.org>
In-Reply-To: <CAG4opy9V-rzdPedT40GbuTT-+xeP=0vbaa0-TFwxauc586oCgw@mail.gmail.com>
Date: Mon, 28 Sep 2015 15:27:32 +0100
Message-Id: <D61B33F3-A8B2-44A0-9995-0C395E3E2C4E@gazagnaire.org>
References: <D881F4F5-3474-4E9E-BD0C-C947DD1B4499@gazagnaire.org>
	<CAG4opy9V-rzdPedT40GbuTT-+xeP=0vbaa0-TFwxauc586oCgw@mail.gmail.com>
To: Thomas Leonard <talex5@gmail.com>
X-Mailer: Apple Mail (2.2104)
Cc: mirageos-devel <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Irmin API evolution
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

> One other thing that has caught me out a few times:
> 
> There are a bunch of "raw" modules like:
> 
> Irmin_git.FS
> 
> but there's also
> 
> Irmin_unix.Irmin_git.FS (which is Irmin_git.FS applied to Unix)
> 
> and the examples do:
> 
> open Irmin_unix
> ...
> ... Irmin_git.FS
> 
> and you copy and paste the line from the example and then wonder why
> it seems to have the wrong signature.

I agree this is confusing. I think these should be removed, but I'd like to have a convenience module to open at one point, to avoid having to apply 10 functors before starting a project.

Thomas
_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Mon Sep 28 14:27:37 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 28 Sep 2015 14:27:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZgZOz-00064d-BP; Mon, 28 Sep 2015 14:27:37 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <thomas.gazagnaire@gmail.com>) id 1ZgZOy-00064P-02
	for mirageos-devel@lists.xenproject.org; Mon, 28 Sep 2015 14:27:36 +0000
Received: from [193.109.254.147] by server-6.bemta-14.messagelabs.com id
	68/E5-16618-75E49065; Mon, 28 Sep 2015 14:27:35 +0000
X-Env-Sender: thomas.gazagnaire@gmail.com
X-Msg-Ref: server-2.tower-27.messagelabs.com!1443450454!17707087!1
X-Originating-IP: [209.85.212.176]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 21309 invoked from network); 28 Sep 2015 14:27:34 -0000
Received: from mail-wi0-f176.google.com (HELO mail-wi0-f176.google.com)
	(209.85.212.176)
	by server-2.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	28 Sep 2015 14:27:34 -0000
Received: by wicfx3 with SMTP id fx3so107486991wic.1
	for <mirageos-devel@lists.xenproject.org>;
	Mon, 28 Sep 2015 07:27:34 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=sender:content-type:mime-version:subject:from:in-reply-to:date:cc
	:content-transfer-encoding:message-id:references:to;
	bh=9PsQCYkCgx4brReXA9S83GdoZCOvNLd2zJqRospA2Gw=;
	b=P3DqQ7xZg8pfpmJfnnu+BA+bp2KFAbQZjJsVhB2qOB3bGNC3gpRXhdhJPVqCVuL6Fl
	zVzluSmAd6j3BNd3Ouyek+mN7/nauHVYAQf9iZ1e7dCYUutf4HZSe4bwLv/CFqORNMcR
	l4fDLsWJuVsgQOfR3rnsoMx+00NV0XZh0Kp0IiiHyhelfn6IJQpDYBZiHdqF/1Z6DGt9
	DKAyGDGPbVyYZhhpTQnn+dK9fgAbf7+JZ2O+CmdgDAsrC+5p0reRKMpiKhKzDMzXhDI5
	8rQvQsEr2tIXaP3QPdYeHLhyBJCz5SM6sY+NP9IX6LYH+iQVKigJserXdgxLoaXS5U0+
	6LCA==
X-Received: by 10.180.87.225 with SMTP id bb1mr20037481wib.0.1443450454193;
	Mon, 28 Sep 2015 07:27:34 -0700 (PDT)
Received: from dhcp-172-17-168-214.eduroam.wireless.private.cam.ac.uk
	(global-184-27.nat-1.net.cam.ac.uk. [131.111.184.27])
	by smtp.gmail.com with ESMTPSA id
	i10sm1493035wjz.41.2015.09.28.07.27.32
	(version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128);
	Mon, 28 Sep 2015 07:27:32 -0700 (PDT)
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\))
From: Thomas Gazagnaire <thomas@gazagnaire.org>
In-Reply-To: <CAG4opy9V-rzdPedT40GbuTT-+xeP=0vbaa0-TFwxauc586oCgw@mail.gmail.com>
Date: Mon, 28 Sep 2015 15:27:32 +0100
Message-Id: <D61B33F3-A8B2-44A0-9995-0C395E3E2C4E@gazagnaire.org>
References: <D881F4F5-3474-4E9E-BD0C-C947DD1B4499@gazagnaire.org>
	<CAG4opy9V-rzdPedT40GbuTT-+xeP=0vbaa0-TFwxauc586oCgw@mail.gmail.com>
To: Thomas Leonard <talex5@gmail.com>
X-Mailer: Apple Mail (2.2104)
Cc: mirageos-devel <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Irmin API evolution
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

> One other thing that has caught me out a few times:
> 
> There are a bunch of "raw" modules like:
> 
> Irmin_git.FS
> 
> but there's also
> 
> Irmin_unix.Irmin_git.FS (which is Irmin_git.FS applied to Unix)
> 
> and the examples do:
> 
> open Irmin_unix
> ...
> ... Irmin_git.FS
> 
> and you copy and paste the line from the example and then wonder why
> it seems to have the wrong signature.

I agree this is confusing. I think these should be removed, but I'd like to have a convenience module to open at one point, to avoid having to apply 10 functors before starting a project.

Thomas
_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Tue Sep 29 10:45:20 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 29 Sep 2015 10:45:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZgsPB-0002vE-HL; Tue, 29 Sep 2015 10:45:05 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <amc79@cam.ac.uk>) id 1ZgsPA-0002v9-O8
	for mirageos-devel@lists.xenproject.org; Tue, 29 Sep 2015 10:45:04 +0000
Received: from [85.158.139.211] by server-11.bemta-5.messagelabs.com id
	70/5D-24494-0BB6A065; Tue, 29 Sep 2015 10:45:04 +0000
X-Env-Sender: amc79@cam.ac.uk
X-Msg-Ref: server-8.tower-206.messagelabs.com!1443523503!38498200!1
X-Originating-IP: [131.111.8.150]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
	VHJ1c3RlZCBJUDogMTMxLjExMS44LjE1MCA9PiAxNDk0MDU=\n
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 6219 invoked from network); 29 Sep 2015 10:45:03 -0000
Received: from ppsw-50.csi.cam.ac.uk (HELO ppsw-50.csi.cam.ac.uk)
	(131.111.8.150)
	by server-8.tower-206.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 29 Sep 2015 10:45:03 -0000
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: http://www.cam.ac.uk/cs/email/scanner/
Received: from dhcp-172-17-153-181.eduroam.wireless.private.cam.ac.uk
	([172.17.153.181]:53940)
	by ppsw-50.csi.cam.ac.uk (smtp.hermes.cam.ac.uk [131.111.8.158]:465)
	with esmtpsa (PLAIN:amc79) (TLSv1:ECDHE-RSA-AES256-SHA:256)
	id 1ZgsP8-0007IY-se (Exim 4.86_36-e07b163) for
	mirageos-devel@lists.xenproject.org
	(return-path <amc79@cam.ac.uk>); Tue, 29 Sep 2015 11:45:03 +0100
From: Amir Chaudhry <amc79@cam.ac.uk>
Message-Id: <D1A1FCD9-491D-4045-8BDE-9D6709C5CFBA@cam.ac.uk>
Date: Tue, 29 Sep 2015 11:45:03 +0100
To: mirageos-devel <mirageos-devel@lists.xenproject.org>
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\))
X-Mailer: Apple Mail (2.2104)
Subject: [MirageOS-devel] MirageOS fortnightly call - Wednesday 30th at 4pm
	BST
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

SGkgZm9sa3MsCgpUaGUgbmV4dCBNaXJhZ2VPUyBjYWxsIHdpbGwgdGFrZSBwbGFjZSBvbiBXZWRu
ZXNkYXkgYWZ0ZXJub29uIGF0IDRwbSBCU1QgYW5kIGlzIG9wZW4gdG8gYWxsLiAgV2UnbGwgYmUg
b24gR29vZ2xlIEhhbmdvdXQgdGhpcyB0aW1lIGFuZCBJ4oCZbGwgcG9zdCB0aGUgbGluayBzaG9y
dGx5IGJlZm9yZSB0aGUgY2FsbCAtLSBib3RoIGhlcmUgYW5kIGFsc28gaW4gdGhlIElSQyBjaGFu
bmVsICgjbWlyYWdlIG9uIGZyZWVub2RlKS4KCkl0IHdvdWxkIGJlIGdyZWF0IGlmIHBlb3BsZSBp
bnRlcmVzdGVkIGluIE91dHJlYWNoeSBqb2luZWQgdGhlIGNhbGwgdG8gc2F5IGhpIQoKTm90ZXMg
ZnJvbSBsYXN0IHRpbWUgYXJlIGF0OiBodHRwczovL21pcmFnZS5pby93aWtpL3dlZWtseS0yMDE1
LTA5LTA5ClRoZSBhZ2VuZGEgZm9yIHRoaXMgd2VlayBpcyBjdXJyZW50bHkgYXMgZm9sbG93cyAo
c3ViamVjdCB0byBjaGFuZ2UpOgoK4oCiIFF1YWxpdHkgYW5kIFRlc3QK4oCiIFZlcnNpb25pbmcg
KHNlZSB0aGUgZW1haWwgWzFdKQrigKIgUGlvbmVlciBQcm9qZWN0cwoKSWYgeW91IGhhdmUgdGhp
bmdzIHRvIGFkZC9lZGl0LCBwbGVhc2UgZG8gc28gYXQgaHR0cHM6Ly9naXRodWIuY29tL21pcmFn
ZS9taXJhZ2Utd3d3L3dpa2kvQ2FsbC1BZ2VuZGEKCkpvaW4gdXMgYXQgNHBtIEJTVCBvbiBXZWRu
ZXNkYXkhCgpCZXN0IHdpc2hlcywKQW1pcgoKWzFdIGh0dHA6Ly9saXN0cy54ZW5wcm9qZWN0Lm9y
Zy9hcmNoaXZlcy9odG1sL21pcmFnZW9zLWRldmVsLzIwMTUtMDkvbXNnMDAwMjEuaHRtbApfX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpNaXJhZ2VPUy1kZXZl
bCBtYWlsaW5nIGxpc3QKTWlyYWdlT1MtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cDov
L2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby9taXJhZ2Vvcy1k
ZXZlbAo=

From mirageos-devel-bounces@lists.xenproject.org Tue Sep 29 10:45:20 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 29 Sep 2015 10:45:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZgsPB-0002vE-HL; Tue, 29 Sep 2015 10:45:05 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <amc79@cam.ac.uk>) id 1ZgsPA-0002v9-O8
	for mirageos-devel@lists.xenproject.org; Tue, 29 Sep 2015 10:45:04 +0000
Received: from [85.158.139.211] by server-11.bemta-5.messagelabs.com id
	70/5D-24494-0BB6A065; Tue, 29 Sep 2015 10:45:04 +0000
X-Env-Sender: amc79@cam.ac.uk
X-Msg-Ref: server-8.tower-206.messagelabs.com!1443523503!38498200!1
X-Originating-IP: [131.111.8.150]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
	VHJ1c3RlZCBJUDogMTMxLjExMS44LjE1MCA9PiAxNDk0MDU=\n
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 6219 invoked from network); 29 Sep 2015 10:45:03 -0000
Received: from ppsw-50.csi.cam.ac.uk (HELO ppsw-50.csi.cam.ac.uk)
	(131.111.8.150)
	by server-8.tower-206.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 29 Sep 2015 10:45:03 -0000
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: http://www.cam.ac.uk/cs/email/scanner/
Received: from dhcp-172-17-153-181.eduroam.wireless.private.cam.ac.uk
	([172.17.153.181]:53940)
	by ppsw-50.csi.cam.ac.uk (smtp.hermes.cam.ac.uk [131.111.8.158]:465)
	with esmtpsa (PLAIN:amc79) (TLSv1:ECDHE-RSA-AES256-SHA:256)
	id 1ZgsP8-0007IY-se (Exim 4.86_36-e07b163) for
	mirageos-devel@lists.xenproject.org
	(return-path <amc79@cam.ac.uk>); Tue, 29 Sep 2015 11:45:03 +0100
From: Amir Chaudhry <amc79@cam.ac.uk>
Message-Id: <D1A1FCD9-491D-4045-8BDE-9D6709C5CFBA@cam.ac.uk>
Date: Tue, 29 Sep 2015 11:45:03 +0100
To: mirageos-devel <mirageos-devel@lists.xenproject.org>
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\))
X-Mailer: Apple Mail (2.2104)
Subject: [MirageOS-devel] MirageOS fortnightly call - Wednesday 30th at 4pm
	BST
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

SGkgZm9sa3MsCgpUaGUgbmV4dCBNaXJhZ2VPUyBjYWxsIHdpbGwgdGFrZSBwbGFjZSBvbiBXZWRu
ZXNkYXkgYWZ0ZXJub29uIGF0IDRwbSBCU1QgYW5kIGlzIG9wZW4gdG8gYWxsLiAgV2UnbGwgYmUg
b24gR29vZ2xlIEhhbmdvdXQgdGhpcyB0aW1lIGFuZCBJ4oCZbGwgcG9zdCB0aGUgbGluayBzaG9y
dGx5IGJlZm9yZSB0aGUgY2FsbCAtLSBib3RoIGhlcmUgYW5kIGFsc28gaW4gdGhlIElSQyBjaGFu
bmVsICgjbWlyYWdlIG9uIGZyZWVub2RlKS4KCkl0IHdvdWxkIGJlIGdyZWF0IGlmIHBlb3BsZSBp
bnRlcmVzdGVkIGluIE91dHJlYWNoeSBqb2luZWQgdGhlIGNhbGwgdG8gc2F5IGhpIQoKTm90ZXMg
ZnJvbSBsYXN0IHRpbWUgYXJlIGF0OiBodHRwczovL21pcmFnZS5pby93aWtpL3dlZWtseS0yMDE1
LTA5LTA5ClRoZSBhZ2VuZGEgZm9yIHRoaXMgd2VlayBpcyBjdXJyZW50bHkgYXMgZm9sbG93cyAo
c3ViamVjdCB0byBjaGFuZ2UpOgoK4oCiIFF1YWxpdHkgYW5kIFRlc3QK4oCiIFZlcnNpb25pbmcg
KHNlZSB0aGUgZW1haWwgWzFdKQrigKIgUGlvbmVlciBQcm9qZWN0cwoKSWYgeW91IGhhdmUgdGhp
bmdzIHRvIGFkZC9lZGl0LCBwbGVhc2UgZG8gc28gYXQgaHR0cHM6Ly9naXRodWIuY29tL21pcmFn
ZS9taXJhZ2Utd3d3L3dpa2kvQ2FsbC1BZ2VuZGEKCkpvaW4gdXMgYXQgNHBtIEJTVCBvbiBXZWRu
ZXNkYXkhCgpCZXN0IHdpc2hlcywKQW1pcgoKWzFdIGh0dHA6Ly9saXN0cy54ZW5wcm9qZWN0Lm9y
Zy9hcmNoaXZlcy9odG1sL21pcmFnZW9zLWRldmVsLzIwMTUtMDkvbXNnMDAwMjEuaHRtbApfX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpNaXJhZ2VPUy1kZXZl
bCBtYWlsaW5nIGxpc3QKTWlyYWdlT1MtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cDov
L2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby9taXJhZ2Vvcy1k
ZXZlbAo=

From mirageos-devel-bounces@lists.xenproject.org Tue Sep 29 14:07:47 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 29 Sep 2015 14:07:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZgvZD-00006K-EA; Tue, 29 Sep 2015 14:07:39 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <russell.pavlicek.xen@gmail.com>)
	id 1ZgvZC-00005U-1i; Tue, 29 Sep 2015 14:07:38 +0000
Received: from [85.158.137.68] by server-1.bemta-3.messagelabs.com id
	F0/59-01421-92B9A065; Tue, 29 Sep 2015 14:07:37 +0000
X-Env-Sender: russell.pavlicek.xen@gmail.com
X-Msg-Ref: server-6.tower-31.messagelabs.com!1443535655!44237101!1
X-Originating-IP: [209.85.192.44]
X-SpamReason: No, hits=2.1 required=7.0 tests=RCVD_BY_IP,
  SUSPICIOUS_RECIPS
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 8296 invoked from network); 29 Sep 2015 14:07:36 -0000
Received: from mail-qg0-f44.google.com (HELO mail-qg0-f44.google.com)
	(209.85.192.44)
	by server-6.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	29 Sep 2015 14:07:36 -0000
Received: by qgt47 with SMTP id 47so6706541qgt.2;
	Tue, 29 Sep 2015 07:07:35 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:sender:in-reply-to:references:date:message-id:subject
	:from:to:cc:content-type;
	bh=Jj+R3s06qV/6KxGgFijrBkeDX9OyBZsapuGYJiIKAJA=;
	b=uNdFf/9wdRshNPFccOSknUCwVQrqKHHN5+nXcxrcawH4xXpFxaTt6j2yxBgWw6uPNR
	M2xmsrHVLLm/qwEtULN419mAAZomybQVEWQ0LQj8skigAxZiJrdNe5VEFRtM9ZHUj1Ud
	f9O3O5OPZuwO4A5mb/ehks1ASLAkyZIFqIGVK5R2nBsSAHg+0BJ9zqVcok/6Jr0NJwvx
	oY0nnEj9j6H92rpGn0b4FvV/N/fMhNCghDr+/z5H12981gVXMxtvaHbBF8IECM8EPs0x
	ooyZBYHqBimLVvj0SE81V3whTVfPSepMkwqpTNnq9K904UKhaMnJImZl78IwT0d6/r3Z
	XD3Q==
MIME-Version: 1.0
X-Received: by 10.140.234.78 with SMTP id f75mr31767405qhc.20.1443535655206;
	Tue, 29 Sep 2015 07:07:35 -0700 (PDT)
Received: by 10.55.2.8 with HTTP; Tue, 29 Sep 2015 07:07:35 -0700 (PDT)
In-Reply-To: <CAHehzX3mGFZa8k-Gd=fejMWRXhM7JnN9Xj-1-pocgiEOS-TkUw@mail.gmail.com>
References: <CAHehzX3mGFZa8k-Gd=fejMWRXhM7JnN9Xj-1-pocgiEOS-TkUw@mail.gmail.com>
Date: Tue, 29 Sep 2015 10:07:35 -0400
X-Google-Sender-Auth: dp1-RQt6ZpjDt7ozalU5FIZTKyk
Message-ID: <CAHehzX0MXBp=gGoXxB_skmOKAoTidcFrgm5ZGrhp1DJbf+ahWg@mail.gmail.com>
From: Russ Pavlicek <russell.pavlicek@xenproject.org>
To: Russ Pavlicek <russell.pavlicek@xenproject.org>
Cc: xen-api@lists.xen.org, xen-devel <xen-devel@lists.xenproject.org>,
	xs-devel@lists.xenserver.org, mirageos-devel@lists.xenproject.org,
	xen-users@lists.xenproject.org
Subject: Re: [MirageOS-devel] Make ready for 4.6! Xen Project Document Day
	is Wednesday, Sept 30
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

Remember: Document Day is tomorrow (Wednesday) and we need to make the
Wiki 4.6-compatible.  Join us in #xendocs!

On Thu, Sep 24, 2015 at 3:19 PM, Russ Pavlicek
<russell.pavlicek@xenproject.org> wrote:
> Our next Xen Project Document Day is this Wednesday, September 30!
>
> OUR THEME OF THE MONTH: "Ready for 4.6"
>
> This month, we prepare for the release of Xen Project 4.6 early next
> month. We need to make sure that users of the new release can find the
> documentation they need to make it all work. So, this month, we need
> to:
>
> - Add new documentation for new features
> - Modify existing documentation for anything which is changing in the
> newest release, and
> - Deprecate old documentation, letting people know that certain
> information is applies only to older releases
>
> Check out the current documentation, and anything which doesn't map to
> 4.6 (or 4.5, for that matter) commands or best practices will need
> improvement.
>
> More detailed information can be found in the TODO document (below).
> And, as always, feel free to add any other documentation which you
> believe to be necessary.
>
> All the information you need to participate in Document Day is here:
>
> http://wiki.xenproject.org/wiki/Xen_Document_Days
>
> Also take a look at the current TODO list to see other items which
> need attention:
>
> http://wiki.xenproject.org/wiki/Xen_Document_Days/TODO
>
> Please think about how you can help out.  If you haven't requested
> to be made a Wiki editor, save time and do it now so you are ready to
> go on Document Day.  Just fill out the form below:
>
> http://xenproject.org/component/content/article/100-misc/145-request-to-be-made-a-wiki-editor.html
>
> We hope to see you Wednesday in #xendocs!

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Tue Sep 29 14:07:47 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 29 Sep 2015 14:07:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZgvZD-00006K-EA; Tue, 29 Sep 2015 14:07:39 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <russell.pavlicek.xen@gmail.com>)
	id 1ZgvZC-00005U-1i; Tue, 29 Sep 2015 14:07:38 +0000
Received: from [85.158.137.68] by server-1.bemta-3.messagelabs.com id
	F0/59-01421-92B9A065; Tue, 29 Sep 2015 14:07:37 +0000
X-Env-Sender: russell.pavlicek.xen@gmail.com
X-Msg-Ref: server-6.tower-31.messagelabs.com!1443535655!44237101!1
X-Originating-IP: [209.85.192.44]
X-SpamReason: No, hits=2.1 required=7.0 tests=RCVD_BY_IP,
  SUSPICIOUS_RECIPS
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 8296 invoked from network); 29 Sep 2015 14:07:36 -0000
Received: from mail-qg0-f44.google.com (HELO mail-qg0-f44.google.com)
	(209.85.192.44)
	by server-6.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	29 Sep 2015 14:07:36 -0000
Received: by qgt47 with SMTP id 47so6706541qgt.2;
	Tue, 29 Sep 2015 07:07:35 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:sender:in-reply-to:references:date:message-id:subject
	:from:to:cc:content-type;
	bh=Jj+R3s06qV/6KxGgFijrBkeDX9OyBZsapuGYJiIKAJA=;
	b=uNdFf/9wdRshNPFccOSknUCwVQrqKHHN5+nXcxrcawH4xXpFxaTt6j2yxBgWw6uPNR
	M2xmsrHVLLm/qwEtULN419mAAZomybQVEWQ0LQj8skigAxZiJrdNe5VEFRtM9ZHUj1Ud
	f9O3O5OPZuwO4A5mb/ehks1ASLAkyZIFqIGVK5R2nBsSAHg+0BJ9zqVcok/6Jr0NJwvx
	oY0nnEj9j6H92rpGn0b4FvV/N/fMhNCghDr+/z5H12981gVXMxtvaHbBF8IECM8EPs0x
	ooyZBYHqBimLVvj0SE81V3whTVfPSepMkwqpTNnq9K904UKhaMnJImZl78IwT0d6/r3Z
	XD3Q==
MIME-Version: 1.0
X-Received: by 10.140.234.78 with SMTP id f75mr31767405qhc.20.1443535655206;
	Tue, 29 Sep 2015 07:07:35 -0700 (PDT)
Received: by 10.55.2.8 with HTTP; Tue, 29 Sep 2015 07:07:35 -0700 (PDT)
In-Reply-To: <CAHehzX3mGFZa8k-Gd=fejMWRXhM7JnN9Xj-1-pocgiEOS-TkUw@mail.gmail.com>
References: <CAHehzX3mGFZa8k-Gd=fejMWRXhM7JnN9Xj-1-pocgiEOS-TkUw@mail.gmail.com>
Date: Tue, 29 Sep 2015 10:07:35 -0400
X-Google-Sender-Auth: dp1-RQt6ZpjDt7ozalU5FIZTKyk
Message-ID: <CAHehzX0MXBp=gGoXxB_skmOKAoTidcFrgm5ZGrhp1DJbf+ahWg@mail.gmail.com>
From: Russ Pavlicek <russell.pavlicek@xenproject.org>
To: Russ Pavlicek <russell.pavlicek@xenproject.org>
Cc: xen-api@lists.xen.org, xen-devel <xen-devel@lists.xenproject.org>,
	xs-devel@lists.xenserver.org, mirageos-devel@lists.xenproject.org,
	xen-users@lists.xenproject.org
Subject: Re: [MirageOS-devel] Make ready for 4.6! Xen Project Document Day
	is Wednesday, Sept 30
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

Remember: Document Day is tomorrow (Wednesday) and we need to make the
Wiki 4.6-compatible.  Join us in #xendocs!

On Thu, Sep 24, 2015 at 3:19 PM, Russ Pavlicek
<russell.pavlicek@xenproject.org> wrote:
> Our next Xen Project Document Day is this Wednesday, September 30!
>
> OUR THEME OF THE MONTH: "Ready for 4.6"
>
> This month, we prepare for the release of Xen Project 4.6 early next
> month. We need to make sure that users of the new release can find the
> documentation they need to make it all work. So, this month, we need
> to:
>
> - Add new documentation for new features
> - Modify existing documentation for anything which is changing in the
> newest release, and
> - Deprecate old documentation, letting people know that certain
> information is applies only to older releases
>
> Check out the current documentation, and anything which doesn't map to
> 4.6 (or 4.5, for that matter) commands or best practices will need
> improvement.
>
> More detailed information can be found in the TODO document (below).
> And, as always, feel free to add any other documentation which you
> believe to be necessary.
>
> All the information you need to participate in Document Day is here:
>
> http://wiki.xenproject.org/wiki/Xen_Document_Days
>
> Also take a look at the current TODO list to see other items which
> need attention:
>
> http://wiki.xenproject.org/wiki/Xen_Document_Days/TODO
>
> Please think about how you can help out.  If you haven't requested
> to be made a Wiki editor, save time and do it now so you are ready to
> go on Document Day.  Just fill out the form below:
>
> http://xenproject.org/component/content/article/100-misc/145-request-to-be-made-a-wiki-editor.html
>
> We hope to see you Wednesday in #xendocs!

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Wed Sep 30 10:07:48 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 30 Sep 2015 10:07:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZhEIW-0006Kh-AF; Wed, 30 Sep 2015 10:07:40 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <talex5@gmail.com>) id 1ZhEIV-0006Iq-LP
	for mirageos-devel@lists.xenproject.org; Wed, 30 Sep 2015 10:07:39 +0000
Received: from [85.158.139.211] by server-2.bemta-5.messagelabs.com id
	87/B9-31450-A64BB065; Wed, 30 Sep 2015 10:07:38 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-6.tower-206.messagelabs.com!1443607657!38800552!1
X-Originating-IP: [209.85.213.41]
X-SpamReason: No, hits=0.8 required=7.0 tests=BODY_RANDOM_LONG,
  RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 21568 invoked from network); 30 Sep 2015 10:07:38 -0000
Received: from mail-vk0-f41.google.com (HELO mail-vk0-f41.google.com)
	(209.85.213.41)
	by server-6.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
	30 Sep 2015 10:07:38 -0000
Received: by vkat63 with SMTP id t63so22127332vka.1
	for <mirageos-devel@lists.xenproject.org>;
	Wed, 30 Sep 2015 03:07:37 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:date:message-id:subject:from:to:content-type;
	bh=DM8J0cbkFVwrSj+74kHRbfbRRoL6mSpzEwjBnImyt7U=;
	b=aZdA4mCzCmRwgEiOF6ivzy9ncTmqxp4oX4PMsilT8k+zNUA2gCvT6ThEsjV95rBOIE
	+biYAgwxQsSM8EPmQ8uHo5wNhd6sdrdW1r+EpAh2Xu1O+uQhVBo8R28Z9nSDrb05c1xC
	78Yjc1Wt1NVUJqJ1uYnKHqQYRc94vsIQD7dzrPvDYK1EcUIDSU9hT+iP+ecNfvVCnHre
	JmL3U+l7assloaNuKFmfJs/lOQqHKAUIrDM8nKkxw4PcYPdkm2J+8BW+zsPaWg19Bel4
	mwXbxKN5bbRlvPqvfJUHoeY27cg2kBGIRgZZyjhn9dAwcYf6fuv8PVxH4YEQuVVZH3ve
	itDA==
MIME-Version: 1.0
X-Received: by 10.31.166.206 with SMTP id p197mr2359221vke.52.1443607656992;
	Wed, 30 Sep 2015 03:07:36 -0700 (PDT)
Received: by 10.31.69.4 with HTTP; Wed, 30 Sep 2015 03:07:36 -0700 (PDT)
Date: Wed, 30 Sep 2015 12:07:36 +0200
Message-ID: <CAG4opy-YEUpzoMvX4jT7x5Gx5Tv+oeu4U2M9kO0CJ8fJDCEpQw@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: [MirageOS-devel] irmin-www server
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

Hi,

I'm making a little Irmin-based web-server:

  https://github.com/talex5/irmin-www

It serves the contents of an Irmin repository as an HTTP site, and
allows updating the site via the Irmin REST API (which can be used via
the command-line). I have a few questions:

First, can I sync to it using the "irmin" CLI? I can upload individual
files, e.g.

    irmin write -s http --uri https://127.0.0.1:8444 index.html
'<h1>Hello, world!</h1>'

But I don't see a way to clone the whole repository or push from a
local one, e.g.

    $ irmin clone --verbose -s mem https://127.0.0.1:8444
    Error!

Is there a Mirage BLOCK backend for Irmin yet? Currently, when
compiled for Xen it uses an in-memory store only. I think someone
tried it under FAT - did that work? What is the long-term plan here?

Finally, the listen API for the Irmin server seems awkward. After
configuring its HTTP server, Irmin wants to call listen itself, which
requires passing in a module defining it. Since listen requires extra
context (e.g. the TCP stack to use and TLS parameters), this requires
defining an in-line module. e.g.

    Lwt.async (fun () ->
      let module Irmin_server = struct
        module X = struct
          include S

          let listen t ?timeout uri =
            assert (timeout = None);
            let port = match Uri.port uri with
              | None   -> failwith "Missing port in Irmin endpoint"
              | Some p -> p in
            Stack.listen_tcpv4 stack ~port (wrap_tls tls_config (listen t));
            return ()
        end
        module Y = struct
          let pretty d =
            Printf.sprintf "%Ld" d
        end

        include Irmin_http_server.Make(X)(Y)(Store)
      end in
      Irmin_server.listen (s "server") ~strict:true irmin_uri
    );
    Stack.listen stack

Perhaps it would make more sense for Irmin_http_server to return the
spec, rather than calling listen itself? Then I could pass the Cohttp
S module directly to the Irmin functor and call listen myself. Also,
Irmin could then forget about the timeout parameter. Maybe the URI
could go away too.

However, even that requires letting Irmin parse the HTTP requests
itself. It would be more convenient for me to handle all HTTP requests
on a single port, and dispatch paths under /api to Irmin, for example.
Maybe we need some standard dispatcher API here?

Finally, what options does Irmin provide for authentication? I see it
supports https, but it seemed overly helpful about automatically
accepting my self-signed server certificate. Can I use it with client
auth, or HTTP basic auth?

Thanks,


-- 
Dr Thomas Leonard        http://roscidus.com/blog/
GPG: DA98 25AE CAD0 8975 7CDA  BD8E 0713 3F96 CA74 D8BA

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Wed Sep 30 10:07:48 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 30 Sep 2015 10:07:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZhEIW-0006Kh-AF; Wed, 30 Sep 2015 10:07:40 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <talex5@gmail.com>) id 1ZhEIV-0006Iq-LP
	for mirageos-devel@lists.xenproject.org; Wed, 30 Sep 2015 10:07:39 +0000
Received: from [85.158.139.211] by server-2.bemta-5.messagelabs.com id
	87/B9-31450-A64BB065; Wed, 30 Sep 2015 10:07:38 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-6.tower-206.messagelabs.com!1443607657!38800552!1
X-Originating-IP: [209.85.213.41]
X-SpamReason: No, hits=0.8 required=7.0 tests=BODY_RANDOM_LONG,
  RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 21568 invoked from network); 30 Sep 2015 10:07:38 -0000
Received: from mail-vk0-f41.google.com (HELO mail-vk0-f41.google.com)
	(209.85.213.41)
	by server-6.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
	30 Sep 2015 10:07:38 -0000
Received: by vkat63 with SMTP id t63so22127332vka.1
	for <mirageos-devel@lists.xenproject.org>;
	Wed, 30 Sep 2015 03:07:37 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:date:message-id:subject:from:to:content-type;
	bh=DM8J0cbkFVwrSj+74kHRbfbRRoL6mSpzEwjBnImyt7U=;
	b=aZdA4mCzCmRwgEiOF6ivzy9ncTmqxp4oX4PMsilT8k+zNUA2gCvT6ThEsjV95rBOIE
	+biYAgwxQsSM8EPmQ8uHo5wNhd6sdrdW1r+EpAh2Xu1O+uQhVBo8R28Z9nSDrb05c1xC
	78Yjc1Wt1NVUJqJ1uYnKHqQYRc94vsIQD7dzrPvDYK1EcUIDSU9hT+iP+ecNfvVCnHre
	JmL3U+l7assloaNuKFmfJs/lOQqHKAUIrDM8nKkxw4PcYPdkm2J+8BW+zsPaWg19Bel4
	mwXbxKN5bbRlvPqvfJUHoeY27cg2kBGIRgZZyjhn9dAwcYf6fuv8PVxH4YEQuVVZH3ve
	itDA==
MIME-Version: 1.0
X-Received: by 10.31.166.206 with SMTP id p197mr2359221vke.52.1443607656992;
	Wed, 30 Sep 2015 03:07:36 -0700 (PDT)
Received: by 10.31.69.4 with HTTP; Wed, 30 Sep 2015 03:07:36 -0700 (PDT)
Date: Wed, 30 Sep 2015 12:07:36 +0200
Message-ID: <CAG4opy-YEUpzoMvX4jT7x5Gx5Tv+oeu4U2M9kO0CJ8fJDCEpQw@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: [MirageOS-devel] irmin-www server
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

Hi,

I'm making a little Irmin-based web-server:

  https://github.com/talex5/irmin-www

It serves the contents of an Irmin repository as an HTTP site, and
allows updating the site via the Irmin REST API (which can be used via
the command-line). I have a few questions:

First, can I sync to it using the "irmin" CLI? I can upload individual
files, e.g.

    irmin write -s http --uri https://127.0.0.1:8444 index.html
'<h1>Hello, world!</h1>'

But I don't see a way to clone the whole repository or push from a
local one, e.g.

    $ irmin clone --verbose -s mem https://127.0.0.1:8444
    Error!

Is there a Mirage BLOCK backend for Irmin yet? Currently, when
compiled for Xen it uses an in-memory store only. I think someone
tried it under FAT - did that work? What is the long-term plan here?

Finally, the listen API for the Irmin server seems awkward. After
configuring its HTTP server, Irmin wants to call listen itself, which
requires passing in a module defining it. Since listen requires extra
context (e.g. the TCP stack to use and TLS parameters), this requires
defining an in-line module. e.g.

    Lwt.async (fun () ->
      let module Irmin_server = struct
        module X = struct
          include S

          let listen t ?timeout uri =
            assert (timeout = None);
            let port = match Uri.port uri with
              | None   -> failwith "Missing port in Irmin endpoint"
              | Some p -> p in
            Stack.listen_tcpv4 stack ~port (wrap_tls tls_config (listen t));
            return ()
        end
        module Y = struct
          let pretty d =
            Printf.sprintf "%Ld" d
        end

        include Irmin_http_server.Make(X)(Y)(Store)
      end in
      Irmin_server.listen (s "server") ~strict:true irmin_uri
    );
    Stack.listen stack

Perhaps it would make more sense for Irmin_http_server to return the
spec, rather than calling listen itself? Then I could pass the Cohttp
S module directly to the Irmin functor and call listen myself. Also,
Irmin could then forget about the timeout parameter. Maybe the URI
could go away too.

However, even that requires letting Irmin parse the HTTP requests
itself. It would be more convenient for me to handle all HTTP requests
on a single port, and dispatch paths under /api to Irmin, for example.
Maybe we need some standard dispatcher API here?

Finally, what options does Irmin provide for authentication? I see it
supports https, but it seemed overly helpful about automatically
accepting my self-signed server certificate. Can I use it with client
auth, or HTTP basic auth?

Thanks,


-- 
Dr Thomas Leonard        http://roscidus.com/blog/
GPG: DA98 25AE CAD0 8975 7CDA  BD8E 0713 3F96 CA74 D8BA

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Wed Sep 30 13:52:05 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 30 Sep 2015 13:52:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZhHnX-0002Ko-JF; Wed, 30 Sep 2015 13:51:55 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <anil@recoil.org>) id 1ZhHnW-0002Kg-6k
	for mirageos-devel@lists.xenproject.org; Wed, 30 Sep 2015 13:51:54 +0000
Received: from [85.158.139.211] by server-7.bemta-5.messagelabs.com id
	F4/D4-13905-9F8EB065; Wed, 30 Sep 2015 13:51:53 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-5.tower-206.messagelabs.com!1443621111!38859018!1
X-Originating-IP: [5.153.225.51]
X-SpamReason: No, hits=0.7 required=7.0 tests=BODY_RANDOM_LONG, RCVD_ILLEGAL_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 24363 invoked from network); 30 Sep 2015 13:51:53 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-5.tower-206.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 30 Sep 2015 13:51:53 -0000
Received: from dhcp-172-17-169-28.eduroam.wireless.private.cam.ac.uk
	(global-184-27.nat-1.net.cam.ac.uk [131.111.184.27])
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id a1a71880
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Wed, 30 Sep 2015 14:51:50 +0100 (BST)
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <CAG4opy-YEUpzoMvX4jT7x5Gx5Tv+oeu4U2M9kO0CJ8fJDCEpQw@mail.gmail.com>
Date: Wed, 30 Sep 2015 14:51:54 +0100
Message-Id: <10510BE7-28B8-4F26-8A80-60FD5F3408AD@recoil.org>
References: <CAG4opy-YEUpzoMvX4jT7x5Gx5Tv+oeu4U2M9kO0CJ8fJDCEpQw@mail.gmail.com>
To: Thomas Leonard <talex5@gmail.com>
X-Mailer: Apple Mail (2.2104)
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] irmin-www server
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On 30 Sep 2015, at 11:07, Thomas Leonard <talex5@gmail.com> wrote:
> 
> Finally, what options does Irmin provide for authentication? I see it
> supports https, but it seemed overly helpful about automatically
> accepting my self-signed server certificate. Can I use it with client
> auth, or HTTP basic auth?

It may be helpful to pull out this aspect in a Cohttp library that
wraps the HTTP server callback and integrates certificate checking
with sensible default to Conduit and the TLS stack.

-anil

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Wed Sep 30 13:52:05 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 30 Sep 2015 13:52:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZhHnX-0002Ko-JF; Wed, 30 Sep 2015 13:51:55 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <anil@recoil.org>) id 1ZhHnW-0002Kg-6k
	for mirageos-devel@lists.xenproject.org; Wed, 30 Sep 2015 13:51:54 +0000
Received: from [85.158.139.211] by server-7.bemta-5.messagelabs.com id
	F4/D4-13905-9F8EB065; Wed, 30 Sep 2015 13:51:53 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-5.tower-206.messagelabs.com!1443621111!38859018!1
X-Originating-IP: [5.153.225.51]
X-SpamReason: No, hits=0.7 required=7.0 tests=BODY_RANDOM_LONG, RCVD_ILLEGAL_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 24363 invoked from network); 30 Sep 2015 13:51:53 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-5.tower-206.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 30 Sep 2015 13:51:53 -0000
Received: from dhcp-172-17-169-28.eduroam.wireless.private.cam.ac.uk
	(global-184-27.nat-1.net.cam.ac.uk [131.111.184.27])
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id a1a71880
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Wed, 30 Sep 2015 14:51:50 +0100 (BST)
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <CAG4opy-YEUpzoMvX4jT7x5Gx5Tv+oeu4U2M9kO0CJ8fJDCEpQw@mail.gmail.com>
Date: Wed, 30 Sep 2015 14:51:54 +0100
Message-Id: <10510BE7-28B8-4F26-8A80-60FD5F3408AD@recoil.org>
References: <CAG4opy-YEUpzoMvX4jT7x5Gx5Tv+oeu4U2M9kO0CJ8fJDCEpQw@mail.gmail.com>
To: Thomas Leonard <talex5@gmail.com>
X-Mailer: Apple Mail (2.2104)
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] irmin-www server
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On 30 Sep 2015, at 11:07, Thomas Leonard <talex5@gmail.com> wrote:
> 
> Finally, what options does Irmin provide for authentication? I see it
> supports https, but it seemed overly helpful about automatically
> accepting my self-signed server certificate. Can I use it with client
> auth, or HTTP basic auth?

It may be helpful to pull out this aspect in a Cohttp library that
wraps the HTTP server callback and integrates certificate checking
with sensible default to Conduit and the TLS stack.

-anil

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Wed Sep 30 14:15:14 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 30 Sep 2015 14:15:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZhIA1-0005Aw-6h; Wed, 30 Sep 2015 14:15:09 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <richard.mortier@gmail.com>) id 1ZhI9z-0005Ap-TJ
	for mirageos-devel@lists.xenproject.org; Wed, 30 Sep 2015 14:15:07 +0000
Received: from [193.109.254.147] by server-1.bemta-14.messagelabs.com id
	D2/F9-28791-B6EEB065; Wed, 30 Sep 2015 14:15:07 +0000
X-Env-Sender: richard.mortier@gmail.com
X-Msg-Ref: server-4.tower-27.messagelabs.com!1443622506!51894091!1
X-Originating-IP: [209.85.212.172]
X-SpamReason: No, hits=0.8 required=7.0 tests=BODY_RANDOM_LONG,
  RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 12327 invoked from network); 30 Sep 2015 14:15:06 -0000
Received: from mail-wi0-f172.google.com (HELO mail-wi0-f172.google.com)
	(209.85.212.172)
	by server-4.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	30 Sep 2015 14:15:06 -0000
Received: by wiclk2 with SMTP id lk2so64164703wic.1
	for <mirageos-devel@lists.xenproject.org>;
	Wed, 30 Sep 2015 07:15:06 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=mime-version:in-reply-to:references:date:message-id:subject:from:to
	:cc:content-type;
	bh=MzrWK0XDEYJWK5E3Qr/SKCORZCorkkc7HYvzkvn4rEs=;
	b=Rg3LeiYKZC5/+FSPQQq88hpapCtOc5HO/ExumkmGCjhmDAuMi/kIDf7tCIghvoFWfu
	P/02D83w2Zpz0mlyR/gDxZtBVqSP5gN0Z2LlaoO7FxIlg+PELtcY3UCarGXNbBhAgn1v
	dbIs3+IR7viW83O/R6RW15OR5Q+Iiy8A8sjWGVO9nKMVbMUuh4ubdVmZuZ33zpyeutRw
	fKKVBWyXV3LZZTvC0DH/6OXkzwZEHH+H4uIWBb+jPnS+FawkRhRyVE1Lzy4x8DgzOLKW
	sFNfdMzXead2X/hXwqplLk24Ir1Tv50bnoREHSWA2rXWIPtvI9DkmuJyA9UgtKibBofL
	GanQ==
X-Received: by 10.194.80.42 with SMTP id o10mr4363923wjx.31.1443622506181;
	Wed, 30 Sep 2015 07:15:06 -0700 (PDT)
Received: from mail-wi0-f175.google.com (mail-wi0-f175.google.com.
	[209.85.212.175]) by smtp.gmail.com with ESMTPSA id
	ka10sm893032wjc.30.2015.09.30.07.15.04
	for <mirageos-devel@lists.xenproject.org>
	(version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Wed, 30 Sep 2015 07:15:05 -0700 (PDT)
Received: by wicge5 with SMTP id ge5so199016940wic.0
	for <mirageos-devel@lists.xenproject.org>;
	Wed, 30 Sep 2015 07:15:04 -0700 (PDT)
MIME-Version: 1.0
X-Received: by 10.194.87.129 with SMTP id ay1mr4375446wjb.110.1443622504561;
	Wed, 30 Sep 2015 07:15:04 -0700 (PDT)
Received: by 10.28.130.67 with HTTP; Wed, 30 Sep 2015 07:15:04 -0700 (PDT)
In-Reply-To: <10510BE7-28B8-4F26-8A80-60FD5F3408AD@recoil.org>
References: <CAG4opy-YEUpzoMvX4jT7x5Gx5Tv+oeu4U2M9kO0CJ8fJDCEpQw@mail.gmail.com>
	<10510BE7-28B8-4F26-8A80-60FD5F3408AD@recoil.org>
Date: Wed, 30 Sep 2015 15:15:04 +0100
Message-ID: <CAN2Hq05Bfj8+DrO+UH1e+rgQRqYzqYPxLY5Wy1nkz721ztNz1Q@mail.gmail.com>
From: Richard Mortier <richard.mortier@cl.cam.ac.uk>
To: Anil Madhavapeddy <anil@recoil.org>
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] irmin-www server
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On 30 September 2015 at 14:51, Anil Madhavapeddy <anil@recoil.org> wrote:
> On 30 Sep 2015, at 11:07, Thomas Leonard <talex5@gmail.com> wrote:
>>
>> Finally, what options does Irmin provide for authentication? I see it
>> supports https, but it seemed overly helpful about automatically
>> accepting my self-signed server certificate. Can I use it with client
>> auth, or HTTP basic auth?
>
> It may be helpful to pull out this aspect in a Cohttp library that
> wraps the HTTP server callback and integrates certificate checking
> with sensible default to Conduit and the TLS stack.

Yes; my recollection from the last time I asked @samoht about this was
that client-side TLS auth could be supported (the TLS stack supports
it) but wasn't currently integrated with Irmin.

-- 
Richard Mortier
richard.mortier@cl.cam.ac.uk

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Wed Sep 30 14:15:14 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 30 Sep 2015 14:15:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZhIA1-0005Aw-6h; Wed, 30 Sep 2015 14:15:09 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <richard.mortier@gmail.com>) id 1ZhI9z-0005Ap-TJ
	for mirageos-devel@lists.xenproject.org; Wed, 30 Sep 2015 14:15:07 +0000
Received: from [193.109.254.147] by server-1.bemta-14.messagelabs.com id
	D2/F9-28791-B6EEB065; Wed, 30 Sep 2015 14:15:07 +0000
X-Env-Sender: richard.mortier@gmail.com
X-Msg-Ref: server-4.tower-27.messagelabs.com!1443622506!51894091!1
X-Originating-IP: [209.85.212.172]
X-SpamReason: No, hits=0.8 required=7.0 tests=BODY_RANDOM_LONG,
  RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 12327 invoked from network); 30 Sep 2015 14:15:06 -0000
Received: from mail-wi0-f172.google.com (HELO mail-wi0-f172.google.com)
	(209.85.212.172)
	by server-4.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	30 Sep 2015 14:15:06 -0000
Received: by wiclk2 with SMTP id lk2so64164703wic.1
	for <mirageos-devel@lists.xenproject.org>;
	Wed, 30 Sep 2015 07:15:06 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=mime-version:in-reply-to:references:date:message-id:subject:from:to
	:cc:content-type;
	bh=MzrWK0XDEYJWK5E3Qr/SKCORZCorkkc7HYvzkvn4rEs=;
	b=Rg3LeiYKZC5/+FSPQQq88hpapCtOc5HO/ExumkmGCjhmDAuMi/kIDf7tCIghvoFWfu
	P/02D83w2Zpz0mlyR/gDxZtBVqSP5gN0Z2LlaoO7FxIlg+PELtcY3UCarGXNbBhAgn1v
	dbIs3+IR7viW83O/R6RW15OR5Q+Iiy8A8sjWGVO9nKMVbMUuh4ubdVmZuZ33zpyeutRw
	fKKVBWyXV3LZZTvC0DH/6OXkzwZEHH+H4uIWBb+jPnS+FawkRhRyVE1Lzy4x8DgzOLKW
	sFNfdMzXead2X/hXwqplLk24Ir1Tv50bnoREHSWA2rXWIPtvI9DkmuJyA9UgtKibBofL
	GanQ==
X-Received: by 10.194.80.42 with SMTP id o10mr4363923wjx.31.1443622506181;
	Wed, 30 Sep 2015 07:15:06 -0700 (PDT)
Received: from mail-wi0-f175.google.com (mail-wi0-f175.google.com.
	[209.85.212.175]) by smtp.gmail.com with ESMTPSA id
	ka10sm893032wjc.30.2015.09.30.07.15.04
	for <mirageos-devel@lists.xenproject.org>
	(version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Wed, 30 Sep 2015 07:15:05 -0700 (PDT)
Received: by wicge5 with SMTP id ge5so199016940wic.0
	for <mirageos-devel@lists.xenproject.org>;
	Wed, 30 Sep 2015 07:15:04 -0700 (PDT)
MIME-Version: 1.0
X-Received: by 10.194.87.129 with SMTP id ay1mr4375446wjb.110.1443622504561;
	Wed, 30 Sep 2015 07:15:04 -0700 (PDT)
Received: by 10.28.130.67 with HTTP; Wed, 30 Sep 2015 07:15:04 -0700 (PDT)
In-Reply-To: <10510BE7-28B8-4F26-8A80-60FD5F3408AD@recoil.org>
References: <CAG4opy-YEUpzoMvX4jT7x5Gx5Tv+oeu4U2M9kO0CJ8fJDCEpQw@mail.gmail.com>
	<10510BE7-28B8-4F26-8A80-60FD5F3408AD@recoil.org>
Date: Wed, 30 Sep 2015 15:15:04 +0100
Message-ID: <CAN2Hq05Bfj8+DrO+UH1e+rgQRqYzqYPxLY5Wy1nkz721ztNz1Q@mail.gmail.com>
From: Richard Mortier <richard.mortier@cl.cam.ac.uk>
To: Anil Madhavapeddy <anil@recoil.org>
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] irmin-www server
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On 30 September 2015 at 14:51, Anil Madhavapeddy <anil@recoil.org> wrote:
> On 30 Sep 2015, at 11:07, Thomas Leonard <talex5@gmail.com> wrote:
>>
>> Finally, what options does Irmin provide for authentication? I see it
>> supports https, but it seemed overly helpful about automatically
>> accepting my self-signed server certificate. Can I use it with client
>> auth, or HTTP basic auth?
>
> It may be helpful to pull out this aspect in a Cohttp library that
> wraps the HTTP server callback and integrates certificate checking
> with sensible default to Conduit and the TLS stack.

Yes; my recollection from the last time I asked @samoht about this was
that client-side TLS auth could be supported (the TLS stack supports
it) but wasn't currently integrated with Irmin.

-- 
Richard Mortier
richard.mortier@cl.cam.ac.uk

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Wed Sep 30 14:30:27 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 30 Sep 2015 14:30:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZhIOm-0007P9-66; Wed, 30 Sep 2015 14:30:24 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <amc79@cam.ac.uk>) id 1ZhIOk-0007P1-TF
	for mirageos-devel@lists.xenproject.org; Wed, 30 Sep 2015 14:30:23 +0000
Received: from [85.158.137.68] by server-1.bemta-3.messagelabs.com id
	1B/60-01421-EF1FB065; Wed, 30 Sep 2015 14:30:22 +0000
X-Env-Sender: amc79@cam.ac.uk
X-Msg-Ref: server-15.tower-31.messagelabs.com!1443623421!48891382!1
X-Originating-IP: [131.111.8.141]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
	VHJ1c3RlZCBJUDogMTMxLjExMS44LjE0MSA9PiAxNTQ4NjI=\n
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 23547 invoked from network); 30 Sep 2015 14:30:21 -0000
Received: from ppsw-41.csi.cam.ac.uk (HELO ppsw-41.csi.cam.ac.uk)
	(131.111.8.141)
	by server-15.tower-31.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 30 Sep 2015 14:30:21 -0000
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: http://www.cam.ac.uk/cs/email/scanner/
Received: from dhcp-172-17-168-43.eduroam.wireless.private.cam.ac.uk
	([172.17.168.43]:61109)
	by ppsw-41.csi.cam.ac.uk (smtp.hermes.cam.ac.uk [131.111.8.157]:465)
	with esmtpsa (PLAIN:amc79) (TLSv1:ECDHE-RSA-AES256-SHA:256)
	id 1ZhIOi-0004yc-SZ (Exim 4.86_36-e07b163) for
	mirageos-devel@lists.xenproject.org
	(return-path <amc79@cam.ac.uk>); Wed, 30 Sep 2015 15:30:20 +0100
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\))
From: Amir Chaudhry <amc79@cam.ac.uk>
In-Reply-To: <D1A1FCD9-491D-4045-8BDE-9D6709C5CFBA@cam.ac.uk>
Date: Wed, 30 Sep 2015 15:30:20 +0100
Message-Id: <62270632-DE76-48CD-9D80-D3E0040FB595@cam.ac.uk>
References: <D1A1FCD9-491D-4045-8BDE-9D6709C5CFBA@cam.ac.uk>
To: mirageos-devel <mirageos-devel@lists.xenproject.org>
X-Mailer: Apple Mail (2.2104)
Subject: Re: [MirageOS-devel] MirageOS fortnightly call - Wednesday 30th at
	4pm BST
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

SGkgZm9sa3MsIHRoZSBIYW5nb3V0IGxpbmsgZm9yIHRvZGF54oCZcyBjYWxsIChpbiBhYm91dCAz
MG1pbnMpIHdpbGwgYmU6Cmh0dHBzOi8vcGx1cy5nb29nbGUuY29tL2hhbmdvdXRzL18vZ3E3ZTM2
c3Z5aDNva3psYmFuM3M2NW53bnlhCgpBbWlyCgo+IE9uIDI5IFNlcCAyMDE1LCBhdCAxMTo0NSwg
QW1pciBDaGF1ZGhyeSA8YW1jNzlAY2FtLmFjLnVrPiB3cm90ZToKPiAKPiBIaSBmb2xrcywKPiAK
PiBUaGUgbmV4dCBNaXJhZ2VPUyBjYWxsIHdpbGwgdGFrZSBwbGFjZSBvbiBXZWRuZXNkYXkgYWZ0
ZXJub29uIGF0IDRwbSBCU1QgYW5kIGlzIG9wZW4gdG8gYWxsLiAgV2UnbGwgYmUgb24gR29vZ2xl
IEhhbmdvdXQgdGhpcyB0aW1lIGFuZCBJ4oCZbGwgcG9zdCB0aGUgbGluayBzaG9ydGx5IGJlZm9y
ZSB0aGUgY2FsbCAtLSBib3RoIGhlcmUgYW5kIGFsc28gaW4gdGhlIElSQyBjaGFubmVsICgjbWly
YWdlIG9uIGZyZWVub2RlKS4KPiAKPiBJdCB3b3VsZCBiZSBncmVhdCBpZiBwZW9wbGUgaW50ZXJl
c3RlZCBpbiBPdXRyZWFjaHkgam9pbmVkIHRoZSBjYWxsIHRvIHNheSBoaSEKPiAKPiBOb3RlcyBm
cm9tIGxhc3QgdGltZSBhcmUgYXQ6IGh0dHBzOi8vbWlyYWdlLmlvL3dpa2kvd2Vla2x5LTIwMTUt
MDktMDkKPiBUaGUgYWdlbmRhIGZvciB0aGlzIHdlZWsgaXMgY3VycmVudGx5IGFzIGZvbGxvd3Mg
KHN1YmplY3QgdG8gY2hhbmdlKToKPiAKPiDigKIgUXVhbGl0eSBhbmQgVGVzdAo+IOKAoiBWZXJz
aW9uaW5nIChzZWUgdGhlIGVtYWlsIFsxXSkKPiDigKIgUGlvbmVlciBQcm9qZWN0cwo+IAo+IElm
IHlvdSBoYXZlIHRoaW5ncyB0byBhZGQvZWRpdCwgcGxlYXNlIGRvIHNvIGF0IGh0dHBzOi8vZ2l0
aHViLmNvbS9taXJhZ2UvbWlyYWdlLXd3dy93aWtpL0NhbGwtQWdlbmRhCj4gCj4gSm9pbiB1cyBh
dCA0cG0gQlNUIG9uIFdlZG5lc2RheSEKPiAKPiBCZXN0IHdpc2hlcywKPiBBbWlyCj4gCj4gWzFd
IGh0dHA6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9hcmNoaXZlcy9odG1sL21pcmFnZW9zLWRldmVs
LzIwMTUtMDkvbXNnMDAwMjEuaHRtbAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fCk1pcmFnZU9TLWRldmVsIG1haWxpbmcgbGlzdApNaXJhZ2VPUy1kZXZl
bEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJp
bi9tYWlsbWFuL2xpc3RpbmZvL21pcmFnZW9zLWRldmVsCg==

From mirageos-devel-bounces@lists.xenproject.org Wed Sep 30 14:30:27 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 30 Sep 2015 14:30:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZhIOm-0007P9-66; Wed, 30 Sep 2015 14:30:24 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <amc79@cam.ac.uk>) id 1ZhIOk-0007P1-TF
	for mirageos-devel@lists.xenproject.org; Wed, 30 Sep 2015 14:30:23 +0000
Received: from [85.158.137.68] by server-1.bemta-3.messagelabs.com id
	1B/60-01421-EF1FB065; Wed, 30 Sep 2015 14:30:22 +0000
X-Env-Sender: amc79@cam.ac.uk
X-Msg-Ref: server-15.tower-31.messagelabs.com!1443623421!48891382!1
X-Originating-IP: [131.111.8.141]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
	VHJ1c3RlZCBJUDogMTMxLjExMS44LjE0MSA9PiAxNTQ4NjI=\n
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 23547 invoked from network); 30 Sep 2015 14:30:21 -0000
Received: from ppsw-41.csi.cam.ac.uk (HELO ppsw-41.csi.cam.ac.uk)
	(131.111.8.141)
	by server-15.tower-31.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 30 Sep 2015 14:30:21 -0000
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: http://www.cam.ac.uk/cs/email/scanner/
Received: from dhcp-172-17-168-43.eduroam.wireless.private.cam.ac.uk
	([172.17.168.43]:61109)
	by ppsw-41.csi.cam.ac.uk (smtp.hermes.cam.ac.uk [131.111.8.157]:465)
	with esmtpsa (PLAIN:amc79) (TLSv1:ECDHE-RSA-AES256-SHA:256)
	id 1ZhIOi-0004yc-SZ (Exim 4.86_36-e07b163) for
	mirageos-devel@lists.xenproject.org
	(return-path <amc79@cam.ac.uk>); Wed, 30 Sep 2015 15:30:20 +0100
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\))
From: Amir Chaudhry <amc79@cam.ac.uk>
In-Reply-To: <D1A1FCD9-491D-4045-8BDE-9D6709C5CFBA@cam.ac.uk>
Date: Wed, 30 Sep 2015 15:30:20 +0100
Message-Id: <62270632-DE76-48CD-9D80-D3E0040FB595@cam.ac.uk>
References: <D1A1FCD9-491D-4045-8BDE-9D6709C5CFBA@cam.ac.uk>
To: mirageos-devel <mirageos-devel@lists.xenproject.org>
X-Mailer: Apple Mail (2.2104)
Subject: Re: [MirageOS-devel] MirageOS fortnightly call - Wednesday 30th at
	4pm BST
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

SGkgZm9sa3MsIHRoZSBIYW5nb3V0IGxpbmsgZm9yIHRvZGF54oCZcyBjYWxsIChpbiBhYm91dCAz
MG1pbnMpIHdpbGwgYmU6Cmh0dHBzOi8vcGx1cy5nb29nbGUuY29tL2hhbmdvdXRzL18vZ3E3ZTM2
c3Z5aDNva3psYmFuM3M2NW53bnlhCgpBbWlyCgo+IE9uIDI5IFNlcCAyMDE1LCBhdCAxMTo0NSwg
QW1pciBDaGF1ZGhyeSA8YW1jNzlAY2FtLmFjLnVrPiB3cm90ZToKPiAKPiBIaSBmb2xrcywKPiAK
PiBUaGUgbmV4dCBNaXJhZ2VPUyBjYWxsIHdpbGwgdGFrZSBwbGFjZSBvbiBXZWRuZXNkYXkgYWZ0
ZXJub29uIGF0IDRwbSBCU1QgYW5kIGlzIG9wZW4gdG8gYWxsLiAgV2UnbGwgYmUgb24gR29vZ2xl
IEhhbmdvdXQgdGhpcyB0aW1lIGFuZCBJ4oCZbGwgcG9zdCB0aGUgbGluayBzaG9ydGx5IGJlZm9y
ZSB0aGUgY2FsbCAtLSBib3RoIGhlcmUgYW5kIGFsc28gaW4gdGhlIElSQyBjaGFubmVsICgjbWly
YWdlIG9uIGZyZWVub2RlKS4KPiAKPiBJdCB3b3VsZCBiZSBncmVhdCBpZiBwZW9wbGUgaW50ZXJl
c3RlZCBpbiBPdXRyZWFjaHkgam9pbmVkIHRoZSBjYWxsIHRvIHNheSBoaSEKPiAKPiBOb3RlcyBm
cm9tIGxhc3QgdGltZSBhcmUgYXQ6IGh0dHBzOi8vbWlyYWdlLmlvL3dpa2kvd2Vla2x5LTIwMTUt
MDktMDkKPiBUaGUgYWdlbmRhIGZvciB0aGlzIHdlZWsgaXMgY3VycmVudGx5IGFzIGZvbGxvd3Mg
KHN1YmplY3QgdG8gY2hhbmdlKToKPiAKPiDigKIgUXVhbGl0eSBhbmQgVGVzdAo+IOKAoiBWZXJz
aW9uaW5nIChzZWUgdGhlIGVtYWlsIFsxXSkKPiDigKIgUGlvbmVlciBQcm9qZWN0cwo+IAo+IElm
IHlvdSBoYXZlIHRoaW5ncyB0byBhZGQvZWRpdCwgcGxlYXNlIGRvIHNvIGF0IGh0dHBzOi8vZ2l0
aHViLmNvbS9taXJhZ2UvbWlyYWdlLXd3dy93aWtpL0NhbGwtQWdlbmRhCj4gCj4gSm9pbiB1cyBh
dCA0cG0gQlNUIG9uIFdlZG5lc2RheSEKPiAKPiBCZXN0IHdpc2hlcywKPiBBbWlyCj4gCj4gWzFd
IGh0dHA6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9hcmNoaXZlcy9odG1sL21pcmFnZW9zLWRldmVs
LzIwMTUtMDkvbXNnMDAwMjEuaHRtbAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fCk1pcmFnZU9TLWRldmVsIG1haWxpbmcgbGlzdApNaXJhZ2VPUy1kZXZl
bEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJp
bi9tYWlsbWFuL2xpc3RpbmZvL21pcmFnZW9zLWRldmVsCg==

From mirageos-devel-bounces@lists.xenproject.org Wed Sep 30 15:40:37 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 30 Sep 2015 15:40:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZhJUb-0007vq-Ru; Wed, 30 Sep 2015 15:40:29 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <drupyog+caml@zoho.com>) id 1ZhJUa-0007vh-BC
	for mirageos-devel@lists.xenproject.org; Wed, 30 Sep 2015 15:40:28 +0000
Received: from [85.158.137.68] by server-3.bemta-3.messagelabs.com id
	70/D9-01753-B620C065; Wed, 30 Sep 2015 15:40:27 +0000
X-Env-Sender: drupyog+caml@zoho.com
X-Msg-Ref: server-3.tower-31.messagelabs.com!1443627624!17079903!1
X-Originating-IP: [74.201.84.153]
X-SpamReason: No, hits=0.3 required=7.0 tests=MAILTO_TO_SPAM_ADDR
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 24777 invoked from network); 30 Sep 2015 15:40:26 -0000
Received: from sender153-mail.zoho.com (HELO sender153-mail.zoho.com)
	(74.201.84.153)
	by server-3.tower-31.messagelabs.com with AES128-SHA encrypted SMTP;
	30 Sep 2015 15:40:26 -0000
DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=zapps768; d=zoho.com; 
	h=subject:to:references:from:message-id:date:user-agent:mime-version:in-reply-to:content-type;
	b=QVmUdgXQ77sJKWgJQl+JHP+Td81oSn9C2dhNSqq3CYh6zh9n/3OeAjcLxzf3eplBEOvbX149AguP
	r4zoW438+cLKCJXCqh+0bSGwOSaZu/gfqK1+HrI1IzmmKqPCjOK6  
Received: from [192.168.1.8] (did75-8-82-228-42-129.fbx.proxad.net
	[82.228.42.129]) by mx.zohomail.com
	with SMTPS id 1443627622480963.5770845519875;
	Wed, 30 Sep 2015 08:40:22 -0700 (PDT)
To: Amir Chaudhry <amc79@cam.ac.uk>,
	mirageos-devel <mirageos-devel@lists.xenproject.org>
References: <D1A1FCD9-491D-4045-8BDE-9D6709C5CFBA@cam.ac.uk>
	<62270632-DE76-48CD-9D80-D3E0040FB595@cam.ac.uk>
From: Drup <drupyog+caml@zoho.com>
Message-ID: <560C0234.8090809@zoho.com>
Date: Wed, 30 Sep 2015 17:39:32 +0200
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101
	Thunderbird/38.2.0
MIME-Version: 1.0
In-Reply-To: <62270632-DE76-48CD-9D80-D3E0040FB595@cam.ac.uk>
Content-Length: 2112
Subject: Re: [MirageOS-devel] MirageOS fortnightly call - Wednesday 30th at
 4pm BST
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Transfer-Encoding: base64
Content-Type: text/plain; charset="utf-8"; Format="flowed"
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

TmV4dCB0aW1lLCBjYW4gaXQgYmUgb24gc29tZXRoaW5nIHRoYXQgZG9lcyBub3QgbmVlZCBhIGdv
b2dsZSBhY2NvdW50ID8KCkxlIDMwLzA5LzIwMTUgMTY6MzAsIEFtaXIgQ2hhdWRocnkgYSDDqWNy
aXQgOgo+IEhpIGZvbGtzLCB0aGUgSGFuZ291dCBsaW5rIGZvciB0b2RheeKAmXMgY2FsbCAoaW4g
YWJvdXQgMzBtaW5zKSB3aWxsIGJlOgo+IGh0dHBzOi8vcGx1cy5nb29nbGUuY29tL2hhbmdvdXRz
L18vZ3E3ZTM2c3Z5aDNva3psYmFuM3M2NW53bnlhCj4KPiBBbWlyCj4KPj4gT24gMjkgU2VwIDIw
MTUsIGF0IDExOjQ1LCBBbWlyIENoYXVkaHJ5IDxhbWM3OUBjYW0uYWMudWs+IHdyb3RlOgo+Pgo+
PiBIaSBmb2xrcywKPj4KPj4gVGhlIG5leHQgTWlyYWdlT1MgY2FsbCB3aWxsIHRha2UgcGxhY2Ug
b24gV2VkbmVzZGF5IGFmdGVybm9vbiBhdCA0cG0gQlNUIGFuZCBpcyBvcGVuIHRvIGFsbC4gIFdl
J2xsIGJlIG9uIEdvb2dsZSBIYW5nb3V0IHRoaXMgdGltZSBhbmQgSeKAmWxsIHBvc3QgdGhlIGxp
bmsgc2hvcnRseSBiZWZvcmUgdGhlIGNhbGwgLS0gYm90aCBoZXJlIGFuZCBhbHNvIGluIHRoZSBJ
UkMgY2hhbm5lbCAoI21pcmFnZSBvbiBmcmVlbm9kZSkuCj4+Cj4+IEl0IHdvdWxkIGJlIGdyZWF0
IGlmIHBlb3BsZSBpbnRlcmVzdGVkIGluIE91dHJlYWNoeSBqb2luZWQgdGhlIGNhbGwgdG8gc2F5
IGhpIQo+Pgo+PiBOb3RlcyBmcm9tIGxhc3QgdGltZSBhcmUgYXQ6IGh0dHBzOi8vbWlyYWdlLmlv
L3dpa2kvd2Vla2x5LTIwMTUtMDktMDkKPj4gVGhlIGFnZW5kYSBmb3IgdGhpcyB3ZWVrIGlzIGN1
cnJlbnRseSBhcyBmb2xsb3dzIChzdWJqZWN0IHRvIGNoYW5nZSk6Cj4+Cj4+IOKAoiBRdWFsaXR5
IGFuZCBUZXN0Cj4+IOKAoiBWZXJzaW9uaW5nIChzZWUgdGhlIGVtYWlsIFsxXSkKPj4g4oCiIFBp
b25lZXIgUHJvamVjdHMKPj4KPj4gSWYgeW91IGhhdmUgdGhpbmdzIHRvIGFkZC9lZGl0LCBwbGVh
c2UgZG8gc28gYXQgaHR0cHM6Ly9naXRodWIuY29tL21pcmFnZS9taXJhZ2Utd3d3L3dpa2kvQ2Fs
bC1BZ2VuZGEKPj4KPj4gSm9pbiB1cyBhdCA0cG0gQlNUIG9uIFdlZG5lc2RheSEKPj4KPj4gQmVz
dCB3aXNoZXMsCj4+IEFtaXIKPj4KPj4gWzFdIGh0dHA6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9h
cmNoaXZlcy9odG1sL21pcmFnZW9zLWRldmVsLzIwMTUtMDkvbXNnMDAwMjEuaHRtbAo+Cj4gX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBNaXJhZ2VPUy1k
ZXZlbCBtYWlsaW5nIGxpc3QKPiBNaXJhZ2VPUy1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwo+
IGh0dHA6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vbWly
YWdlb3MtZGV2ZWwKCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX18KTWlyYWdlT1MtZGV2ZWwgbWFpbGluZyBsaXN0Ck1pcmFnZU9TLWRldmVsQGxpc3RzLnhl
bnByb2plY3Qub3JnCmh0dHA6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4v
bGlzdGluZm8vbWlyYWdlb3MtZGV2ZWwK

From mirageos-devel-bounces@lists.xenproject.org Wed Sep 30 15:40:37 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 30 Sep 2015 15:40:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZhJUb-0007vq-Ru; Wed, 30 Sep 2015 15:40:29 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <drupyog+caml@zoho.com>) id 1ZhJUa-0007vh-BC
	for mirageos-devel@lists.xenproject.org; Wed, 30 Sep 2015 15:40:28 +0000
Received: from [85.158.137.68] by server-3.bemta-3.messagelabs.com id
	70/D9-01753-B620C065; Wed, 30 Sep 2015 15:40:27 +0000
X-Env-Sender: drupyog+caml@zoho.com
X-Msg-Ref: server-3.tower-31.messagelabs.com!1443627624!17079903!1
X-Originating-IP: [74.201.84.153]
X-SpamReason: No, hits=0.3 required=7.0 tests=MAILTO_TO_SPAM_ADDR
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 24777 invoked from network); 30 Sep 2015 15:40:26 -0000
Received: from sender153-mail.zoho.com (HELO sender153-mail.zoho.com)
	(74.201.84.153)
	by server-3.tower-31.messagelabs.com with AES128-SHA encrypted SMTP;
	30 Sep 2015 15:40:26 -0000
DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=zapps768; d=zoho.com; 
	h=subject:to:references:from:message-id:date:user-agent:mime-version:in-reply-to:content-type;
	b=QVmUdgXQ77sJKWgJQl+JHP+Td81oSn9C2dhNSqq3CYh6zh9n/3OeAjcLxzf3eplBEOvbX149AguP
	r4zoW438+cLKCJXCqh+0bSGwOSaZu/gfqK1+HrI1IzmmKqPCjOK6  
Received: from [192.168.1.8] (did75-8-82-228-42-129.fbx.proxad.net
	[82.228.42.129]) by mx.zohomail.com
	with SMTPS id 1443627622480963.5770845519875;
	Wed, 30 Sep 2015 08:40:22 -0700 (PDT)
To: Amir Chaudhry <amc79@cam.ac.uk>,
	mirageos-devel <mirageos-devel@lists.xenproject.org>
References: <D1A1FCD9-491D-4045-8BDE-9D6709C5CFBA@cam.ac.uk>
	<62270632-DE76-48CD-9D80-D3E0040FB595@cam.ac.uk>
From: Drup <drupyog+caml@zoho.com>
Message-ID: <560C0234.8090809@zoho.com>
Date: Wed, 30 Sep 2015 17:39:32 +0200
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101
	Thunderbird/38.2.0
MIME-Version: 1.0
In-Reply-To: <62270632-DE76-48CD-9D80-D3E0040FB595@cam.ac.uk>
Content-Length: 2112
Subject: Re: [MirageOS-devel] MirageOS fortnightly call - Wednesday 30th at
 4pm BST
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Transfer-Encoding: base64
Content-Type: text/plain; charset="utf-8"; Format="flowed"
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

TmV4dCB0aW1lLCBjYW4gaXQgYmUgb24gc29tZXRoaW5nIHRoYXQgZG9lcyBub3QgbmVlZCBhIGdv
b2dsZSBhY2NvdW50ID8KCkxlIDMwLzA5LzIwMTUgMTY6MzAsIEFtaXIgQ2hhdWRocnkgYSDDqWNy
aXQgOgo+IEhpIGZvbGtzLCB0aGUgSGFuZ291dCBsaW5rIGZvciB0b2RheeKAmXMgY2FsbCAoaW4g
YWJvdXQgMzBtaW5zKSB3aWxsIGJlOgo+IGh0dHBzOi8vcGx1cy5nb29nbGUuY29tL2hhbmdvdXRz
L18vZ3E3ZTM2c3Z5aDNva3psYmFuM3M2NW53bnlhCj4KPiBBbWlyCj4KPj4gT24gMjkgU2VwIDIw
MTUsIGF0IDExOjQ1LCBBbWlyIENoYXVkaHJ5IDxhbWM3OUBjYW0uYWMudWs+IHdyb3RlOgo+Pgo+
PiBIaSBmb2xrcywKPj4KPj4gVGhlIG5leHQgTWlyYWdlT1MgY2FsbCB3aWxsIHRha2UgcGxhY2Ug
b24gV2VkbmVzZGF5IGFmdGVybm9vbiBhdCA0cG0gQlNUIGFuZCBpcyBvcGVuIHRvIGFsbC4gIFdl
J2xsIGJlIG9uIEdvb2dsZSBIYW5nb3V0IHRoaXMgdGltZSBhbmQgSeKAmWxsIHBvc3QgdGhlIGxp
bmsgc2hvcnRseSBiZWZvcmUgdGhlIGNhbGwgLS0gYm90aCBoZXJlIGFuZCBhbHNvIGluIHRoZSBJ
UkMgY2hhbm5lbCAoI21pcmFnZSBvbiBmcmVlbm9kZSkuCj4+Cj4+IEl0IHdvdWxkIGJlIGdyZWF0
IGlmIHBlb3BsZSBpbnRlcmVzdGVkIGluIE91dHJlYWNoeSBqb2luZWQgdGhlIGNhbGwgdG8gc2F5
IGhpIQo+Pgo+PiBOb3RlcyBmcm9tIGxhc3QgdGltZSBhcmUgYXQ6IGh0dHBzOi8vbWlyYWdlLmlv
L3dpa2kvd2Vla2x5LTIwMTUtMDktMDkKPj4gVGhlIGFnZW5kYSBmb3IgdGhpcyB3ZWVrIGlzIGN1
cnJlbnRseSBhcyBmb2xsb3dzIChzdWJqZWN0IHRvIGNoYW5nZSk6Cj4+Cj4+IOKAoiBRdWFsaXR5
IGFuZCBUZXN0Cj4+IOKAoiBWZXJzaW9uaW5nIChzZWUgdGhlIGVtYWlsIFsxXSkKPj4g4oCiIFBp
b25lZXIgUHJvamVjdHMKPj4KPj4gSWYgeW91IGhhdmUgdGhpbmdzIHRvIGFkZC9lZGl0LCBwbGVh
c2UgZG8gc28gYXQgaHR0cHM6Ly9naXRodWIuY29tL21pcmFnZS9taXJhZ2Utd3d3L3dpa2kvQ2Fs
bC1BZ2VuZGEKPj4KPj4gSm9pbiB1cyBhdCA0cG0gQlNUIG9uIFdlZG5lc2RheSEKPj4KPj4gQmVz
dCB3aXNoZXMsCj4+IEFtaXIKPj4KPj4gWzFdIGh0dHA6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9h
cmNoaXZlcy9odG1sL21pcmFnZW9zLWRldmVsLzIwMTUtMDkvbXNnMDAwMjEuaHRtbAo+Cj4gX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBNaXJhZ2VPUy1k
ZXZlbCBtYWlsaW5nIGxpc3QKPiBNaXJhZ2VPUy1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwo+
IGh0dHA6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vbWly
YWdlb3MtZGV2ZWwKCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX18KTWlyYWdlT1MtZGV2ZWwgbWFpbGluZyBsaXN0Ck1pcmFnZU9TLWRldmVsQGxpc3RzLnhl
bnByb2plY3Qub3JnCmh0dHA6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4v
bGlzdGluZm8vbWlyYWdlb3MtZGV2ZWwK

From mirageos-devel-bounces@lists.xenproject.org Wed Sep 30 15:52:57 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 30 Sep 2015 15:52:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZhJgd-0002KJ-Bs; Wed, 30 Sep 2015 15:52:55 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mindy@somerandomidiot.com>) id 1ZhJgb-0002KD-Sh
	for mirageos-devel@lists.xenproject.org; Wed, 30 Sep 2015 15:52:54 +0000
Received: from [85.158.137.68] by server-7.bemta-3.messagelabs.com id
	84/67-16965-5550C065; Wed, 30 Sep 2015 15:52:53 +0000
X-Env-Sender: mindy@somerandomidiot.com
X-Msg-Ref: server-6.tower-31.messagelabs.com!1443628371!44655699!1
X-Originating-IP: [217.70.183.195]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
	VHJ1c3RlZCBJUDogMjE3LjcwLjE4My4xOTUgPT4gMzc4NjI=\n
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 14960 invoked from network); 30 Sep 2015 15:52:52 -0000
Received: from relay3-d.mail.gandi.net (HELO relay3-d.mail.gandi.net)
	(217.70.183.195)
	by server-6.tower-31.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 30 Sep 2015 15:52:52 -0000
Received: from mfilter29-d.gandi.net (mfilter29-d.gandi.net [217.70.178.160])
	by relay3-d.mail.gandi.net (Postfix) with ESMTP id AAFAFA80C8;
	Wed, 30 Sep 2015 17:52:51 +0200 (CEST)
X-Virus-Scanned: Debian amavisd-new at mfilter29-d.gandi.net
Received: from relay3-d.mail.gandi.net ([IPv6:::ffff:217.70.183.195])
	by mfilter29-d.gandi.net (mfilter29-d.gandi.net [::ffff:10.0.15.180])
	(amavisd-new, port 10024)
	with ESMTP id sKjIMCBgJoSl; Wed, 30 Sep 2015 17:52:50 +0200 (CEST)
X-Originating-IP: 188.29.165.205
Received: from [10.39.198.118] (188.29.165.205.threembb.co.uk [188.29.165.205])
	(Authenticated sender: guybrush@somerandomidiot.com)
	by relay3-d.mail.gandi.net (Postfix) with ESMTPSA id 89A62A80C7;
	Wed, 30 Sep 2015 17:52:46 +0200 (CEST)
User-Agent: K-9 Mail for Android
In-Reply-To: <560C0234.8090809@zoho.com>
References: <D1A1FCD9-491D-4045-8BDE-9D6709C5CFBA@cam.ac.uk>
	<62270632-DE76-48CD-9D80-D3E0040FB595@cam.ac.uk>
	<560C0234.8090809@zoho.com>
MIME-Version: 1.0
From: Mindy Preston <mindy@somerandomidiot.com>
Date: Wed, 30 Sep 2015 11:52:36 -0400
To: Drup <drupyog+caml@zoho.com>, Amir Chaudhry <amc79@cam.ac.uk>,
	mirageos-devel <mirageos-devel@lists.xenproject.org>
Message-ID: <814E7093-88E4-40A4-A10F-359ED0E9E061@somerandomidiot.com>
Subject: Re: [MirageOS-devel] MirageOS fortnightly call - Wednesday 30th at
	4pm BST
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============0457984707417887051=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============0457984707417887051==
Content-Type: multipart/alternative; boundary="----EDOY7XJFC3OFY0R8OM2MBQ6G0ALSU9"
Content-Transfer-Encoding: 7bit

------EDOY7XJFC3OFY0R8OM2MBQ6G0ALSU9
Content-Type: text/plain;
 charset=UTF-8
Content-Transfer-Encoding: quoted-printable

Seconded.

On September 30, 2015 11:39:32 AM EDT, Drup <drupyog+caml@zoho.com> wrote=
:
>Next time, can it be on something that does not need a google account ?
>
>Le 30/09/2015 16:30, Amir Chaudhry a =C3=A9crit :
>> Hi folks, the Hangout link for today=E2=80=99s call (in about 30mins) =
will
>be:
>> https://plus.google.com/hangouts/_/gq7e36svyh3okzlban3s65nwnya
>>
>> Amir
>>
>>> On 29 Sep 2015, at 11:45, Amir Chaudhry <amc79@cam.ac.uk> wrote:
>>>
>>> Hi folks,
>>>
>>> The next MirageOS call will take place on Wednesday afternoon at 4pm
>BST and is open to all.  We'll be on Google Hangout this time and I=E2=80=
=99ll
>post the link shortly before the call -- both here and also in the IRC
>channel (#mirage on freenode).
>>>
>>> It would be great if people interested in Outreachy joined the call
>to say hi!
>>>
>>> Notes from last time are at:
>https://mirage.io/wiki/weekly-2015-09-09
>>> The agenda for this week is currently as follows (subject to
>change):
>>>
>>> =E2=80=A2 Quality and Test
>>> =E2=80=A2 Versioning (see the email [1])
>>> =E2=80=A2 Pioneer Projects
>>>
>>> If you have things to add/edit, please do so at
>https://github.com/mirage/mirage-www/wiki/Call-Agenda
>>>
>>> Join us at 4pm BST on Wednesday!
>>>
>>> Best wishes,
>>> Amir
>>>
>>> [1]
>http://lists.xenproject.org/archives/html/mirageos-devel/2015-09/msg0002=
1.html
>>
>> _______________________________________________
>> MirageOS-devel mailing list
>> MirageOS-devel@lists.xenproject.org
>> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
>
>
>
>_______________________________________________
>MirageOS-devel mailing list
>MirageOS-devel@lists.xenproject.org
>http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

--=20
Composed on a touchscreen keyboard; please forgive typos and brevity.
------EDOY7XJFC3OFY0R8OM2MBQ6G0ALSU9
Content-Type: text/html;
 charset=utf-8
Content-Transfer-Encoding: quoted-printable

<html><head></head><body>Seconded.<br><br><div class=3D"gmail_quote">On S=
eptember 30, 2015 11:39:32 AM EDT, Drup &lt;drupyog+caml@zoho.com&gt; wro=
te:<blockquote class=3D"gmail_quote" style=3D"margin: 0pt 0pt 0pt 0.8ex; =
border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<pre class=3D"k9mail">Next time, can it be on something that does not nee=
d a google account ?<br /><br />Le 30/09/2015 16:30, Amir Chaudhry a =C3=A9=
crit :<br /><blockquote class=3D"gmail_quote" style=3D"margin: 0pt 0pt 1e=
x 0.8ex; border-left: 1px solid #729fcf; padding-left: 1ex;"> Hi folks, t=
he Hangout link for today=E2=80=99s call (in about 30mins) will be:<br />=
 <a href=3D"https://plus.google.com/hangouts/_/gq7e36svyh3okzlban3s65nwny=
a">https://plus.google.com/hangouts/_/gq7e36svyh3okzlban3s65nwnya</a><br =
/><br /> Amir<br /><br /><blockquote class=3D"gmail_quote" style=3D"margi=
n: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #ad7fa8; padding-left: 1ex;"=
> On 29 Sep 2015, at 11:45, Amir Chaudhry &lt;amc79@cam.ac.uk&gt; wrote:<=
br /><br /> Hi folks,<br /><br /> The next MirageOS call will take place =
on Wednesday afternoon at 4pm BST and is open to all.  We'll be on Google=
 Hangout this time and I=E2=80=99ll post the link shortly before the call=
 -- both here and also in the IRC channel (#mirage on freenode).<br /><br
/> It would be great if people interested in Outreachy joined the call to=
 say hi!<br /><br /> Notes from last time are at: <a href=3D"https://mira=
ge.io/wiki/weekly-2015-09-09">https://mirage.io/wiki/weekly-2015-09-09</a=
><br /> The agenda for this week is currently as follows (subject to chan=
ge):<br /><br /> =E2=80=A2 Quality and Test<br /> =E2=80=A2 Versioning (s=
ee the email [1])<br /> =E2=80=A2 Pioneer Projects<br /><br /> If you hav=
e things to add/edit, please do so at <a href=3D"https://github.com/mirag=
e/mirage-www/wiki/Call-Agenda">https://github.com/mirage/mirage-www/wiki/=
Call-Agenda</a><br /><br /> Join us at 4pm BST on Wednesday!<br /><br /> =
Best wishes,<br /> Amir<br /><br /> [1] <a href=3D"http://lists.xenprojec=
t.org/archives/html/mirageos-devel/2015-09/msg00021.html">http://lists.xe=
nproject.org/archives/html/mirageos-devel/2015-09/msg00021.html</a><br />=
</blockquote><br /><hr /><br /> MirageOS-devel mailing list<br /> MirageO=
S-devel@lists.xenproject.org<br /> <a
href=3D"http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-dev=
el">http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel</=
a><br /></blockquote><br /><br /><br /><hr /><br />MirageOS-devel mailing=
 list<br />MirageOS-devel@lists.xenproject.org<br /><a href=3D"http://lis=
ts.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel">http://lists.x=
enproject.org/cgi-bin/mailman/listinfo/mirageos-devel</a><br /></pre></bl=
ockquote></div><br>
-- <br>
Composed on a touchscreen keyboard; please forgive typos and brevity.</bo=
dy></html>
------EDOY7XJFC3OFY0R8OM2MBQ6G0ALSU9--



--===============0457984707417887051==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

--===============0457984707417887051==--



From mirageos-devel-bounces@lists.xenproject.org Wed Sep 30 15:52:57 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 30 Sep 2015 15:52:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZhJgd-0002KJ-Bs; Wed, 30 Sep 2015 15:52:55 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mindy@somerandomidiot.com>) id 1ZhJgb-0002KD-Sh
	for mirageos-devel@lists.xenproject.org; Wed, 30 Sep 2015 15:52:54 +0000
Received: from [85.158.137.68] by server-7.bemta-3.messagelabs.com id
	84/67-16965-5550C065; Wed, 30 Sep 2015 15:52:53 +0000
X-Env-Sender: mindy@somerandomidiot.com
X-Msg-Ref: server-6.tower-31.messagelabs.com!1443628371!44655699!1
X-Originating-IP: [217.70.183.195]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
	VHJ1c3RlZCBJUDogMjE3LjcwLjE4My4xOTUgPT4gMzc4NjI=\n
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 14960 invoked from network); 30 Sep 2015 15:52:52 -0000
Received: from relay3-d.mail.gandi.net (HELO relay3-d.mail.gandi.net)
	(217.70.183.195)
	by server-6.tower-31.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 30 Sep 2015 15:52:52 -0000
Received: from mfilter29-d.gandi.net (mfilter29-d.gandi.net [217.70.178.160])
	by relay3-d.mail.gandi.net (Postfix) with ESMTP id AAFAFA80C8;
	Wed, 30 Sep 2015 17:52:51 +0200 (CEST)
X-Virus-Scanned: Debian amavisd-new at mfilter29-d.gandi.net
Received: from relay3-d.mail.gandi.net ([IPv6:::ffff:217.70.183.195])
	by mfilter29-d.gandi.net (mfilter29-d.gandi.net [::ffff:10.0.15.180])
	(amavisd-new, port 10024)
	with ESMTP id sKjIMCBgJoSl; Wed, 30 Sep 2015 17:52:50 +0200 (CEST)
X-Originating-IP: 188.29.165.205
Received: from [10.39.198.118] (188.29.165.205.threembb.co.uk [188.29.165.205])
	(Authenticated sender: guybrush@somerandomidiot.com)
	by relay3-d.mail.gandi.net (Postfix) with ESMTPSA id 89A62A80C7;
	Wed, 30 Sep 2015 17:52:46 +0200 (CEST)
User-Agent: K-9 Mail for Android
In-Reply-To: <560C0234.8090809@zoho.com>
References: <D1A1FCD9-491D-4045-8BDE-9D6709C5CFBA@cam.ac.uk>
	<62270632-DE76-48CD-9D80-D3E0040FB595@cam.ac.uk>
	<560C0234.8090809@zoho.com>
MIME-Version: 1.0
From: Mindy Preston <mindy@somerandomidiot.com>
Date: Wed, 30 Sep 2015 11:52:36 -0400
To: Drup <drupyog+caml@zoho.com>, Amir Chaudhry <amc79@cam.ac.uk>,
	mirageos-devel <mirageos-devel@lists.xenproject.org>
Message-ID: <814E7093-88E4-40A4-A10F-359ED0E9E061@somerandomidiot.com>
Subject: Re: [MirageOS-devel] MirageOS fortnightly call - Wednesday 30th at
	4pm BST
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============0457984707417887051=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============0457984707417887051==
Content-Type: multipart/alternative; boundary="----EDOY7XJFC3OFY0R8OM2MBQ6G0ALSU9"
Content-Transfer-Encoding: 7bit

------EDOY7XJFC3OFY0R8OM2MBQ6G0ALSU9
Content-Type: text/plain;
 charset=UTF-8
Content-Transfer-Encoding: quoted-printable

Seconded.

On September 30, 2015 11:39:32 AM EDT, Drup <drupyog+caml@zoho.com> wrote=
:
>Next time, can it be on something that does not need a google account ?
>
>Le 30/09/2015 16:30, Amir Chaudhry a =C3=A9crit :
>> Hi folks, the Hangout link for today=E2=80=99s call (in about 30mins) =
will
>be:
>> https://plus.google.com/hangouts/_/gq7e36svyh3okzlban3s65nwnya
>>
>> Amir
>>
>>> On 29 Sep 2015, at 11:45, Amir Chaudhry <amc79@cam.ac.uk> wrote:
>>>
>>> Hi folks,
>>>
>>> The next MirageOS call will take place on Wednesday afternoon at 4pm
>BST and is open to all.  We'll be on Google Hangout this time and I=E2=80=
=99ll
>post the link shortly before the call -- both here and also in the IRC
>channel (#mirage on freenode).
>>>
>>> It would be great if people interested in Outreachy joined the call
>to say hi!
>>>
>>> Notes from last time are at:
>https://mirage.io/wiki/weekly-2015-09-09
>>> The agenda for this week is currently as follows (subject to
>change):
>>>
>>> =E2=80=A2 Quality and Test
>>> =E2=80=A2 Versioning (see the email [1])
>>> =E2=80=A2 Pioneer Projects
>>>
>>> If you have things to add/edit, please do so at
>https://github.com/mirage/mirage-www/wiki/Call-Agenda
>>>
>>> Join us at 4pm BST on Wednesday!
>>>
>>> Best wishes,
>>> Amir
>>>
>>> [1]
>http://lists.xenproject.org/archives/html/mirageos-devel/2015-09/msg0002=
1.html
>>
>> _______________________________________________
>> MirageOS-devel mailing list
>> MirageOS-devel@lists.xenproject.org
>> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
>
>
>
>_______________________________________________
>MirageOS-devel mailing list
>MirageOS-devel@lists.xenproject.org
>http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

--=20
Composed on a touchscreen keyboard; please forgive typos and brevity.
------EDOY7XJFC3OFY0R8OM2MBQ6G0ALSU9
Content-Type: text/html;
 charset=utf-8
Content-Transfer-Encoding: quoted-printable

<html><head></head><body>Seconded.<br><br><div class=3D"gmail_quote">On S=
eptember 30, 2015 11:39:32 AM EDT, Drup &lt;drupyog+caml@zoho.com&gt; wro=
te:<blockquote class=3D"gmail_quote" style=3D"margin: 0pt 0pt 0pt 0.8ex; =
border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<pre class=3D"k9mail">Next time, can it be on something that does not nee=
d a google account ?<br /><br />Le 30/09/2015 16:30, Amir Chaudhry a =C3=A9=
crit :<br /><blockquote class=3D"gmail_quote" style=3D"margin: 0pt 0pt 1e=
x 0.8ex; border-left: 1px solid #729fcf; padding-left: 1ex;"> Hi folks, t=
he Hangout link for today=E2=80=99s call (in about 30mins) will be:<br />=
 <a href=3D"https://plus.google.com/hangouts/_/gq7e36svyh3okzlban3s65nwny=
a">https://plus.google.com/hangouts/_/gq7e36svyh3okzlban3s65nwnya</a><br =
/><br /> Amir<br /><br /><blockquote class=3D"gmail_quote" style=3D"margi=
n: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #ad7fa8; padding-left: 1ex;"=
> On 29 Sep 2015, at 11:45, Amir Chaudhry &lt;amc79@cam.ac.uk&gt; wrote:<=
br /><br /> Hi folks,<br /><br /> The next MirageOS call will take place =
on Wednesday afternoon at 4pm BST and is open to all.  We'll be on Google=
 Hangout this time and I=E2=80=99ll post the link shortly before the call=
 -- both here and also in the IRC channel (#mirage on freenode).<br /><br
/> It would be great if people interested in Outreachy joined the call to=
 say hi!<br /><br /> Notes from last time are at: <a href=3D"https://mira=
ge.io/wiki/weekly-2015-09-09">https://mirage.io/wiki/weekly-2015-09-09</a=
><br /> The agenda for this week is currently as follows (subject to chan=
ge):<br /><br /> =E2=80=A2 Quality and Test<br /> =E2=80=A2 Versioning (s=
ee the email [1])<br /> =E2=80=A2 Pioneer Projects<br /><br /> If you hav=
e things to add/edit, please do so at <a href=3D"https://github.com/mirag=
e/mirage-www/wiki/Call-Agenda">https://github.com/mirage/mirage-www/wiki/=
Call-Agenda</a><br /><br /> Join us at 4pm BST on Wednesday!<br /><br /> =
Best wishes,<br /> Amir<br /><br /> [1] <a href=3D"http://lists.xenprojec=
t.org/archives/html/mirageos-devel/2015-09/msg00021.html">http://lists.xe=
nproject.org/archives/html/mirageos-devel/2015-09/msg00021.html</a><br />=
</blockquote><br /><hr /><br /> MirageOS-devel mailing list<br /> MirageO=
S-devel@lists.xenproject.org<br /> <a
href=3D"http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-dev=
el">http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel</=
a><br /></blockquote><br /><br /><br /><hr /><br />MirageOS-devel mailing=
 list<br />MirageOS-devel@lists.xenproject.org<br /><a href=3D"http://lis=
ts.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel">http://lists.x=
enproject.org/cgi-bin/mailman/listinfo/mirageos-devel</a><br /></pre></bl=
ockquote></div><br>
-- <br>
Composed on a touchscreen keyboard; please forgive typos and brevity.</bo=
dy></html>
------EDOY7XJFC3OFY0R8OM2MBQ6G0ALSU9--



--===============0457984707417887051==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

--===============0457984707417887051==--



From mirageos-devel-bounces@lists.xenproject.org Wed Sep 30 16:04:46 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 30 Sep 2015 16:04:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZhJs4-0003pr-P2; Wed, 30 Sep 2015 16:04:44 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <amc79@cam.ac.uk>) id 1ZhJs3-0003pm-LI
	for mirageos-devel@lists.xenproject.org; Wed, 30 Sep 2015 16:04:43 +0000
Received: from [85.158.139.211] by server-12.bemta-5.messagelabs.com id
	FF/53-19220-A180C065; Wed, 30 Sep 2015 16:04:42 +0000
X-Env-Sender: amc79@cam.ac.uk
X-Msg-Ref: server-15.tower-206.messagelabs.com!1443629081!23198369!1
X-Originating-IP: [131.111.8.140]
X-SpamReason: No, hits=1.1 required=7.0 tests=HTML_40_50,HTML_MESSAGE,
	MAILTO_TO_SPAM_ADDR,MIME_QP_LONG_LINE
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 3749 invoked from network); 30 Sep 2015 16:04:41 -0000
Received: from ppsw-40.csi.cam.ac.uk (HELO ppsw-40.csi.cam.ac.uk)
	(131.111.8.140)
	by server-15.tower-206.messagelabs.com with DHE-RSA-AES256-SHA
	encrypted SMTP; 30 Sep 2015 16:04:41 -0000
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: http://www.cam.ac.uk/cs/email/scanner/
Received: from dab-ntm1-h-1-5.dab.02.net ([82.132.229.233]:48842
	helo=[10.145.143.237])
	by ppsw-40.csi.cam.ac.uk (smtp.hermes.cam.ac.uk [131.111.8.156]:587)
	with esmtpsa (PLAIN:amc79) (TLSv1:ECDHE-RSA-AES256-SHA:256)
	id 1ZhJrz-0006Dk-jK (Exim 4.86_36-e07b163)
	(return-path <amc79@cam.ac.uk>); Wed, 30 Sep 2015 17:04:39 +0100
Mime-Version: 1.0 (1.0)
From: Amir Chaudhry <amc79@cam.ac.uk>
X-Mailer: iPhone Mail (13B5110e)
In-Reply-To: <814E7093-88E4-40A4-A10F-359ED0E9E061@somerandomidiot.com>
Date: Wed, 30 Sep 2015 17:04:25 +0100
Message-Id: <9A417FA9-61E4-4355-9237-DBC96C476B61@cam.ac.uk>
References: <D1A1FCD9-491D-4045-8BDE-9D6709C5CFBA@cam.ac.uk>
	<62270632-DE76-48CD-9D80-D3E0040FB595@cam.ac.uk>
	<560C0234.8090809@zoho.com>
	<814E7093-88E4-40A4-A10F-359ED0E9E061@somerandomidiot.com>
To: Mindy Preston <mindy@somerandomidiot.com>
Cc: mirageos-devel <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] MirageOS fortnightly call - Wednesday 30th at
	4pm BST
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============7154789168416846650=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org


--===============7154789168416846650==
Content-Type: multipart/alternative;
	boundary=Apple-Mail-66779704-11EB-4405-9B53-F57267BF602F
Content-Transfer-Encoding: 7bit


--Apple-Mail-66779704-11EB-4405-9B53-F57267BF602F
Content-Type: text/plain;
	charset=utf-8
Content-Transfer-Encoding: quoted-printable

We've been using Hangouts for a while and they've worked well so far. Howeve=
r, we're happy to look at alternatives so if anyone has suggestions, please r=
eply to me directly (not the list).

Please understand that we're unlikely to have anything in place before the n=
ext call, so that one is still likely to be on Hangout.=20

Best wishes,
Amir

--
Sent via mobile

> On 30 Sep 2015, at 16:52, Mindy Preston <mindy@somerandomidiot.com> wrote:=

>=20
> Seconded.
>=20
>> On September 30, 2015 11:39:32 AM EDT, Drup <drupyog+caml@zoho.com> wrote=
:
>> Next time, can it be on something that does not need a google account ?
>>=20
>> Le 30/09/2015 16:30, Amir Chaudhry a =C3=A9crit :
>>>  Hi folks, the Hangout link for today=E2=80=99s call (in about 30mins) w=
ill be:
>>>  https://plus.google.com/hangouts/_/gq7e36svyh3okzlban3s65nwnya
>>>=20
>>>  Amir
>>>=20
>>>>  On 29 Sep 2015, at 11:45, Amir Chaudhry <amc79@cam.ac.uk> wrote:
>>>>=20
>>>>  Hi folks,
>>>>=20
>>>>  The next MirageOS call will take place on Wednesday afternoon at 4pm B=
ST and is open to all.  We'll be on Google Hangout this time and I=E2=80=99l=
l post the link shortly before the call -- both here and also in the IRC cha=
nnel (#mirage on freenode).
>>>>=20
>>>>  It would be great if people interested in Outreachy joined the call to=
 say hi!
>>>>=20
>>>>  Notes from last time are at: https://mirage.io/wiki/weekly-2015-09-09
>>>>  The agenda for this week is currently as follows (subject to change):
>>>>=20
>>>>  =E2=80=A2 Quality and Test
>>>>  =E2=80=A2 Versioning (see the email [1])
>>>>  =E2=80=A2 Pioneer Projects
>>>>=20
>>>>  If you have things to add/edit, please do so at https://github.com/mir=
age/mirage-www/wiki/Call-Agenda
>>>>=20
>>>>  Join us at 4pm BST on Wednesday!
>>>>=20
>>>>  Best wishes,
>>>>  Amir
>>>>=20
>>>>  [1] http://lists.xenproject.org/archives/html/mirageos-devel/2015-09/m=
sg00021.html
>>>=20
>>>=20
>>>  MirageOS-devel mailing list
>>>  MirageOS-devel@lists.xenproject.org
>>>  http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
>>=20
>>=20
>>=20
>>=20
>> MirageOS-devel mailing list
>> MirageOS-devel@lists.xenproject.org
>> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
>=20
> --=20
> Composed on a touchscreen keyboard; please forgive typos and brevity.

--Apple-Mail-66779704-11EB-4405-9B53-F57267BF602F
Content-Type: text/html;
	charset=utf-8
Content-Transfer-Encoding: quoted-printable

<html><head><meta http-equiv=3D"content-type" content=3D"text/html; charset=3D=
utf-8"></head><body dir=3D"auto"><div>We've been using Hangouts for a while a=
nd they've worked well so far. However, we're happy to look at alternatives s=
o if anyone has suggestions, please reply to me directly (not the list).</di=
v><div id=3D"AppleMailSignature"><br></div><div id=3D"AppleMailSignature">Pl=
ease understand that we're unlikely to have anything in place before the nex=
t call, so that one is still likely to be on Hangout.&nbsp;</div><div id=3D"=
AppleMailSignature"><br>Best wishes,<div>Amir</div><div><br></div><div>--</d=
iv><div>Sent via mobile</div></div><div><br>On 30 Sep 2015, at 16:52, Mindy P=
reston &lt;<a href=3D"mailto:mindy@somerandomidiot.com">mindy@somerandomidio=
t.com</a>&gt; wrote:<br><br></div><blockquote type=3D"cite"><div>Seconded.<b=
r><br><div class=3D"gmail_quote">On September 30, 2015 11:39:32 AM EDT, Drup=
 &lt;<a href=3D"mailto:drupyog+caml@zoho.com">drupyog+caml@zoho.com</a>&gt; w=
rote:<blockquote class=3D"gmail_quote" style=3D"margin: 0pt 0pt 0pt 0.8ex; b=
order-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<pre class=3D"k9mail">Next time, can it be on something that does not need a=
 google account ?<br><br>Le 30/09/2015 16:30, Amir Chaudhry a =C3=A9crit :<b=
r><blockquote class=3D"gmail_quote" style=3D"margin: 0pt 0pt 1ex 0.8ex; bord=
er-left: 1px solid #729fcf; padding-left: 1ex;"> Hi folks, the Hangout link f=
or today=E2=80=99s call (in about 30mins) will be:<br> <a href=3D"https://pl=
us.google.com/hangouts/_/gq7e36svyh3okzlban3s65nwnya">https://plus.google.co=
m/hangouts/_/gq7e36svyh3okzlban3s65nwnya</a><br><br> Amir<br><br><blockquote=
 class=3D"gmail_quote" style=3D"margin: 0pt 0pt 1ex 0.8ex; border-left: 1px s=
olid #ad7fa8; padding-left: 1ex;"> On 29 Sep 2015, at 11:45, Amir Chaudhry &=
lt;<a href=3D"mailto:amc79@cam.ac.uk">amc79@cam.ac.uk</a>&gt; wrote:<br><br>=
 Hi folks,<br><br> The next MirageOS call will take place on Wednesday after=
noon at 4pm BST and is open to all.  We'll be on Google Hangout this time an=
d I=E2=80=99ll post the link shortly before the call -- both here and also i=
n the IRC channel (#mirage on freenode).<br><br> It would be great if people=
 interested in Outreachy joined the call to say hi!<br><br> Notes from last t=
ime are at: <a href=3D"https://mirage.io/wiki/weekly-2015-09-09">https://mir=
age.io/wiki/weekly-2015-09-09</a><br> The agenda for this week is currently a=
s follows (subject to change):<br><br> =E2=80=A2 Quality and Test<br> =E2=80=
=A2 Versioning (see the email [1])<br> =E2=80=A2 Pioneer Projects<br><br> If=
 you have things to add/edit, please do so at <a href=3D"https://github.com/=
mirage/mirage-www/wiki/Call-Agenda">https://github.com/mirage/mirage-www/wik=
i/Call-Agenda</a><br><br> Join us at 4pm BST on Wednesday!<br><br> Best wish=
es,<br> Amir<br><br> [1] <a href=3D"http://lists.xenproject.org/archives/htm=
l/mirageos-devel/2015-09/msg00021.html">http://lists.xenproject.org/archives=
/html/mirageos-devel/2015-09/msg00021.html</a><br></blockquote><br><hr><br> M=
irageOS-devel mailing list<br> <a href=3D"mailto:MirageOS-devel@lists.xenpro=
ject.org">MirageOS-devel@lists.xenproject.org</a><br> <a href=3D"http://list=
s.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel">http://lists.xenpr=
oject.org/cgi-bin/mailman/listinfo/mirageos-devel</a><br></blockquote><br><b=
r><br><hr><br>MirageOS-devel mailing list<br><a href=3D"mailto:MirageOS-deve=
l@lists.xenproject.org">MirageOS-devel@lists.xenproject.org</a><br><a href=3D=
"http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel">http:/=
/lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel</a><br></pre><=
/blockquote></div><br>
-- <br>
Composed on a touchscreen keyboard; please forgive typos and brevity.</div><=
/blockquote></body></html>=

--Apple-Mail-66779704-11EB-4405-9B53-F57267BF602F--


--===============7154789168416846650==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

--===============7154789168416846650==--


From mirageos-devel-bounces@lists.xenproject.org Wed Sep 30 16:04:46 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 30 Sep 2015 16:04:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZhJs4-0003pr-P2; Wed, 30 Sep 2015 16:04:44 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <amc79@cam.ac.uk>) id 1ZhJs3-0003pm-LI
	for mirageos-devel@lists.xenproject.org; Wed, 30 Sep 2015 16:04:43 +0000
Received: from [85.158.139.211] by server-12.bemta-5.messagelabs.com id
	FF/53-19220-A180C065; Wed, 30 Sep 2015 16:04:42 +0000
X-Env-Sender: amc79@cam.ac.uk
X-Msg-Ref: server-15.tower-206.messagelabs.com!1443629081!23198369!1
X-Originating-IP: [131.111.8.140]
X-SpamReason: No, hits=1.1 required=7.0 tests=HTML_40_50,HTML_MESSAGE,
	MAILTO_TO_SPAM_ADDR,MIME_QP_LONG_LINE
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 3749 invoked from network); 30 Sep 2015 16:04:41 -0000
Received: from ppsw-40.csi.cam.ac.uk (HELO ppsw-40.csi.cam.ac.uk)
	(131.111.8.140)
	by server-15.tower-206.messagelabs.com with DHE-RSA-AES256-SHA
	encrypted SMTP; 30 Sep 2015 16:04:41 -0000
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: http://www.cam.ac.uk/cs/email/scanner/
Received: from dab-ntm1-h-1-5.dab.02.net ([82.132.229.233]:48842
	helo=[10.145.143.237])
	by ppsw-40.csi.cam.ac.uk (smtp.hermes.cam.ac.uk [131.111.8.156]:587)
	with esmtpsa (PLAIN:amc79) (TLSv1:ECDHE-RSA-AES256-SHA:256)
	id 1ZhJrz-0006Dk-jK (Exim 4.86_36-e07b163)
	(return-path <amc79@cam.ac.uk>); Wed, 30 Sep 2015 17:04:39 +0100
Mime-Version: 1.0 (1.0)
From: Amir Chaudhry <amc79@cam.ac.uk>
X-Mailer: iPhone Mail (13B5110e)
In-Reply-To: <814E7093-88E4-40A4-A10F-359ED0E9E061@somerandomidiot.com>
Date: Wed, 30 Sep 2015 17:04:25 +0100
Message-Id: <9A417FA9-61E4-4355-9237-DBC96C476B61@cam.ac.uk>
References: <D1A1FCD9-491D-4045-8BDE-9D6709C5CFBA@cam.ac.uk>
	<62270632-DE76-48CD-9D80-D3E0040FB595@cam.ac.uk>
	<560C0234.8090809@zoho.com>
	<814E7093-88E4-40A4-A10F-359ED0E9E061@somerandomidiot.com>
To: Mindy Preston <mindy@somerandomidiot.com>
Cc: mirageos-devel <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] MirageOS fortnightly call - Wednesday 30th at
	4pm BST
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============7154789168416846650=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org


--===============7154789168416846650==
Content-Type: multipart/alternative;
	boundary=Apple-Mail-66779704-11EB-4405-9B53-F57267BF602F
Content-Transfer-Encoding: 7bit


--Apple-Mail-66779704-11EB-4405-9B53-F57267BF602F
Content-Type: text/plain;
	charset=utf-8
Content-Transfer-Encoding: quoted-printable

We've been using Hangouts for a while and they've worked well so far. Howeve=
r, we're happy to look at alternatives so if anyone has suggestions, please r=
eply to me directly (not the list).

Please understand that we're unlikely to have anything in place before the n=
ext call, so that one is still likely to be on Hangout.=20

Best wishes,
Amir

--
Sent via mobile

> On 30 Sep 2015, at 16:52, Mindy Preston <mindy@somerandomidiot.com> wrote:=

>=20
> Seconded.
>=20
>> On September 30, 2015 11:39:32 AM EDT, Drup <drupyog+caml@zoho.com> wrote=
:
>> Next time, can it be on something that does not need a google account ?
>>=20
>> Le 30/09/2015 16:30, Amir Chaudhry a =C3=A9crit :
>>>  Hi folks, the Hangout link for today=E2=80=99s call (in about 30mins) w=
ill be:
>>>  https://plus.google.com/hangouts/_/gq7e36svyh3okzlban3s65nwnya
>>>=20
>>>  Amir
>>>=20
>>>>  On 29 Sep 2015, at 11:45, Amir Chaudhry <amc79@cam.ac.uk> wrote:
>>>>=20
>>>>  Hi folks,
>>>>=20
>>>>  The next MirageOS call will take place on Wednesday afternoon at 4pm B=
ST and is open to all.  We'll be on Google Hangout this time and I=E2=80=99l=
l post the link shortly before the call -- both here and also in the IRC cha=
nnel (#mirage on freenode).
>>>>=20
>>>>  It would be great if people interested in Outreachy joined the call to=
 say hi!
>>>>=20
>>>>  Notes from last time are at: https://mirage.io/wiki/weekly-2015-09-09
>>>>  The agenda for this week is currently as follows (subject to change):
>>>>=20
>>>>  =E2=80=A2 Quality and Test
>>>>  =E2=80=A2 Versioning (see the email [1])
>>>>  =E2=80=A2 Pioneer Projects
>>>>=20
>>>>  If you have things to add/edit, please do so at https://github.com/mir=
age/mirage-www/wiki/Call-Agenda
>>>>=20
>>>>  Join us at 4pm BST on Wednesday!
>>>>=20
>>>>  Best wishes,
>>>>  Amir
>>>>=20
>>>>  [1] http://lists.xenproject.org/archives/html/mirageos-devel/2015-09/m=
sg00021.html
>>>=20
>>>=20
>>>  MirageOS-devel mailing list
>>>  MirageOS-devel@lists.xenproject.org
>>>  http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
>>=20
>>=20
>>=20
>>=20
>> MirageOS-devel mailing list
>> MirageOS-devel@lists.xenproject.org
>> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
>=20
> --=20
> Composed on a touchscreen keyboard; please forgive typos and brevity.

--Apple-Mail-66779704-11EB-4405-9B53-F57267BF602F
Content-Type: text/html;
	charset=utf-8
Content-Transfer-Encoding: quoted-printable

<html><head><meta http-equiv=3D"content-type" content=3D"text/html; charset=3D=
utf-8"></head><body dir=3D"auto"><div>We've been using Hangouts for a while a=
nd they've worked well so far. However, we're happy to look at alternatives s=
o if anyone has suggestions, please reply to me directly (not the list).</di=
v><div id=3D"AppleMailSignature"><br></div><div id=3D"AppleMailSignature">Pl=
ease understand that we're unlikely to have anything in place before the nex=
t call, so that one is still likely to be on Hangout.&nbsp;</div><div id=3D"=
AppleMailSignature"><br>Best wishes,<div>Amir</div><div><br></div><div>--</d=
iv><div>Sent via mobile</div></div><div><br>On 30 Sep 2015, at 16:52, Mindy P=
reston &lt;<a href=3D"mailto:mindy@somerandomidiot.com">mindy@somerandomidio=
t.com</a>&gt; wrote:<br><br></div><blockquote type=3D"cite"><div>Seconded.<b=
r><br><div class=3D"gmail_quote">On September 30, 2015 11:39:32 AM EDT, Drup=
 &lt;<a href=3D"mailto:drupyog+caml@zoho.com">drupyog+caml@zoho.com</a>&gt; w=
rote:<blockquote class=3D"gmail_quote" style=3D"margin: 0pt 0pt 0pt 0.8ex; b=
order-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<pre class=3D"k9mail">Next time, can it be on something that does not need a=
 google account ?<br><br>Le 30/09/2015 16:30, Amir Chaudhry a =C3=A9crit :<b=
r><blockquote class=3D"gmail_quote" style=3D"margin: 0pt 0pt 1ex 0.8ex; bord=
er-left: 1px solid #729fcf; padding-left: 1ex;"> Hi folks, the Hangout link f=
or today=E2=80=99s call (in about 30mins) will be:<br> <a href=3D"https://pl=
us.google.com/hangouts/_/gq7e36svyh3okzlban3s65nwnya">https://plus.google.co=
m/hangouts/_/gq7e36svyh3okzlban3s65nwnya</a><br><br> Amir<br><br><blockquote=
 class=3D"gmail_quote" style=3D"margin: 0pt 0pt 1ex 0.8ex; border-left: 1px s=
olid #ad7fa8; padding-left: 1ex;"> On 29 Sep 2015, at 11:45, Amir Chaudhry &=
lt;<a href=3D"mailto:amc79@cam.ac.uk">amc79@cam.ac.uk</a>&gt; wrote:<br><br>=
 Hi folks,<br><br> The next MirageOS call will take place on Wednesday after=
noon at 4pm BST and is open to all.  We'll be on Google Hangout this time an=
d I=E2=80=99ll post the link shortly before the call -- both here and also i=
n the IRC channel (#mirage on freenode).<br><br> It would be great if people=
 interested in Outreachy joined the call to say hi!<br><br> Notes from last t=
ime are at: <a href=3D"https://mirage.io/wiki/weekly-2015-09-09">https://mir=
age.io/wiki/weekly-2015-09-09</a><br> The agenda for this week is currently a=
s follows (subject to change):<br><br> =E2=80=A2 Quality and Test<br> =E2=80=
=A2 Versioning (see the email [1])<br> =E2=80=A2 Pioneer Projects<br><br> If=
 you have things to add/edit, please do so at <a href=3D"https://github.com/=
mirage/mirage-www/wiki/Call-Agenda">https://github.com/mirage/mirage-www/wik=
i/Call-Agenda</a><br><br> Join us at 4pm BST on Wednesday!<br><br> Best wish=
es,<br> Amir<br><br> [1] <a href=3D"http://lists.xenproject.org/archives/htm=
l/mirageos-devel/2015-09/msg00021.html">http://lists.xenproject.org/archives=
/html/mirageos-devel/2015-09/msg00021.html</a><br></blockquote><br><hr><br> M=
irageOS-devel mailing list<br> <a href=3D"mailto:MirageOS-devel@lists.xenpro=
ject.org">MirageOS-devel@lists.xenproject.org</a><br> <a href=3D"http://list=
s.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel">http://lists.xenpr=
oject.org/cgi-bin/mailman/listinfo/mirageos-devel</a><br></blockquote><br><b=
r><br><hr><br>MirageOS-devel mailing list<br><a href=3D"mailto:MirageOS-deve=
l@lists.xenproject.org">MirageOS-devel@lists.xenproject.org</a><br><a href=3D=
"http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel">http:/=
/lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel</a><br></pre><=
/blockquote></div><br>
-- <br>
Composed on a touchscreen keyboard; please forgive typos and brevity.</div><=
/blockquote></body></html>=

--Apple-Mail-66779704-11EB-4405-9B53-F57267BF602F--


--===============7154789168416846650==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

--===============7154789168416846650==--


From mirageos-devel-bounces@lists.xenproject.org Wed Sep 30 16:50:47 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 30 Sep 2015 16:50:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZhKaV-0000U9-Ve; Wed, 30 Sep 2015 16:50:39 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <richard.mortier@gmail.com>) id 1ZhKaU-0000U4-Su
	for MirageOS-devel@lists.xenproject.org; Wed, 30 Sep 2015 16:50:39 +0000
Received: from [85.158.137.68] by server-10.bemta-3.messagelabs.com id
	F9/DF-23203-ED21C065; Wed, 30 Sep 2015 16:50:38 +0000
X-Env-Sender: richard.mortier@gmail.com
X-Msg-Ref: server-15.tower-31.messagelabs.com!1443631836!48941038!1
X-Originating-IP: [209.85.212.171]
X-SpamReason: No, hits=0.8 required=7.0 tests=BODY_RANDOM_LONG,
  RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 6395 invoked from network); 30 Sep 2015 16:50:37 -0000
Received: from mail-wi0-f171.google.com (HELO mail-wi0-f171.google.com)
	(209.85.212.171)
	by server-15.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	30 Sep 2015 16:50:37 -0000
Received: by wicfx3 with SMTP id fx3so71004977wic.0
	for <MirageOS-devel@lists.xenproject.org>;
	Wed, 30 Sep 2015 09:50:36 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=mime-version:in-reply-to:references:date:message-id:subject:from:to
	:cc:content-type;
	bh=5AmErqXv+F/v/Zdi1sXLi4aE3JHL1R2F+pjxlgreZAg=;
	b=JaaBm7vhimO40uSvaJvNWX3LDBlgmVnF3Kp79fV6BI1Z71Bd6CvdMaXm93e5xV6BVh
	MmW/cCQbjfCTx7PrINAWtF87CZd1M8gd2OyaLLKzzGaNTimcVJ3xfI/0mFb97Mh2y3IC
	nvxQKwNIcPCaTreAcfXrGaEpVoYsO281U9gkBdoalqKHw20G4e4873nw5FGTe6mpjqzU
	M3ccC58qVsnkn53mYrXvVOhCifvTNDBasPTRJAVbmvzkHLCnOFcBPIGO41bGQLqVOegY
	cBCqsRYUV5eZujJot9tDQXlMc9iT5UkDEiSbt6zJAZRI3z1qJhLI77UvT5D+vdqMwwg8
	qOyA==
X-Received: by 10.180.91.225 with SMTP id ch1mr9168803wib.39.1443631836507;
	Wed, 30 Sep 2015 09:50:36 -0700 (PDT)
Received: from mail-wi0-f178.google.com (mail-wi0-f178.google.com.
	[209.85.212.178])
	by smtp.gmail.com with ESMTPSA id go5sm1688195wib.3.2015.09.30.09.50.34
	for <MirageOS-devel@lists.xenproject.org>
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Wed, 30 Sep 2015 09:50:35 -0700 (PDT)
Received: by wicfx3 with SMTP id fx3so206934996wic.1
	for <MirageOS-devel@lists.xenproject.org>;
	Wed, 30 Sep 2015 09:50:34 -0700 (PDT)
MIME-Version: 1.0
X-Received: by 10.180.39.139 with SMTP id p11mr30739910wik.44.1443631834213;
	Wed, 30 Sep 2015 09:50:34 -0700 (PDT)
Received: by 10.28.130.67 with HTTP; Wed, 30 Sep 2015 09:50:34 -0700 (PDT)
In-Reply-To: <CAPvuBUv7RP8B3OnbEtSdh43rS37OqOBa_Zh4kBa97uc9Witpew@mail.gmail.com>
References: <CAPvuBUsmDOisM=3htapCn7g5Lp01Vd91N_cUE1nwD1oaOAhfsQ@mail.gmail.com>
	<1A3C5EAF-A5A2-4BD6-B88E-FA3F6CED1CA5@recoil.org>
	<CAN2Hq071sRM2x1WqLkkNKjoH2UiuafDpN5YfrJ8gaVh7tKh63g@mail.gmail.com>
	<CAPvuBUv8mpnoT9J=7u4HiJpyJjfLG3giw05WG7bC9qctaZEYWA@mail.gmail.com>
	<CAN2Hq06dfedZyf+=f=FX6mUcVuGA7CF_F+8-9e6uUHf9wsFvmA@mail.gmail.com>
	<CAPvuBUv7RP8B3OnbEtSdh43rS37OqOBa_Zh4kBa97uc9Witpew@mail.gmail.com>
Date: Wed, 30 Sep 2015 17:50:34 +0100
Message-ID: <CAN2Hq07CR8RPjzdeg_k9owV25qCNLgt7y06J8rw-N=2owqtetA@mail.gmail.com>
From: Richard Mortier <richard.mortier@cl.cam.ac.uk>
To: "Christiano F. Haesbaert" <haesbaert@haesbaert.org>, 
	mirageos-devel <MirageOS-devel@lists.xenproject.org>
Cc: Anil Madhavapeddy <anil@recoil.org>
Subject: Re: [MirageOS-devel] Charrua release
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

[ Adding the list as discussion may be of more general interest. This
concerns Christiano's DHCP server, Charrua, at
https://github.com/haesbaert/charrua-core,
https://github.com/haesbaert/charrua-mirage and
https://github.com/haesbaert/charrua-unix. ]

On 30 September 2015 at 13:39, Christiano F. Haesbaert
<haesbaert@haesbaert.org> wrote:
>
> On Wednesday, 30 September 2015, Richard Mortier
> <richard.mortier@cl.cam.ac.uk> wrote:
>>
...
>> Some random thoughts:
>>
>> + Is there a reason why you include clock.mli rather than depending on
>> mirage-types and using the definition from there?
>
> Probably inexperience, that was for charrua-unix to be able to use the Ocaml
> Clock module without having a functor, but I want to change that, didnt find
> a better way at the time.

Given you're using functors elsewhere, why is it a problem to use a
functor for Clock too?

>> + I notice the INTERFACE type you define -- is this something that we
>> should think about adding to mirage-types?
>
> Don't think so.
> This is an artifact of having the library working outside mirage
> (charrua-unix), i basically need to tell the Server module how to do IO and
> what is an interface. Im not too happy with the way I wrote this, perphaps
> there is a better way ?

This may bear some thinking about-- I wonder if the right thing to do
is to just use the Mirage types, functors, libraries, etc, but (using
@drup's shiny new Functoria-based Mirage DSL implementation) implement
a "native Unix" backend so that cmdliner and other things can be used
as-is. That way you can leverage the module types and libraries all
the way down, but aren't tied to having the entry point look like a
unikernel (hence can pass params etc as you would normally).

All-- thoughts?

>> + Could you pull out Dhcp_structs into a separate ocamlfind library (i
>> tried tftp.wire for my Tftp lib) so that the structs can be reused (eg
>> in a packet parsing libpcap-alike)?  (One day this will happen for
>> tcpip as well so that you don't need to include "cstruct udp" et al.)
>> I can try and put a PR together for this if you prefer...
>
> Sure let's do it, but by PR you mean ?

Pull Request :)

>> + Curiosity: Was there a reason to not use the Cstruct `cenum`
>> construct for declaring the codepoints etc? (Wondering whether
>> something that replaces `cstruct ... { }` could/should be replaced
>> with something that enables`with cstruct` a la `with sexp`.)
>
> i didn't know about cenum, that will make things easier, I will work on that
> thus week.

Cool. In general I think we have an inclination now to remove camlp4
syntax extensions where possible -- I don't know if anyone has looked
at replacing cstruct.syntax though (which I would guess is the most
commonly used now we don't generally use lwt.syntax). Anyone?

>> + Dhcp_logger -- Anil, what's the status of dog at the moment? Is
>> there a logging framework ready for use/Is dog the place to start for
>> one? (I'll push Tftp over onto it as well if so.)
>
> That was also to be able to use charrua-core outside of mirage.

I understood that Dog depended on Irmin rather than Mirage, but I
might be wrong. (@samoht?)

>> + Alistair had started adding (possibly got to some kind of
>> completion) Irmin support for the state in his version (based directly
>> off mirage-tcpip --
>>
>> https://github.com/alistairfisher/irmin-dhcp/commit/fb56e771613333d08397033b8c4f830a519db5a0)
>> -- would be great to look at adding/merging this somehow.
>
> I agree, i can work on merging his code, I would do it for 0.2 though.

Fair enough :)

> Bear in mind my ocaml-foo may not be on paar, you should see other naive
> mistakes and/or uncommon idioms.

I'm sure those with sufficient experience will eventually point them out :)

> If supporting Charrua-core outside of mirage contaminates too much of the
> design, I can drop charrua-unix. This was in fact my first idea, but then I
> figure it would be interesting on the architectural level, since it provides
> a stronger separation between the core logic and the rest.

FWIW, what I was trying to do with `ocaml-tftp` was to have the
library and then Mirage and (pure) Unix servers (and ultimately,
clients) in a single repo, under different directories, using Oasis to
generate the necessary build runes and OPAM to manage installation of
different generated ocamlfind components. (Though I just noticed I
need to split that down more.) Not entirely successful (or finished!)
so far, but it mostly seemed to work. (And meant I didn't have to
worry about too many repos.)

-- 
Richard Mortier
richard.mortier@cl.cam.ac.uk

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Wed Sep 30 16:50:47 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 30 Sep 2015 16:50:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZhKaV-0000U9-Ve; Wed, 30 Sep 2015 16:50:39 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <richard.mortier@gmail.com>) id 1ZhKaU-0000U4-Su
	for MirageOS-devel@lists.xenproject.org; Wed, 30 Sep 2015 16:50:39 +0000
Received: from [85.158.137.68] by server-10.bemta-3.messagelabs.com id
	F9/DF-23203-ED21C065; Wed, 30 Sep 2015 16:50:38 +0000
X-Env-Sender: richard.mortier@gmail.com
X-Msg-Ref: server-15.tower-31.messagelabs.com!1443631836!48941038!1
X-Originating-IP: [209.85.212.171]
X-SpamReason: No, hits=0.8 required=7.0 tests=BODY_RANDOM_LONG,
  RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 6395 invoked from network); 30 Sep 2015 16:50:37 -0000
Received: from mail-wi0-f171.google.com (HELO mail-wi0-f171.google.com)
	(209.85.212.171)
	by server-15.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	30 Sep 2015 16:50:37 -0000
Received: by wicfx3 with SMTP id fx3so71004977wic.0
	for <MirageOS-devel@lists.xenproject.org>;
	Wed, 30 Sep 2015 09:50:36 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=mime-version:in-reply-to:references:date:message-id:subject:from:to
	:cc:content-type;
	bh=5AmErqXv+F/v/Zdi1sXLi4aE3JHL1R2F+pjxlgreZAg=;
	b=JaaBm7vhimO40uSvaJvNWX3LDBlgmVnF3Kp79fV6BI1Z71Bd6CvdMaXm93e5xV6BVh
	MmW/cCQbjfCTx7PrINAWtF87CZd1M8gd2OyaLLKzzGaNTimcVJ3xfI/0mFb97Mh2y3IC
	nvxQKwNIcPCaTreAcfXrGaEpVoYsO281U9gkBdoalqKHw20G4e4873nw5FGTe6mpjqzU
	M3ccC58qVsnkn53mYrXvVOhCifvTNDBasPTRJAVbmvzkHLCnOFcBPIGO41bGQLqVOegY
	cBCqsRYUV5eZujJot9tDQXlMc9iT5UkDEiSbt6zJAZRI3z1qJhLI77UvT5D+vdqMwwg8
	qOyA==
X-Received: by 10.180.91.225 with SMTP id ch1mr9168803wib.39.1443631836507;
	Wed, 30 Sep 2015 09:50:36 -0700 (PDT)
Received: from mail-wi0-f178.google.com (mail-wi0-f178.google.com.
	[209.85.212.178])
	by smtp.gmail.com with ESMTPSA id go5sm1688195wib.3.2015.09.30.09.50.34
	for <MirageOS-devel@lists.xenproject.org>
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Wed, 30 Sep 2015 09:50:35 -0700 (PDT)
Received: by wicfx3 with SMTP id fx3so206934996wic.1
	for <MirageOS-devel@lists.xenproject.org>;
	Wed, 30 Sep 2015 09:50:34 -0700 (PDT)
MIME-Version: 1.0
X-Received: by 10.180.39.139 with SMTP id p11mr30739910wik.44.1443631834213;
	Wed, 30 Sep 2015 09:50:34 -0700 (PDT)
Received: by 10.28.130.67 with HTTP; Wed, 30 Sep 2015 09:50:34 -0700 (PDT)
In-Reply-To: <CAPvuBUv7RP8B3OnbEtSdh43rS37OqOBa_Zh4kBa97uc9Witpew@mail.gmail.com>
References: <CAPvuBUsmDOisM=3htapCn7g5Lp01Vd91N_cUE1nwD1oaOAhfsQ@mail.gmail.com>
	<1A3C5EAF-A5A2-4BD6-B88E-FA3F6CED1CA5@recoil.org>
	<CAN2Hq071sRM2x1WqLkkNKjoH2UiuafDpN5YfrJ8gaVh7tKh63g@mail.gmail.com>
	<CAPvuBUv8mpnoT9J=7u4HiJpyJjfLG3giw05WG7bC9qctaZEYWA@mail.gmail.com>
	<CAN2Hq06dfedZyf+=f=FX6mUcVuGA7CF_F+8-9e6uUHf9wsFvmA@mail.gmail.com>
	<CAPvuBUv7RP8B3OnbEtSdh43rS37OqOBa_Zh4kBa97uc9Witpew@mail.gmail.com>
Date: Wed, 30 Sep 2015 17:50:34 +0100
Message-ID: <CAN2Hq07CR8RPjzdeg_k9owV25qCNLgt7y06J8rw-N=2owqtetA@mail.gmail.com>
From: Richard Mortier <richard.mortier@cl.cam.ac.uk>
To: "Christiano F. Haesbaert" <haesbaert@haesbaert.org>, 
	mirageos-devel <MirageOS-devel@lists.xenproject.org>
Cc: Anil Madhavapeddy <anil@recoil.org>
Subject: Re: [MirageOS-devel] Charrua release
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

[ Adding the list as discussion may be of more general interest. This
concerns Christiano's DHCP server, Charrua, at
https://github.com/haesbaert/charrua-core,
https://github.com/haesbaert/charrua-mirage and
https://github.com/haesbaert/charrua-unix. ]

On 30 September 2015 at 13:39, Christiano F. Haesbaert
<haesbaert@haesbaert.org> wrote:
>
> On Wednesday, 30 September 2015, Richard Mortier
> <richard.mortier@cl.cam.ac.uk> wrote:
>>
...
>> Some random thoughts:
>>
>> + Is there a reason why you include clock.mli rather than depending on
>> mirage-types and using the definition from there?
>
> Probably inexperience, that was for charrua-unix to be able to use the Ocaml
> Clock module without having a functor, but I want to change that, didnt find
> a better way at the time.

Given you're using functors elsewhere, why is it a problem to use a
functor for Clock too?

>> + I notice the INTERFACE type you define -- is this something that we
>> should think about adding to mirage-types?
>
> Don't think so.
> This is an artifact of having the library working outside mirage
> (charrua-unix), i basically need to tell the Server module how to do IO and
> what is an interface. Im not too happy with the way I wrote this, perphaps
> there is a better way ?

This may bear some thinking about-- I wonder if the right thing to do
is to just use the Mirage types, functors, libraries, etc, but (using
@drup's shiny new Functoria-based Mirage DSL implementation) implement
a "native Unix" backend so that cmdliner and other things can be used
as-is. That way you can leverage the module types and libraries all
the way down, but aren't tied to having the entry point look like a
unikernel (hence can pass params etc as you would normally).

All-- thoughts?

>> + Could you pull out Dhcp_structs into a separate ocamlfind library (i
>> tried tftp.wire for my Tftp lib) so that the structs can be reused (eg
>> in a packet parsing libpcap-alike)?  (One day this will happen for
>> tcpip as well so that you don't need to include "cstruct udp" et al.)
>> I can try and put a PR together for this if you prefer...
>
> Sure let's do it, but by PR you mean ?

Pull Request :)

>> + Curiosity: Was there a reason to not use the Cstruct `cenum`
>> construct for declaring the codepoints etc? (Wondering whether
>> something that replaces `cstruct ... { }` could/should be replaced
>> with something that enables`with cstruct` a la `with sexp`.)
>
> i didn't know about cenum, that will make things easier, I will work on that
> thus week.

Cool. In general I think we have an inclination now to remove camlp4
syntax extensions where possible -- I don't know if anyone has looked
at replacing cstruct.syntax though (which I would guess is the most
commonly used now we don't generally use lwt.syntax). Anyone?

>> + Dhcp_logger -- Anil, what's the status of dog at the moment? Is
>> there a logging framework ready for use/Is dog the place to start for
>> one? (I'll push Tftp over onto it as well if so.)
>
> That was also to be able to use charrua-core outside of mirage.

I understood that Dog depended on Irmin rather than Mirage, but I
might be wrong. (@samoht?)

>> + Alistair had started adding (possibly got to some kind of
>> completion) Irmin support for the state in his version (based directly
>> off mirage-tcpip --
>>
>> https://github.com/alistairfisher/irmin-dhcp/commit/fb56e771613333d08397033b8c4f830a519db5a0)
>> -- would be great to look at adding/merging this somehow.
>
> I agree, i can work on merging his code, I would do it for 0.2 though.

Fair enough :)

> Bear in mind my ocaml-foo may not be on paar, you should see other naive
> mistakes and/or uncommon idioms.

I'm sure those with sufficient experience will eventually point them out :)

> If supporting Charrua-core outside of mirage contaminates too much of the
> design, I can drop charrua-unix. This was in fact my first idea, but then I
> figure it would be interesting on the architectural level, since it provides
> a stronger separation between the core logic and the rest.

FWIW, what I was trying to do with `ocaml-tftp` was to have the
library and then Mirage and (pure) Unix servers (and ultimately,
clients) in a single repo, under different directories, using Oasis to
generate the necessary build runes and OPAM to manage installation of
different generated ocamlfind components. (Though I just noticed I
need to split that down more.) Not entirely successful (or finished!)
so far, but it mostly seemed to work. (And meant I didn't have to
worry about too many repos.)

-- 
Richard Mortier
richard.mortier@cl.cam.ac.uk

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Wed Sep 30 17:20:44 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 30 Sep 2015 17:20:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZhL3W-0002ma-BE; Wed, 30 Sep 2015 17:20:38 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <thomas.gazagnaire@gmail.com>) id 1ZhL3V-0002lb-Ec
	for mirageos-devel@lists.xenproject.org; Wed, 30 Sep 2015 17:20:37 +0000
Received: from [193.109.254.147] by server-2.bemta-14.messagelabs.com id
	3E/D8-12889-4E91C065; Wed, 30 Sep 2015 17:20:36 +0000
X-Env-Sender: thomas.gazagnaire@gmail.com
X-Msg-Ref: server-11.tower-27.messagelabs.com!1443633634!48382688!1
X-Originating-IP: [209.85.212.181]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 22831 invoked from network); 30 Sep 2015 17:20:35 -0000
Received: from mail-wi0-f181.google.com (HELO mail-wi0-f181.google.com)
	(209.85.212.181)
	by server-11.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	30 Sep 2015 17:20:35 -0000
Received: by wicge5 with SMTP id ge5so206939587wic.0
	for <mirageos-devel@lists.xenproject.org>;
	Wed, 30 Sep 2015 10:20:34 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=sender:from:content-type:content-transfer-encoding:subject
	:message-id:date:to:mime-version;
	bh=VVS+th7fCaGVtqg4HjnJgdClMbqt1rcMwzHMD1RnpDM=;
	b=YUnw0VCYGJ6ai8Hwg0KFIajiW/V/tgNlHC4zAmCM0jWU9foyEFh23ie1K73Nq3n+9u
	lzqd8StbcmhJBr4qOiFbKIojlqiGlQjobRv85PZ8PldXucAZwV2ckCdUGkCsY+Tq0XZc
	A6cx0v5JAqrqUp+q7Sf24pT1lVPV6j6yaouvI77YcdIJ6Jro5jc2JG7UWwEjW+hSAcq6
	s3rJpKhGpePz9gro8SnT6spVfYoUMj5hLybTaPPWC06G0zIchxAnWYQy/tR88exN/d8M
	4iaQl9sd+dsnTFV2yI9YHbohvxAeLI20XFSev4PbIGyXtF9N/U38YX1mo51nciD6V2ub
	uLbA==
X-Received: by 10.180.39.242 with SMTP id s18mr5774026wik.79.1443633634500;
	Wed, 30 Sep 2015 10:20:34 -0700 (PDT)
Received: from piana.mac.cl.cam.ac.uk (piana.mac.cl.cam.ac.uk. [128.232.56.38])
	by smtp.gmail.com with ESMTPSA id ly4sm1729778wjb.4.2015.09.30.10.20.32
	for <mirageos-devel@lists.xenproject.org>
	(version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128);
	Wed, 30 Sep 2015 10:20:33 -0700 (PDT)
From: Thomas Gazagnaire <thomas@gazagnaire.org>
Message-Id: <4724B921-84EB-4E2B-B1AE-1BE54D42084B@gazagnaire.org>
Date: Wed, 30 Sep 2015 18:20:32 +0100
To: mirageos-devel <mirageos-devel@lists.xenproject.org>
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\))
X-Mailer: Apple Mail (2.2104)
Subject: [MirageOS-devel] [ANN] new version of Irmin (0.9.10)
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

Hi all,

I'm happy to announce a new release of Irmin (0.9.10), with some API breaking
changes. It will be available in opam shortly.
The main changes are the removal of the 1st class module interface, some
"improvement" to the REST API (to expose server-side transactions), and  new 
signatures to specify immutable links between keys.

The full list of changes:

* Expose the Git compression level (#104, #298 by @samoht)
* Add an optional `config` argument to all the backend's config
  functions. This allow the backends to composed more easily. (initial
  patch by @nasrallahmounir, integration by @samoht)
* Add signatures for immutable link store, to store links between
  keys: `Irmin.LINK`  and `Irmin.LINK_MAKER`. Add `Irmin_mem.Link` and
  `Irmin_fs.Link` which implement `Irmin.LINK_MAKER` in these backends
  (initial patch by @nasrallahmounir, integration by @samoht)
* Add signatures for raw values (ie. whose values are of type
  `Cstruct.t`): `Irmin.RAW` and raw store maker: `Irmin.AO_MAKER_RAW`
  (initial patch by @nasrallahmounir, integration by @samoht)
* Expose `Irmin.Hash.digest_size` (initial patch by @nasrallahmounir,
  integration by @samoht)
* Expose `/view` to the REST API (#292, by @samoht)
* Expose `Irmin.Private.merge_node` (#292 by @samoht)
* Change the JSON stream API, which requres ezjsonm.0.4.2. (#266, #269,
  #273 by @samoht)
* Fix a race when a lot of processes are trying to add a watch at the
  same time. (#270, #271, by @samoht)
* Expose `Irmin_git.Irmin_value_store` functor. This provides the
  Irmin Contents/Node/Commit APIs on top of a Git-type store. This is
  useful for backends that want to store data using the Git object
  format, to be able to sync with Git, but without using Git's
  filesystem layout and locking. (#268 by @talex5)
* Remove the first-class module API. It's confusing to duplicate the API
  (#293, by @talex5)

Best,
Thomas



_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Wed Sep 30 17:20:44 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 30 Sep 2015 17:20:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZhL3W-0002ma-BE; Wed, 30 Sep 2015 17:20:38 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <thomas.gazagnaire@gmail.com>) id 1ZhL3V-0002lb-Ec
	for mirageos-devel@lists.xenproject.org; Wed, 30 Sep 2015 17:20:37 +0000
Received: from [193.109.254.147] by server-2.bemta-14.messagelabs.com id
	3E/D8-12889-4E91C065; Wed, 30 Sep 2015 17:20:36 +0000
X-Env-Sender: thomas.gazagnaire@gmail.com
X-Msg-Ref: server-11.tower-27.messagelabs.com!1443633634!48382688!1
X-Originating-IP: [209.85.212.181]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 22831 invoked from network); 30 Sep 2015 17:20:35 -0000
Received: from mail-wi0-f181.google.com (HELO mail-wi0-f181.google.com)
	(209.85.212.181)
	by server-11.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	30 Sep 2015 17:20:35 -0000
Received: by wicge5 with SMTP id ge5so206939587wic.0
	for <mirageos-devel@lists.xenproject.org>;
	Wed, 30 Sep 2015 10:20:34 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=sender:from:content-type:content-transfer-encoding:subject
	:message-id:date:to:mime-version;
	bh=VVS+th7fCaGVtqg4HjnJgdClMbqt1rcMwzHMD1RnpDM=;
	b=YUnw0VCYGJ6ai8Hwg0KFIajiW/V/tgNlHC4zAmCM0jWU9foyEFh23ie1K73Nq3n+9u
	lzqd8StbcmhJBr4qOiFbKIojlqiGlQjobRv85PZ8PldXucAZwV2ckCdUGkCsY+Tq0XZc
	A6cx0v5JAqrqUp+q7Sf24pT1lVPV6j6yaouvI77YcdIJ6Jro5jc2JG7UWwEjW+hSAcq6
	s3rJpKhGpePz9gro8SnT6spVfYoUMj5hLybTaPPWC06G0zIchxAnWYQy/tR88exN/d8M
	4iaQl9sd+dsnTFV2yI9YHbohvxAeLI20XFSev4PbIGyXtF9N/U38YX1mo51nciD6V2ub
	uLbA==
X-Received: by 10.180.39.242 with SMTP id s18mr5774026wik.79.1443633634500;
	Wed, 30 Sep 2015 10:20:34 -0700 (PDT)
Received: from piana.mac.cl.cam.ac.uk (piana.mac.cl.cam.ac.uk. [128.232.56.38])
	by smtp.gmail.com with ESMTPSA id ly4sm1729778wjb.4.2015.09.30.10.20.32
	for <mirageos-devel@lists.xenproject.org>
	(version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128);
	Wed, 30 Sep 2015 10:20:33 -0700 (PDT)
From: Thomas Gazagnaire <thomas@gazagnaire.org>
Message-Id: <4724B921-84EB-4E2B-B1AE-1BE54D42084B@gazagnaire.org>
Date: Wed, 30 Sep 2015 18:20:32 +0100
To: mirageos-devel <mirageos-devel@lists.xenproject.org>
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\))
X-Mailer: Apple Mail (2.2104)
Subject: [MirageOS-devel] [ANN] new version of Irmin (0.9.10)
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

Hi all,

I'm happy to announce a new release of Irmin (0.9.10), with some API breaking
changes. It will be available in opam shortly.
The main changes are the removal of the 1st class module interface, some
"improvement" to the REST API (to expose server-side transactions), and  new 
signatures to specify immutable links between keys.

The full list of changes:

* Expose the Git compression level (#104, #298 by @samoht)
* Add an optional `config` argument to all the backend's config
  functions. This allow the backends to composed more easily. (initial
  patch by @nasrallahmounir, integration by @samoht)
* Add signatures for immutable link store, to store links between
  keys: `Irmin.LINK`  and `Irmin.LINK_MAKER`. Add `Irmin_mem.Link` and
  `Irmin_fs.Link` which implement `Irmin.LINK_MAKER` in these backends
  (initial patch by @nasrallahmounir, integration by @samoht)
* Add signatures for raw values (ie. whose values are of type
  `Cstruct.t`): `Irmin.RAW` and raw store maker: `Irmin.AO_MAKER_RAW`
  (initial patch by @nasrallahmounir, integration by @samoht)
* Expose `Irmin.Hash.digest_size` (initial patch by @nasrallahmounir,
  integration by @samoht)
* Expose `/view` to the REST API (#292, by @samoht)
* Expose `Irmin.Private.merge_node` (#292 by @samoht)
* Change the JSON stream API, which requres ezjsonm.0.4.2. (#266, #269,
  #273 by @samoht)
* Fix a race when a lot of processes are trying to add a watch at the
  same time. (#270, #271, by @samoht)
* Expose `Irmin_git.Irmin_value_store` functor. This provides the
  Irmin Contents/Node/Commit APIs on top of a Git-type store. This is
  useful for backends that want to store data using the Git object
  format, to be able to sync with Git, but without using Git's
  filesystem layout and locking. (#268 by @talex5)
* Remove the first-class module API. It's confusing to duplicate the API
  (#293, by @talex5)

Best,
Thomas



_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Wed Sep 30 20:21:26 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 30 Sep 2015 20:21:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZhNsK-0003tQ-IC; Wed, 30 Sep 2015 20:21:16 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <christiano.fh@gmail.com>) id 1ZhNsI-0003tL-Ok
	for MirageOS-devel@lists.xenproject.org; Wed, 30 Sep 2015 20:21:14 +0000
Received: from [85.158.139.211] by server-11.bemta-5.messagelabs.com id
	74/1F-24494-A344C065; Wed, 30 Sep 2015 20:21:14 +0000
X-Env-Sender: christiano.fh@gmail.com
X-Msg-Ref: server-9.tower-206.messagelabs.com!1443644472!38949548!1
X-Originating-IP: [209.85.215.47]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 30046 invoked from network); 30 Sep 2015 20:21:13 -0000
Received: from mail-la0-f47.google.com (HELO mail-la0-f47.google.com)
	(209.85.215.47)
	by server-9.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
	30 Sep 2015 20:21:13 -0000
Received: by lahh2 with SMTP id h2so60336707lah.0
	for <MirageOS-devel@lists.xenproject.org>;
	Wed, 30 Sep 2015 13:21:12 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:sender:in-reply-to:references:date:message-id:subject
	:from:to:cc:content-type;
	bh=3gYdzkTIT6YsdDSF/rFyZW11BSic2LpU/M7/rgcbhDM=;
	b=taagPKq2b3yTBzb3wzKsUswNGIEvJh7fwtcZf0MMWd/aPgPhd+cZKjAYRwYVgtf2lM
	74u49xQxI7aivBVIx5Met2Dc/BWmVPv7sE0/AQHQYv0J8+eYXkmvd0IiSykQRPRHUYHu
	nGS6n/nAoyqYUj2tMn90fFhHUR28s+hvcrBIIFsgOB2NsrAdsUigC3KgPzrPQoHrJj5s
	hfAwDXVeGMze3sMvLaDo3Tx/Z2xxEbHmU8K1nvqRPVT5UUhb7kU8QZpvRywV/zwvAGQp
	68XSgmMuOBr4V8xet2td5B5DwuVDHdJrTQdmXlvamLk/8mThueVQn9sDRL1mhYnssSFA
	tQ4w==
MIME-Version: 1.0
X-Received: by 10.112.209.4 with SMTP id mi4mr1727271lbc.7.1443644472300; Wed,
	30 Sep 2015 13:21:12 -0700 (PDT)
Received: by 10.112.228.194 with HTTP; Wed, 30 Sep 2015 13:21:12 -0700 (PDT)
In-Reply-To: <CAN2Hq07CR8RPjzdeg_k9owV25qCNLgt7y06J8rw-N=2owqtetA@mail.gmail.com>
References: <CAPvuBUsmDOisM=3htapCn7g5Lp01Vd91N_cUE1nwD1oaOAhfsQ@mail.gmail.com>
	<1A3C5EAF-A5A2-4BD6-B88E-FA3F6CED1CA5@recoil.org>
	<CAN2Hq071sRM2x1WqLkkNKjoH2UiuafDpN5YfrJ8gaVh7tKh63g@mail.gmail.com>
	<CAPvuBUv8mpnoT9J=7u4HiJpyJjfLG3giw05WG7bC9qctaZEYWA@mail.gmail.com>
	<CAN2Hq06dfedZyf+=f=FX6mUcVuGA7CF_F+8-9e6uUHf9wsFvmA@mail.gmail.com>
	<CAPvuBUv7RP8B3OnbEtSdh43rS37OqOBa_Zh4kBa97uc9Witpew@mail.gmail.com>
	<CAN2Hq07CR8RPjzdeg_k9owV25qCNLgt7y06J8rw-N=2owqtetA@mail.gmail.com>
Date: Wed, 30 Sep 2015 22:21:12 +0200
X-Google-Sender-Auth: 8ifyo9_UYe6GHhNFkWThMY-y99I
Message-ID: <CAPvuBUswpurdaUGdAOVY6zMA9PW_1nLzNdT1bQatjMYkyo6Zgw@mail.gmail.com>
From: "Christiano F. Haesbaert" <haesbaert@haesbaert.org>
To: Richard Mortier <richard.mortier@cl.cam.ac.uk>
Cc: mirageos-devel <MirageOS-devel@lists.xenproject.org>,
	Anil Madhavapeddy <anil@recoil.org>
Subject: Re: [MirageOS-devel] Charrua release
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On 30 September 2015 at 18:50, Richard Mortier
<richard.mortier@cl.cam.ac.uk> wrote:
> [ Adding the list as discussion may be of more general interest. This
> concerns Christiano's DHCP server, Charrua, at
> https://github.com/haesbaert/charrua-core,
> https://github.com/haesbaert/charrua-mirage and
> https://github.com/haesbaert/charrua-unix. ]
>
> On 30 September 2015 at 13:39, Christiano F. Haesbaert
> <haesbaert@haesbaert.org> wrote:
>>
>> On Wednesday, 30 September 2015, Richard Mortier
>> <richard.mortier@cl.cam.ac.uk> wrote:
>>>
> ...
>>> Some random thoughts:
>>>
>>> + Is there a reason why you include clock.mli rather than depending on
>>> mirage-types and using the definition from there?
>>
>> Probably inexperience, that was for charrua-unix to be able to use the Ocaml
>> Clock module without having a functor, but I want to change that, didnt find
>> a better way at the time.
>
> Given you're using functors elsewhere, why is it a problem to use a
> functor for Clock too?

Not a problem per se, but functors make it harder later to "just use"
the module, so I'm trying to avoid it.

I've functorized over V1.CLOCK now, but instead of functorizing Lease
with V1.CLOCK as well, I now pass the current time as an argument.
This has the advantage of not having any time delta between two calls
if we pass the same current time, it also makes it easier to test or
write regression tests, commit is here:

https://github.com/haesbaert/charrua-core/commit/d542696510a861064b2db04e062e77bd76236284

With this, clock.mli is gone.

I'm working on the other points now :D.

>
>>> + I notice the INTERFACE type you define -- is this something that we
>>> should think about adding to mirage-types?
>>
>> Don't think so.
>> This is an artifact of having the library working outside mirage
>> (charrua-unix), i basically need to tell the Server module how to do IO and
>> what is an interface. Im not too happy with the way I wrote this, perphaps
>> there is a better way ?
>
> This may bear some thinking about-- I wonder if the right thing to do
> is to just use the Mirage types, functors, libraries, etc, but (using
> @drup's shiny new Functoria-based Mirage DSL implementation) implement
> a "native Unix" backend so that cmdliner and other things can be used
> as-is. That way you can leverage the module types and libraries all
> the way down, but aren't tied to having the entry point look like a
> unikernel (hence can pass params etc as you would normally).
>
> All-- thoughts?
>
>>> + Could you pull out Dhcp_structs into a separate ocamlfind library (i
>>> tried tftp.wire for my Tftp lib) so that the structs can be reused (eg
>>> in a packet parsing libpcap-alike)?  (One day this will happen for
>>> tcpip as well so that you don't need to include "cstruct udp" et al.)
>>> I can try and put a PR together for this if you prefer...
>>
>> Sure let's do it, but by PR you mean ?
>
> Pull Request :)
>
>>> + Curiosity: Was there a reason to not use the Cstruct `cenum`
>>> construct for declaring the codepoints etc? (Wondering whether
>>> something that replaces `cstruct ... { }` could/should be replaced
>>> with something that enables`with cstruct` a la `with sexp`.)
>>
>> i didn't know about cenum, that will make things easier, I will work on that
>> thus week.
>
> Cool. In general I think we have an inclination now to remove camlp4
> syntax extensions where possible -- I don't know if anyone has looked
> at replacing cstruct.syntax though (which I would guess is the most
> commonly used now we don't generally use lwt.syntax). Anyone?
>
>>> + Dhcp_logger -- Anil, what's the status of dog at the moment? Is
>>> there a logging framework ready for use/Is dog the place to start for
>>> one? (I'll push Tftp over onto it as well if so.)
>>
>> That was also to be able to use charrua-core outside of mirage.
>
> I understood that Dog depended on Irmin rather than Mirage, but I
> might be wrong. (@samoht?)
>
>>> + Alistair had started adding (possibly got to some kind of
>>> completion) Irmin support for the state in his version (based directly
>>> off mirage-tcpip --
>>>
>>> https://github.com/alistairfisher/irmin-dhcp/commit/fb56e771613333d08397033b8c4f830a519db5a0)
>>> -- would be great to look at adding/merging this somehow.
>>
>> I agree, i can work on merging his code, I would do it for 0.2 though.
>
> Fair enough :)
>
>> Bear in mind my ocaml-foo may not be on paar, you should see other naive
>> mistakes and/or uncommon idioms.
>
> I'm sure those with sufficient experience will eventually point them out :)
>
>> If supporting Charrua-core outside of mirage contaminates too much of the
>> design, I can drop charrua-unix. This was in fact my first idea, but then I
>> figure it would be interesting on the architectural level, since it provides
>> a stronger separation between the core logic and the rest.
>
> FWIW, what I was trying to do with `ocaml-tftp` was to have the
> library and then Mirage and (pure) Unix servers (and ultimately,
> clients) in a single repo, under different directories, using Oasis to
> generate the necessary build runes and OPAM to manage installation of
> different generated ocamlfind components. (Though I just noticed I
> need to split that down more.) Not entirely successful (or finished!)
> so far, but it mostly seemed to work. (And meant I didn't have to
> worry about too many repos.)
>
> --
> Richard Mortier
> richard.mortier@cl.cam.ac.uk

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Wed Sep 30 20:21:26 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 30 Sep 2015 20:21:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZhNsK-0003tQ-IC; Wed, 30 Sep 2015 20:21:16 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <christiano.fh@gmail.com>) id 1ZhNsI-0003tL-Ok
	for MirageOS-devel@lists.xenproject.org; Wed, 30 Sep 2015 20:21:14 +0000
Received: from [85.158.139.211] by server-11.bemta-5.messagelabs.com id
	74/1F-24494-A344C065; Wed, 30 Sep 2015 20:21:14 +0000
X-Env-Sender: christiano.fh@gmail.com
X-Msg-Ref: server-9.tower-206.messagelabs.com!1443644472!38949548!1
X-Originating-IP: [209.85.215.47]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 30046 invoked from network); 30 Sep 2015 20:21:13 -0000
Received: from mail-la0-f47.google.com (HELO mail-la0-f47.google.com)
	(209.85.215.47)
	by server-9.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
	30 Sep 2015 20:21:13 -0000
Received: by lahh2 with SMTP id h2so60336707lah.0
	for <MirageOS-devel@lists.xenproject.org>;
	Wed, 30 Sep 2015 13:21:12 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:sender:in-reply-to:references:date:message-id:subject
	:from:to:cc:content-type;
	bh=3gYdzkTIT6YsdDSF/rFyZW11BSic2LpU/M7/rgcbhDM=;
	b=taagPKq2b3yTBzb3wzKsUswNGIEvJh7fwtcZf0MMWd/aPgPhd+cZKjAYRwYVgtf2lM
	74u49xQxI7aivBVIx5Met2Dc/BWmVPv7sE0/AQHQYv0J8+eYXkmvd0IiSykQRPRHUYHu
	nGS6n/nAoyqYUj2tMn90fFhHUR28s+hvcrBIIFsgOB2NsrAdsUigC3KgPzrPQoHrJj5s
	hfAwDXVeGMze3sMvLaDo3Tx/Z2xxEbHmU8K1nvqRPVT5UUhb7kU8QZpvRywV/zwvAGQp
	68XSgmMuOBr4V8xet2td5B5DwuVDHdJrTQdmXlvamLk/8mThueVQn9sDRL1mhYnssSFA
	tQ4w==
MIME-Version: 1.0
X-Received: by 10.112.209.4 with SMTP id mi4mr1727271lbc.7.1443644472300; Wed,
	30 Sep 2015 13:21:12 -0700 (PDT)
Received: by 10.112.228.194 with HTTP; Wed, 30 Sep 2015 13:21:12 -0700 (PDT)
In-Reply-To: <CAN2Hq07CR8RPjzdeg_k9owV25qCNLgt7y06J8rw-N=2owqtetA@mail.gmail.com>
References: <CAPvuBUsmDOisM=3htapCn7g5Lp01Vd91N_cUE1nwD1oaOAhfsQ@mail.gmail.com>
	<1A3C5EAF-A5A2-4BD6-B88E-FA3F6CED1CA5@recoil.org>
	<CAN2Hq071sRM2x1WqLkkNKjoH2UiuafDpN5YfrJ8gaVh7tKh63g@mail.gmail.com>
	<CAPvuBUv8mpnoT9J=7u4HiJpyJjfLG3giw05WG7bC9qctaZEYWA@mail.gmail.com>
	<CAN2Hq06dfedZyf+=f=FX6mUcVuGA7CF_F+8-9e6uUHf9wsFvmA@mail.gmail.com>
	<CAPvuBUv7RP8B3OnbEtSdh43rS37OqOBa_Zh4kBa97uc9Witpew@mail.gmail.com>
	<CAN2Hq07CR8RPjzdeg_k9owV25qCNLgt7y06J8rw-N=2owqtetA@mail.gmail.com>
Date: Wed, 30 Sep 2015 22:21:12 +0200
X-Google-Sender-Auth: 8ifyo9_UYe6GHhNFkWThMY-y99I
Message-ID: <CAPvuBUswpurdaUGdAOVY6zMA9PW_1nLzNdT1bQatjMYkyo6Zgw@mail.gmail.com>
From: "Christiano F. Haesbaert" <haesbaert@haesbaert.org>
To: Richard Mortier <richard.mortier@cl.cam.ac.uk>
Cc: mirageos-devel <MirageOS-devel@lists.xenproject.org>,
	Anil Madhavapeddy <anil@recoil.org>
Subject: Re: [MirageOS-devel] Charrua release
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On 30 September 2015 at 18:50, Richard Mortier
<richard.mortier@cl.cam.ac.uk> wrote:
> [ Adding the list as discussion may be of more general interest. This
> concerns Christiano's DHCP server, Charrua, at
> https://github.com/haesbaert/charrua-core,
> https://github.com/haesbaert/charrua-mirage and
> https://github.com/haesbaert/charrua-unix. ]
>
> On 30 September 2015 at 13:39, Christiano F. Haesbaert
> <haesbaert@haesbaert.org> wrote:
>>
>> On Wednesday, 30 September 2015, Richard Mortier
>> <richard.mortier@cl.cam.ac.uk> wrote:
>>>
> ...
>>> Some random thoughts:
>>>
>>> + Is there a reason why you include clock.mli rather than depending on
>>> mirage-types and using the definition from there?
>>
>> Probably inexperience, that was for charrua-unix to be able to use the Ocaml
>> Clock module without having a functor, but I want to change that, didnt find
>> a better way at the time.
>
> Given you're using functors elsewhere, why is it a problem to use a
> functor for Clock too?

Not a problem per se, but functors make it harder later to "just use"
the module, so I'm trying to avoid it.

I've functorized over V1.CLOCK now, but instead of functorizing Lease
with V1.CLOCK as well, I now pass the current time as an argument.
This has the advantage of not having any time delta between two calls
if we pass the same current time, it also makes it easier to test or
write regression tests, commit is here:

https://github.com/haesbaert/charrua-core/commit/d542696510a861064b2db04e062e77bd76236284

With this, clock.mli is gone.

I'm working on the other points now :D.

>
>>> + I notice the INTERFACE type you define -- is this something that we
>>> should think about adding to mirage-types?
>>
>> Don't think so.
>> This is an artifact of having the library working outside mirage
>> (charrua-unix), i basically need to tell the Server module how to do IO and
>> what is an interface. Im not too happy with the way I wrote this, perphaps
>> there is a better way ?
>
> This may bear some thinking about-- I wonder if the right thing to do
> is to just use the Mirage types, functors, libraries, etc, but (using
> @drup's shiny new Functoria-based Mirage DSL implementation) implement
> a "native Unix" backend so that cmdliner and other things can be used
> as-is. That way you can leverage the module types and libraries all
> the way down, but aren't tied to having the entry point look like a
> unikernel (hence can pass params etc as you would normally).
>
> All-- thoughts?
>
>>> + Could you pull out Dhcp_structs into a separate ocamlfind library (i
>>> tried tftp.wire for my Tftp lib) so that the structs can be reused (eg
>>> in a packet parsing libpcap-alike)?  (One day this will happen for
>>> tcpip as well so that you don't need to include "cstruct udp" et al.)
>>> I can try and put a PR together for this if you prefer...
>>
>> Sure let's do it, but by PR you mean ?
>
> Pull Request :)
>
>>> + Curiosity: Was there a reason to not use the Cstruct `cenum`
>>> construct for declaring the codepoints etc? (Wondering whether
>>> something that replaces `cstruct ... { }` could/should be replaced
>>> with something that enables`with cstruct` a la `with sexp`.)
>>
>> i didn't know about cenum, that will make things easier, I will work on that
>> thus week.
>
> Cool. In general I think we have an inclination now to remove camlp4
> syntax extensions where possible -- I don't know if anyone has looked
> at replacing cstruct.syntax though (which I would guess is the most
> commonly used now we don't generally use lwt.syntax). Anyone?
>
>>> + Dhcp_logger -- Anil, what's the status of dog at the moment? Is
>>> there a logging framework ready for use/Is dog the place to start for
>>> one? (I'll push Tftp over onto it as well if so.)
>>
>> That was also to be able to use charrua-core outside of mirage.
>
> I understood that Dog depended on Irmin rather than Mirage, but I
> might be wrong. (@samoht?)
>
>>> + Alistair had started adding (possibly got to some kind of
>>> completion) Irmin support for the state in his version (based directly
>>> off mirage-tcpip --
>>>
>>> https://github.com/alistairfisher/irmin-dhcp/commit/fb56e771613333d08397033b8c4f830a519db5a0)
>>> -- would be great to look at adding/merging this somehow.
>>
>> I agree, i can work on merging his code, I would do it for 0.2 though.
>
> Fair enough :)
>
>> Bear in mind my ocaml-foo may not be on paar, you should see other naive
>> mistakes and/or uncommon idioms.
>
> I'm sure those with sufficient experience will eventually point them out :)
>
>> If supporting Charrua-core outside of mirage contaminates too much of the
>> design, I can drop charrua-unix. This was in fact my first idea, but then I
>> figure it would be interesting on the architectural level, since it provides
>> a stronger separation between the core logic and the rest.
>
> FWIW, what I was trying to do with `ocaml-tftp` was to have the
> library and then Mirage and (pure) Unix servers (and ultimately,
> clients) in a single repo, under different directories, using Oasis to
> generate the necessary build runes and OPAM to manage installation of
> different generated ocamlfind components. (Though I just noticed I
> need to split that down more.) Not entirely successful (or finished!)
> so far, but it mostly seemed to work. (And meant I didn't have to
> worry about too many repos.)
>
> --
> Richard Mortier
> richard.mortier@cl.cam.ac.uk

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Wed Sep 30 20:24:47 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 30 Sep 2015 20:24:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZhNvj-0003vZ-U1; Wed, 30 Sep 2015 20:24:47 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <richard.mortier@gmail.com>) id 1ZhNvi-0003vU-4U
	for MirageOS-devel@lists.xenproject.org; Wed, 30 Sep 2015 20:24:46 +0000
Received: from [85.158.139.211] by server-6.bemta-5.messagelabs.com id
	7C/98-22089-D054C065; Wed, 30 Sep 2015 20:24:45 +0000
X-Env-Sender: richard.mortier@gmail.com
X-Msg-Ref: server-11.tower-206.messagelabs.com!1443644684!34849418!1
X-Originating-IP: [209.85.212.175]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 24543 invoked from network); 30 Sep 2015 20:24:44 -0000
Received: from mail-wi0-f175.google.com (HELO mail-wi0-f175.google.com)
	(209.85.212.175)
	by server-11.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
	30 Sep 2015 20:24:44 -0000
Received: by wiclk2 with SMTP id lk2so3947247wic.0
	for <MirageOS-devel@lists.xenproject.org>;
	Wed, 30 Sep 2015 13:24:44 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=mime-version:in-reply-to:references:date:message-id:subject:from:to
	:cc:content-type;
	bh=U4Ch3HiB4zR2rsHORGNOKpvw4g8k2bk24t61DKaZ180=;
	b=ZnnmuxiPSJZhRvhK9k+lSDYbUB/lDZlz90pTbSJlmg4FGbAvRX9gPUcBksZ0gMAPEi
	1Jp7oK5T53gRBnj+AQHlrhKHq+0Pm03pxp89FXc7KYluoRTmIIJQ2lQWAiDbfUrUlXoi
	lzjV5esD04d6C1LdDWfTk8SKadtfu+dOIuI6gWE9KST5JbibVzfNL0wackTbI6ss5dJ1
	leisi2/GvSKy9zLayANw78eHep73KmznJokqBSavYz6DDhicmdcXUXcbPmsadAjOs/vC
	+09Sin1+WzkHS6oGMTqXb+oxPTSyxHD6lo+8eQJGXhAcNEB2KxV1UY2z6xkQvhjoFY4B
	jzvA==
X-Received: by 10.194.84.42 with SMTP id v10mr7219386wjy.1.1443644684091;
	Wed, 30 Sep 2015 13:24:44 -0700 (PDT)
Received: from mail-wi0-f181.google.com (mail-wi0-f181.google.com.
	[209.85.212.181])
	by smtp.gmail.com with ESMTPSA id t7sm31357482wib.1.2015.09.30.13.24.42
	for <MirageOS-devel@lists.xenproject.org>
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Wed, 30 Sep 2015 13:24:43 -0700 (PDT)
Received: by wicfx3 with SMTP id fx3so90177wic.0
	for <MirageOS-devel@lists.xenproject.org>;
	Wed, 30 Sep 2015 13:24:42 -0700 (PDT)
MIME-Version: 1.0
X-Received: by 10.180.39.139 with SMTP id p11mr31665403wik.44.1443644682263;
	Wed, 30 Sep 2015 13:24:42 -0700 (PDT)
Received: by 10.28.130.67 with HTTP; Wed, 30 Sep 2015 13:24:42 -0700 (PDT)
In-Reply-To: <CAPvuBUswpurdaUGdAOVY6zMA9PW_1nLzNdT1bQatjMYkyo6Zgw@mail.gmail.com>
References: <CAPvuBUsmDOisM=3htapCn7g5Lp01Vd91N_cUE1nwD1oaOAhfsQ@mail.gmail.com>
	<1A3C5EAF-A5A2-4BD6-B88E-FA3F6CED1CA5@recoil.org>
	<CAN2Hq071sRM2x1WqLkkNKjoH2UiuafDpN5YfrJ8gaVh7tKh63g@mail.gmail.com>
	<CAPvuBUv8mpnoT9J=7u4HiJpyJjfLG3giw05WG7bC9qctaZEYWA@mail.gmail.com>
	<CAN2Hq06dfedZyf+=f=FX6mUcVuGA7CF_F+8-9e6uUHf9wsFvmA@mail.gmail.com>
	<CAPvuBUv7RP8B3OnbEtSdh43rS37OqOBa_Zh4kBa97uc9Witpew@mail.gmail.com>
	<CAN2Hq07CR8RPjzdeg_k9owV25qCNLgt7y06J8rw-N=2owqtetA@mail.gmail.com>
	<CAPvuBUswpurdaUGdAOVY6zMA9PW_1nLzNdT1bQatjMYkyo6Zgw@mail.gmail.com>
Date: Wed, 30 Sep 2015 21:24:42 +0100
Message-ID: <CAN2Hq05qZ8h+JqDvtubVA8Dfj8OZhhDgsXqGn2kRD=tL5mFzxw@mail.gmail.com>
From: Richard Mortier <richard.mortier@cl.cam.ac.uk>
To: "Christiano F. Haesbaert" <haesbaert@haesbaert.org>
Cc: mirageos-devel <MirageOS-devel@lists.xenproject.org>,
	Anil Madhavapeddy <anil@recoil.org>
Subject: Re: [MirageOS-devel] Charrua release
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On 30 September 2015 at 21:21, Christiano F. Haesbaert
<haesbaert@haesbaert.org> wrote:
>> Given you're using functors elsewhere, why is it a problem to use a
>> functor for Clock too?
>
> Not a problem per se, but functors make it harder later to "just use"
> the module, so I'm trying to avoid it.
>
> I've functorized over V1.CLOCK now, but instead of functorizing Lease
> with V1.CLOCK as well, I now pass the current time as an argument.
> This has the advantage of not having any time delta between two calls
> if we pass the same current time, it also makes it easier to test or
> write regression tests,

Makes sense to me!

> With this, clock.mli is gone.
>
> I'm working on the other points now :D.

Cool :)


-- 
Richard Mortier
richard.mortier@cl.cam.ac.uk

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Wed Sep 30 20:24:47 2015
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 30 Sep 2015 20:24:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1ZhNvj-0003vZ-U1; Wed, 30 Sep 2015 20:24:47 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <richard.mortier@gmail.com>) id 1ZhNvi-0003vU-4U
	for MirageOS-devel@lists.xenproject.org; Wed, 30 Sep 2015 20:24:46 +0000
Received: from [85.158.139.211] by server-6.bemta-5.messagelabs.com id
	7C/98-22089-D054C065; Wed, 30 Sep 2015 20:24:45 +0000
X-Env-Sender: richard.mortier@gmail.com
X-Msg-Ref: server-11.tower-206.messagelabs.com!1443644684!34849418!1
X-Originating-IP: [209.85.212.175]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.13.16; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 24543 invoked from network); 30 Sep 2015 20:24:44 -0000
Received: from mail-wi0-f175.google.com (HELO mail-wi0-f175.google.com)
	(209.85.212.175)
	by server-11.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
	30 Sep 2015 20:24:44 -0000
Received: by wiclk2 with SMTP id lk2so3947247wic.0
	for <MirageOS-devel@lists.xenproject.org>;
	Wed, 30 Sep 2015 13:24:44 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=mime-version:in-reply-to:references:date:message-id:subject:from:to
	:cc:content-type;
	bh=U4Ch3HiB4zR2rsHORGNOKpvw4g8k2bk24t61DKaZ180=;
	b=ZnnmuxiPSJZhRvhK9k+lSDYbUB/lDZlz90pTbSJlmg4FGbAvRX9gPUcBksZ0gMAPEi
	1Jp7oK5T53gRBnj+AQHlrhKHq+0Pm03pxp89FXc7KYluoRTmIIJQ2lQWAiDbfUrUlXoi
	lzjV5esD04d6C1LdDWfTk8SKadtfu+dOIuI6gWE9KST5JbibVzfNL0wackTbI6ss5dJ1
	leisi2/GvSKy9zLayANw78eHep73KmznJokqBSavYz6DDhicmdcXUXcbPmsadAjOs/vC
	+09Sin1+WzkHS6oGMTqXb+oxPTSyxHD6lo+8eQJGXhAcNEB2KxV1UY2z6xkQvhjoFY4B
	jzvA==
X-Received: by 10.194.84.42 with SMTP id v10mr7219386wjy.1.1443644684091;
	Wed, 30 Sep 2015 13:24:44 -0700 (PDT)
Received: from mail-wi0-f181.google.com (mail-wi0-f181.google.com.
	[209.85.212.181])
	by smtp.gmail.com with ESMTPSA id t7sm31357482wib.1.2015.09.30.13.24.42
	for <MirageOS-devel@lists.xenproject.org>
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Wed, 30 Sep 2015 13:24:43 -0700 (PDT)
Received: by wicfx3 with SMTP id fx3so90177wic.0
	for <MirageOS-devel@lists.xenproject.org>;
	Wed, 30 Sep 2015 13:24:42 -0700 (PDT)
MIME-Version: 1.0
X-Received: by 10.180.39.139 with SMTP id p11mr31665403wik.44.1443644682263;
	Wed, 30 Sep 2015 13:24:42 -0700 (PDT)
Received: by 10.28.130.67 with HTTP; Wed, 30 Sep 2015 13:24:42 -0700 (PDT)
In-Reply-To: <CAPvuBUswpurdaUGdAOVY6zMA9PW_1nLzNdT1bQatjMYkyo6Zgw@mail.gmail.com>
References: <CAPvuBUsmDOisM=3htapCn7g5Lp01Vd91N_cUE1nwD1oaOAhfsQ@mail.gmail.com>
	<1A3C5EAF-A5A2-4BD6-B88E-FA3F6CED1CA5@recoil.org>
	<CAN2Hq071sRM2x1WqLkkNKjoH2UiuafDpN5YfrJ8gaVh7tKh63g@mail.gmail.com>
	<CAPvuBUv8mpnoT9J=7u4HiJpyJjfLG3giw05WG7bC9qctaZEYWA@mail.gmail.com>
	<CAN2Hq06dfedZyf+=f=FX6mUcVuGA7CF_F+8-9e6uUHf9wsFvmA@mail.gmail.com>
	<CAPvuBUv7RP8B3OnbEtSdh43rS37OqOBa_Zh4kBa97uc9Witpew@mail.gmail.com>
	<CAN2Hq07CR8RPjzdeg_k9owV25qCNLgt7y06J8rw-N=2owqtetA@mail.gmail.com>
	<CAPvuBUswpurdaUGdAOVY6zMA9PW_1nLzNdT1bQatjMYkyo6Zgw@mail.gmail.com>
Date: Wed, 30 Sep 2015 21:24:42 +0100
Message-ID: <CAN2Hq05qZ8h+JqDvtubVA8Dfj8OZhhDgsXqGn2kRD=tL5mFzxw@mail.gmail.com>
From: Richard Mortier <richard.mortier@cl.cam.ac.uk>
To: "Christiano F. Haesbaert" <haesbaert@haesbaert.org>
Cc: mirageos-devel <MirageOS-devel@lists.xenproject.org>,
	Anil Madhavapeddy <anil@recoil.org>
Subject: Re: [MirageOS-devel] Charrua release
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On 30 September 2015 at 21:21, Christiano F. Haesbaert
<haesbaert@haesbaert.org> wrote:
>> Given you're using functors elsewhere, why is it a problem to use a
>> functor for Clock too?
>
> Not a problem per se, but functors make it harder later to "just use"
> the module, so I'm trying to avoid it.
>
> I've functorized over V1.CLOCK now, but instead of functorizing Lease
> with V1.CLOCK as well, I now pass the current time as an argument.
> This has the advantage of not having any time delta between two calls
> if we pass the same current time, it also makes it easier to test or
> write regression tests,

Makes sense to me!

> With this, clock.mli is gone.
>
> I'm working on the other points now :D.

Cool :)


-- 
Richard Mortier
richard.mortier@cl.cam.ac.uk

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

